DSPRelated.com
Forums

Carrier recovery in a QAM demodulator

Started by Dario May 26, 2004
Hi to this newsgroup,
    I'm a newbie in DSP programming but I must implement a carrier recovery
system in a 16QAM demodulator, so I need some information.

In some books (and in some dated posts in this newsgroup) I have seen many
ways to do this synchronization, but the simpler is raising input by the
fourth power, filtering the frequency*4 and so dividing by 4.

The problem is dividing by four the frequency.

Can a PLL use the phase information of 4*frequency to give the original
frequency (with a k*pi phase error with k=integer)?
Or there are many better ways, like using non-linear operation again and
filtering the original frequency?

The "data directed recovery" method (using the phase error found on the
constellation after the demodulation) is too complicated for my application
so I would prefer do not implement this.

Thank you very much
Dario


Dario wrote:

> Hi to this newsgroup, > I'm a newbie in DSP programming but I must implement a carrier recovery > system in a 16QAM demodulator, so I need some information. > > In some books (and in some dated posts in this newsgroup) I have seen many > ways to do this synchronization, but the simpler is raising input by the > fourth power, filtering the frequency*4 and so dividing by 4. > > The problem is dividing by four the frequency. > > Can a PLL use the phase information of 4*frequency to give the original > frequency (with a k*pi phase error with k=integer)? > Or there are many better ways, like using non-linear operation again and > filtering the original frequency? > > The "data directed recovery" method (using the phase error found on the > constellation after the demodulation) is too complicated for my application > so I would prefer do not implement this. > > Thank you very much > Dario > >
With either the signal^4 solution or the data directed recovery (also known as a Costas loop, but you won't find much with that name on the web) there is an ambiguity about which quadrant you're in. Any coding scheme that's to be used for this should take this fact into account (by using differential phase, for instance, or using a FEC that makes the phase unambiguous). -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Tim Wescott <tim@wescottnospamdesign.com> wrote in message news:<10ba79hm2oltt11@corp.supernews.com>...
> Dario wrote: > > > Hi to this newsgroup, > > I'm a newbie in DSP programming but I must implement a carrier recovery > > system in a 16QAM demodulator, so I need some information. > > > > In some books (and in some dated posts in this newsgroup) I have seen many > > ways to do this synchronization, but the simpler is raising input by the > > fourth power, filtering the frequency*4 and so dividing by 4. > > > > The problem is dividing by four the frequency. > > > > Can a PLL use the phase information of 4*frequency to give the original > > frequency (with a k*pi phase error with k=integer)? > > Or there are many better ways, like using non-linear operation again and > > filtering the original frequency? > > > > The "data directed recovery" method (using the phase error found on the > > constellation after the demodulation) is too complicated for my application > > so I would prefer do not implement this. > > > > Thank you very much > > Dario > > > > > > With either the signal^4 solution or the data directed recovery (also > known as a Costas loop, but you won't find much with that name on the > web) there is an ambiguity about which quadrant you're in. Any coding > scheme that's to be used for this should take this fact into account (by > using differential phase, for instance, or using a FEC that makes the > phase unambiguous).
Eh? A Costas loop is purely a form of phase locked loop. It is not data directed. It doesn't even require data recovery to work. Data directed methods seem the most popular for carrier recovery, with a possible separate coarse setting of the carrier phase and frequency during the initial signal acquisition phase. The biggest problem they seem to have is response lag in their feedback. By the time that data has been recovered it is several symbols later than the input signal. If the data is used to direct tuning of the input carrier recovery, a crisp response to updates is hard to achieve. A second phase rotation may be used at the point where the recovered data is made available, which can be tuned in a much crisper manner. There are lots of variations on this theme. Regards, Steve
Steve Underwood wrote:

