Quantcast
Channel: KA7OEI's blog
Viewing all articles
Browse latest Browse all 187

Managing signal dynamics on an RTL-SDR receiver

$
0
0
The so-called "RTL-SDR" dongles are devices that have become quite popular owing to their low cost and their ability to cover a wide frequency range - typically from a few hundred kHz to nearly 1GHz, depending on the device.

At the upper end of this range (above approx. 60 MHz) they use a built-in frequency converter to produce quadrature signals to be digitized, allowing them to "see" a swath of frequencies about the center. For lower frequencies there are two options:
  • Use a "direct" input (e.g. the "I" or "Q") and sample the HF frequencies directly.  This allows the hardware to work directly at these low frequencies with only minor modifications.
  • Use an "up-converter" to move the entire HF range to a higher frequency.  As an example, devices are available that will convert signals up by 100 MHz, meaning that a 5.0 MHz signal will be tuned in at 105.0 MHz.
Each of these methods has their own sets of quirks, advantages and disadvantages:

The "direct" method:
  • It is very simple to implement in that it uses would would normally be an unused input.  Many dongles already include this modification - but if not, it may be easily added (instructions may be found on the web.)
  • The frequency stability can be better than the "upconversion" method since it is always lower - and there is only one oscillator that must be kept stable.
  • This has the disadvantage that the sample rate is about 28.8 MHz meaning that signals above 14.4 MHz will be aliased.  For example, a signal at 21.25 MHz will also appear at (28.8 - 14.4 = ) 7.55 MHz.  This can usually be mitigated by the addition of band-pass filtering around the frequencies of interest if "fixed frequency" operation is expected.
  • The "direct" input is typically quite "deaf", often requiring a bit of amplification if it is to be used for microvolt-level signals.  In testing, it took about 7 microvolts (-90dBm) for a CW signal to become audible, about 15 microvolts (-84dBm) for an SSB signal to be readable and around 25 microvolts (-79 dBm) for an AM signal to become listenable.  In other words, the sensitivity of this unit is 20-30dB worse than a modern receiver in "direct" input mode!
The "up-converter" method: 
  • The "image" problem associated with "direct" method is avoided.
  • In this method there are two oscillators that can contribute to drift:  The (typically) 100 MHz oscillator used for the up-conversion and the clock reference in the receiver itself.  Because both of these are operating at a rather high frequency - and because there are twoof them - drift can be exacerbated.
  • The mixers used for frequency conversion can, in some cases, be overloaded by strong signals meaning that signals may be degraded before they get to the receiver.
 No matter the configuration, there is one limitation intrinsic to these "RTL" devices:  They have only 8 bits of A/D conversion.

The "dynamic range" problem:

With 8 bits one can only attain an overall dynamic range of about 48dB (the actual amount is actually harder to calculate owing to oversampling, decimation, reduction in effective A/D resolution, thermal and circuit noise, etc.)  The problem arises from the fact that a "weak" signal at, say, 160 meters may be on the order of 1 microvolt (-107dBm) but a nearby AM broadcast transmitter may be presenting a signal that could be 500 microvolts (-53dBm) or even much more!  In our example, we can see that this could pose a signal difference of 54dB - above the range that can be represented using an 8 bit converter.  In other words, assuming a 48dB dynamic range of our A/D converter, if we adjusted our levels so that a 1 microvolt signal (-107dBm) just barely registered on the A/D, any signal(s) that were 48dB above this (-59dBm) would "max out" our converter - again, ignoring oversampling, etc.

In other words, if we were to carefully adjust our signal level to our RTL-SDR (using an attenuator) such that we were just below the signal level that "maxed out" our A/D converter, our weak signal would be below the signal level represented by the lowest bit and it would (probably)be lost in the noise.  Conversely, if we tried to bring the weak signal up to the point where it was out of the quantization noise of the A/D converter, we'd be overloading our A/D, causing distortion and making it work very badly.

Extreme case:  Monitoring both the AM broadcast band and 160 meters

