# CPM Demodulator Baseband

Demodulate CPM-modulated data

• Library:
• Communications Toolbox / Modulation / Digital Baseband Modulation / CPM

## Description

The CPM Demodulator Baseband block demodulates a signal that was modulated using continuous phase modulation (CPM).

CPM is a modulation method with memory. The block processing includes a correlator followed by a maximum-likelihood sequence detector (MLSD) that searches the paths through the state trellis for the minimum Euclidean distance path. The block uses the Viterbi algorithm to perform MLSD.

## Ports

### Input

expand all

Input signal, specified as a scalar or column vector. The length of the input signal must be an integer multiple of the number of samples per symbol specified in the Samples per symbol parameter. For more information, see Integer-Valued and Binary-Valued Output Signals.

Data Types: `double` | `single`

### Output

expand all

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

#### Supported Data Types

• Double-precision floating point

• Boolean (when Output type is set to `Bit`)

• 8-, 16-, and 32-bit signed integers (when Output type is set to `Integer`)

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

For more information on the processing rates, see Single-Rate Processing, and Multirate Processing.

## Parameters

expand all

Modulation order indicating the alphabet size, specified as a positive integer that is a nonzero power of two. M must have the form 2K for some positive integer K, where K is the number of bits per symbol.

Determines whether the output consists of integers or groups of bits, specified as `Integer` or `Bit`.

Bit mapping, specified as `Binary` or `Gray`.

This parameter determines how the block maps each integer to a group of output bits. For more information, see Integer-Valued and Binary-Valued Output Signals.

#### Dependencies

To enable this parameter, set Output type to `Bit`.

Modulation index {hi}, specified as a nonnegative scalar or column vector.

{h} represents a sequence of modulation indices. For more information, see CPM Demodulation.

Type of pulse shaping used to smooth the phase transitions of the modulated signal, specified as `Rectangular`, `Raised Cosine`, `Spectral Raised Cosine`, `Gaussian`, or `Tamed FM`. For more information on the filtering options, see Pulse Shape Filtering.

Number of symbol intervals of the largest lobe of the spectral raised cosine pulse, specified as a positive scalar.

#### Dependencies

To enable this parameter, set Frequency pulse shape to `Spectral Raised Cosine`.

Rolloff factor of the spectral raised cosine pulse shape, specified as a scalar from 0 to 1.

#### Dependencies

To enable this parameter, set Frequency pulse shape to `Spectral Raised Cosine`.

Product of bandwidth and time, specified as a nonnegative scalar. Use BT product to reduce the bandwidth, at the expense of increased intersymbol interference.

#### Dependencies

To enable this parameter, set Frequency pulse shape to `Gaussian`.

Frequency pulse shape length, specified as a positive scalar. Refer to LT in Pulse Shape Filtering for more information on the frequency pulse length.

Data symbols used before the start of simulation in reverse chronological order. If Symbol prehistory is a vector, then its length must be one less than the Pulse length parameter value.

Initial phase offset of output in radians, specified as a scalar.

Symbol sampling rate, specified as a positive scalar. This parameter represents the number of samples output for each integer or binary word input. For all nonbinary schemes, as defined by the pulse shapes, this value must be greater than 1.

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.

Number of trellis branches used to construct each traceback path, specified as a positive integer. For more information, see Traceback Depth and Output Delays.

Output data type, specified as `double`, `boolean`, `int8`, `int16`, or `int32`. For more information, see Supported Data Types in `Out`.

## Block Characteristics

 Data Types `Boolean` | `double` | `integer` | `single` Multidimensional Signals `no` Variable-Size Signals `no`

expand all

## References

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

## Extended Capabilities

### Topics

Introduced before R2006a