> Tim Wescott <tim@wescottnospamdesign.com> wrote in message news:<10ba79hm2oltt11@corp.supernews.com>... > >>Dario wrote: >> >> >>>Hi to this newsgroup, >>> I'm a newbie in DSP programming but I must implement a carrier recovery >>>system in a 16QAM demodulator, so I need some information. >>> >>>In some books (and in some dated posts in this newsgroup) I have seen many >>>ways to do this synchronization, but the simpler is raising input by the >>>fourth power, filtering the frequency*4 and so dividing by 4. >>> >>>The problem is dividing by four the frequency. >>> >>>Can a PLL use the phase information of 4*frequency to give the original >>>frequency (with a k*pi phase error with k=integer)? >>>Or there are many better ways, like using non-linear operation again and >>>filtering the original frequency? >>> >>>The "data directed recovery" method (using the phase error found on the >>>constellation after the demodulation) is too complicated for my application >>>so I would prefer do not implement this. >>> >>>Thank you very much >>>Dario >>> >>> >> >>With either the signal^4 solution or the data directed recovery (also >>known as a Costas loop, but you won't find much with that name on the >>web) there is an ambiguity about which quadrant you're in. Any coding >>scheme that's to be used for this should take this fact into account (by >>using differential phase, for instance, or using a FEC that makes the >>phase unambiguous). > > > > Eh? A Costas loop is purely a form of phase locked loop. It is not > data directed. It doesn't even require data recovery to work. > > Data directed methods seem the most popular for carrier recovery, with > a possible separate coarse setting of the carrier phase and frequency > during the initial signal acquisition phase. The biggest problem they > seem to have is response lag in their feedback. By the time that data > has been recovered it is several symbols later than the input signal. > If the data is used to direct tuning of the input carrier recovery, a > crisp response to updates is hard to achieve. A second phase rotation > may be used at the point where the recovered data is made available, > which can be tuned in a much crisper manner. There are lots of > variations on this theme. > > Regards, > Steve
Oh damn, now I'm going to have to hit the books to clarify the terminology. Sigh. It's what I get for blinking (for ten years). A Costas loop needs to know the received data bit to determine the multiplier for the raw phase error. This has the effect of a signal * signum(signal), which provides the noise advantage over a signal^2 scheme, but it still must be done. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
"Tim Wescott" <tim@wescottnospamdesign.com> ha scritto nel messaggio
news:10ba79hm2oltt11@corp.supernews.com...

> With either the signal^4 solution or the data directed recovery (also > known as a Costas loop, but you won't find much with that name on the > web) there is an ambiguity about which quadrant you're in. Any coding > scheme that's to be used for this should take this fact into account (by > using differential phase, for instance, or using a FEC that makes the > phase unambiguous).
Thank you for your answer. I know that there are an ambiguity about which quadrant I'm in, but I've use a differential coding that allows me knowing the carrier phase with k*pi/2 degrees error (in last post I wrote k*pi, but I was mindedness....). The problem is the frequency division. I don't want using fft, I prefer other operation like non-linear operation and filtering, or a PLL. Do you know if a PLL can lock to a multiple of frequency that I need? I think so, but the phase error must be valued only once ever 4 period of 4*carrier... Is it correct? Any comments are welcome Thank you again Dario
"Dario" <dario.lx@libero.it> wrote in message news:<j98tc.74751$Qc.3015646@twister1.libero.it>...
> Hi to this newsgroup, > I'm a newbie in DSP programming but I must implement a carrier recovery > system in a 16QAM demodulator, so I need some information. > > In some books (and in some dated posts in this newsgroup) I have seen many > ways to do this synchronization, but the simpler is raising input by the > fourth power, filtering the frequency*4 and so dividing by 4. > > The problem is dividing by four the frequency. >
For a 16-QAM signal dividing by four the frequency is not "the" problem since the 4th power of the signal does not create a pure tone. Only those symbols that lie at the corners of the inner and outer squares are 90 degs apart. (The 4th power scheme is great for QPSK, in general Mth power for M-PSK.) The "in between corners" symbols of 16-QAM will not behave properly after the 4th power. To capture the carrier phase coherently you will need some form of data directed remodulation or "pilot" symbols of known phases inserted at predetermined locations.
> Can a PLL use the phase information of 4*frequency to give the original > frequency (with a k*pi phase error with k=integer)? > Or there are many better ways, like using non-linear operation again and > filtering the original frequency? > > The "data directed recovery" method (using the phase error found on the > constellation after the demodulation) is too complicated for my application > so I would prefer do not implement this. > > Thank you very much > Dario
The simplest is to use an umodulated preamble during which you capture the phase and use that estimate until the end of the packet or until the next inserted unmodulated portion but in a mobile fading environment this is not very good unless you do the insertion frequently.
steveu@coppice.org (Steve Underwood) writes:

> Tim Wescott <tim@wescottnospamdesign.com> wrote in message news:<10ba79hm2oltt11@corp.supernews.com>... > > Dario wrote: > > > > > Hi to this newsgroup, > > > I'm a newbie in DSP programming but I must implement a carrier recovery > > > system in a 16QAM demodulator, so I need some information. > > > > > > In some books (and in some dated posts in this newsgroup) I have seen many > > > ways to do this synchronization, but the simpler is raising input by the > > > fourth power, filtering the frequency*4 and so dividing by 4. > > > > > > The problem is dividing by four the frequency. > > > > > > Can a PLL use the phase information of 4*frequency to give the original > > > frequency (with a k*pi phase error with k=integer)? > > > Or there are many better ways, like using non-linear operation again and > > > filtering the original frequency? > > > > > > The "data directed recovery" method (using the phase error found on the > > > constellation after the demodulation) is too complicated for my application > > > so I would prefer do not implement this. > > > > > > Thank you very much > > > Dario > > > > > > > > > > With either the signal^4 solution or the data directed recovery (also > > known as a Costas loop, but you won't find much with that name on the > > web) there is an ambiguity about which quadrant you're in. Any coding > > scheme that's to be used for this should take this fact into account (by > > using differential phase, for instance, or using a FEC that makes the > > phase unambiguous). > > > Eh? A Costas loop is purely a form of phase locked loop. It is not > data directed. It doesn't even require data recovery to work.
Not according to Haykin's "Communication Systems" (fourth edition). From p.454, The detector supplies an estimate of the transmitted symbol a_n... This sentence is describing the recursive Costas loop diagram in which the detected symbol is subtracted from the mixer output in order to generate a feedback signal. Further, the Costas loop description is presented as a specific algorithm that maximizes the log likelihood function within a formula from the section entitled "Decision-Directed Recursive Algorithm for Phase Recovery." It is a data- (i.e., symbol-) dependent algorithm. -- Randy Yates Sony Ericsson Mobile Communications Research Triangle Park, NC, USA randy.yates@sonyericsson.com, 919-472-1124
On 26 May 2004 19:15:24 -0700, steveu@coppice.org (Steve Underwood)
wrote:

