discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Tracking PLL phase error


From: Andy Walls
Subject: Re: [Discuss-gnuradio] Tracking PLL phase error
Date: Tue, 19 Aug 2014 13:23:35 -0400

> Hello,
> 
> I'm using the gr::analog::pll_carriertracking_cc() block to track a very
> stable signal of which I don't know the exact frequency and of which I
> want to detect (small!) phase oscillations.
> 
> In my tests I discovered that the tracked signal has a residual phase
> modulation that I would not expect to find.  I tried a simple test, very
> similar to the qa test for the block, and indeed I found that even for a
> constant frequency input signal the output has some residual phase
> oscillations. The amplitude of the oscillations depends on the pll
> bandwidth and on the frequency of the input signal, of the order of mrad
> for this examples (qa_pll_carriertracking.py).
> 
> I need to get rid of those oscillations because they mask the phase
> signal I want to measure. I'm going to investigate the issue further,
> but does anyone have an idea about where those may come from?

Just a guess; try changing 

   pll_carriertracking_cc_impl::phase_detector()

to use atan2() or atan2f() instead of gr::fast_atan2f().
It should be better, but will probably be slower.

gr::fast_atan2f() is a lookup with linear interpolation:

" *   [fast_atan2f] calculates the arc tangent with an
  * average error of +/- 0.045 degrees.
  */"

0.045 degrees is 0.785 milliradians, I think.

Regards,
Andy

> I suspect
> the digital oscillator may introduce some numeric error that may explain
> them, but they seem quite big...
> 
> Cheers,
> Daniele




reply via email to

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