M-ary amplitude phase shift keying (APSK) demodulation
Communications Toolbox / Modulation / Digital Baseband Modulation / APM
The M-APSK Demodulator Baseband block demodulates a baseband representation of an M-ary amplitude phase shift keying (APSK) modulated signal. M is the Modulation Order for M-APSK. For a description of M-APSK demodulation, see APSK Hard Demodulation and APSK Soft Demodulation.
M-APSK Demodulator Baseband specifically applies to multiple ring PSK constellations. For a single ring PSK constellation, use M-PSK Demodulator Baseband.
This icon shows the block with all ports enabled:
In— APSK modulated signal
APSK modulated signal, specified as a scalar, vector, or matrix. When
this input is a matrix, each column is treated as an independent
channel. This port is unnamed until the
Var port is
Complex Number Support: Yes
Var— Noise variance
Noise variance, specified as a positive scalar or vector of positive values. When the noise variance or signal power result in computations involving extreme positive or negative magnitudes, see APSK Soft Demodulation for demodulation decision type considerations.
To enable this port, set Noise variance source to
Out— Demodulated signal
Demodulated signal, returned as a scalar, vector, or matrix. The data type and dimensions of the demodulated signal depend on the values specified by the Output type and Decision type parameters. This port is unnamed on the block.
|Output type||Decision type||Demodulated Signal Description||Dimensions of Demodulated Signal|
|—||Demodulated integer values in the range [0, (M – 1)]||The output signal has the same dimensions as the input signal.|
|Demodulated bits||The number of rows in the output signal is log2(M) times the number of rows in the input signal. Each demodulated symbol is mapped to a group of log2(M) elements in a column, where the first element represents the MSB and the last element represents the LSB.|
|Log-likelihood ratio value for each bit|
|Approximate log-likelihood ratio value for each bit|
M is the Modulation Order for M-APSK.
Use Output data type to specify the output data type.
Constellation points per circle— Constellation points per PSK ring
[4,12](default) | vector
Constellation points per PSK ring, specified as a vector with more than one element. Each vector element indicates the number of constellation points in its corresponding PSK ring. The first element corresponds to the innermost circle, and so on until the last element, which corresponds to the outermost circle. The sum of the elements in Constellation points per circle determines the modulation order. Element values must be multiples of four, and the modulation order must be a power of two.
[4,12,16] specifies a three PSK ring
constellation with a modulation order of 32.
Radius of each circle— Radius per PSK ring
[0.5,1](default) | vector
Radius per PSK ring, specified as a vector with the same length as Constellation points per circle. Each vector element indicates the radius of its corresponding PSK ring. The first element corresponds to the innermost circle, and so on until the last element, which corresponds to the outermost circle. These element values must be positive values arranged in increasing order.
[0.5,1,2] defines radii for three constellation
PSK rings. The inner ring has a radius of 0.5, the second ring has a radius
of 1.0, and the outer ring has a radius of 2.0.
Phase offset of each circle (rad)— Phase offset per PSK ring
[pi/4,pi/12](default) | scalar | vector
Phase offset per PSK ring in radians, specified as a scalar or vector with the same length as Constellation points per circle. Each vector element indicates the phase offset of its corresponding PSK ring. The first element corresponds to the innermost circle, and so on until the last element, which corresponds to the outermost circle. The Phase offset of each circle (rad) can be a scalar only if all the elements of Constellation points per circle are the same value.
[pi/4,pi/12,pi/16] defines phase offsets for
three constellation PSK rings. The inner ring has a phase offset of π/4, the
second ring has a phase offset of π/12, and the outer ring has a phase
offset of π/16.
Symbol mapping— Symbol mapping
Symbol mapping, specified as one of the following:
Contourwise-gray — Uses Gray
mapping along the contour in the phase dimension for each PSK
Gray — Uses Gray mapping along the
contour in both the amplitude and phase dimensions. For Gray
symbol mapping, all elements in Constellation points per circle must be equal,
and all elements in Phase offset of each circle (rad) must be equal.
For a description of the Gray mapping used, see .
User-defined — See Custom symbol mapping.
The default symbol mapping depends on the
Constellation points per circle and Phase
offset of each circle (rad) parameters. When all elements in
Constellation points per circle are equal, and all
elements in Phase offset of each circle (rad) are
equal, the default is
Gray. For all other cases,
the default is
Custom symbol mapping— Custom symbol mapping
[0,4,12,8,1,3,2,6,7,5,13,15,14,10,11,9](default) | integer vector
Custom symbol mapping, specified as an integer vector. This vector must consist of M unique elements with values in the range [0, (M – 1)], where M is the Modulation Order for M-APSK. The first element in Custom symbol mapping corresponds to the constellation point in the first quadrant of the innermost circle, with subsequent elements positioned counterclockwise around the PSK rings.
Example: The default value,
contourwise-gray symbol mapping. The distribution of constellation points is
nonuniform on all contours.
To enable this parameter, set Symbol mapping to
Output type— Output type
Output type, specified as
Decision type— Demodulation decision type
Hard decision(default) |
Approximate log-likelihood ratio
Noise variance source— Noise variance source
Noise variance source, specified as:
This parameter applies only when Decision type is set to either
Log-likelihood ratio or
Approximate log-likelihood ratio.
Noise variance— Noise variance
1(default) | positive scalar | vector of positive values
Noise variance, specified as a positive scalar or vector of positive values.
When specified as a scalar, that value is used on all elements in the input signal.
When specified as a vector, the vector length must be equal to the number of columns in the input signal. Each noise variance vector element is applied to its corresponding column in the input signal.
Output data type— Output data type
|Output type||Decision type||Output data type Options|
|The output signal is the same data type as the input signal.|
Simulate using— Type of simulation to run
Interpreted execution(default) |
Type of simulation to run, specified as:
Code generation –– Simulate the
model using generated C code. The first time you run a
simulation, Simulink® generates C code for the block. The C code is
reused for subsequent simulations as long as the model does not
change. This option requires additional startup time.
Interpreted execution –– Simulate
the model using the MATLAB® interpreter. This option shortens startup time. In
Interpreted execution mode, you
can debug the source code of the block.
For information on execution speed, see Tips.
The modulation order, M, for M-APSK equals the sum of the vector elements in the Constellation points per circle parameter and is the total number of points in the signal constellation. Element values in Constellation points per circle must be multiples of four, and M must be a power of two.
The hard demodulation algorithm applies amplitude phase decoding, as described in .
For soft demodulation, two soft-decision log-likelihood ratio (LLR) algorithms are available: exact LLR and approximate LLR. This table compares these algorithms.
|Exact LLR||more accurate||slower execution|
|Approximate LLR||less accurate||faster execution|
The exact LLR algorithm computes exponentials using finite precision arithmetic. Computation of exponentials with very large positive or negative magnitudes might yield:
-Inf if the noise variance is
a very large value
NaN if both the noise variance and signal power are
very small values
When the output returns any of these values, try using the approximate LLR algorithm because it does not compute exponentials.
For faster execution of the M-APSK Demodulator Baseband block, set the Simulate using parameter to:
Code generation when using hard
Interpreted execution when using soft
 Sebesta, J. “Efficient Method for APSK Demodulation.” Selected Topics on Applied Mathematics, Circuits, Systems, and Signals (P. Pardalos, N. Mastorakis, V. Mladenov, and Z. Bojkovic, eds.). Vouliagmeni, Athens, Greece: WSEAS Press, 2009.
 Liu, Z., Q. Xie, K. Peng, and Z. Yang. "APSK Constellation with Gray Mapping." IEEE Communications Letters. Vol. 15, Number 12, December 2011, pp. 1271–1273.