I am studying GMSK modulation for an understanding its realisation in practice. I have the question posted in 2021: "Difference between MSK and GMSK?"

And Mr Boschen explained how the modulator could be implemented.

Since instantaneous frequency is the time derivative of phase, the frequency vs time for GMSK is a series of Gaussian pulses, and thus we can implement a GMSK Modulator using a filter with a Gaussian impulse response at the control voltage input to an VCO (voltage controlled oscillator), or completely digitally with the Frequency Control Word input to an NCO (numerically controlled oscillator) and each symbol as an impulse.

He mentioned we can use gaussian filter and NCO to implement it.

I have googeled and found in a reseach paper about deep space communication the following block scheme. ( I added a block "g", where g is Gaussian filter)

Did i understand correctly the proposed idea by Mr Boschen?

If i undestand GMSk algorithm correctly, for an implemantion GMSK modulator I need QPSK modulator and Gaussina filter?

enter image description here


The GMSK modulator does not require any arithmetic devices (multipliers/adders), only sin/cos lookup tables and counters.

could someone explain this algorithm of the implementation?


enter image description here

It is from the reseach paper"Design and Development of Gaussian Minimum Shift Keying (GMSK) Demodulator for Satellite Communication"

  • $\begingroup$ That is the block diagram of a PLL inside of a receiver. It has little to do with generating a GMSK signal. $\endgroup$
    – TimWescott
    Commented Mar 17, 2022 at 15:01
  • $\begingroup$ @TimWescott I have read there are two method of the implementation; one as a Frequency Shift Keyed modulation and the other as an offset quadrature phase shift keyed modulation. As I understood, on the picutre is the second one $\endgroup$
    – FrimHart64
    Commented Mar 17, 2022 at 15:35

1 Answer 1


The specific implementation I had in mind is as shown in the graphic below.

GMSK modulator

Here we are simply providing Gaussian pulse shaping to the incoming data as rectangular pulses, with the resulting waveform being the desired frequency modulation versus time. The NCO converts this to our desired sinusoidal output for the digital IF output. The gain at the output of the filter is set such that the phase transitions the necessary $\pm90$° over one symbol duration, and an offset is added to operate at a desired digital IF carrier frequency within the frequency range of the NCO (typically some value less than 35% of the sampling rate.)

If the filter was omitted, and the same gain provided to the NCO input, the resulting waveform would be MSK (Minimum Shift Keying). To explain in more detail, MSK is an implementation of FSK (Frequency Shift Keying) where the two frequencies are spaced as close as possible and maintain orthogonality. This occurs when the frequencies are separated by $1/(2T)$ where $T$ is the symbol period. Frequency is the time derivative of phase (a change of phase with a change of time is frequency), and with that if we consider a single frequency tone as a rotating phasor on the complex plane like a bicycle wheel and as detailed in this post), the descriptions from the other reference post will be much more intuitive.

As shown in that post, with the primary graphic repeated below, with full response MSK the modulation waveform toggles between the two frequencies at the given separation as a square wave. This results in a sawtooth function for phase. Note importantly how the phase is the integration of the frequency waveform, and in this case, for MSK, the phase will rotate exactly $\pm90$° over a given symbol period. So to implement GMSK, instead of abruptly changing frequency as a step response, we transition the phase gradually over that same 90° interval by using a Gaussian pulse, such that the integration of the Gaussian pulse is a smooth transition over 90°.


Next observe as detailed in this post how an NCO (Numerically Controlled Oscillator) is simply a digital integrator (accumulator) converting a frequency waveform (the Frequency Control Word changing with time) to a phase waveform. This is in general true for any VCO (voltage controlled oscillator) as a device whose output frequency is directly proportional to a control value, thus it's output phase must be the integration of that same control value.

Further it is very easy to generate the needed Gaussian pulse with an FIR filter as detailed in this post (which also nicely handles partial response signaling, where we overlap pulses, if needed).

The updated figure by the OP is a quadrature phase modulator which provides the same functionality: We integrate the Gaussian pulse to get phase versus time and the cosine and sine blocks provide the in-phase and quadrature values we would want to rotate the phase accordingly on a complex IQ plane as described here. See Wes Brodksy's article here for further details on this common modulation structure.

If we have a QPSK modulator with I and Q inputs that can linearly control the amplitude of each at the output (this map any magnitude and phase according to $I+ jQ$, then first I will describe the implementation of MSK directly by using the modular as a phase rotator, properly applying cosine of the phase on I and sine of the phase on Q. Thus we see how MSK is represented as an offset QPSK with a half sinusoid pulse symbol (cosine on I is the same as sine on Q with a half symbol offset).

For a GMSK modulator each symbol as a rectangular pulse can be converted to an instantaneous frequency by passing the pulse (positive or negative) through a Gaussian filter which is an FIR filter with Gaussian weighted coefficients. The output of the filter represents instantaneous phase while the modulator described is a phase modulator. Phase is the integral of frequency, and an accumulator is the digital approximation of integration. Thus you can pass the output of the Gaussian FIR filter into an accumulator, with the accumulator set to rollover at the magnitude that would correspond $2\pi$ in phase. The output of the accumulator is then converted to Sine and Cosine either with a look up table, CORDIC or other means of trigonometric computation which provides the I and Q inputs to the modulator.

  • $\begingroup$ Thank you for your personal reply. I have read there are two method of the implementation; one as a Frequency Shift Keyed modulation and the other as an offset quadrature phase shift keyed modulation. does yours belong to the first method ( FSk)? in the first we use the filter and vco $\endgroup$
    – FrimHart64
    Commented Mar 17, 2022 at 14:45
  • $\begingroup$ GMSK is nonlinear technique, if we use the OQPSK methos, can I say we use A Linear Approximation of GMSK Modulation ? $\endgroup$
    – FrimHart64
    Commented Mar 17, 2022 at 15:30
  • 1
    $\begingroup$ Yes this is the FSK approach and both will produce identical results (not an approximation). Note that with this approach that I give (combined with the link I provided on implementing a Gaussian filter efficiently) there are no multipliers needed- it is very efficient. An NCO is simply a counter and a look-up table. The Gaussian filter is simply a cascade of two sample adders. Did I answer your primary question in the post? $\endgroup$ Commented Mar 17, 2022 at 16:50
  • $\begingroup$ What is then a linear approximation? $\endgroup$
    – FrimHart64
    Commented Mar 18, 2022 at 6:44
  • 1
    $\begingroup$ Yes, but not for a Gaussian MSK waveform, other than a filter that would approximate the Gaussian shape to have an approximate GMSK. $\endgroup$ Commented Mar 22, 2022 at 10:29

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.