On Fri, Mar 25, 2005 at 10:09:40PM -0800, Sachi wrote: > Hey, guys > > I am studying the examples these days. I met a > question when I read am_rcv.py. > > Why do we need a offset frequency of 30kHz in this > case? > > src.set_rx_freq (0, IF_freq) > actual_IF_freq =src.rx_freq(0) > actual_offset = actual_IF_freq + station > > The three lines are confusing to me, why we need to do > so? > > Thanks very much for your time. > > Sachi
There are two questions here. Let me start with this one: > src.set_rx_freq (0, IF_freq) > actual_IF_freq =src.rx_freq(0) > actual_offset = actual_IF_freq + station > > The three lines are confusing to me, why we need to do so? The USRP digital down converter, and for that matter, most analog downconverters, have some kind of minimum step size that they can be tuned to. src.set_rx_freq(0, IF_freq) # tell the usrp the target frequency actual_IF_freq = src.rx_freq(0) # retrieve the actual frequency set. The 30kHz offset is to work around a bug in the USRP verilog code. We currently have an unresolved truncation issue that shows up as a spike at DC (and sometimes other places) in the baseband signal. This is not the residual A/D offset. By adding the 30kHz offset in what we tell the usrp DDC, and then subtracting it out using the software DDC: ddc = gr.freq_xlating_fir_filter_ccf (if_decim,channel_coeffs,-actual_offset,if_rate) we keep the desired station away from the buggy spike. [Matt, if I got this wrong, please set me straight...] Eric _______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
