Main Content

M-APSK Modulator Baseband

M-ary amplitude phase shift keying (APSK) modulation

  • M-APSK Modulator Baseband block

Libraries:
Communications Toolbox / Modulation / Digital Baseband Modulation / APM

Description

The M-APSK Modulator Baseband block modulates the input signal using M-ary amplitude phase shift keying (APSK) modulation. The output is a baseband representation of the modulated signal. M, the Modulation Order for M-APSK, equals the sum of the elements in Constellation points per circle. For a description of M-APSK modulation, see Algorithms.

Note

M-APSK Modulator Baseband specifically applies to multiple ring PSK constellations. For a single ring PSK constellation, use M-PSK Modulator Baseband.

Examples

expand all

Apply 16-APSK modulation to a signal of random data. Pass the modulated signal through an AWGN channel. Plot the signal constellation.

Use the Open model button to open the slex_16apsk_mod model. Run with the EbN0 of the AWGN channel block set to 20 dB.

Change the EbN0 of the AWGN channel block to 10 dB. Run the model and observe the increase in noise.

Further Exploration

Adjust the modulation order in the M-APSK Modulator Baseband block. Before you run the model, you must also adjust the workspace variable M, defined in Model Properties> Callbacks> InitFcn to match the modulation order in the M-APSK Modulator Baseband block. The variable M sets:

  • Set size in the Random Integer Generator block.

  • Number of bits per symbol in the AWGN Channel block.

  • Reference constellation in the Constellation Diagram. To see the user-defined reference constellation, open View> Constellation Properties and look at the Reference constellation tab.

If these parameters are not aligned with each other you will notice that the reference constellation and input signal do not produce the desired constellation.

Ports

Input

expand all

Input signal, specified as a scalar, vector, or matrix. The input signal must consist of binary values or integers in the range [0, (M – 1)], where M is the Modulation Order for M-APSK. This port is unnamed on the block.

Note

To process the input signal as binary elements, set the Input type parameter value to Bit. For binary inputs, the number of rows must be an integer multiple of log2(M). Groups of log2(M) bits in a column are mapped onto a symbol, with the first bit representing the MSB and the last bit representing the LSB.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

Output

expand all

APSK modulated signal, returned as a complex scalar, vector, or matrix. The output signal dimensions depend on the specified Input type value. This port is unnamed on the block.

Input typeDimensions of Output Signal
IntegerThe output signal has the same dimensions as the input signal.
BitThe number of rows in the output signal equals the number of rows in the input signal divided by log2(M), where M is the Modulation Order for M-APSK.

Use Output data type to specify the output data type.

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

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.

Example: [4,12,16] specifies a three PSK ring constellation with a modulation order of 32.

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 and arranged in increasing order.

Example: [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 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.

Example: [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, specified as one of the following:

  • Contourwise-gray — Uses Gray mapping along the contour in the phase dimension for each PSK ring.

  • Gray — Uses Gray mapping along the contour in both the amplitude and phase dimensions. For Gray symbol mapping, all the values for Constellation points per circle must be equal and all the values for Phase offset of each circle (rad) must be equal. For a description of the Gray mapping used, see [2].

  • User-defined — See Custom symbol mapping.

The default symbol mapping depends on Constellation points per circle and Phase offset of each circle (rad). When all the elements of Constellation points per circle are equal and all the elements of Phase offset of each circle (rad) are equal, the default is Gray. For all other cases, the default is Contourwise-gray.

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, [0,4,12,8,1,3,2,6,7,5,13,15,14,10,11,9], specifies contourwise-gray symbol mapping. The distribution of constellation points is nonuniform on all contours.

Dependencies

To enable this parameter, set Symbol mapping to User-defined.

Input type, specified as one of these options.

  • Integer –– The input signal must consist of integers in the range [0, (M – 1)].

  • Bit –– The input signal must contain binary values, and the number of rows must be an integer multiple of log2(M), where M is the Modulation Order for M-APSK. Binary input signals are assumed to be left-MSB aligned and specified column-wise. Groups of log2(sum(M)) bits in a column are mapped onto a symbol, with the first bit representing the MSB and the last bit representing the LSB.

Output data type, specified as double or single.

To plot the reference constellation, click the View Constellation button.

Tip

Click Apply before clicking the View Constellation to view latest parameter values.

Type of simulation to run, specified as Code generation or Interpreted execution.

  • Code generation — Simulate the model by using generated C code. The first time you run a simulation, Simulink generates C code for the block. The model reuses the C code for subsequent simulations unless the model changes. This option requires additional startup time, but the speed of the subsequent simulations is faster than with the Interpreted execution option.

  • Interpreted execution — Simulate the model by using the MATLAB® interpreter. This option shortens startup time, but the speed of subsequent simulations is slower than with the Code generation option. In this mode, you can debug the source code of the block.

For more information, see Interpreted Execution vs. Code Generation (Simulink).

Block Characteristics

Data Types

Boolean | double | integer | single

Multidimensional Signals

yes

Variable-Size Signals

no

More About

expand all

Algorithms

The block implements a pure APSK constellation.

A pure M-APSK constellation is composed of NC concentric rings or contours, each with uniformly spaced PSK points. The M-APSK constellation set is

χ={R1exp(j(2πM1i+ϕ1)),i=0,,M11,R2exp(j(2πM2i+ϕ2)),i=0,,M21,RNCexp(j(2πMNCi+ϕNc)),i=0,,MNC1,

where:

  • The modulation order is equal to the sum of all Ml for l = 1, 2, ... , NC.

  • NC is the number of concentric rings. NC ≥ 2.

  • Ml is the number of constellation points in the lth ring.

  • Rl is the radius of the lth ring.

  • ϕl is the phase offset of the lth ring.

  • j=1

References

[1] Corazza, Giovanni E. Digital Satellite Communications. New York: Springer Science Business Media, LLC, 2007.

[2] 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.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2018b