Contact US

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here




I need to develop a digital phaselock loop to track a very low SNR quadraphase signal.  The Esym/No is around 0.5 dB and there is a lot of doppler (1kHz/sec change for a 32 ksym/sec modulation rate).  I have seen smoothers and Kalman-type approaches and they are pretty complicated and I need to put several of these demods in my receiver to handle multiple received signals from different users.

I am about 1.5 dB below where a reqular Costas-type PI Loop fails, so I am sure I need to increase my loop SNR by using memory (like a smoother) but want a simple approach that will let me open up my loop bandwidth and still track well.

Any suggestions??


You have chosen a difficult problem.  You might even have to go to an extended Kalman filter.  But before you do that, you might try some tricks to improve the signal going into your smoother.  What is you phase detector?  You might try a quadrature detector, mixing against a cos and -sin term instead of with just a reference.  But it sounds like you essentially have tat if you mentioned a Costa's style loop.  The key is to get more performance out of your phase detector.  Possibly making a non linear selector.  Try 2, 3 or even more phase/frequency combinations as your reference signal.  You can run multiple PLL's, and choose the best one.  Or even better, choose the results of the best one to jump the poorer ones.  This contest method can triple your work, but it is a regular structure so it is not complicaed, and you will not have to do any Kalman tuning and limit control.  The Kalman limit control is always the tricky part.
Good Luck!
John Solar



Phase detector is just Err = Q*sgn(I) - I*sgn(Q) which is the maximum likelihood solution for QPSK. The fundamental problem is that you would like to average to get a lot of noise rejection into the loop.  The issue is  averaging implies delay, which is always bad in a feedback loop.  Smoothers tend to average the PLL output {NCO output to rotate the signal after the loop filter (which follows the phase detector which generates the error signal)}.  The ML solutions tend to try brute-force approaches {try every freq/phase combinations and use logic to select the "correct" one to use as the error signal into a loop designed to track particular Doppler characteristics (order of the response)}.  Using decoded data in our case has way to much delay to train the loop.

Turns out the extended kalman isn't that great.  Solved problem by recycling training symbols from a preamble by using a delay line to effectively recycle preamble data after the nondelayed data is used to estimate timing, phase,frequency to steer the loop in the right direction (no costas loss due to known data), and then since the phase and freq are very good at the start of the random data portion the loop can handle it.

The smoothers I discovered don't help with loss-of-lock problems, they just improve jitter and are actually applied in a savitsky-golay configuration to the NCO output controlling th phase rotator which is smoothed and then a secondary path derotates on the smoothed NCO output with appropriate delay to account for the smoother observation delay.  Raising the order of the loop from 2 to 3 also helps quite a bit under high Doppler rates.  

I find the Kalman type solutions will just converge to the best PLL loop filter coefficients--which are a function of SNR only.  The Kalman doesn't care about what the input signal looks like at all and in fact is not really adaptive at all (unless you adapt the P-matrix which has SNR info in it).  Kalman approaches seem to be good in these one dimensional signals only when they can be applied linearly (like for timing recovery) where there really is no nonlinearity and you don't need to do the extended variation.  

The smart move is to introduce Pilot symbols with a density that allows for traditional loop structures and doesn't waste too much BW/Energy by keeping the ratio of symbols dedicated to training small. (maybe by puncturing the coding to allow the punctured outputs to be dedicated to pilot symbols).

Can't use Cray's to demodulate signals yet!!



Good work.  The recycled preamble sound like the key to your innovation.  Averaging (of any sort, Kalman or otherwise) does not really help when you are below threshold (the point where the output SNR drops drastically with dropping input SNR).  The cycle slips averaged give bad data.  So finding a way to identify the cycle slips is the key.  In an FM demodulator (PLL etc), the literature warns against this.  Unfortunately, I have not seen many ways of actually doing much about it.  Keeping a pilot tone of some sort does address the problem.  Do you have control over the format?  If so, you have the keys to solving the problem.  A warning though.  The voice guys did not like the puncturing (flag stealing) in GSM.  If you can add the overhead and not actually steal, you might be better off.  If you have a final phase (not sine wave phase, but last step in the modulation process) of CDMA like chopping you could use that as your pilot.  The 3G/GSM world is doing that quite well.  But they have the best experts around the world thinking about all the details.

Good Luck!
Best Regards,
John Solar

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close