qamdemod

Quadrature amplitude demodulation

Syntax

z = qamdemod(y,M)
z = qamdemod(y,M,ini_phase)
z = qamdemod(y,M,ini_phase,symbol_order)

Description

z = qamdemod(y,M) demodulates the complex envelope y of a quadrature amplitude modulated signal. M is the alphabet size and must be an integer power of 2. The constellation is the same as in qammod. If y is a matrix with multiple rows, then the function processes the columns independently.

z = qamdemod(y,M,ini_phase) specifies the initial phase of the modulated signal in radians.

z = qamdemod(y,M,ini_phase,symbol_order) specifies how the function assigns binary words to corresponding integers. If symbol_order is set to 'bin' (default), the function will use a natural binary-coded ordering. If symbol_order is set to 'gray', it will use a Gray-coded ordering.

Examples

The code below suggests which regions in the complex plane are associated with different digits that can form the output of the demodulator. The code demodulates random points, looks for points that were demapped to the digits 0 and 3, and plots those points in red and blue, respectively. You might also notice that the regions reflect a rotation of the signal constellation by pi/8.

% Construct [in-phase, quadrature] for random points.
y = 4*(rand(1000,1)-1/2)+j*4*(rand(1000,1)-1/2);
% Demodulate using an initial phase of pi/8.
z = qamdemod(y,4,pi/8);
% Find indices of points that mapped to the digits 0 and 3.
red = find(z==0);
blue = find(z==3);
% Plot points corresponding to 0 and 3.
h = scatterplot(y(red,:),1,0,'r.'); hold on
scatterplot(y(blue,:),1,0,'b.',h);
legend('Points corresponding to 0','Points corresponding to 3');
hold off

Another example using this function is in Computing the Symbol Error Rate.

See Also

qammod, genqamdemod, genqammod, pamdemod, modnorm, Modulation


© 1994-2005 The MathWorks, Inc.