modem.genqamdemod - Construct General QAM demodulator object

Syntax

h = modem.genqamdemod(property1, value1, ...)
h = modem.genqamdemod(GENQAMmod_object)
h = modem.genqamdemod(GENQAMmod_object, property1, value1, ...)
h = modem.genqamdemod

Description

The modem.genqamdemod function creates a modulator object that you can use with the demodulate method to demodulate a signal. To learn more about the process for demodulating a signal, see Using Modem Objects.

h = modem.genqamdemod(property1, value1, ...) constructs a General QAM demodulator object h with properties as specified by the property/value pairs.

h = modem.genqamdemod(GENQAMmod_object) constructs a General QAM demodulator object h by reading the property values from the General QAM modulator object, GENQAMmod_object. The properties that are unique to the General QAM demodulator object are set to default values.

h = modem.genqamdemod(GENQAMmod_object, property1, value1, ...) constructs a General QAM demodulator object h by reading the property values from the General QAM modulator object, GENQAMmod_object. Additional properties are specified using property/value pairs.

h = modem.genqamdemod constructs a General QAM demodulator object h with default properties. It constructs a demodulator object for 16-QAM modulation and is equivalent to:

h = modem.genqamdemod(('Constellation', [-3+j*3, -3+j*1, ...
      -3-j*1, -3-j*3, -1+j*3, -1+j*1, -1-j*1, -1-j*3, ...
      1+j*3, 1+j*1, 1-j*1, 1-j*3, 3+j*3, 3+j*1, 3-j*1, ...
      3-j*3], 'OutputType', 'integer', ...
      'DecisionType', 'hard decision')  

Modem Demodulation Method

This object has a method demodulate that is used to demodulate signals.

The syntax is y = demodulate(h, x), where h is the handle to a demodulator object and x is a signal. This syntax processes the binary words (bits) or symbols (integers) in signal x with the demodulator object and output the baseband signal y.

x can be a multichannel signal. The columns of x are considered individual channels, while the rows are time steps.

The demodulator object's property DecisionType should be set depending on whether you want hard or soft (LLR or approximate LLR) decisions. To allow for soft decisions, the demodulator object's property OutputType must be set to 'bit'.

For h.outputtype = ‘bit', an output y of size is computed for an input x of size , where nBits = log2(h.M).

For h.outputtype = ‘integer', an output y of size is computed for an input x of size .

See Using Modem Objects for usage examples.

Properties

A General QAM demodulator object has the following properties. All the properties are writable unless explicitly noted otherwise.

PropertyDescription
TypeType of modulation object. This is a fixed value, set to 'General QAM Demodulator'.
MM-ary value. This property is not writable, and is automatically computed based on Constellation.
ConstellationSignal constellation.
OutputTypeType of output to be computed by the General QAM demodulator object. The choices are 'bit' (bit/binary output), and 'integer' (integer/symbol output).
DecisionTypeType of output values to be computed by the General QAM demodulator object. The choices are 'hard decision' (hard decision values), 'llr' (log-likelihood ratio), and 'approximate llr' (approximate log-likelihood ratio).
NoiseVarianceNoise variance of the received signal to be processed by the General QAM demodulator object. This is used to compute only the LLR or approximate LLR. Hence, NoiseVariance is visible only when DecisionType is set to 'llr' or 'approximate llr'.

Methods

A General QAM demodulator object has the following functions for inspection, management, and simulation:

See Using Modem Objects for details and examples of their use.

Examples

% Construct a General QAM demodulator object with an 
% equidistant 3-point constellation on the unit circle.
M = 3;
h = modem.genqamdemod('Constellation', exp(j*2*pi*[0:M-1]/M))
 
% Construct a General QAM demodulator object to compute 
% log-likelihood ratio of a baseband signal using a two-tiered
% constellation. The estimated noise variance of input signal 
% is 1.2.
h = modem.genqamdemod('Constellation', [exp(j*2*pi*[0:3]/4) ...
                      2*exp(j*(2*pi*[0:3]/4+pi/4))], ...
                      'OutputType', 'Bit', 'DecisionType', ...
                      'LLR', 'NoiseVariance', 1.2)
plot(h.Constellation, '*');grid on;axis('equal',[-2 2 -2 2]);
 
% Construct a demodulator object from an existing modulator
% object for general QAM modulation in order to compute 
% approximate log-likelihood ratio for a baseband signal 
% whose estimated noise variance is 0.81.
modObj = modem.genqammod('Constellation', [-1 1 2*j -2*j], ...
  'InputType', 'Bit')  % existing general QAM modulator object
demodObj = modem.genqamdemod(modObj, 'DecisionType', ...
  'Approximate LLR', 'NoiseVariance', 0.81)

See Also

modem, modem.dpskdemod, modem.dpskmod, modem.genqammod, modem.mskdemod, modem.mskmod, modem.oqpskdemod, modem.oqpskmod, modem.pamdemod, modem.pammod, modem.pskdemod, modem.pskmod, modem.qamdemod, and modem.qammod

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS