Friday, November 25, 2011

[Discuss-gnuradio] PLL error term related and limiting it to {-1, 1}

Hi,
In the PLL/Costas algorithms why is the error term limited between {1,-1}? I understand the need for limiting but how was the value '1' chosen? In the following,

float
gr_costas_loop_cc::phase_detector_2(gr_complex sample) const
{
  return (sample.real()*sample.imag());
}

the phase detector returns the product of the I and Q parts of the sample which means that the phase error detected is dependent upon the signal sample amplitude and if the amplitude of the signal is greater than 1, the returned error ought to be greater than 1 in most of the cases and limiting the error in such cases defeats the purpose. What am I missing here as this algorithm always seems to work?

Thanks

1 comment:

  1. Exactly! Did you find the solution to this? I'd be incredibly grateful if you can share the answer.

    ReplyDelete