# Re: USRP Gain

Brian,

More questions.

Q1: I had second thoughts about the CIC gain.

If I am going to use a 4th order CIC to give an overall decimation of
R, then the decimation of each stage will be
the fourth root of R, and the gain of the fourth-order filter will be

g = (R^0.25)^4 = R - back to equaling the overall decimation
factor.

However, the decimation distribution is more complicated since R^0.25
is seldom an integer.
Take my case where the decimation is R = 222 = 1 x 2 x 3 x 37 where
37 is a prime number.
On the other hand, R = 256 = 4^4 is convenient for the formula above,
however I think the
asymptotic formula is really valid only for large R.

(Note that 222^4 = 2.4 x 10^9, a huge gain. A 1 uV signal would give
a 2400 V output…)

Q2: More questions on gain. Here’s my measurement.

Agilent signal generator output at 1.8 MHz: 10 mV
Attenuator setting 46 dB
PGA setting: 0 dB
fft display output: 0 dB (= 1 V^2) - Checked separately

## So the input signal is 0.01V/200 = 50 uV and the overall gain is 1V/ 50uV = 20,000 of which 222 can be accounted for by the CIC filter. So, I am missing a factor of about 100. Is there a gain inherent in the channel filter? I have a further decimation by a factor of 6 there. Even with that, I am still off by a factor of more than 10.

Q3: MDS measurement

The signal disappears into the noise floor with the attenuator at 66
dB or 10 mV/2000 = 5 uV input signal.
I believe the USRP ADCs are 12 bits with VFS = 2V, so the LSB is 2V/
4096 or about 488 uV. How is the
system resolving signals that are 20-40 dB below the LSB size?

Dick…

On Thu, Sep 04, 2008 at 10:04:22AM -0500, Richard J. wrote:

g = (R^0.25)^4 = R - back to equaling the overall decimation factor.
2400 V output…)
So the input signal is 0.01V/200 = 50 uV and the overall gain is 1V/50uV =
The signal disappears into the noise floor with the attenuator at 66 dB or
10 mV/2000 = 5 uV input signal.
I believe the USRP ADCs are 12 bits with VFS = 2V, so the LSB is 2V/4096 or
about 488 uV. How is the
system resolving signals that are 20-40 dB below the LSB size?

Dick…

Re CIC gain, there’s a also a decimation specific shifter involved in
the path. Please take a look at

usrp/fpga/sdr_lib/cic_decim.v and cic_dec_shifter.v

Eric

Re CIC gain, there’s a also a decimation specific shifter involved in
the path. Please take a look at

Yes. You guys have the R^4 formula right, but the shifter takes back
most of the gain. The actual gain from the CIC decimator once you
include the shifter is:

R^4 / ( 2^ ceiling(log2(r^4)))

I hope that is readable. Basically, if R is a power of 2, then the gain
is exactly 1. If R is not a power of 2 then the gain is in the range of
(0.5,1).

Matt

On Fri, Sep 5, 2008 at 5:04 PM, Richard J.
[email protected] wrote:

Well, if the gain is really in (0.5, 1), that makes my missing gain
situation worse. I would be hunting for more than 20,000 in that case.
Also, it is inconsistent with my measurements that show that the gain
increases by a total of 26 dB as the decimation rate
is changed from 96 to 256.

Where is the shifter you are referring to? Is it in a non-recursive
implementation of the CIC filter?

If you take a look here:

``````http://gnuradio.org/trac/browser/gnuradio/trunk/usrp/fpga/sdr_lib/cic_dec_shifter.v
``````

All that’s happening here is the decimation rate chooses a different
slice of the output of the CIC filter. Once you go past a decimation
rate of 107, the bitgain becomes 28 and stays there no matter what.

Brian

On Sep 4, 2008, at 12:37 PM, Matt E. wrote:

you include the shifter is:

R^4 / ( 2^ ceiling(log2(r^4)))

I hope that is readable. Basically, if R is a power of 2, then the
gain is exactly 1. If R is not a power of 2 then the gain is in the
range of (0.5,1).

Matt

Well, if the gain is really in (0.5, 1), that makes my missing gain
situation worse. I would be hunting for more than 20,000 in that case.
Also, it is inconsistent with my measurements that show that the gain
increases by a total of 26 dB as the decimation rate
is changed from 96 to 256.

Where is the shifter you are referring to? Is it in a non-recursive
implementation of the CIC filter?

Dick…