To illustrate this problem, let us look at the signals present on an HF antenna located in the Salt Lake City area, below:
Figure 1:
Off-air signals of the AM broadcast band into a Carolina Windom designed for 80 meters and higher bands.  This spectrum analyzer plot's vertical axis is 10dB/division with the top bar being 10dBm.
Click on the image for a larger version.
 In Figure 1, above, we see the plethora of signals that are intercepted by a typical HF antenna in a metropolitan area.  The strongest signal (marker #1) is at 1160 kHz (KSL) a local 50kW "clear channel" station which is producing a power level of about +3dBm which is nearly 1/3 volt of RF!  In contrast we can see another signal indicated by marker #4 which is another local, low-power station with a signal level that is nearly 40dB (a factor of 10000!) weaker.  Elsewhere we can see other "local" stations (within 50 miles, 80km) that are weaker-still.

The "top" end of this plot (far right) includes the entirety of the 160 meter band and at this (rather noisy) site location we can see that the background noise is presenting us with a signal level of about -80dBm (about 22 microvolts) of noise.  In a truly "quiet" location, away from power lines and other urban QRN this noise floor would be 10-15dB lower during daylight hours, or in the area of -95dBm (about 4 microvolts.)

From this plot we can see several problems that arise if we want to use an RTL-SDR:
  • The strongest signal (marker #1 at 1160 kHz) is about enough to case the front-end static-protection diodes built into good-quality dongles to conduct and cause intermodulation distortion on their own.
  • The signal level differences between the strongest local signal (marker #1) and the weakest (marker #3) is nearly 40dB below that of the strongest signal - which is almost all of the range of our A/D converter.  There are "nearby" stations located farther away that are even worse off - such as the station located at marker 4 that is about 60dB down (1-millionth) of the signal level of our strongest.
  • If we wanted to listen to local AM broadcast signals and be able to receive signals on 160 meters we would need manage the fact that there is about 80 dB difference (a factor of 100 million) between the strongest signal and the noise floor!  What's worse is that this -80dBm (ish) noise floor at 160 meters isn't all that much higher than the noise floor of the RTL dongle itself.
To be sure, the magnitude of these disparate signals can be a challenge even for a modern communications receiver which, when connected to this same antenna, may well experience overload unless a significant amount of attenuation is added but coupled with the limited dynamic range of the RTL dongle, being able to receive both sets of signals poses a challenge.

"Squashing" the signal levels

Clearly, if we want this system to work in both environments we need to reduce the levels of the strong broadcast band signals while boosting the weak signals on the 160 meter band and the way to do this is with some filtering.  If we design a "band stop" filter that will attenuate only the broadcast band signals we can prevent the dongle from being overloaded as badly.

Let's design a hypothetical band-stop filter that will reduce signals in the broadcast band by 30dB (1000-fold) but leave those outside the band alone:  Will this help?

Taking the strongest signal (1160 kHz) and reducing it by 30dB means that instead of +3dBm it will now be -27dBm - better, but this is still about 53dB above our 160 meter noise floor.  What about the other signals on the band?  That signal at marker #4 (1230 kHz) will be reduced from -36dBm to about -66dBm - quite weak, but still audible, albeit a bit noisy.  What about those other stations that are weaker-still?  Those will get submerged reduced as well, getting down near the -79dBm "minimum signal level" for the RTL dongle.  Even by reducing this level, we still haven't done anything to bring up the 160 meter signals at all.

To make it work we will need to do more.  One way to do this is to apply selective filters to the strongest signals to reduce just those signals.  Looking at Figure 1, again, we can see that if we were to considerably reduce the strongest signals by 20-30dB, we'd "compress" the range between the strongest and weakest signals and allow us to be able to deal with them with our range-limited RTL dongle.  Figure 2, below, shows what the AM broadcast band looks like once we have done this:
Figure 2:  
The AM broadcast band - and the 160 meter band, with the yellow trace showing the signals before filtering and the cyan trace after we have applied broadband attenuation to the AM broadcast band, selective attenuation to the strongest signals and some amplification overall.  As can be seen the range between the weakest and strongest signals is significantly reduced with the signal levels in the 160 meter band being increased enough to be above the dongle's noise floor.
Click on the image for a larger version.
In Figure 2 we can see the result of our work:
  • The strongest signals are reduced by about 20dB
  • The weaker signals are reduced a bit overall, but not as much as the strong ones owing to our attempts to selectively reduce only those that are strong.
  • The noise floor at 160 meters has been increased by 20dB.
  • The difference between the strongest broadcast band signals and the 160 meter noise floor is now 40dB - within the usable range of the 8 bit converter in our RTL dongle.
In other words we have reduced the strongest signals by 40dB, the weaker signals by 20dB and then brought everything back up by about 20dB.  Because our filter had little effect on the signals above and below the broadcast band, they come up by about 20dB as well.

How this may be done:


Viewing all articles
Browse latest Browse all 187

Trending Articles