genqammod

General quadrature amplitude modulation (QAM)

Description

example

y = genqammod(x,const) returns the complex envelop of the QAM for message signal x. Input const specifies the signal mapping for the modulation.

Examples

collapse all

Create the points that describe a hexagonal constellation.

inphase = [1/2 1 1 1/2 1/2 2 2 5/2];
quadr = [0 1 -1 2 -2 1 -1 0];
inphase = [inphase;-inphase]; inphase = inphase(:);
quadr = [quadr;quadr]; quadr = quadr(:);
const = inphase + 1i*quadr;

Plot the constellation.

h = scatterplot(const);

Generate input data symbols. Modulate the symbols using this constellation.

x = [3 8 5 10 7];
y = genqammod(x,const);

Demodulate the modulated signal, y.

z = genqamdemod(y,const);

Plot the modulated signal in same figure.

hold on;
scatterplot(y,1,0,'ro',h);
legend('Constellation','Modulated signal');

Determine the number of symbol errors between the demodulated data to the original sequence.

numErrs = symerr(x,z)
numErrs = 0

Input Arguments

collapse all

Message signal, specified as a scalar, vector, matrix, or 3-D array of numeric values. The message signal must consist of integers from 0 and length(const)–1. If x is a matrix with multiple rows, the function processes the columns independently.

Data Types: double | single | fi | int8 | int16 | uint8 | uint16

Signal mapping, specified as a complex vector.

Data Types: double | single | fi | int8 | int16 | uint8 | uint16
Complex Number Support: Yes

Output Arguments

collapse all

Complex envelope, returned as a scalar, vector, matrix, or 3-D array of numeric values. The length of y is the same as the length of input x.

Data Types: double | single | fi | int8 | int16 | uint8 | uint16

Extended Capabilities

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

Introduced before R2006a