# CPM Modulator Baseband

Modulate using continuous phase modulation

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

• ## Description

The CPM Modulator Baseband block modulates an input signal using continuous phase modulation (CPM). The output of the modulator is a baseband representation of the modulated signal:

`$\begin{array}{l}s\left(t\right)\text{\hspace{0.17em}}=\text{\hspace{0.17em}}\mathrm{exp}\left[j\text{\hspace{0.17em}}2\pi \text{\hspace{0.17em}}\sum _{i\text{\hspace{0.17em}}=\text{\hspace{0.17em}}0}^{n}{\alpha }_{i}{h}_{i}q\left(t-iT\right)\right],\\ nT<\text{\hspace{0.17em}}t<\left(n+1\right)T\end{array}$`

where:

• {αi} represents a sequence of M-ary data symbols selected from the alphabet ±1, ±3, ±(M–1).

• M must have the form 2K for some positive integer K, where M is the modulation order and specifies the size of the symbol alphabet.

• {hi} represents a sequence of modulation indices and hi moves cyclically through a set of indices {h0, h1, h2, ..., hH-1}. When H=1, there is only one modulation index, h0, which is denoted as h.

## Ports

### Input

expand all

Input signal, specified as a scalar or column vector.

When the Input type parameter is set to `Integer`, the block accepts odd integers between –(M–1) and M–1. M represents the M-ary number parameter.

When the Input type parameter is set to `Bit`, the block accepts binary-valued inputs that represent integers. The block collects binary-valued signals into groups of K = log2(M) bits. K is the number of bits per symbol and M is the modulation order. The input vector length must be an integer multiple of K. The block maps each group of K bits onto a symbol, as specified by the Symbol set ordering parameter. For each group of K bits, the block outputs one modulated symbol, oversampled by the Samples per symbol parameter value.

#### Supported Data Types

• Double-precision floating point

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

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

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

### Output

expand all

Output signal, returned as a scalar or column vector.

• When the Input type parameter is set to `Integer`, the block outputs one modulated symbol for each input symbol.

• When the Input type parameter is set to `Bit`, the block outputs one modulated symbol for each group of K bits.

In both cases, the modulated symbols are oversampled by the Samples per symbol parameter value.

Data Types: `double` | `single`

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.

Indicates whether the input consists of integers or groups of bits, specified as `Integer` or `Bit`.

Bit mapping, specified as `Binary` or `Gray`. For more information, see Symbol Sets.

#### Dependencies

To enable this parameter, set Input 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 Modulation.

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, 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 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, specified as a scalar or vector in reverse chronological order. If Symbol prehistory is a vector, then its length must be one less than the Pulse length (symbol intervals) 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 sample time. The block implements the rate change by making a size change at the output when compared to the input. The output width equals the product of the number of symbols and the Samples per symbol parameter value.

• `Allow multirate processing` — The input and output signals have different sample times. The output sample time equals the symbol period divided by the Samples per symbol parameter value.

Output data type, specified as `double` or `single`.

## Block Characteristics

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