Table of Contents
Introduction
If some is good then more must be better … right? This is true in many situations, but not when speaking about gain in an SDR. Especially considering ADC Saturation. Read on to find out why!
More blog posts on DSP and GNU Radio:
GNU Radio Flowgraph
I created a simple flowgraph in GNU Radio to look at the FM band:
The flowgraph uses two sliders, one for receiver gain and another for center frequency. I’m using an Ettus Research B200 Mini as my receiver.
ADC Saturation
Instinctively I turn on my radio with maximum gain which in this case is 80 dB.
But this is an error! And here’s why:
You’ll notice it looks as if there is a signal at 95.1 MHz but it appears to be low SNR.
But is it a noise problem? Or is it something else?
The Ettus radios scale the samples within the range of -1 to +1. Looking at the time domain, the receive signal from the SDR is within the range of -0.5 to +0.5. The analog to digital converter (ADC) is receiving a power level that is too high.
ADC saturation results in a non-linear distortion which creates wideband spectral noise, destroying the dynamic range of the receiver. The FM signal at 95.1 MHz is being obscured by the noise generated by receiver through an bad gain setting!
Preserving Dynamic Range
Reducing the receiver gain reduces the power level at the ADC. The gain is reduced from the maximum of 80 dB down to the minimum 0 dB. Now look at the frequency response:
The signal at 95.1 MHz can be seen clearly now! The amplitude of the time domain signal is much smaller now. Counter-intuitively, reducing the receiver gain has improved the SNR of the signal!
Conclusion
More receiver gain is good unless it creates signal distortion! Sending too much power into the ADC can cause saturation which generates wideband spectral noise which destroys the dynamic range of your receiver.
More blog posts on DSP and GNU Radio: