comm.GMSKModulator System object

Package: comm

Modulate using GMSK method


The GMSKModulator object modulates using the Gaussian minimum shift keying method. The output is a baseband representation of the modulated signal.

To modulate a signal using Gaussian minimum shift keying:

  1. Define and set up your GMSK modulator object. See Construction.

  2. Call step to modulate a signal according to the properties of comm.GMSKModulator. The behavior of step is specific to each object in the toolbox.


H = comm.GMSKModulator creates a modulator System object™, H. This object modulates the input signal using the Gaussian minimum shift keying (GMSK) modulation method.

H = comm.GMSKModulator(Name,Value) creates a GMSK modulator object, H. This object has each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).



Assume input is bits

Specify whether the input is bits or integers. The default is false.

When you set the BitInput property to false, the step method input requires a double-precision or signed integer data type column vector with values of -1 or 1.

When you set the BitInput property to true, step method input requires a double-precision or logical data type column vector of 0s and 1s.


Product of bandwidth and symbol time of Gaussian pulse

Specify the product of the bandwidth and symbol time for the Gaussian pulse shape as a real, positive scalar value. The default is 0.3.


Pulse length

Specify the length of the Gaussian pulse shape in symbol intervals as a real, positive integer. The default is 4.


Symbol prehistory

Specify the data symbols the modulator uses prior to the first call to the step method in reverse chronological order. The default is 1. This property requires a scalar or vector with elements equal to -1 or 1. If the value is a vector, then its length must be one less than the value in the PulseLength property.


Initial phase offset

Specify the initial phase of the modulated waveform in radians as a real, numeric scalar value. The default is 0.


Number of samples per output symbol

Specify the upsampling factor at the output as a real, positive, integer scalar value. The default is 8. The upsampling factor is the number of output samples that the step method produces for each input sample.


Data type of output

Specify output data type as one of double | single. The default is double.


cloneCreate GMSK modulator object with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs from step method
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
resetReset states of the GMSK modulator object
stepModulate using GMSK method


expand all

Modulate a GMSK signal with bit inputs and phase offset

% Create a GMSK modulator, an AWGN channel, and a GMSK demodulator. Use a phase offset of pi/4.
    hMod = comm.GMSKModulator('BitInput', true, 'InitialPhaseOffset', pi/4);
    hAWGN = comm.AWGNChannel('NoiseMethod', ...
                    'Signal to noise ratio (SNR)','SNR',0);
    hDemod = comm.GMSKDemodulator('BitOutput', true, ...
                    'InitialPhaseOffset', pi/4);
% Create an error rate calculator, account for the delay caused by the Viterbi algorithm
    hError = comm.ErrorRate('ReceiveDelay', hDemod.TracebackDepth);
    for counter = 1:100
      % Transmit 100 3-bit words
      data = randi([0 1],300,1);
      modSignal = step(hMod, data);
      noisySignal = step(hAWGN, modSignal);
      receivedData = step(hDemod, noisySignal);
      errorStats = step(hError, data, receivedData);
    fprintf('Error rate = %f\nNumber of errors = %d\n', ...
      errorStats(1), errorStats(2))
Error rate = 0.000133
Number of errors = 4


This object implements the algorithm, inputs, and outputs described on the GMSK Modulator Baseband block reference page. The object properties correspond to the block parameters.

Introduced in R2012a

Was this topic helpful?