I am on a project to write a function in Java to perform GMSK modulation. I have a good understanding of the GMSK modulation block diagram to an extent, but I have a challenge on what it means to delay the Q-phase input by 90°.

Do I simply multiply my Q-phase bit stream by a negative sine carrier or what? Please, what is the correct thing to do?



1 Answer 1


A system that shifts the input signal by 90 degrees is a Hilbert transformer. For a single sine wave, a 90 degree phase shift is simple (e.g., sine becomes cosine), but for a general signal you need a Hilbert transformer. Check the basics here. It can be implemented using an FIR (finite impulse response) digital filter. Such a filter can be designed in Matlab/Octave.

EDIT: The above is an answer to the question "how do I perform a $90^{\circ}$ phase shift (for non-sinusoidal signals)?". However, what I didn't notice - and what was luckily pointed out by Jim Clay in a comment - is the fact that in the given diagram there is no need for a phase shifter. The first $90^{\circ}$-block simply symbolizes the splitting of the signal in an I-component and a Q-component. It is not a phase splitter and the $90^{\circ}$-symbol is actually quite misleading.

  • 1
    $\begingroup$ Are you sure that the 90 degree phase shift isn't really just saying "take just the imaginary part of the output of the Gaussian LPF"? $\endgroup$
    – Jim Clay
    Mar 13, 2014 at 17:13
  • $\begingroup$ @JimClay That assumes the input data is complex to begin with, which not be necessarily true. The way the diagram is given means the data is real, and so a hilbert transform / phase shift is required. $\endgroup$ Mar 13, 2014 at 17:20
  • $\begingroup$ @user4619 Fair enough, but if it is real then I have no idea how shifting it by 90 degrees, modulating it and adding it to the in-phase signal improves anything. Is there any advantage to doing that? $\endgroup$
    – Jim Clay
    Mar 13, 2014 at 17:56
  • $\begingroup$ @JimClay I stand corrected, I believe you are right. The Q-stream is on the data side pre-carrier, which means it is just the imaginary data bits, and there is no 90 degree phase shift. $\endgroup$ Mar 13, 2014 at 19:41
  • 2
    $\begingroup$ @JimClay, I did more finding to this, and both 90 degrees are actually phase shifts. I used the hilbert transformer just as you said in your initial answer, and was able to realize the GMSK modulation. You can check out another GMSK modulator block diagram from this link, for confirmation. [link] (radio-electronics.com/info/rf-technology-design/…) $\endgroup$ Mar 15, 2014 at 18:51

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.