discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Re: Frequency shift in the received and generated sig


From: Michael Dickens
Subject: [Discuss-gnuradio] Re: Frequency shift in the received and generated signals of the USRP
Date: Sat, 6 Dec 2008 15:05:09 -0500

Hi again Kaleem - I apologize for never getting anything out to the list. I've been swamped with work & life. Here is the gist of how to do a static freq_xlating_fir_filter -- probably imperfect since this is from memory:

Instead of: USRP.source() -> WHATEVER

You do : USRP.source() -> gr.freq_xlating_fir_filter_XXX() -> WHATEVER

The trick here is to get the bandwidth [BW] correct once samples reach WHATEVER. In the former, you set the decimation rate in the USRP.source(). In the latter, you have to set the decimation in the XLATING filter, and then reverse compute a USRP decimation rate that allows enough BW for the FIR filter part of the XLATING block.

For the USRP, the ADC is running at 64 MS/s, with decimation in 4:2:256 IIRC, allowing for BWs of 16 MS/s down to 250 kS/s.

Suppose you want 250 kS/s at WHATEVER. Then you want more than 250 kS/ s BW before the XLATING filtering in order to do the filtering ... maybe 500 kS/s would suffice ... really depends on how precise filtering you want to do. Anyway, you set the XLATING frequency shift to the negative of what you've seen via comparison of a spectrum analyzer and the transmitted signal. And you set the decimation of the filter to 2 (in this case) to get the BW correct at WHATEVER (in this case: and set the USRP's decimation to 128 to get the sample rate of 500 kS/s as the output of USRP.source()). Of course, you'll need to create the low-pass filter coefficients first, to pass those in to the XLATING block on instantiation.

Try this out & play with the parameter to figure out what works for your particular HW setup ... in my testing, each USRP required a different frequency shift; some were "small" while others were "large". But as long as you keep track of which USRP requires which offset, they are pretty much static & can be used time and again with reasonable precision.

Hope this makes sense, and is reasonably correct. - MLD




reply via email to

[Prev in Thread] Current Thread [Next in Thread]