> 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


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to