Giter Club home page Giter Club logo

Comments (6)

jks-prv avatar jks-prv commented on August 16, 2024

I thought this problem had gone away some time ago, but I think I understand it more fully now. It is caused when the passband straddles the 0 Hz (carrier) point, which it would for a typical AM-mode filter. You can see the problem really clearly as follows: Tune to a quiet part of the band in USB mode. Bring up the IQ display and adjust the gain until you get a circular pattern of noise. Note that the pattern is symmetric WRT the crosshairs of the display. Now switch to AMN. Note that the pattern shifts to the upper left. Now drag one side of the AMN passband until it just crosses over the carrier point. The pattern will become symmetrical again.

So there is a slight IQ imbalance. I think there must be a problem with how I'm using the CuteSDR FIR filter to generate the adjustable passband.

from beagle_sdr_gps.

jks-prv avatar jks-prv commented on August 16, 2024

The other clue about this is that it is most noticeable for signals with carriers weaker than about -80 dBm. As you would find for most typical NDBs. You don't hear the carrier bleed-through on a strong AM BCB station where the carrier IQ values would be much larger that the IQ offset errors.

from beagle_sdr_gps.

jks-prv avatar jks-prv commented on August 16, 2024

Wow. Short story: this will be fixed in v1.13
Longer story: this is not a simple bug with CuteSDR FIR I was expecting. In fact the FIR fixes the bug when the passband is set not to pass the 0 Hz point of the audio spectrum, as we have observed. This is a hardware issue. It's a small DC IQ offset coming from the ADC, ADC preamp or input circuit.

It seems to be very similar across all the Kiwis I've tested. This means it can be cured by simply adding a correction factor to the IQ samples. But I've also added a mode in the IQ display extension (if you're an admin) to measure the actual offset and add it to the overall correction factor. You have to disconnect the antenna so the measurement will be accurate. The default correction factor seems to be good enough to solve the carrier bleed-through problem, so most Kiwi owners won't have to do anything. When I get more time I need to understand the hardware basis of the problem.

from beagle_sdr_gps.

G8JNJ avatar G8JNJ commented on August 16, 2024

Great thanks for doing this.

Just checked the AM reception.

I applied the correction and it's a lot better now 👍

Regards,

Martin - G8JNJ

from beagle_sdr_gps.

jks-prv avatar jks-prv commented on August 16, 2024

Okay, good. I'm hoping the default correction will be sufficient for most Kiwi boards. I still don't understand why there would be similar, small DC offset common to all boards unless there is a hardware design flaw. More investigation needed when I have time.

You can also fine-tune the correction using the IQ display. Disconnect the antenna and tune to a frequency that has a nice flat, low noise floor free of any spurs or other artifacts on the waterfall. Set to AM mode. Bring up the IQ display. Adjust the gain slider until you get a circle of noise points filling 2/3 of the display. It should be centered on the crosshairs. When everything looks okay hit the "clear" button and let the Kiwi sit for a minute or two. The CMA numbers under the IQ display will show the cumulative moving average of all the IQ samples during the measurement period. Because the default correction is 5e-2 the measured numbers should be less and will be added to the 5e-2 as a fine-tuning when you hit the "IQ val" button. The new value is stored in the configuration file.

from beagle_sdr_gps.

G8JNJ avatar G8JNJ commented on August 16, 2024

Hi John,

Superb 👍 I'll give that a go and see if it gets rid of the tiny bit of residual tone I can just about still hear.

Regards,

Martin - G8JNJ

from beagle_sdr_gps.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.