Main Content

GMSK Demodulator Baseband

Demodulate signal using Gaussian minimum shift keying method and Viterbi algorithm

  • GMSK Demodulator Baseband block

Libraries:
Communications Toolbox / Modulation / Digital Baseband Modulation / CPM

Description

The GMSK Demodulator Baseband block demodulates an input signal that was modulated using the Gaussian minimum shift keying (GMSK) method. The input to this block is a baseband representation of the modulated signal. For more information about this demodulation and the filtering applied, see Algorithms.

Examples

expand all

Demodulate a GMSK-modulated signal impaired by AWGN and compute the bit error rate.

The cm_gmsk_mod_demod model generates random Bernoulli distributed binary data and then applies GMSK modulation to frames data. The GMSK-modulated signal passes through an AWGN channel and then is demodulated by using the GMSK method. The bit error rate is calculated on frames of data.

The Error Rate Calculation block has the receive delay set to the value of the traceback depth used by the GMSK Baseband Demodulator block. The model uses the Find Delay block to confirm the delay equals the value of the traceback depth.

Transmit to receive delay is 16 symbols.
BER = 8.3934e-05

Extended Examples

Ports

Input

expand all

GMSK-modulated baseband signal, specified as a column vector with a length equal to an integer multiple of the number of Samples per symbol. For information on the processing rates, see Single-Rate Processing and Multirate Processing.

This port in unnamed on the block.

Data Types: double | single
Complex Number Support: Yes

Output

expand all

Demodulated output signal, returned as a scalar or column vector. For more information, see Integer-Valued Signals and Binary-Valued Signals and Traceback Depth and Output Delays.

This port is unnamed on the block.

Data Types: double | Boolean | int8 | int16 | int32

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Option to output data as integers or bits, specified as Integer or Bit. When you simulate the model, the output is a 1-by-(N / NSPS) column vector. N is the length of the input signal, In, which is the number of input baseband modulated symbols. NSPS represents the value of the Samples per symbol parameter.

  • When you set this parameter to Integer, the values output are bipolar (-1 or 1).

  • When you set this parameter to Bit, the values output are binary (0 or 1).

Product of the bandwidth and symbol time of the Gaussian pulse shape, specified as a positive scalar. Use BT product to reduce the bandwidth, at the expense of increased intersymbol interference.

Length of the frequency pulse shape, specified as a positive integer. This parameter represents the truncated frequency pulse length of the Gaussian pulse shape in symbol intervals.

Symbol prehistory, specified as -1, 1, or a vector with elements equal to those values. This parameter defines the data symbols that the modulator uses before the block processes symbols, in reverse chronological order.

  • A scalar value expands to a vector of length LP – 1. LP represents the pulse length, which is specified by the Pulse length (symbol intervals) parameter.

  • For a vector, the length must be LP – 1.

Initial phase offset of the modulated waveform in radians, specified as a scalar.

Number of samples per input symbol, specified as a positive integer. The number of samples per symbol represents the downsampling factor from input samples to output samples. For more information, see Signal Upsampling and Rate Changes.

Block processing rate, specified as one of these options:

  • Enforce single-rate processing — The input and output signals have the same port sample time. The block implements the rate change by making a size change at the output when compared to the input. The output width is the number of symbols (which is given by dividing the input length by the Samples per symbol parameter value when the Output type parameter is set to Integer).

  • Allow multirate processing — The input and output signals have different port sample times. The output period is the same as the symbol period and equals the product of the input period and the Samples per symbol parameter value.

Traceback depth for the Viterbi algorithm, specified as a positive integer. The traceback depth specifies the number of trellis branches that the Viterbi algorithm uses to construct each traceback path. The value of this parameter is also the output delay and the number of zero symbols that precede the first meaningful demodulated symbol in the output. For more information, see Traceback Depth and Output Delays.

Output data type, specified as double, boolean, int8, int16, or int32.

  • When you set the Output type parameter to false, you can set the output to double-precision or signed-integer data types.

  • When you set the Output type parameter to true, you can set the output to double-precision, signed-integer, or logical data types.

Block Characteristics

Data Types

Boolean | double | integer | single

Multidimensional Signals

no

Variable-Size Signals

no

More About

expand all

Algorithms

expand all

References

[1] Anderson, John B., Tor Aulin, and Carl-Erik Sundberg. Digital Phase Modulation. New York: Plenum Press, 1986.

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced before R2006a