On Thu, Nov 20, 2008 at 10:16 AM, Bruhtesfa E.
[email protected] wrote:
You are quite welcome!
I see on “USRP under 1.5x magnifaying lens, by: Firras” that the
tranceiver osillators tune as close as possible to the desired receiving
frequency in steps of 4MHz,and the remaining frequency offset is
downconverted by the USRP DDC. So if I am tuning to 2.40GHz(multiple of
4MHz), why a frequency offset occurs? or could you discribe how the
desired RF signal at 2.40GHz ends up at around 12KHz for XCVR2450
Tuning is done to the best of the receiver’s (synthesizer/PLL)
ability. Please reference what a superheterodyne receiver is:
Now, knowing that there is a 64MHz local oscillator reference on the
board, that must somehow get “multiplied up” using a PLL to generate
your 2.4GHz signal. Some simple math follows:
Multiplier = 2.4e9 / 64e6
Multiplier = 37.5
So a 64MHz signal must be multiplied up by 37.5x to generate the
desired frequency. Now, lets imagine that our crystal oscillator is
off by 320Hz. I believe this is a crystal oscillator rating of 5ppm.
For more information on PPM, see:
Establishing we have an oscillator with a 5ppm offset, and a
multiplier of 37.5, we can then calculate what our frequency offset
Foffset = multiplier * LOoffset
Foffset = 37.5 * 320Hz
Foffset = 12kHz
By only being off by 5 cycles for every 64 million, we have created a
12kHz offset only at the transmitter. This may be added or subtracted
based on how the receiver is sampling as well.
At these frequencies, this amount of offset is not atypical.
Do you think this frequency offset remains exactly the same every time
for the same USRP at a constant target frequency(ex. 2.40GHz)? Or is it
The frequency offset changes over time and temperature. It is a fact
of life. Practical radio communications systems always have to
compensate for frequency offset, drift and the like.
Also is there some way(GNU Radio code that uses PLL and the frequency
offset) to demodulate the signal at this offset frequency back to
Use the source. I don’t know if there is a block already written that
will do what you want to do - but the fact that you have insight into
all the blocks and the ability to write your own algorithms empowers
you to make GNU Radio do whatever you want it to do.