DSPRelated.com
Forums

Demodulating QPSK

Started by John E. Hadstate April 5, 2008
"Vladimir Vassilevsky" <antispam_bogus@hotmail.com> wrote in 
message news:Dvy0k.2088$ZE5.1498@nlpi061.nbdc.sbc.com...
> > > John E. Hadstate wrote: > > >> After extensive tests, I've hit upon one robust, sure-fire >> system for demodulating long-duration QPSK. (This system is >> not especially useful for signals that occur in short >> bursts.) > > Why reinventing a wheel?
Your wheel doesn't work very well.
> > Demodulation of the long duration QPSK without noise, fading > and frequency wander is a piece of cake task, and there is > 10000 solutions for that.
Yes, but 9,998 of them don't work at all and the other two didn't work well enough to use in my application. In fact, mine doesn't work well enough to use in my application.
> >> As always with this type of system, you will probably need >> to re-map your recovered dibits based on some knowledge of >> the signal's contents and internal structure. >> >> In my implementation, all filters were two-pole IIR filters. >> The low-pass filters were designed by applying the BLT to >> Butterworth pole placements from the analog domain. > > Minor technical detail. Why does it matter?
It matters a great deal to anyone who is trying to design and/or implement a highly responsive feedback loop, but then you're not competent in that area, are you?
> > >> The band-pass filters were designed with complex-conjugate >> poles just inside the unit circle and on the radial lines >> corresponding to the desired center frequency. All of the >> critical frequencies were either a multiple or a fraction of >> the baud rate of the dibits. > > Too many of the clever scientific words. Understood nothing.
That says it all, and explains a lot of the rest of the bumbling incompetence that pervades your posts. If you'd had any brains, you'd have stopped right there, but of course, you were on a roll. I'm sorry if this is all too technical for you, you know, "Too many of the clever scientific words" and all that, but I have a strong hunch that there are people out there who can use the information.
> >> >> Here's the block diagram in text form: > > 1. What is new about it?
See, what I mean? You can't complain that I'm creating a new solution to a solved problem and then simultaneously complain that there's nothing new about it. But then, logic has never been your strong suit, has it?
> > 2. Why this is better then a classic approach? >
It works, and if you had ever read any of the literature on the subject, you'd have already grasped that it is one of the classic approaches.
>> 1. Re-tune t QPSK signal so that its frequency is an >> integral multiple of the baud rate. > > Having all frequencies coupled is inflexible and > inconvenient.
How? The inconvenient truth is that it is necessary. Why should I care if it inconveniences you?
> >> To do this, you need to have some estimate of frequency of >> the incoming signal. You don't necessarily know the exact >> frequency of the original signal, but you must estimate >> "close enough". Initialize a frequency accumulator to the >> re-tuned frequency. >> >> 2. Square the signal from (1). Bandpass filter around 2x >> the nominal (re-tuned) frequency. >> >> 3. Square the signal from (2). Bandpass filter around 4x >> the nominal (re-tuned) frequency. > > 4-th order loop classics.
Yep. That's how we make it work, but I thought that one of your complaints was that it's not a "classical" approach.
> >> 4. Multiply the signal from (3) by a sin and cos from a >> quadrature Numerically Controlled Oscillator (NCO) running >> at 4x the frequency indicated by the frequency accumulator. >> >> 5. Low-pass filter the I and Q arms to remove the 8x >> component. > > Trivial implementation of a bandpass in complex domain.
Yep. That's one way to make it work. Thanks for your "help".
> >> Note: At this point you are dealing with frequencies of at >> least 8x the re-tuned signal (which might be higher than the >> frequency of your original signal). Make sure your sample >> rate is adequate to handle these frequencies. > > Another stupid limitation.
Blame Nyquist. I didn't make the rules, but I do have brains enough to know which rules I have to live by, and point them out as pitfalls for the unwary.
> >> 6. Use the first difference of atan2(Q,I) to estimate the >> rate-of-change of phase angle between I and Q. Unwrap this >> result so it stays between -Pi and +Pi. Using this >> technique makes your PLL's loop gain less vulnerable to >> changes in signal level. > > And less noise resistant, too.
Oh, really? Obviously you're not familiar with the literature on the subject.
> >> 7. Filter the phase rate-of-change, multiply by a gain >> constant and subtract it from the frequency accumulator. >> (This is the same frequency accumulator that is multiplied >> by 4 and used as the control frequency of the NCO in step >> (4). > > This could be done much simpler.
Yep, probably so. But my method works. (For another method that would probably work, see Rick Lyons book. I won't tell you which one, or where, because you could obviously stand to read the whole thing.)
> >> At this point, if you've got all the filters right and the >> gain right, you will have constructed a PLL that will >> lock-up fairly quickly at a frequency of 4x the re-tuned >> frequency and it will follow changes in the carrier >> frequency of the re-tuned signal. > > Not any different from the 4-th order Costas Loop.
A lot different, especially because mine works. This remark suggests that you don't even know what a Costas loop is.
> >> The double squaring will have wiped out most of the effect >> of modulation on the frequency estimation. > > Classics. So what is new?
I'm beginning to see a pattern in your posts: there is a strong demonstration of the fact that those who can, do, and those who can't, crap on those who do. In case you've any doubts, you're one of those who can't, and you've got crap all over yourself.
> >> 8. Apply the frequency from the frequency accumulator in >> (7) directly to another quadrature NCO. It is this NCO that >> produces the reconstructed carrier. > > So?
So if you try demodding the signal with any other carrier frequency, the constellation will spin like a top.
> >> 9. Multiply the re-tuned signal from (1) by the sin and cos >> from the NCO in (8). > > So?
So it's called a product mixer, a very useful tool for getting at phase.
> >> 10. Low-pass filter the I and Q arms from (9) to eliminate >> the 2x frequency. > > So? > >> 11. Look at the signs of the signal on the I and Q arms in >> (10) to decide which quadrant the signal is in. You have to >> invent the necessary logic to synchronize, decimate, and >> recover the demodulated dibits. Hint: it helps if you >> sampled the incoming signal at a rate that was an integral >> multiple of the baud rate (in addition to being at least 16x >> the re-tuned frequency). > > What is the point of this very trivial exersize? > > > Vladimir Vassilevsky > DSP and Mixed Signal Design Consultant > http://www.abvolt.com
At this point, you've made it very clear that you haven't the background or education to benefit from any information I can offer, and I don't feel the need to waste any more time with you. I do hope that before contracting for your "Consulting Services", your potential clients stumble upon some of your posts here. It will save them a lot of time and money.

John E. Hadstate wrote:

>>> After extensive tests, I've hit upon one robust, sure-fire system for >>> demodulating long-duration QPSK. (This system is not especially >>> useful for signals that occur in short bursts.) >> >> >> Why reinventing a wheel? > > Your wheel doesn't work very well.
Could be, however my customers have the different opinion.
>> Demodulation of the long duration QPSK without noise, fading and >> frequency wander is a piece of cake task, and there is 10000 solutions >> for that. > > Yes, but 9,998 of them don't work at all and the other two didn't work > well enough to use in my application. In fact, mine doesn't work well > enough to use in my application.
May be it is because you just couldn't make the simple things to work?
>>> In my implementation, all filters were two-pole IIR filters. The >>> low-pass filters were designed by applying the BLT to Butterworth >>> pole placements from the analog domain. >> >> >> Minor technical detail. Why does it matter? > > It matters a great deal to anyone who is trying to design and/or > implement a highly responsive feedback loop, but then you're not > competent in that area, are you?
:)))))) My dear friend is mixing the fundamental concept and the minor details of the implementation. A very typical mistake of a rookie.
>>> The band-pass filters were designed with complex-conjugate poles >>> just inside the unit circle and on the radial lines corresponding to >>> the desired center frequency. All of the critical frequencies were >>> either a multiple or a fraction of the baud rate of the dibits. >> >> >> Too many of the clever scientific words. Understood nothing. > > > > That says it all, and explains a lot of the rest of the bumbling > incompetence that pervades your posts.
:))))))) Using the smart words makes you look important in your own eyes, isn't it?
> If you'd had any brains, you'd > have stopped right there, but of course, you were on a roll. I'm sorry > if this is all too technical for you, you know, "Too many of the clever > scientific words" and all that, but I have a strong hunch that there are > people out there who can use the information.
:)))))) Do you really think anybody cares about your naive ideas?
>>> Here's the block diagram in text form: >> >> 1. What is new about it? > > See, what I mean? You can't complain that I'm creating a new solution > to a solved problem and then simultaneously complain that there's > nothing new about it. But then, logic has never been your strong suit, > has it?
You have repeated the known trivial solution in the very awkward form, that's about it.
>> 2. Why this is better then a classic approach? >> > > > It works, and if you had ever read any of the literature on the subject, > you'd have already grasped that it is one of the classic approaches. > > >>> 1. Re-tune t QPSK signal so that its frequency is an integral >>> multiple of the baud rate. >> >> >> Having all frequencies coupled is inflexible and inconvenient. > > > How? The inconvenient truth is that it is necessary. Why should I care > if it inconveniences you?
:))))) I feel envious: my dear friend have so many new things to learn.
>>> To do this, you need to have some estimate of frequency of the >>> incoming signal. You don't necessarily know the exact frequency of >>> the original signal, but you must estimate "close enough". >>> Initialize a frequency accumulator to the re-tuned frequency. >>> >>> 2. Square the signal from (1). Bandpass filter around 2x the >>> nominal (re-tuned) frequency. >>> >>> 3. Square the signal from (2). Bandpass filter around 4x the >>> nominal (re-tuned) frequency. >> >> >> 4-th order loop classics. > > > > Yep. That's how we make it work, but I thought that one of your > complaints was that it's not a "classical" approach. > > >> >>> 4. Multiply the signal from (3) by a sin and cos from a quadrature >>> Numerically Controlled Oscillator (NCO) running at 4x the frequency >>> indicated by the frequency accumulator. >>> >>> 5. Low-pass filter the I and Q arms to remove the 8x component. >> >> >> Trivial implementation of a bandpass in complex domain. > > > > Yep. That's one way to make it work. Thanks for your "help".
Always welcome. Regular customers have the discount rate.
>>> Note: At this point you are dealing with frequencies of at least 8x >>> the re-tuned signal (which might be higher than the frequency of your >>> original signal). Make sure your sample rate is adequate to handle >>> these frequencies. >> >> Another stupid limitation. > > Blame Nyquist. I didn't make the rules, but I do have brains enough to > know which rules I have to live by, and point them out as pitfalls for > the unwary.
:))))) Oh, my naive dear friend. You have a lot to discover.
>>> 6. Use the first difference of atan2(Q,I) to estimate the >>> rate-of-change of phase angle between I and Q. Unwrap this result so >>> it stays between -Pi and +Pi. Using this technique makes your PLL's >>> loop gain less vulnerable to changes in signal level. >> >> >> And less noise resistant, too. > > > > Oh, really? Obviously you're not familiar with the literature on the > subject.
How could I. I am a writer, not a reader.
>>> 7. Filter the phase rate-of-change, multiply by a gain constant and >>> subtract it from the frequency accumulator. (This is the same >>> frequency accumulator that is multiplied by 4 and used as the control >>> frequency of the NCO in step (4). >> >> >> This could be done much simpler. > > Yep, probably so. But my method works. (For another method that would > probably work, see Rick Lyons book. I won't tell you which one, or > where, because you could obviously stand to read the whole thing.)
Do you feel enough of dignity by referring to the basic ABC book?
>>> At this point, if you've got all the filters right and the gain >>> right, you will have constructed a PLL that will lock-up fairly >>> quickly at a frequency of 4x the re-tuned frequency and it will >>> follow changes in the carrier frequency of the re-tuned signal. >> >> >> Not any different from the 4-th order Costas Loop. > > > > A lot different, especially because mine works. This remark suggests > that you don't even know what a Costas loop is.
Oh, sure, please, enlight me.
>>> The double squaring will have wiped out most of the effect of >>> modulation on the frequency estimation. >> >> >> Classics. So what is new? > > I'm beginning to see a pattern in your posts: there is a strong > demonstration of the fact that those who can, do, and those who can't, > crap on those who do. In case you've any doubts, you're one of those > who can't, and you've got crap all over yourself.
I have a suspicion (well, more then suspicion) that you are the wheenie leftist. The tremendous sense of self importance and the proclamation of the truisms as if it is a great prophesy - this makes you a perfect target for the mockery.
> At this point, you've made it very clear that you haven't the background > or education to benefit from any information I can offer, and I don't > feel the need to waste any more time with you.
:))))) Please dry the snivels out or go sob to some other place.
> I do hope that before contracting for your "Consulting Services", your > potential clients stumble upon some of your posts here. It will save > them a lot of time and money.
Well. I don't have a need to prove anything. Seems like you do. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
On Mon, 2 Jun 2008 05:37:19 -0400, "John E. Hadstate"
<jh113355@hotmail.com> wrote:

