Problems with the USRP/LFRX at lower frequencies

Hello,
Â
I’m having a ton of trouble with the USRP/LFRX daughterboard setup. I
am trying to calibrate the counts that are stored as integers when I use
the usrp_rx_cfile.py script.
Â
I am using an HP waveform driver with 50 ohm output impedance to feed
single frequency sinewaves to the LFRX channel A. I am generating
sinewaves with an amplitude of 50 mV peak to peak. I tried measuring
several frequencies from 5 to 250 kHz. I am using a decimation of 128
(500 kHz) and the default gain of 10dB.
Â
I recorded the data for each frequency and used matlab to perform an FFT
(normalized) to receive my peak counts for each case.  The number of
counts I measure is not the same for all the frequencies. I noticed the
number of counts stays constant from 5 to 20 khz, then drops from 20 to
150 khz, then the number of counts rises slightly from 150 to 240 kHz.
Â
I’m puzzled why the number of counts I measure is not constant even
though I have a constant amplitude sinewave signal fed into the LFRX.
Â
I also tried performing the same tests with an HP spectrum analyzer.Â
The analyzer measured a response of 16 mVrms (which corresponds to 50mV
peak to peak) at each of the frequencies. I am 100 percent confident
the signal I am feeding into the LFRX is perfect.
Â
Thanks,
Dan Sura
 Â
Â

On Wed, Nov 12, 2008 at 11:00 PM, dan s [email protected] wrote:

gain of 10dB.
I also tried performing the same tests with an HP spectrum analyzer. The
analyzer measured a response of 16 mVrms (which corresponds to 50mV peak to
peak) at each of the frequencies. I am 100 percent confident the signal I
am feeding into the LFRX is perfect.

The signal is being sampled by the ADC, filtered and decimated through
a CIC filter and then it goes through a decimating halfband filter.

Since you’re doing a decimation of 128, you are really doing a 64:1 in
the CIC then a 2:1 in the halfband filter. Without further filtering
at the host, I am pretty sure you will get this type of distortion due
to the lack of compensation for the CIC “droop” by the halfband
filter.

Have you tried plotting the response to see if you get that typical
droop, or if it’s some other type of transformation?

Hope this helps.

Brian

On Wed, 2008-11-12 at 20:00 -0800, dan s wrote:

I’m puzzled why the number of counts I measure is not constant even
though I have a constant amplitude sinewave signal fed into the LFRX.

It appears you are seeing the non-uniform passband of the decimation
filter in the USRP FPGA. At a decimation of 128, your 250 KHz signal is
right at the edge, and is probably about 6dB down from something near
the center (DC or 5 KHz.) This is a combination of a 4-stage CIC
filter/downsampler and half-band FIR filter without further droop
compensation.

Try setting the decimation lower, to say, 16, to give you 4 Msps over
the USB. If the delta between a 5 KHz signal and a 250 KHz signal
becomes smaller, than this is likely the reason.

-Johnathan