# CPM Modulator Baseband

Modulate using continuous phase modulation

## Library

CPM, in Digital Baseband sublibrary of Modulation

## Description

The Continuous Phase Modulation (CPM) Modulator Baseband block modulates an input signal using continuous phase modulation. The output 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. You specify the value of M using the M-ary number parameter.

• {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.

When hi varies from interval to interval, the block operates in multi-h. To ensure a finite number of phase states, hi must be a rational number. You specify the value(s) of hi using the Modulation index parameter.

Continuous phase modulation uses pulse shaping to smooth the phase transitions of the modulated signal. The function q(t) is the phase response obtained from the frequency pulse, g(t), through the relation:

`$q\left(t\right)={\int }_{-\text{\hspace{0.17em}}\infty }^{t}g\left(t\right)dt$`

Using the Frequency pulse shape parameter, you can select the following pulse shapes:

• `Rectangular`

• `Raised Cosine`

• `Spectral Raised Cosine`

• `Gaussian`

• `Tamed FM` (tamed frequency modulation)

The pulse shapes, g(t), are defined.

Pulse ShapeExpression
Rectangular

Raised Cosine

Spectral Raised Cosine

Gaussian

Tamed FM

Each pulse shape has a corresponding pulse duration. The Pulse length (symbol intervals) parameter measures this quantity in symbol intervals.

### Integer-Valued Signals and Binary-Valued Signals

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

When you set the Input type parameter to `Bit`, the block accepts binary-valued inputs that represent integers. The block collects binary-valued signals into groups of K = log2(M) bits

where

K represents the number of bits per symbol.

The input vector length must be an integer multiple of K. In this configuration, the block accepts a group of K bits and maps that group onto a symbol at the block output. The block outputs one modulated symbol, oversampled by the Samples per symbol parameter value, for each group of K bits.

This block accepts a scalar-valued or column vector input signal. For a column vector input signal, the width of the output frame equals the product of the number of symbols and the value for the Samples per symbol parameter. For a sample-based input signal, the output sample time equals the symbol period divided by the value for the Samples per symbol parameter. For information about the data types each block port supports, see the Supported Data Types table on this page.

### Symbol Sets

In binary input mode, the block maps each binary word to an integer between 0 and M-1, using a mapping that depends on whether the Symbol set ordering parameter is set to `Binary` or `Gray`. The block then maps the integer k to the intermediate value 2k-(M-1) and proceeds as in the integer input mode. For more information, see Integer-Valued Signals and Binary-Valued Signals on the M-PSK Modulator ref page.

### Single-Rate Processing

In single-rate processing mode, the input and output signals have the same port sample time. The block implicitly implements the rate change by making a size change at the output when compared to the input. In this mode, the input to the block can be multiple symbols.

• When you set Input type to `Integer`, the input can be a column vector, the length of which is the number of input symbols.

• When you set Input type to `Bit`, the input width must be an integer multiple of K, the number of bits per symbol.

The output width equals the product of the number of input symbols and the Samples per symbol parameter value.

### Multirate Processing

In multirate processing mode, the input and output signals have different port sample times. In this mode, the input to the block must be one symbol.

• When you set Input type to `Integer`, the input must be a scalar.

• When you set Input type to `Bit`, the input width must equal the number of bits per symbol.

The output sample time equals the symbol period divided by the Samples per symbol parameter value.

## Dialog Box

M-ary number

The size of the alphabet.

Input type

Indicates whether the input consists of integers or groups of bits.

Symbol set ordering

Determines how the block maps each group of input bits to a corresponding integer. This field is active only when Input type is set to `Bit`.

Modulation index

Specify the modulation index {hi}. The default is `0.5`. The value of this property must be a real, nonnegative scalar or column vector.

Frequency pulse shape

Specify the type of pulse shaping that the block uses to smooth the phase transitions of the modulated signal. You can select from the following pulse shapes:

• `Rectangular`

• `Raised Cosine`

• `Spectral Raised Cosine`

This option requires an additional parameter, Rolloff. The Rolloff parameter, which affects the spectrum of the pulse, is a scalar between zero and one.

• `Gaussian`

This option requires an additional parameter, BT product. The BT product parameter, which represents bandwidth multiplied by time, is a nonnegative scalar. It is used to reduce the bandwidth at the expense of increased intersymbol interference.

• `Tamed FM` (tamed frequency modulation)

Main lobe pulse duration (symbol intervals)

Number of symbol intervals of the largest lobe of the spectral raised cosine pulse. This field is active only when Frequency pulse shape is set to `Spectral Raised Cosine`.

Rolloff

The rolloff factor of the specified spectral raised cosine pulse shape. This field appears only when you set Frequency pulse shape to `Spectral Raised Cosine`.

BT product

The product of bandwidth and time. This field appears only when Frequency pulse shape is set to `Gaussian`.

Pulse length (symbol intervals)

The length of the frequency pulse shape.

Symbol prehistory

A scalar-valued or vector signal that specifies the data symbols used before the start of the simulation, in reverse chronological order. If Symbol prehistory is a vector, then its length must be one less than the Pulse length parameter.

The initial phase of the output waveform, measured in radians.

Samples per symbol

The number of output samples that the block produces for each integer or binary word in the input, which must be a positive integer. For all non-binary schemes, as defined by the pulse shapes, this value must be greater than 1.

For more information, see Upsample Signals and Rate Changes in Communications System Toolbox™User's Guide.

Rate options

Select the rate processing option for the block.

• `Enforce single-rate processing` — When you select this option, 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 equals the product of the number of symbols and the Samples per symbol parameter value.

• `Allow multirate processing` — When you select this option, the input and output signals have different port sample times. The output sample time equals the symbol period divided by the Samples per symbol parameter value.

 Note:   The option ```Inherit from input (this choice will be removed - see release notes)``` will be removed in a future release. See Frame-Based Processing in the Communications System Toolbox Release Notes for more information.
Output data type

Specify the block output data type as `double` and `single`.

## Supported Data Types

PortSupported Data Types

Input

• Double-precision floating point

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

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

Output

• Double-precision floating point

• Single-precision floating point

## Pair Block

CPM Demodulator Baseband

## References

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