>Tim Wescott <tim@wescottnospamdesign.com> wrote in message news:<10ba79hm2oltt11@corp.supernews.com>... >> Dario wrote: >> >> > Hi to this newsgroup, >> > I'm a newbie in DSP programming but I must implement a carrier recovery >> > system in a 16QAM demodulator, so I need some information. >> > >> > In some books (and in some dated posts in this newsgroup) I have seen many >> > ways to do this synchronization, but the simpler is raising input by the >> > fourth power, filtering the frequency*4 and so dividing by 4. >> > >> > The problem is dividing by four the frequency. >> > >> > Can a PLL use the phase information of 4*frequency to give the original >> > frequency (with a k*pi phase error with k=integer)? >> > Or there are many better ways, like using non-linear operation again and >> > filtering the original frequency? >> > >> > The "data directed recovery" method (using the phase error found on the >> > constellation after the demodulation) is too complicated for my application >> > so I would prefer do not implement this. >> > >> > Thank you very much >> > Dario >> > >> > >> >> With either the signal^4 solution or the data directed recovery (also >> known as a Costas loop, but you won't find much with that name on the >> web) there is an ambiguity about which quadrant you're in. Any coding >> scheme that's to be used for this should take this fact into account (by >> using differential phase, for instance, or using a FEC that makes the >> phase unambiguous). > > >Eh? A Costas loop is purely a form of phase locked loop. It is not >data directed. It doesn't even require data recovery to work. > >Data directed methods seem the most popular for carrier recovery, with >a possible separate coarse setting of the carrier phase and frequency >during the initial signal acquisition phase. The biggest problem they >seem to have is response lag in their feedback. By the time that data >has been recovered it is several symbols later than the input signal. >If the data is used to direct tuning of the input carrier recovery, a >crisp response to updates is hard to achieve. A second phase rotation >may be used at the point where the recovered data is made available, >which can be tuned in a much crisper manner. There are lots of >variations on this theme. > >Regards, >Steve
Yup. And I'll say that the sensitivity to the delay is dependant upon the loop bandwidth used. If the loop is used for PLL (tracking) only, even a bit of frequency locking, it can easily be set narrow enough that the delay becomes a non-issue for most systems. Obviously this is also dependant on the length of the Nyquist filter, and I have to say I have no idea why people use Nyquist filters that are as long as they are sometimes. This will certainly aggravate a delay problem. Back to the original point, though, using symbol^4 or whatever nonlinearity one wishes to use causes a very significant reduction in loop SNR, since the nonlinearity has the effect of amplifying the noise. If this is an academic exercise and no noise is going to be involved, then it won't matter much (although the quantization noise may get amplified), but for most practical systems with any kind of challenging SNR it can be very difficult to make them work. The pi/2 ambiguity in a data-directed loop is not an issue as long as the frequency offset for acquisition is never worse than Rs/4. Depending on the system this may be a bit of a challenge or it may be a total non-issue. Eric Jacobsen Minister of Algorithms, Intel Corp. My opinions may not be Intel's opinions. http://www.ericjacobsen.org