I am trying to Receive a QPSK signal and for Sampling I need to recover clock. Now QPSK Signal is generated at 2.4GBaud. It is than sampled at 80GHz.Than further it is downsampled to 10GS/s (Symbols per second). Note: This signal have only one polarization.

Now I have Inphase and Quadrature Phase component of the signal(10GS/s). This signal is ofcourse in time-domain. Now I want to window the whole signal (the entire length in time). So which window function is suitable ? Am I missing any details?

  • $\begingroup$ woah, that's fast! But I'm confused as why you'd want to window a time signal if you're not going to do any operation where windowing makes sense (e.g., a DFT)? $\endgroup$ Commented Apr 12, 2017 at 12:07

1 Answer 1


For purpose of recovering the clock, no window function is needed. Also to clarify, your signal is downsampled to 10GS/s which is samples per second, not "Symbols per second" as you specified the symbol rate to be 2.4 GBuad which is 2.4 G Symbols/second.

For QPSK clock recovery, I recommend considering the Gardner Loop in which case you would filter and downsample to 2 samples per symbol (4.8 GS/s). You can see the link below for more information on the Gardner Loop implementation and considerations. I have seen very efficient implementations for closing the timing loop using polyphase filters; let me know if you would like more information on that (and update your title to not mention windowing) and I can add that here.

You will likely also have a carrier offset that you will need to track and remove. The Gardner is fairly insensitive to carrier offset, so once timing is acquired you can downsample to one sample per symbol (at the best decision locations) and use those complex samples to determine the carrier offset and correct for that in a carrier tracking loop (such as a digital Costas Loop).

See: Gardner Timing Recovery for Repeated Sybmols

  • $\begingroup$ Dan, correct me if I'm wrong: Gardner requires the pulses to be non-overlapping, right? So, if the OP is using something like SRRC pulses, Gardner wouldn't apply. (This might be a moot point since I suspect this is an optical fiber application and they tend to use rectangular pulses, AFAIK). $\endgroup$
    – MBaz
    Commented Apr 12, 2017 at 14:12
  • $\begingroup$ Non overlapping as in Partial Response signaling? In full response signaling with overlap such as RRC I have used the Gardner but there is a lot of "pattern noise". I have seen the use of prefilters in the use of timing loops (can send you a good paper if you are interested), however this pattern noise was always manageable (below my SNR targets) in implementations I have done so did not need to go there. I believe I actually posted some results in one of my responses of the pattern noise with the Gardner in use with RRC symbols (and in fact performance is better prior to second RRC) $\endgroup$ Commented Apr 12, 2017 at 14:18
  • $\begingroup$ Dan, I meant non-overlapping as in rectangular or half-sine pulses, where each pulse has a duration equal to 1/(pulse rate), as opposed to RRC-type pulses which overlap in the time domain. I have implemented Gardner with half-sine pulses, but I've never tried it with RRC pulses -- please post the reference to paper when you have a second, and I'll re-read your previous related answers. $\endgroup$
    – MBaz
    Commented Apr 12, 2017 at 15:29
  • $\begingroup$ @MBaz see "Optimization of Symbol Timing Recovery for QAM Data Demodulators" by D'Andrea and Luise, IEEE Transactions on Communications, March 1996 $\endgroup$ Commented Apr 12, 2017 at 16:39
  • $\begingroup$ @MBaz I see now I referenced that paper with some more details on the synchronizer performance I characterized in this post specifically: dsp.stackexchange.com/questions/31517/… $\endgroup$ Commented Apr 12, 2017 at 16:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.