Main Content

genqamdemod

General quadrature amplitude demodulation

Description

example

z = genqamdemod(y,const) demodulates the complex envelope, y, of a quadrature amplitude modulated signal using the signal mapping specified in const.

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);

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot contains an object of type line. This object represents Channel 1.

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');

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot contains 2 objects of type line. These objects represent 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

Complex envelope, specified as a scalar, vector, matrix, or 3-D array of numeric values. If y is a matrix with multiple rows, the function processes the rows independently.

Signal mapping, specified as a complex vector.

Data Types: double | single
Complex Number Support: Yes

Output Arguments

collapse all

Message signal, returned as a scalar, vector, matrix, or 3-D array of numeric values. The message signal consists of integers between 0 and length(const)–1. The datatype of z is the same as the data type of input x.

Data Types: double | single

Extended Capabilities

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

Introduced before R2006a