Documentation |
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(t-iT)}\right],\\ nT<\text{\hspace{0.17em}}t<(n+1)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 2^{K} for some positive integer K. You specify the value of M using the M-ary 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_{H-1} }. 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 multi-h. 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)
For the exact definitions of these pulse shapes, see the work by Anderson, Aulin, and Sundberg among the references at the end of this page. 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 -(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 = 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 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.
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.
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.
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 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.
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.
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. |
Specify the block output data type as double and single.