On Thu, Oct 10, 2013 at 9:30 PM, tom sutherland <alphatoz...@yahoo.com> wrote:
> I am using a Costas loop for carrier recovery with QAM16 data. The carrier
> is only 2khz. The I/Q output of the Costas loop seems to track (the original
> sin/cos of the modulating carrier's Frequency & Phase) steadily for a long
> period (minutes) and then the Phase moves off, normally in +/-  45 or 90
> degrees in one or both of the phases.  Any thoughts on why this occurs or
> how I can fix this issue?
> Thanks...Tom


Tom,

The Costas loop is not designed to handle QAM16. It only works for
BPSK, QPSK, and 8PSK. My guess is that you are using an order 4 loop?
What's probably happening is that the symbols at the four corners of
the constellation are dominating the error calculations because they
have the highest energy. But the loop can get biased by another symbol
in the constellation that turns it to another phase lock. The Costas
loop has no idea what the right constellation is; it's just minimizing
an error function and has probably gotten trapped in a local minimum
that your constellation presents to it.

I would suggest turning instead to the constellation_receiver block.
This allows you to specify the constellation you want it to handle.
The constellation objects
(http://jenkins.gnuradio.org/manual/doxygen/page_digital.html) allow
you to specify a symbol mapping to a set of complex points. There are
specialized forms of the constellations for certain known types (BPSK,
QPSK, etc.) that have more computationally efficient decision making
functions. But for any given constellation, it will at least be able
to calculate the minimum Euclidean distance between each point. Slow
but reliable.

Tom

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

Reply via email to