This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

dvbsapskmod

DVB-S2/S2X/SH standard-specific amplitude phase shift keying (APSK) modulation

Syntax

y = dvbsapskmod(x,M,stdSuffix)
y = dvbsapskmod(x,M,stdSuffix,codeIDF)
y = dvbsapskmod(x,M,stdSuffix,codeIDF,frameLength)
y = dvbsapskmod(___,Name,Value)

Description

example

y = dvbsapskmod(x,M,stdSuffix) performs APSK modulation on the input signal, x, in accordance with the digital video broadcast (DVB) standard identified by stdSuffix and the modulation order, M.

example

y = dvbsapskmod(x,M,stdSuffix,codeIDF) specifies the code identifier, codeIDF, to use when selecting the modulation parameters.

example

y = dvbsapskmod(x,M,stdSuffix,codeIDF,frameLength) specifies codeIDF and frameLength to use when selecting the modulation parameters.

example

y = dvbsapskmod(___,Name,Value) specifies options using one or more name-value pair arguments using any of the previous syntaxes. For example, 'OutputDataType','double' specifies the desired output data type as double. Specify name-value pair arguments after all other input arguments.

Examples

collapse all

Modulate data using the DVB-S2X standard specified 32-APSK modulation scheme. Display the result in a scatter plot.

Set the modulation order and the suffix identifying the DVB-S2X standard. Create a data vector with all possible symbols.

M = 32;
stdSuffix = 's2x';
x = (0:M-1);

Modulate the data.

y = dvbsapskmod(x,M,stdSuffix);

Display the constellation using a scatter plot.

scatterplot(y)

Modulate data using 64-APSK as specified in DVB-S2X standard. Plot constellation for different code identifiers.

Set the modulation order and standard suffix. Generate 1000 symbols of random data in one channel.

M = 64;
std = 's2x';
x = randi([0 M-1],1000,1);

Modulate the data according to the 64-APSK constellation for the code identifier 7/9 and plot the reference constellation.

y1 = dvbsapskmod(x,M,std,'7/9','PlotConstellation',true);

Modulate setting the code identifier to 132/180 and observe the constellation structure differences.

y2 = dvbsapskmod(x,M,std,'132/180','PlotConstellation',true);

Modulate data using 16-APSK as specified in DVB-S2 standard for normal and short frame lengths. Compute the output signal power.

Set the modulation order and the standard suffix. Generate random bit data for 1000 symbols in one channel.

M = 16;
std = 's2';
x = randi([0 1],1000*log2(M),1);

Set the input type to bit and modulate the data according to the 16-APSK constellation for code identifier 2/3. Use the default normal frame length.

y1 = dvbsapskmod(x,M,std,'2/3','InputType','bit');

Modulate the data using different settings, set the code-identifier to 8/9 and use a short frame length.

y2 = dvbsapskmod(x,M,std,'8/9','short','InputType','bit');

The average power of the modulated signal changes based on the code identifier. Compute the average power of the modulated signals.

y1avgPow = mean(abs(y1).^2)
y1avgPow = 0.7590
y2avgPow = mean(abs(y2).^2)
y2avgPow = 0.7716

Modulate data applying 16-APSK as specified in the DVB-SH and DVB-S2 standards. Normalize the modulator output so that it has an average signal power of 1 W.

Set the modulation order and generate all possible symbols.

M = 16;
x =  0:M-1;

Modulate the data applying 16-APSK as specified in DVB-SH. Use a name-value pair to specify single data type output.

y1 = dvbsapskmod(x,M,'sh','OutputDataType','single');

Modulate the data applying 16-APSK as specified in DVB-S2. Use a name-value pair to specify single data type output.

y2 = dvbsapskmod(x,M,'s2','OutputDataType','single');

Modulate the data applying 16-APSK as specified in DVB-S2. Use name-value pairs to set unit average power to true and to specify single data type output.

y3 = dvbsapskmod(x,M,'s2','UnitAveragePower',true,'OutputDataType','single');

Check which signals have unit average power.

y1avgPow = mean(abs(y1).^2)
y1avgPow = single
    1
y2avgPow = mean(abs(y2).^2)
y2avgPow = single
    0.7752
y3avgPow = mean(abs(y3).^2)
y3avgPow = single
    1.0000

Input Arguments

collapse all

