discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Frequency Offset


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] Frequency Offset
Date: Tue, 1 Sep 2009 19:29:08 -0700
User-agent: Mutt/1.5.18 (2008-05-17)

On Tue, Sep 01, 2009 at 07:18:02PM -0700, Josh Blum wrote:
>
>
> Eric Blossom wrote:
>> On Wed, Sep 02, 2009 at 09:14:52AM +0800, fangming he wrote:
>>> Hi, all
>>>
>>> I set the frequency of USRP to be 910MHz, but I noticed that
>>> the central frequency of the signal is 914MHz. Why there is 4Mhz frequency 
>>> offset.
>>> I also found that there is also a signal comeing up in 896Mhz. The 
>>> amplitude of
>>> the signal in 914MHz is 20dB higher than the amplitude of the signal in 
>>> 896Mhz.
>>
>> Did you call u.tune(..., 910e6, ...) to set the frequency?
>>
>
> Thats news to me! The grc generated code here just calls set lo.
>
> The temporary solution would be to create a gui control for the  
> frequency and to change the frequency at runtime. This will cause  
> u.tune(...) to be called.
>
> -Josh
>


>From usrp_standard.h:

usrp_standard_rx:

  /*!
   * \brief High-level "tune" method.  Works for the single channel case.
   *
   * This method adjusts both the daughterboard LO and the DDC so that
   * target_freq ends up at DC in the complex baseband samples.
   *
   * \param chan  which DDC channel we're controlling (almost always 0).
   * \param db    the daughterboard we're controlling.
   * \param target_freq the RF frequency we want at DC in the complex baseband.
   * \param[out] result details how the hardware was configured.
   *
   * \returns true iff everything was successful.
   */
  bool tune(int chan, db_base_sptr db, double target_freq, usrp_tune_result 
*result);
  

usrp_standard_tx:

  /*!
   * \brief High-level "tune" method.  Works for the single channel case.
   *
   * This method adjusts both the daughterboard LO and the DUC so that
   * DC in the complex baseband samples ends up at RF target_freq.
   *
   * \param chan  which DUC channel we're controlling (usually == which_side).
   * \param db    the daughterboard we're controlling.
   * \param target_freq the RF frequency we want our baseband translated to.
   * \param[out] result details how the hardware was configured.
   *
   * \returns true iff everything was successful.
   */
  bool tune(int chan, db_base_sptr db, double target_freq, usrp_tune_result 
*result);
  

If you don't adjust both the LO and DDC/DUC, on most boards you can't
ensure that your desired frequency is at 0 Hz in the baseband.  (The 
4 MHz offset is to move some spurs away from 0 Hz.)

Eric




reply via email to

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