Modulate using continuous phase modulation
CPM, in Digital Baseband sublibrary of Modulation
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(t)\text{\hspace{0.17em}}=\text{\hspace{0.17em}}\mathrm{exp}\left[j\text{\hspace{0.17em}}2\pi \text{\hspace{0.17em}}{\displaystyle \sum _{i\text{\hspace{0.17em}}=\text{\hspace{0.17em}}0}^{n}{\alpha}_{i}{h}_{i}q(tiT)}\right],\\ nT<\text{\hspace{0.17em}}t<(n+1)T\end{array}$$
where
{α_{i}} represents a sequence of Mary data symbols selected from the alphabet ±1, ±3, ±(M 1).
M must have the form 2^{K} for some positive integer K. You specify the value of M using the Mary number parameter.
{h_{i}} represents a sequence of modulation indices and h_{i} moves cyclically through a set of indices { h_{0}, h_{1}, h_{2}, ….,h_{H1} }. When H =1, there is only one modulation index, h_{0}, which is denoted as h.
When h_{i} varies from interval to interval, the block operates in multih. To ensure a finite number of phase states, h_{i} must be a rational number. You specify the value(s) of h_{i} 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(t)={\displaystyle {\int}_{\text{\hspace{0.17em}}\infty}^{t}g(t)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 Shape  Expression 

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.
When you set the Input type parameter to Integer
,
then the block accepts odd integers between (M1) and M1. M represents
the Mary number block parameter.
When you set the Input type parameter to Bit
,
the block accepts binaryvalued inputs that represent integers. The
block collects binaryvalued signals into groups of K =
log_{2}(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 scalarvalued 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 samplebased 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.
In binary input mode, the block maps each binary word to an
integer between 0 and M1, 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(M1)
and proceeds as in the integer input mode. For more information, see
IntegerValued Signals and BinaryValued Signals on the MPSK Modulator
ref page.
In singlerate 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.
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.
The size of the alphabet.
Indicates whether the input consists of integers or groups of bits.
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
.
Specify the modulation index {h_{i}}. The
default is 0.5
. The value of this property must
be a real, nonnegative scalar or column vector.
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)
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
.
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
.
The product of bandwidth and time. This field appears only when Frequency
pulse shape is set to Gaussian
.
The length of the frequency pulse shape.
A scalarvalued 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.
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 nonbinary 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.
Select the rate processing option for the block.
Enforce singlerate 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 
Specify the block output data type as double
and single
.
Port  Supported Data Types 

Input 

Output 

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