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
Reply by ●May 27, 20042004-05-27
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
Reply by robert egri●May 27, 20042004-05-27
"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.
Reply by Dario●May 27, 20042004-05-27
"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
Reply by Tim Wescott●May 27, 20042004-05-27
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
Reply by Steve Underwood●May 26, 20042004-05-26
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
Reply by Tim Wescott●May 26, 20042004-05-26
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
Reply by Dario●May 26, 20042004-05-26
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