Input signal, specified as a scalar, vector, or matrix. The elements of x must be binary values or integers that range from 0 to (M – 1), where M is the modulation order.

Note

To process the input signal as binary elements, set 'InputType' value to 'bit'. For binary inputs, the number of rows must be an integer multiple of log2(M). A group 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: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Modulation order, specified as a power of two. The modulation order specifies the total number of points in the signal constellation.

Data Types: double

Standard suffix for DVBS modulation variant, specified as 's2', 's2x', or 'sh'.

Data Types: char | string

Code identifier, specified as a character vector or string. This table lists the acceptable codeIDF values.

Constellation Order (M)Applicable Standard (stdSuffix)Acceptable Code Identifier (CodeIDF) Values
16

's2' or 's2x'

'2/3', '3/4', '4/5', '5/6', '8/9', '9/10'

16

's2x'

'26/45', '3/5', '28/45', '23/36', '25/36', '13/18', '7/9', '77/90', '100/180', '96/180', '90/180', '18/30', '20/30'

32

's2' or 's2x'

'3/4', '4/5', '5/6', '8/9', '9/10'

32

's2x'

'32/45', '11/15', '7/9', '2/3'

64

's2x'

'11/15', '7/9', '4/5', '5/6', '128/180'

128

's2x'

'3/4', '7/9'

256

's2x'

'32/45', '3/4', '116/180', '20/30', '124/180', '22/30'

For more information, refer to Tables 9 and 10 in the DVB-S2 standard, [1], and Table 17a in the DVB-S2X standard, [2].

Dependencies

This input argument applies only when stdSuffix is set to 's2' or 's2x'.

Data Types: char | string

Frame length, specified as 'normal' or 'short'. frameLength and codeIDF are used to determine the modulation parameters.

Dependencies

This input argument applies only when stdSuffix is set to 's2' or 's2x'.

Data Types: char | string

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: y = dvbsapskmod(x,M,std,'InputType','bit','OutputDataType','single');

Input type, specified as the comma-separated pair consisting of 'InputType' and either 'integer' or 'bit'. To use 'integer', the input signal must consist of integer values from 0 to (M – 1). To use 'bit', the input signal must contain binary values and the number of rows must be an integer multiple of log2(M).

Data Types: char | string

Unit average power flag, specified as the comma-separated pair consisting of 'UnitAveragePower' and a logical scalar. When this flag is true, the function scales the constellation to an average power of 1 watt referenced to 1 ohm. When this flag is false, the function scales the constellation based on specifications in the relevant standard, as described in [1] and [2].

Note

When stdSuffix is set to 'sh', the constellation always has unit average power.

Dependencies

This name-value pair argument applies only when stdSuffix is set to 's2' or 's2x'.

Data Types: logical

Output data type, specified as the comma-separated pair consisting of 'OutputDataType' and either 'double' or 'single'.

Data Types: char | string

Option to plot constellation, specified as the comma-separated pair consisting of 'PlotConstellation' and a logical scalar. To plot the constellation, set PlotConstellation to true.

Data Types: logical

Output Arguments

collapse all

Modulated signal, returned as a complex scalar, vector, or matrix. The dimensions of y depend on the specified 'InputType' value.

'InputType' ValueDimensions of y
'integer'y has the same dimensions as input x.
'bit'The number of rows in y equals the number of rows in x divided by log2(M).

Data Types: double | single

More About

collapse all

DVB-S2/S2X/SH

Digital video broadcasting (DVB) standards specify S2, S2X, and SH standard-specific amplitude phase shift keying (APSK) modulation. For further information on the DVB-S2/S2X/SH standards, see specified in [1], [2], and [3], respectively.

References

[1] ETSI Standard EN 302 307 V1.4.1: Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications (DVB-S2), European Telecommunications Standards Institute, Valbonne, France, 2005-03.

[2] ETSI Standard EN 302 307-2 V1.1.1: Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications (DVB-S2X), European Telecommunications Standards Institute, Valbonne, France, 2015-02.

[3] ETSI Standard EN 302 583 V1.1.1: Digital Video Broadcasting (DVB); Framing structure, channel coding and modulation for Satellite Services to Handheld devices (SH), European Telecommunications Standards Institute, Valbonne, France, 2008-03.

Extended Capabilities

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

Introduced in R2018a