[Top][All Lists]
[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