Re: USRP/LFRX ADC Saturation and Range

Hi Sebastiaan,

Thanks for responding. Given what you explained, I’m still not sure if
my results are in the range they should be. Do you have any guesses?

At 10 dB of gain set on the USRP, I observed saturations at about
+14,964 and -12,025 counts. This was with a 32 bit decimation and
saving the recordings as 16 bit shorts

When I used a 50 ohm output waveform generator, I got a calibration of
about 37,900 counts/volt (with a 10 kHz sinewave input). I saw
saturations once I had an input voltage at around +/- .316 Volts (as
expected with 10 dB of gain), but I don’t recall what I got in terms of
counts for saturation.


— On Sat, 5/30/09, Sebastiaan H. [email protected] wrote:

From: Sebastiaan H. [email protected]
Subject: Re: [Discuss-gnuradio] USRP/LFRX ADC Saturation and Range
To: “dan s” [email protected]
Cc: “Gnuradio” [email protected]
Date: Saturday, May 30, 2009, 7:26 AM

Hi Dan.

I don’t think 2^16 denotes the maximum sample value in the USRP. We
have a 12bit ADC, so we start off with -2048->2047. This then gets
bit shifted to the right by 3 places when it enters the USRP, so we
have x8. The CORDIC causes our sample values to be divided by about
1.6. Then we also have the CIC and HBF. The CIC’s gain varies
depending on the decimation and the HBF’s gain is 1bit (6dB).

Looking at the ADC’s datasheet, we need 2Vp-p to fully utilise its
dynamic range. The input impedance of the ADC is around 220ohms so
this is equal to an input signal level of about 6dBm. If you go above
this you will get saturation.

I want to do some simulations with input signals and the algorithms on
the USRP to determine the maximum sample value. I’ll post the results
of this when I’m done.


Hi Dan

I tried similar experiments to determine what sample level corresponds
to saturation when using a BasicRX. I think the maximum sample level
that I got to was around 8000->-8000 when using a 10dBm input. I
guess this might also be dependent on the decimation in the CIC, etc.
I’ve also noticed that the ADC doesn’t clip at saturation. The gain
just becomes much smaller.

One thing that you might try is the following (just a suggestion).
Connect a signal generator to your USRP. Then use an FFT sink to
display your signal. Set it so that the y-axis resolution is 1dB.
Now you can vary your input signal and see where a 1dB change in input
signal does no longer correspond to a 1dB change in the sampled
signal. If you digitise an input signal at this level, you should
have the maximum sample value before saturation.

As I’ve said, I’ll do the Icarus simulations sometime and see what the
maximum sample value is.