discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] NCO-CORDIC Problem


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] NCO-CORDIC Problem
Date: Mon, 19 Dec 2005 13:48:42 -0800
User-agent: Mutt/1.5.6i

On Mon, Dec 19, 2005 at 04:08:38PM -0500, David Scaperoth wrote:
> 
> On Dec 19, 2005, at 3:48 PM, David wrote:
> 
> >I am currently trying to implement a coherent receiver with the same 
> >results that it sounds like Blue Sky has gotten.  We have tried many 
> >things to compensate for the offset, but there still seems to be shift 
> >form 20Hz to 3kHz depending on the channel desired.
>
> >I have tried your suggested set_freq method found in the 
> >usrp_nbfm_rcv.py file, but to no avail.  Perhaps I have misunderstood 
> >your advice.


> >Currently I input a sinusoid (22MHz) from a signal generator directly 
> >to the basic Rx board.  I down convert the signal to an intermediate 
> >frequency of 1MHz (sampling at 4MS/s across the USB) and then using 
> >the xlating filter as a low pass filter (decimating to 250kS/s), I 
> >attempt to downconvert the signal with the offset calculated using the 
> >usrp.tune function.
> >
> >unfortunately when I attempt to use 22MHz as my center frequency, the 
> >usrp.tune function doesn' t see any error...when I use a less rounded 
> >number (22.0003MHz),  I get a calculated offset, but I am still left 
> >300Hz or so from baseband.

That sounds right.

This all comes down to the accuracy of the various crystals in the
transmitter and receiver.

On our end, we're using a very low jitter oscillator, but off the top
of my head, I believe that it's frequency accuracy is on the order of
50 ppm.   At 64MHz that's +/- 3200 Hz.  If absolute accuracy is what you
care about, then you need to head down the TCXO / double oven TCXO /
cesium / maser path.

However, in real communication systems it's wise to assume that the
clocks are off by some amount (it's either our clock or the guy on the
other end's), and then track-out the error using a PLL or some other
technique.  Analog receivers to this too.  They call it Automatic
Frequency Control (AFC).

There are several variants of PLL's in the GNU Radio block library.
One of them may do what you need, or serve as a starting point for
your development.  (http://www.gnu.org/software/gnuradio/doc/hierarchy.html
Search for pll).

Eric




reply via email to

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