Modulate using continuous phase modulation
Communications Toolbox / Modulation / Digital Baseband Modulation / CPM
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:
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, where M is the modulation order and specifies the size of the symbol alphabet.
{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.
For more information about this modulation and the filtering applied, see CPM Modulation and Pulse Shape Filtering.
In
— Input signalInput 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 Mary
number parameter.
When the Input type parameter is set to Bit
,
the block accepts binaryvalued inputs that represent integers. The block collects
binaryvalued signals into groups of K =
log_{2}(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.
Doubleprecision floating point
Boolean (when Input type is set to
Bit
)
8, 16, and 32bit signed integers (when Input
type is set to
Integer
)
Data Types: double
 Boolean
 int8
 int16
 int32
Out
— Output signalOutput 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 SingleRate Processing, and Multirate Processing.
Mary number
— Modulation order4
(default)  positive integerModulation order indicating the alphabet size, specified as a positive integer that is a nonzero power of two. M must have the form 2^{K} for some positive integer K, where K is the number of bits per symbol.
Input type
— Integer or group of bits input indicatorInteger
(default)  Bit
Indicates whether the input consists of integers or groups of bits,
specified as Integer
or
Bit
.
Symbol set ordering
— Bit mappingBinary
(default)  Gray
Bit mapping, specified as Binary
or
Gray
. For more information, see Symbol Sets.
To enable this parameter, set Input type to
Bit
.
Modulation index
— Modulation index {h_{i}}0.5
(default)  nonnegative scalar  column vector Modulation index {h_{i}}, specified as a nonnegative scalar or column vector.
{h} represents a sequence of modulation indices. For more information, see CPM Modulation.
Frequency pulse shape
— Type of pulse shapingRectangular
(default)  Raised Cosine
 Spectral Raised Cosine
 Gaussian
 Tamed FM
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.
Main lobe pulse duration (symbol intervals)
— Number of symbol intervals of largest lobe of spectral raised cosine pulse1
(default)  positive scalarNumber of symbol intervals of the largest lobe of the spectral raised cosine pulse, specified as a positive scalar.
To enable this parameter, set Frequency pulse
shape to Spectral Raised
Cosine
.
Rolloff
— Rolloff factor of spectral raised cosine pulse shape0.2
(default)  nonnegative scalarRolloff factor of the spectral raised cosine pulse, specified as a scalar from 0 to 1.
To enable this parameter, set Frequency pulse
shape to Spectral Raised
Cosine
.
BT product
— Product of bandwidth and time0.3
(default)  nonnegative scalarProduct of bandwidth and time, specified as a nonnegative scalar. Use BT product to reduce the bandwidth, at the expense of increased intersymbol interference.
To enable this parameter, set Frequency pulse
shape to Gaussian
.
Pulse length (symbol intervals)
— Frequency pulse length1
(default)  positive scalarFrequency pulse length, specified as a positive scalar. Refer to LT in Pulse Shape Filtering for more information on the frequency pulse length.
Symbol prehistory
— Data symbols used before the start of simulation1
(default)  scalar  vectorData 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.
Phase offset (rad)
— Initial phase offset0
(default)  scalarInitial phase offset of output in radians, specified as a scalar.
Samples per symbol
— Symbol sampling rate8
(default)  positive scalarSymbol 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.
For more information, see Upsample Signals and Rate Changes.
Rate options
— Block processing rateEnforce singlerate processing
(default)  Allow multirate processing
Block processing rate, specified as one of these options:
Enforce singlerate 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
— Output data typedouble
(default)  single
Output data type, specified as double
or
single
.
Data Types 

Multidimensional Signals 

VariableSize Signals 

The output of the modulator is a baseband representation of the modulated signal:
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, where M is the modulation order and specifies the size of the symbol alphabet.
{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.
h_{i} specifies the modulation index. 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.
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 this relation:
The specified frequency pulse shape corresponds to these pulse shape expressions, g(t).
Pulse Shape  Expression 

Rectangular  
Raised Cosine  
Spectral Raised Cosine  
Gaussian  
Tamed FM (tamed frequency modulation) 
L_{main} is the main lobe pulse duration in symbol intervals.
β is the rolloff factor of the spectral raised cosine.
B_{b}is the product of the bandwidth and the Gaussian pulse.
The duration of the pulse, LT, is the pulse length in symbol intervals. As defined by the expressions, the Spectral Raised Cosine
, Gaussian
, and Tamed FM
pulse shapes have infinite length. For all practical purposes, LT specifies the truncated finite length.
For more information on pulse shape filtering, see [1].
In binary input mode, the block processing follows this procedure:
Maps each binary word to k, an integer from 0 to
M–1. The binary word mapping options are
Binary
or
Gray
, as specified by the Symbol
set ordering parameter.
Maps k to the intermediate value 2k–(M–1)
Proceeds with block processing as in the integer input mode.
In singlerate processing mode, the input and output signals have the same port sample time. In this mode, the input to the block can be multiple symbols. The block implicitly implements the rate change by making a size change at the output when compared to the input.
When you set Input type to
Integer
, the input can be a scalar or a
column vector with the length equal to the number of input symbols.
When you set Input type to
Bit
, the input width must be an integer
multiple of the number of bits per symbol.
The output width equals N_{Sym} × N_{SPS}, where N_{Sym} is the number of symbols in the frame and N_{SPS} is the number of samples per symbol.
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 T_{Sym} / N_{SPS}, where T_{Sym} is the symbol period and N_{SPS} is the number of samples per symbol.
CPM Demodulator Baseband — Demodulates continuous phase modulated data.
[1] Anderson, John B., Tor Aulin, and CarlErik Sundberg. Digital Phase Modulation. New York: Plenum Press, 1986.
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.