USRP receiver filter response

Hi,

I’ve started evaluating the USRP for use in a “wideband radio”
application, where a wideband front end shifts a 30 MHz chunk of
spectrum down to baseband (0-30MHz) which is then digitized by the USRP.
The USRP DDCs are then used to tune to a channel in that spectrum.

I put a test tone directly into the USRP mother board’s receive channel
and used usrp_fft.py to measure the tone. In doing this I saw some
things which I don’t understand.

Center frequency used on the usrp_fft.py: 1250 kHz
Decimation rate used on the usrp_fft.py: 128 (for a span of 500 kHz,
1000 kHz to 1500 kHz)

The test tone was 6.1 dBm @ 1245 kHz and was measured by the usrp_fft
program to be 22.4 dB. This is near the middle of channel near the
carrier.

I then changed the test tone to be 6.1 dBm @ 990 kHz which is outside
the channel by 10 kHz. It was aliased to 1490 kHz, just 10 kHz inside
the upper half of the channel. This alias component was measured to be
-42.5 dB, or 64.9 dB down from the center of the band.

I then changed the test tone to be 6.1 dBm @ 950 khz. This tone was
aliased to 1450 kHz and was measured to be -20.0 dB, or only 42.4 dB
down from the center.

I then saw the post on the USRP filter response by Firas [1] where he
showed that for an overall decimation rate of 64 the CIC filter response
had better than a 55 dB anti-alias rejection. [2] But I’m seeing only
42 dB (overall response).

Does anyone have any ideas that explain this 13 dB discrepancy in the
filter response? Or am I missing something obvious…

Thanks!
Scott

[1]
http://lists.gnu.org/archive/html/discuss-gnuradio/2007-05/msg00191.html
[2]
http://www.nabble.com/file/8500/(0%20-%2032)MHz)%20CIC%20Frequency%20Response%20(CIC%20decimation%20%3D32).JPG

Scott Kell
Technical Director
Signalscape, Inc
919-678-6590

I then saw the post on the USRP filter response by Firas [1] where he
showed that for an overall decimation rate of 64 the CIC filter
response
had better than a 55 dB anti-alias rejection. [2] But I’m seeing only
42
dB (overall response).

Does anyone have any ideas that explain this 13 dB discrepancy in the
filter response? Or am I missing something obvious…

[1] http://lists.gnu.org/archive/html/discuss-gnuradio/2007-
05/msg00191.html
[2] http://www.nabble.com/file/8500/(0%20-

%2032%29MHz%29%20CIC%20Frequency%20Response%20%28CIC%20decimation%20%3D3
2%

29.JPG

[Kell, Scott]
To illustrate what I’m talking about, I set the USRP as follows:
Data rate: 500 kSamples/sec,
Center frequency: 1250 kHz

I put a 9dBm tone in at 50 kHz and measured the largest alias in my
“passband”. I then did the same at 100 kHz, 150 kHz, 200 kHz, … 32
MHz. I then plotted this “response”. [3] It just doesn’t seem to be as
good as what I thought it would be. [4]

Any ideas?

Thanks!
[3]
http://picasaweb.google.com/sctkell/USRPResponse?authkey=Z3gyRLgXOZc#524
9597153645337122
[4]
http://www.nabble.com/file/8500/(0%20-%2032)MHz)%20CIC%20Frequency
%20Response%20%28CIC%20decimation%20%3D32%29.JPG

On Wed, Sep 24, 2008 at 7:53 AM, Kell, Scott [email protected]
wrote:

I put a 9dBm tone in at 50 kHz

What gain do you have set for the receive side? For the BasicRX or
LFRX, this is really the gain of the input driver to the ADC, which
can vary from 0 to 20 db, and effectively changes the full scale ADC
range from 2V p-p to 0.2V p-p. Your input of 9dBm at 50 ohms is 1.78V
p-p, so, depending on the gain setting, you might be clipping. It’s
not clear how you are measuring your output, but if you are using
usrp_fft.py and not specifying a gain, then it takes the mid-point,
which would set full scale ADC at 0.63V p-p.

With clipping, at some frequencies you will generate harmonics which
will fall into the passband of the CIC filter and throw off your
calculations (assuming I understand how you are sweeping and
measuring.)


Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com/

What gain do you have set for the receive side?

Good point - I forgot to mention that I set the gain to 0 via the
–gain=0 switch passed to usrp_fft.py. So I shouldn’t be seeing any
clipping.

Also, another detail that I forgot to mention - I didn’t consider the
“carrier” at the center frequency. This was usually around 72 dB down.
Note that the vast majority of the aliased components in the graph were
below this level.

Thanks for looking at this!
– Scott

On Wed, Sep 24, 2008 at 10:53:36AM -0400, Kell, Scott wrote:

[1] http://lists.gnu.org/archive/html/discuss-gnuradio/2007-
Center frequency: 1250 kHz

I put a 9dBm tone in at 50 kHz and measured the largest alias in my
“passband”.

What daughterboard are you using?

If it’s the Basic Rx, it’s spec’d from 1 MHz to 250 MHz.
There’s a transformer on the board that limits the bottom end.
See the datasheet http://www.ettus.com/downloads/er_ds_txrx_dbrds_v4.pdf

Eric