I am working on satellite receiver burst mode I am trying to build receiver. My data rate is typically 10kpbs. As the data rate is low and carrier frequency offset may also be around 10kbps

so i have implemented reciever please let me know the blocks mentioned below are ok

  1. coarse frequency recovery
  2. carrier recovery
  3. timing recovery
  4. matched filter

i have seen many designs where timing is done before carrier recovery.

what is the advantage of doing carrier before timing? is it because offset is more then do carrier recovery first otherwise vice versa. Will the nested loops help but quantitatively how much symbol rate to freq offset can be recovered like this. Once recovered the burst length can be as long as possible.

  • $\begingroup$ Welcome! Hint: please use the built-in spelling checker of the browser you're using – it makes things easier to read :) $\endgroup$ Dec 19, 2019 at 15:35

1 Answer 1


This is very implementation specific and there is not one rule that one should be done before the other, and joint estimation another option where there isn't a clear order of events.

A consideration is how well your carrier tracking approach works under timing offsets, and similarly how well your code tracking approach works under carrier offsets. I recommend analyzing/simulating this specifically for your implementation since it is very application specific and you didn't provide any info about your waveform or algorithms for timing and carrier recovery. For example, the Gardner Timing Error Detector works very well with relatively large carrier offsets but has higher noise than the Mueller and Mueller detector (M&M), but the M&M being decision based does not perform well with relatively much smaller carrier offsets.

One suggested approach to quantifying this for your specific implementation/application: determine your pre-decision signal SNR with fixed SNR received signal input as you vary both carrier offset and timing offset. Also you can look at the noise of your symbol timing and carrier error estimators as another metric: determine what the noise is on the symbol timing error as your carrier offset is varied (When you are close to your track point for tracking considerations, and when you are further away for acquisition considerations). Similarly, determine what the noise is on the carrier error as your timing offset is varied. If you do this work, please do share it with us here.

  • $\begingroup$ Thanks Dan for your detailed explanation. I will do analysis and let you know. But to proceed little more clarifications. 1. Predecision snr u mean check snr after matched filter with various options 2. I have read if my carrier offest is < 20 % of symbol rate then i can do timing first . So if my offset is > 20 % < 100% is symbol rate then do carrier recovery first?? .if offset is more than symbol rate use coarse freq.first then consider like it is < 20% 3. Burst length should not have any effect in the sense that i am continuously tracking carrier . Thanks Mark $\endgroup$
    – mark
    Dec 19, 2019 at 20:27
  • $\begingroup$ 1. Yes 2. This really depends on which algorithm you are using for timing. It it is the Gardner TED then I agree with your 20% but your simulation/analysis will illuminate that further. If your offset is greater consider a course frequency correction first. 3. Agreed. $\endgroup$ Dec 19, 2019 at 20:49
  • $\begingroup$ What you will see clearly is a dependence in estimation noise (phase and timing) on the parameters you vary but be careful to consider how that noise is relative to your performance requirements (it may not be enough to degrade your final BER requirement). That is why I suggest looking at both (pre-decision SNR) and cattier/timing error SNR to best understand what is occurring and then compare that to what is required to meet your BER requirement. $\endgroup$ Dec 19, 2019 at 20:53
  • $\begingroup$ I am using gardner TED. So u mean to say for all cases with offset > 20% use coarse correction, timing then carrier recovery. So is not recommended to do carrier recovery using costas before timing? Does it help me out in anyway using higher samples/symbol $\endgroup$
    – mark
    Dec 19, 2019 at 20:55
  • $\begingroup$ I wouldn't go so far to say not recommended and it gets deeper into your implementation than I would be able to answer here -- for example if you use the pre-sample decisions (at one sample / symbol) for carrier recovery, those samples have the least phase jitter when timing is corrected. That's way I suggested you do the analysis / simulation and see for yourself otherwise your likely to get bad advice since it is implementation specific. $\endgroup$ Dec 19, 2019 at 21:23

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.