# Burst QPSK demodulator

I am working in burst QPSK demodulator. I just want to double check if what I am doing is right.

1. Large frequency feedforward recovery by FFT
2. Carrier recovery Costas with 4 samples/symbol
3. Timing recovery with interpolation and matched filter using feedback control

So 4 samples/symbol goes to interpolation filter and after matched filter 2 samples/symbol is used for Gardner timing 4 symbol recovery.

Will the steps I have followed work?

• your 3. step isn't that clear. Could you maybe add a block diagram? – Marcus Müller Dec 17 '19 at 19:41
• Output of carrier recovery will go to interpolation control. Then in goes to matched filter with 4 samples/symbol. Output 2 samples from matched will go to TED then it goes to loop filter. Then output of loopfiltrr will loop back to interpolation control at 1 sample/symbol. Nancy – nancy Dec 18 '19 at 0:29
• I don't see any problem with this but you can also do carrier recovery using your 1 sample/symbol just prior to decision using techniques I describe in this post dsp.stackexchange.com/questions/17297/… since the Gardner will do timing error detection with a relatively large carrier offset. I agree with Marcus that a block diagram would be helpful to get better feedback, and more clarity on what your concern is with your approach. – Dan Boschen Dec 18 '19 at 2:01
• I have uploaded the image please let.me know if it is right. S in the image stands for symbol rate. – nancy Dec 18 '19 at 9:12
• @nancy just seeing your updated drawing now. The Gardner TED works better before the matched filter since there will be less zero crossing jitter, so I would suggest moving the matched filter to after the timing recovery loop. Also the Gardner TED can work in the presence of large frequency offsets (up to +/-1/4 the symbol rate with no issue) so you can also do carrier recover after with loops that work on the 1 sample/symbol waveform thus reduced processing with better performance given the prior filtering. – Dan Boschen Sep 13 '20 at 23:19

They will work as you show but you can filter and decimate to 2 samples per symbol followed by resampler and TED if your carrier offset is reliably less than $$S/4$$ where S is the symbol rate (it will work with offset beyond that but with possibly unacceptable degradation) and after than matched filter at 2 samples per symbol with and you can use the pre-decision 1 sample per symbol samples for carrier recovery. The performance of the TED is better prior to matched filtering typically (the zero crossing jitter is less) unless you do additional prefiltering for timing recovery. The TED works well with large carrier offsets hence you need not do carrier recover first. Another option if your carrier loop bandwidth allows the additional loop delay is to do the complex rotator to correct for carrier offset before the interpolator while still doing the phase measurement on the final pre-decision samples so the TED operates with 0 carrier offset, but I would only consider this when dealing with much larger carrier offsets.
• I would not recommend nested loops unless the carrier offset could be greater than $S/4$ as the Gardner will work fine with small offsets. As I wrote the performance of TED is better prior to the matched filter in most cases but you can confirm by evaluating the eye diagram and in particular the zero crossing jitter in your waveform at the different alternative locations where you want to consider using it. – Dan Boschen Dec 18 '19 at 15:39