discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] About the am_rcv.py


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] About the am_rcv.py
Date: Sat, 26 Mar 2005 11:59:07 -0800
User-agent: Mutt/1.5.6i

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




reply via email to

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