> >"Vladimir Vassilevsky" <antispam_bogus@hotmail.com> wrote in >message news:Dvy0k.2088$ZE5.1498@nlpi061.nbdc.sbc.com... >> >> >> John E. Hadstate wrote: >> >> >>> After extensive tests, I've hit upon one robust, sure-fire >>> system for demodulating long-duration QPSK. (This system is >>> not especially useful for signals that occur in short >>> bursts.) >> >> Why reinventing a wheel? > > >Your wheel doesn't work very well. > > >> >> Demodulation of the long duration QPSK without noise, fading >> and frequency wander is a piece of cake task, and there is >> 10000 solutions for that. > > >Yes, but 9,998 of them don't work at all and the other two >didn't work well enough to use in my application. In fact, >mine doesn't work well enough to use in my application.
Eh? Demodulation of continuous PSK or QAM signals is old hat. People have been building systems for more than a decade that have implementation loss MUCH less than a dB, and I've personally tested systems that had about 0.3dB measured implementation loss. I think that's pretty much at theoretical limits, and that was using just the usual PLLs with 2nd order loop filters, nothing special.
>>> As always with this type of system, you will probably need >>> to re-map your recovered dibits based on some knowledge of >>> the signal's contents and internal structure. >>> >>> In my implementation, all filters were two-pole IIR filters. >>> The low-pass filters were designed by applying the BLT to >>> Butterworth pole placements from the analog domain. >> >> Minor technical detail. Why does it matter? > >It matters a great deal to anyone who is trying to design >and/or implement a highly responsive feedback loop, but then >you're not competent in that area, are you?
Just judging from his posts on this topic, it appears to me that Vladimir is quite competent in this area. Abrasive sometimes, well, usually, but definitely competent. ;)
>>> The band-pass filters were designed with complex-conjugate >>> poles just inside the unit circle and on the radial lines >>> corresponding to the desired center frequency. All of the >>> critical frequencies were either a multiple or a fraction of >>> the baud rate of the dibits. >> >> Too many of the clever scientific words. Understood nothing. > > >That says it all, and explains a lot of the rest of the >bumbling incompetence that pervades your posts. If you'd had >any brains, you'd have stopped right there, but of course, you >were on a roll. I'm sorry if this is all too technical for >you, you know, "Too many of the clever scientific words" and >all that, but I have a strong hunch that there are people out >there who can use the information. >>> >>> Here's the block diagram in text form: >> >> 1. What is new about it? > > >See, what I mean? You can't complain that I'm creating a new >solution to a solved problem and then simultaneously complain >that there's nothing new about it. But then, logic has never >been your strong suit, has it?
>> >> 2. Why this is better then a classic approach? > >It works, and if you had ever read any of the literature on the >subject, you'd have already grasped that it is one of the >classic approaches.
I'd not label that as a "classic" approach. It's not new, as the 4th order nonlinearity (or 2nd for BPSK) to remove the modulation is well known. The downsides are also well known, which is why it's seldom used (but it is, sometimes, used).
>>> 1. Re-tune t QPSK signal so that its frequency is an >>> integral multiple of the baud rate. >> >> Having all frequencies coupled is inflexible and >> inconvenient. > > >How? The inconvenient truth is that it is necessary. Why >should I care if it inconveniences you?
Why is it necessary? Have you mentioned yet why a more typical architecture with a baseband mix and a 2nd order PLL isn't sufficient for your application? I don't recall ever seeing a case where that basic architecture didn't work, even for highly mobile systems. Sometimes additional tricks are needed, but generally not a complete change of architecture like you're suggesting.
>>> To do this, you need to have some estimate of frequency of >>> the incoming signal. You don't necessarily know the exact >>> frequency of the original signal, but you must estimate >>> "close enough". Initialize a frequency accumulator to the >>> re-tuned frequency. >>> >>> 2. Square the signal from (1). Bandpass filter around 2x >>> the nominal (re-tuned) frequency. >>> >>> 3. Square the signal from (2). Bandpass filter around 4x >>> the nominal (re-tuned) frequency. >> >> 4-th order loop classics. > > >Yep. That's how we make it work, but I thought that one of >your complaints was that it's not a "classical" approach.
>>> 4. Multiply the signal from (3) by a sin and cos from a >>> quadrature Numerically Controlled Oscillator (NCO) running >>> at 4x the frequency indicated by the frequency accumulator. >>> >>> 5. Low-pass filter the I and Q arms to remove the 8x >>> component. >> >> Trivial implementation of a bandpass in complex domain. > > >Yep. That's one way to make it work. Thanks for your "help". > > >> >>> Note: At this point you are dealing with frequencies of at >>> least 8x the re-tuned signal (which might be higher than the >>> frequency of your original signal). Make sure your sample >>> rate is adequate to handle these frequencies. >> >> Another stupid limitation. > > >Blame Nyquist. I didn't make the rules, but I do have brains >enough to know which rules I have to live by, and point them >out as pitfalls for the unwary.
I think the issue was the necessity to increase the sample rate so much. Often costs are driven, or at least significantly impacted, by the highest required clock frequency, so keeping that minimized is usually a worthwhile endeavor. It seems like you're increasing the max rate without a known benefit to doing so.
>>> 6. Use the first difference of atan2(Q,I) to estimate the >>> rate-of-change of phase angle between I and Q. Unwrap this >>> result so it stays between -Pi and +Pi. Using this >>> technique makes your PLL's loop gain less vulnerable to >>> changes in signal level. >> >> And less noise resistant, too. > > >Oh, really? Obviously you're not familiar with the literature >on the subject.
Are you suggesting the 4th order nonlinearity is not less resistant to noise or distortion or multipath, etc.? Usually that's the achilles heel of such an approach, so if you have evidence otherwise it'd be very interesting to see. Performing the phase unwrap as you just described when the reference is noisy (due to the nonlinearities) would be expected to degrade in noise or distortion.
>>> 7. Filter the phase rate-of-change, multiply by a gain >>> constant and subtract it from the frequency accumulator. >>> (This is the same frequency accumulator that is multiplied >>> by 4 and used as the control frequency of the NCO in step >>> (4). >> >> This could be done much simpler. > > >Yep, probably so. But my method works. (For another method >that would probably work, see Rick Lyons book. I won't tell >you which one, or where, because you could obviously stand to >read the whole thing.)
I wouldn't doubt that it works with a clean signal, but I'm skeptical of the performance in noise or distortion. From that standpoint whether it "works" may be open to interpretation. Other stuff snipped. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.ericjacobsen.org Blog: http://www.dsprelated.com/blogs-1/hf/Eric_Jacobsen.php
On Mon, 2 Jun 2008 05:37:19 -0400, "John E. Hadstate"
<jh113355@hotmail.com> wrote:

> >"Vladimir Vassilevsky" <antispam_bogus@hotmail.com> wrote in >message news:Dvy0k.2088$ZE5.1498@nlpi061.nbdc.sbc.com... >> >> >> John E. Hadstate wrote: >> >> >>> After extensive tests, I've hit upon one robust, sure-fire >>> system for demodulating long-duration QPSK. (This system is >>> not especially useful for signals that occur in short >>> bursts.) >> >> Why reinventing a wheel? > > >Your wheel doesn't work very well. > > >> >> Demodulation of the long duration QPSK without noise, fading >> and frequency wander is a piece of cake task, and there is >> 10000 solutions for that. > > >Yes, but 9,998 of them don't work at all and the other two >didn't work well enough to use in my application. In fact, >mine doesn't work well enough to use in my application.
Eh? Demodulation of continuous PSK or QAM signals is old hat. People have been building systems for more than a decade that have implementation loss MUCH less than a dB, and I've personally tested systems that had about 0.3dB measured implementation loss. I think that's pretty much at theoretical limits, and that was using just the usual PLLs with 2nd order loop filters, nothing special.
>>> As always with this type of system, you will probably need >>> to re-map your recovered dibits based on some knowledge of >>> the signal's contents and internal structure. >>> >>> In my implementation, all filters were two-pole IIR filters. >>> The low-pass filters were designed by applying the BLT to >>> Butterworth pole placements from the analog domain. >> >> Minor technical detail. Why does it matter? > >It matters a great deal to anyone who is trying to design >and/or implement a highly responsive feedback loop, but then >you're not competent in that area, are you?
Just judging from his posts on this topic, it appears to me that Vladimir is quite competent in this area. Abrasive sometimes, well, usually, but definitely competent. ;)
>>> The band-pass filters were designed with complex-conjugate >>> poles just inside the unit circle and on the radial lines >>> corresponding to the desired center frequency. All of the >>> critical frequencies were either a multiple or a fraction of >>> the baud rate of the dibits. >> >> Too many of the clever scientific words. Understood nothing. > > >That says it all, and explains a lot of the rest of the >bumbling incompetence that pervades your posts. If you'd had >any brains, you'd have stopped right there, but of course, you >were on a roll. I'm sorry if this is all too technical for >you, you know, "Too many of the clever scientific words" and >all that, but I have a strong hunch that there are people out >there who can use the information. >>> >>> Here's the block diagram in text form: >> >> 1. What is new about it? > > >See, what I mean? You can't complain that I'm creating a new >solution to a solved problem and then simultaneously complain >that there's nothing new about it. But then, logic has never >been your strong suit, has it?
>> >> 2. Why this is better then a classic approach? > >It works, and if you had ever read any of the literature on the >subject, you'd have already grasped that it is one of the >classic approaches.
I'd not label that as a "classic" approach. It's not new, as the 4th order nonlinearity (or 2nd for BPSK) to remove the modulation is well known. The downsides are also well known, which is why it's seldom used (but it is, sometimes, used).
>>> 1. Re-tune t QPSK signal so that its frequency is an >>> integral multiple of the baud rate. >> >> Having all frequencies coupled is inflexible and >> inconvenient. > > >How? The inconvenient truth is that it is necessary. Why >should I care if it inconveniences you?
Why is it necessary? Have you mentioned yet why a more typical architecture with a baseband mix and a 2nd order PLL isn't sufficient for your application? I don't recall ever seeing a case where that basic architecture didn't work, even for highly mobile systems. Sometimes additional tricks are needed, but generally not a complete change of architecture like you're suggesting.
>>> To do this, you need to have some estimate of frequency of >>> the incoming signal. You don't necessarily know the exact >>> frequency of the original signal, but you must estimate >>> "close enough". Initialize a frequency accumulator to the >>> re-tuned frequency. >>> >>> 2. Square the signal from (1). Bandpass filter around 2x >>> the nominal (re-tuned) frequency. >>> >>> 3. Square the signal from (2). Bandpass filter around 4x >>> the nominal (re-tuned) frequency. >> >> 4-th order loop classics. > > >Yep. That's how we make it work, but I thought that one of >your complaints was that it's not a "classical" approach.
>>> 4. Multiply the signal from (3) by a sin and cos from a >>> quadrature Numerically Controlled Oscillator (NCO) running >>> at 4x the frequency indicated by the frequency accumulator. >>> >>> 5. Low-pass filter the I and Q arms to remove the 8x >>> component. >> >> Trivial implementation of a bandpass in complex domain. > > >Yep. That's one way to make it work. Thanks for your "help". > > >> >>> Note: At this point you are dealing with frequencies of at >>> least 8x the re-tuned signal (which might be higher than the >>> frequency of your original signal). Make sure your sample >>> rate is adequate to handle these frequencies. >> >> Another stupid limitation. > > >Blame Nyquist. I didn't make the rules, but I do have brains >enough to know which rules I have to live by, and point them >out as pitfalls for the unwary.
I think the issue was the necessity to increase the sample rate so much. Often costs are driven, or at least significantly impacted, by the highest required clock frequency, so keeping that minimized is usually a worthwhile endeavor. It seems like you're increasing the max rate without a known benefit to doing so.
>>> 6. Use the first difference of atan2(Q,I) to estimate the >>> rate-of-change of phase angle between I and Q. Unwrap this >>> result so it stays between -Pi and +Pi. Using this >>> technique makes your PLL's loop gain less vulnerable to >>> changes in signal level. >> >> And less noise resistant, too. > > >Oh, really? Obviously you're not familiar with the literature >on the subject.
Are you suggesting the 4th order nonlinearity is not less resistant to noise or distortion or multipath, etc.? Usually that's the achilles heel of such an approach, so if you have evidence otherwise it'd be very interesting to see. Performing the phase unwrap as you just described when the reference is noisy (due to the nonlinearities) would be expected to degrade in noise or distortion.
>>> 7. Filter the phase rate-of-change, multiply by a gain >>> constant and subtract it from the frequency accumulator. >>> (This is the same frequency accumulator that is multiplied >>> by 4 and used as the control frequency of the NCO in step >>> (4). >> >> This could be done much simpler. > > >Yep, probably so. But my method works. (For another method >that would probably work, see Rick Lyons book. I won't tell >you which one, or where, because you could obviously stand to >read the whole thing.)
I wouldn't doubt that it works with a clean signal, but I'm skeptical of the performance in noise or distortion. From that standpoint whether it "works" may be open to interpretation. Other stuff snipped. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.ericjacobsen.org Blog: http://www.dsprelated.com/blogs-1/hf/Eric_Jacobsen.php
On Mon, 2 Jun 2008 05:37:19 -0400, "John E. Hadstate"
<jh113355@hotmail.com> wrote:

> >"Vladimir Vassilevsky" <antispam_bogus@hotmail.com> wrote in >message news:Dvy0k.2088$ZE5.1498@nlpi061.nbdc.sbc.com... >> >> >> John E. Hadstate wrote: >> >> >>> After extensive tests, I've hit upon one robust, sure-fire >>> system for demodulating long-duration QPSK. (This system is >>> not especially useful for signals that occur in short >>> bursts.) >> >> Why reinventing a wheel? > > >Your wheel doesn't work very well. > > >> >> Demodulation of the long duration QPSK without noise, fading >> and frequency wander is a piece of cake task, and there is >> 10000 solutions for that. > > >Yes, but 9,998 of them don't work at all and the other two >didn't work well enough to use in my application. In fact, >mine doesn't work well enough to use in my application.
Eh? Demodulation of continuous PSK or QAM signals is old hat. People have been building systems for more than a decade that have implementation loss MUCH less than a dB, and I've personally tested systems that had about 0.3dB measured implementation loss. I think that's pretty much at theoretical limits, and that was using just the usual PLLs with 2nd order loop filters, nothing special.
>>> As always with this type of system, you will probably need >>> to re-map your recovered dibits based on some knowledge of >>> the signal's contents and internal structure. >>> >>> In my implementation, all filters were two-pole IIR filters. >>> The low-pass filters were designed by applying the BLT to >>> Butterworth pole placements from the analog domain. >> >> Minor technical detail. Why does it matter? > >It matters a great deal to anyone who is trying to design >and/or implement a highly responsive feedback loop, but then >you're not competent in that area, are you?
Just judging from his posts on this topic, it appears to me that Vladimir is quite competent in this area. Abrasive sometimes, well, usually, but definitely competent. ;)
>>> The band-pass filters were designed with complex-conjugate >>> poles just inside the unit circle and on the radial lines >>> corresponding to the desired center frequency. All of the >>> critical frequencies were either a multiple or a fraction of >>> the baud rate of the dibits. >> >> Too many of the clever scientific words. Understood nothing. > > >That says it all, and explains a lot of the rest of the >bumbling incompetence that pervades your posts. If you'd had >any brains, you'd have stopped right there, but of course, you >were on a roll. I'm sorry if this is all too technical for >you, you know, "Too many of the clever scientific words" and >all that, but I have a strong hunch that there are people out >there who can use the information. >>> >>> Here's the block diagram in text form: >> >> 1. What is new about it? > > >See, what I mean? You can't complain that I'm creating a new >solution to a solved problem and then simultaneously complain >that there's nothing new about it. But then, logic has never >been your strong suit, has it?
>> >> 2. Why this is better then a classic approach? > >It works, and if you had ever read any of the literature on the >subject, you'd have already grasped that it is one of the >classic approaches.
I'd not label that as a "classic" approach. It's not new, as the 4th order nonlinearity (or 2nd for BPSK) to remove the modulation is well known. The downsides are also well known, which is why it's seldom used (but it is, sometimes, used).
>>> 1. Re-tune t QPSK signal so that its frequency is an >>> integral multiple of the baud rate. >> >> Having all frequencies coupled is inflexible and >> inconvenient. > > >How? The inconvenient truth is that it is necessary. Why >should I care if it inconveniences you?
Why is it necessary? Have you mentioned yet why a more typical architecture with a baseband mix and a 2nd order PLL isn't sufficient for your application? I don't recall ever seeing a case where that basic architecture didn't work, even for highly mobile systems. Sometimes additional tricks are needed, but generally not a complete change of architecture like you're suggesting.
>>> To do this, you need to have some estimate of frequency of >>> the incoming signal. You don't necessarily know the exact >>> frequency of the original signal, but you must estimate >>> "close enough". Initialize a frequency accumulator to the >>> re-tuned frequency. >>> >>> 2. Square the signal from (1). Bandpass filter around 2x >>> the nominal (re-tuned) frequency. >>> >>> 3. Square the signal from (2). Bandpass filter around 4x >>> the nominal (re-tuned) frequency. >> >> 4-th order loop classics. > > >Yep. That's how we make it work, but I thought that one of >your complaints was that it's not a "classical" approach.
>>> 4. Multiply the signal from (3) by a sin and cos from a >>> quadrature Numerically Controlled Oscillator (NCO) running >>> at 4x the frequency indicated by the frequency accumulator. >>> >>> 5. Low-pass filter the I and Q arms to remove the 8x >>> component. >> >> Trivial implementation of a bandpass in complex domain. > > >Yep. That's one way to make it work. Thanks for your "help". > > >> >>> Note: At this point you are dealing with frequencies of at >>> least 8x the re-tuned signal (which might be higher than the >>> frequency of your original signal). Make sure your sample >>> rate is adequate to handle these frequencies. >> >> Another stupid limitation. > > >Blame Nyquist. I didn't make the rules, but I do have brains >enough to know which rules I have to live by, and point them >out as pitfalls for the unwary.
I think the issue was the necessity to increase the sample rate so much. Often costs are driven, or at least significantly impacted, by the highest required clock frequency, so keeping that minimized is usually a worthwhile endeavor. It seems like you're increasing the max rate without a known benefit to doing so.
>>> 6. Use the first difference of atan2(Q,I) to estimate the >>> rate-of-change of phase angle between I and Q. Unwrap this >>> result so it stays between -Pi and +Pi. Using this >>> technique makes your PLL's loop gain less vulnerable to >>> changes in signal level. >> >> And less noise resistant, too. > > >Oh, really? Obviously you're not familiar with the literature >on the subject.
Are you suggesting the 4th order nonlinearity is not less resistant to noise or distortion or multipath, etc.? Usually that's the achilles heel of such an approach, so if you have evidence otherwise it'd be very interesting to see. Performing the phase unwrap as you just described when the reference is noisy (due to the nonlinearities) would be expected to degrade in noise or distortion.
>>> 7. Filter the phase rate-of-change, multiply by a gain >>> constant and subtract it from the frequency accumulator. >>> (This is the same frequency accumulator that is multiplied >>> by 4 and used as the control frequency of the NCO in step >>> (4). >> >> This could be done much simpler. > > >Yep, probably so. But my method works. (For another method >that would probably work, see Rick Lyons book. I won't tell >you which one, or where, because you could obviously stand to >read the whole thing.)
I wouldn't doubt that it works with a clean signal, but I'm skeptical of the performance in noise or distortion. From that standpoint whether it "works" may be open to interpretation. Other stuff snipped. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.ericjacobsen.org Blog: http://www.dsprelated.com/blogs-1/hf/Eric_Jacobsen.php
Eric Jacobsen wrote:
> Are you suggesting the 4th order nonlinearity is not less resistant to > noise or distortion or multipath, etc.? Usually that's the achilles > heel of such an approach, so if you have evidence otherwise it'd be > very interesting to see. Performing the phase unwrap as you just > described when the reference is noisy (due to the nonlinearities) > would be expected to degrade in noise or distortion.
I'd make a more general point. Squaring throws away information. Its a non-reversible operation, so it has to throw information every time it is used. Are you really really sure that lost information is of no consequence downstream in the processing? If not, it might not be a good idea to be so cavalier with it. Steve

Steve Underwood wrote:

> Eric Jacobsen wrote: > >> Are you suggesting the 4th order nonlinearity is not less resistant to >> noise or distortion or multipath, etc.? Usually that's the achilles >> heel of such an approach, so if you have evidence otherwise it'd be >> very interesting to see. Performing the phase unwrap as you just >> described when the reference is noisy (due to the nonlinearities) >> would be expected to degrade in noise or distortion. >
Just recently I had to develop the algorithm to provide for the fast pull-in and the minimal noise bandwidth of the PLL. The difficult part was knowing when to switch between the tracking and the acquisition modes.
> I'd make a more general point. Squaring throws away information. Its a > non-reversible operation, so it has to throw information every time it > is used.
The ways to avoid the nonlinear operation are either maximum likelihood or decision directed. The ML is expensive, the decision directed can't compensate for the large offsets due to the aliasing of phase.
> Are you really really sure that lost information is of no > consequence downstream in the processing? If not, it might not be a good > idea to be so cavalier with it.
IMO for the practical BER values of less then 10% the losses of the classic Costas PLL can be made small compared to Eb/No. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
"Steve Underwood" <steveu@dis.org> wrote in message 
news:g221qr$773$1@nnews.pacific.net.hk...
> Eric Jacobsen wrote: >> Are you suggesting the 4th order nonlinearity is not less >> resistant to >> noise or distortion or multipath, etc.? Usually that's the >> achilles >> heel of such an approach, so if you have evidence otherwise >> it'd be >> very interesting to see. Performing the phase unwrap as >> you just >> described when the reference is noisy (due to the >> nonlinearities) >> would be expected to degrade in noise or distortion. > > > I'd make a more general point. Squaring throws away > information. Its a non-reversible operation, so it has to > throw information every time it is used. Are you really > really sure that lost information is of no consequence > downstream in the processing? If not, it might not be a good > idea to be so cavalier with it.
The information is only being thrown away in the part of the system where it interferes with the lock-up needed to regenerate the carrier. The incoming signal goes to two places: to the two squaring blocks and filters that lead to the product mixer for the 4x PLL, and to the 1x product mixer that eventually results in the demodulation of the dibits. And yes, I'm very sure that the lost information is not only not needed, it's not wanted. The end result of all this is that the 4x PLL has a much wider pull-in range in the presence of noise than does the Costas Loop, it locks up quicker (given the proper choice of time constants and gain) and it holds-in better. But don't take my word for it. Try it for yourself.
"Steve Underwood" <steveu@dis.org> wrote in message 
news:g221qr$773$1@nnews.pacific.net.hk...
> Eric Jacobsen wrote: >> Are you suggesting the 4th order nonlinearity is not less >> resistant to >> noise or distortion or multipath, etc.? Usually that's the >> achilles >> heel of such an approach, so if you have evidence otherwise >> it'd be >> very interesting to see. Performing the phase unwrap as >> you just >> described when the reference is noisy (due to the >> nonlinearities) >> would be expected to degrade in noise or distortion. > > > I'd make a more general point. Squaring throws away > information. Its a non-reversible operation, so it has to > throw information every time it is used. Are you really > really sure that lost information is of no consequence > downstream in the processing? If not, it might not be a good > idea to be so cavalier with it.
The information is only being thrown away in the part of the system where it interferes with the lock-up needed to regenerate the carrier. The incoming signal goes to two places: to the two squaring blocks and filters that lead to the product mixer for the 4x PLL, and to the 1x product mixer that eventually results in the demodulation of the dibits. And yes, I'm very sure that the lost information is not only not needed, it's not wanted. The end result of all this is that the 4x PLL has a much wider pull-in range in the presence of noise than does the Costas Loop, it locks up quicker (given the proper choice of time constants and gain) and it holds-in better. But don't take my word for it. Try it for yourself.
"Vladimir Vassilevsky" <antispam_bogus@hotmail.com> wrote in 
message news:Af01k.6369$Ri.5214@flpi146.ffdc.sbc.com...
> > > Steve Underwood wrote: > >> Eric Jacobsen wrote: >> >>> Are you suggesting the 4th order nonlinearity is not less >>> resistant to >>> noise or distortion or multipath, etc.? Usually that's >>> the achilles >>> heel of such an approach, so if you have evidence otherwise >>> it'd be >>> very interesting to see. Performing the phase unwrap as >>> you just >>> described when the reference is noisy (due to the >>> nonlinearities) >>> would be expected to degrade in noise or distortion. >> > > Just recently I had to develop the algorithm to provide for > the fast pull-in and the minimal noise bandwidth of the PLL. > The difficult part was knowing when to switch between the > tracking and the acquisition modes.
That's a fact. It's also why, in my particular application, even the proposed architecture isn't robust enough to make it out of the development process.