My goal is to estimate the CFO and timing offset in GMSK modulated signal. I synthesize samples in Matlab and my goal is to add CFO and time offset to learn how to deal with mentioned distortions and successfully recover transmitted signal. I would like to use non-data-aided methods and rely only on the signal structure. To be honest, I read a lot and I have few methods in my mind, like: M&M (but I guess its for timing recovery), squaring method or FFT method (to calculate CFO), PLL/Costas Loop (for fine CFO estimation). I don't know if they really fits for GMSK so my question is, how to tackle this problem? What should be done first in the recovery algorithm to stay in the right order? My goal is to deep into signal recovery and to learn different approaches.
Thanks in advance

  • $\begingroup$ Can you clarify if this is partial response signaling? Meaning do your symbols completely rotate for each bit within one symbol duration or are the symbols overlapping with intentional inter-symbol interference? $\endgroup$ Mar 3, 2021 at 13:46
  • $\begingroup$ I am basing on GSM standard where (as far as I know) ISI are introduced by the Gaussian filter. So I guess that yes, it is partial response signaling. Sorry but I don't know if I grasped the question correctly. $\endgroup$ Mar 3, 2021 at 14:16
  • $\begingroup$ Yes GSM uses partial response signaling so the phase constellation needs to be “disentangled” where the Viterbi algorithm can be utilized. For your learning exercise you may want to start with a full response signaling case and then add this extra complexity. Also for the partial response case look into the Laurent Decomposition which can simplify the number of trellises needed in the Viterbi algorithm. $\endgroup$ Mar 3, 2021 at 14:24
  • $\begingroup$ Full response signaling case occurs when e.g. pulse shaping filter has length equal to samples per symbol factor? Am I right? $\endgroup$ Mar 3, 2021 at 21:29
  • $\begingroup$ Yes correct, current symbols don’t interfere with subsequent ones $\endgroup$ Mar 3, 2021 at 23:04

1 Answer 1


For optimum coherent detection in an AWGN channel, GMSK with partial response signaling (intentional overlap of pulses to increase the amount of data within a given time and therefore bandwidth efficiency) can be done with maximum likelihood sequence detection, combined with Viterbi decoding which basically compares the correlation of all possible phase trajectories (the number of which is increased substantially due to the pulse overlap) and selects with soft decision detection the most likely set of data bits that would have created that trajectory. With full response signaling there are just two possible trajectories since only one data bit is involved, but with partial response signaling there are multiple data bits to create each trajectory due to the longer duration from each data bit that is longer than a symbol period. For example if each transition lasted 2 symbols, there would be four possible phase trajectories corresponding to the 00, 01, 10, and 11 data patterns. The trajectories are unique to the patterns and thus by choosing the most likely trajectory (after removing phase, frequency and time offsets) the data can be demodulated. As the overlap increases (duration of the phase transition over multiple symbols) the complexity of the optimum receiver significantly increases due to the number of phase trajectories and it can be seen that a trellis diagram results where the Viterbi algorithm can be used to efficiently determine the most likely path through the trellis. Further Laurent Decomposition can be used to decompose the signal into PAM modulations and reduce the possible combinations, simplifying the receiver. Other sub-optimum receiver implementations exist as well.

Here are related links for GMSK demodulation, including further details for carrier recovery, symbol synchronization and using Viterbi decoding and the Laurent Decomposition:






Your Answer

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

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