Engee documentation

Rectangular QAM Demodulator Baseband

Data demodulation with rectangular QAM modulation.

blockType: RectangularQAMDemodulator

Path in the library:

/Communication Systems/Modulation/Digital Modulation/PAM/QAM/Rectangular QAM Demodulator Baseband

Description

Block Rectangular QAM Demodulator Baseband demodulates a signal modulated using quadrature amplitude modulation with a given order with a constellation on a rectangular grid.

All power values assume a nominal impedance 1 Om.

Ports

Output

# OUT_1 — demodulated signal
scalar | vector

Details

A demodulated signal returned as a scalar or vector.

The dimensions of the demodulated signal depend on the parameter values Output type and Decision type.

Data types

Float64

Complex numbers support

I don’t

Input

# IN_1 — Input signal
scalar | vector

Details

An input signal specified as a scalar or column vector.

Data types

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Complex numbers support

I don’t

# In — QAM-modulated signal
scalar | vector

Details

QAM is a modulated signal specified as a scalar or column vector.

Dependencies

To use this port, set the parameter Noise variance source value Port.

Data types

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Complex numbers support

Yes

# Var — noise dispersion
scalar | vector

Details

The noise variance, given as a positive scalar or a vector of positive values. If noise dispersion or signal strength leads to calculations involving extreme positive or negative values, see the Hard QAM signal demodulation section for a review of the type of demodulation solution.

Dependencies

To use this port, set the parameter Noise variance source value Port.

Data types

Float64

Complex numbers support

I don’t

Parameters

Main

# M-ary number — the order of modulation
Integer

Details

The modulation order is set as a positive integer equal to two. The order of modulation determines the number of points in the signal constellation.

it should have the form for some positive integer .

The block scales the signal constellation depending on the parameter value. Normalization method.

Default value

16

Program usage name

Modulation_order

Tunable

No

Evaluatable

Yes

# Output type — type of output data
Integer | Bit

Details

Determines whether the block will output integers or binary representations of integers.

  • If set for the parameter Output type meaning Integer, the block outputs integers in the range for each character. — this is the modulation order (M-ary number).

  • If set for the parameter Output type meaning Bit, and for the parameter Decision type — value Hard desicion, then for each character , the block outputs a group of a bit called a binary word, .

  • If set for the parameter Output type meaning Bit, and for the parameter Decision type — value Log-likelihood ratio or Approximate log-likelihood ratio, the block outputs a bitwise LLR (communication loss signal) or an approximate LLR, respectively.

Values

Integer | Bit

Default value

Integer

Program usage name

Output_data_type

Tunable

No

Evaluatable

No

# Decision type — type of solution
Hard desicion | Log-likelihood ratio | Approximate log-likelihood ratio

Details

The type of demodulation solution specified as Hard desicion, Log-likelihood ratio or Approximate log-likelihood ratio.

Dependencies

To use this parameter, set for the parameter Output type meaning Bit.

Values

Hard desicion | Log-likelihood ratio | Approximate log-likelihood ratio

Default value

Hard desicion

Program usage name

Decision_type

Tunable

No

Evaluatable

No

# Noise variance source — the source of the noise dispersion
Port | Dialog

Details

The source of the noise dispersion, defined as Dialog or Port.

  • When selecting a value Dialog to set the noise dispersion, use the parameter Noise variance.

  • When selecting a value Port The Var port must be used to set the noise dispersion.

Dependencies

To use this parameter, set for the parameter Decision type meaning Approximate log-likelihood ratio or Log-likelihood ratio.

Values

Port | Dialog

Default value

Dialog

Program usage name

Noise_variance_source

Tunable

No

Evaluatable

No

# Noise variance — noise dispersion
Real number

Details

The noise variance, specified as a positive scalar or vector of positive values.

When setting a parameter Noise variance in the form of a scalar, this value is used for all elements of the input signal.

When setting a parameter Noise variance as a vector, the length of the vector should be equal to the number of columns in the input signal. Each element of the noise dispersion vector is applied to the corresponding column of the input signal.

This parameter is configured in normal mode, accelerator mode, and fast accelerator mode.

The exact LLR algorithm calculates exponentials using finite precision arithmetic. For calculations with very large positive or negative values, the exact LLR algorithm gives:

  • Inf or −Inf if the noise dispersion is very large;

  • NaN if the noise dispersion and signal strength are very small.

The approximate LLR algorithm does not calculate exponents. You can avoid the results. Inf, -Inf and NaN using an approximate LLR algorithm.

Dependencies

To use this parameter, set for the parameter Decision type meaning Log-likelihood ratio or Approximate log-likelihood ratio, and for the parameter Noise variance source meaning Dialog.

Default value

1

Program usage name

Noise_variance

Tunable

No

Evaluatable

Yes

# Constellation ordering — the order in which characters are displayed
Gray | Binary

Details

The order in which characters are displayed is set as Binary or Gray.

Parameter Constellation ordering defines how the block maps each character to a group of output bits or an integer.

Values

Gray | Binary

Default value

Gray

Program usage name

Constellation_order

Tunable

No

Evaluatable

No

# Normalization method — the scaling method for the constellation
Min. distance between symbols | Average power | Peak power

Details

The constellation scaling method, defined as the minimum distance between symbols, average power, or peak power.

Values

Min. distance between symbols | Average power | Peak power

Default value

Min. distance between symbols

Program usage name

Normalization_method

Tunable

No

Evaluatable

No

# Minimum distance — the distance between the two closest points of the constellation
Real number

Details

The distance between the two closest points of the constellation, given as a positive scalar.

Dependencies

To use this parameter, set for the parameter Normalization method meaning Min. distance between symbols.

Default value

2

Program usage name

Min_distance_between_symbols

Tunable

No

Evaluatable

Yes

# Average power, referenced to 1 ohm (watts) — average power
Real number

Details

The average power of the symbols in the constellation in watts, given as a positive scalar. The power values assume a nominal impedance 1 Om.

The unit of measurement is Watts.

Dependencies

To use this parameter, set for the parameter Normalization method meaning Average power.

Default value

1

Program usage name

Average_power

Tunable

No

Evaluatable

Yes

# Peak power, referenced to 1 ohm (watts) — peak power
Real number

Details

The maximum power of symbols in a constellation, given as a positive scalar. The power values assume a nominal impedance 1 Om.

The unit of measurement is Watts.

Dependencies

To use this parameter, set for the parameter Normalization method meaning Peak power.

Default value

1

Program usage name

Peak_power

Tunable

No

Evaluatable

Yes

# Phase offset (rad) — rotation of the signal constellation
Real number

Details

The rotation of the signal constellation, specified as a numeric scalar.

The unit of measurement is rad.

Default value

0

Program usage name

Phase_Offset

Tunable

No

Evaluatable

Yes

Algorithms

Hard QAM signal demodulation

Details

The demodulator algorithm converts the received values of the input signal constellations into -dimensional integer indexes of the characters I and Q in the range , and then converts these demodulated character indexes into formatted output values. — this is the parameter value M-ary number.

The calculation of the integer symbolic index is performed by derotation and scaling of the complex constellation of the input signal (possibly with noise) by the derotation coefficient and the denormalization coefficient, respectively. These coefficients are determined based on the phase shift (rad), the normalization method, and the corresponding parameters. These derated and denormalized values are added to to put them in an approximate range . — this is the added value of noise.

The resulting values are then scaled by dividing by two (or, equivalently, shifting right by one bit for fixed-point operations) to get a range of approximately for I and Q.

Noisy index values are rounded to the nearest integer and trimmed using saturation, and then converted to integer values of characters in the range. .

Finally, based on other block parameters, the integer index is mapped to a character value, which is formatted and converted to the selected output type.

These figures show flowcharts for the operation of floating-point and fixed-point algorithms.

Floating point diagrams are used when the input data type is double or single.

Fixed-point diagrams are used when the input signal is a signed fixed-point data type. The diagram is simplified if the phase shift (rad) is a multiple of or the derived denormalization coefficient is 1.

Signal conversion schemes with trivial phase shift and denormalization coefficient equal to 1

rectangular qam demodulator baseband 1

rectangular qam demodulator baseband 2

Signal conversion schemes with non-trivial phase shift and uneven denormalization coefficient

rectangular qam demodulator baseband 3

rectangular qam demodulator baseband 4

Software demodulation of the QAM signal

Details

Two log likelihood ratio (LLR) algorithms with smooth decision making are available for software demodulation: exact LLR and approximate LLR.

The exact LLR algorithm is more accurate, but the execution speed is lower than that of the approximate LLR algorithm.

The exact LLR algorithm calculates exponentials using finite precision arithmetic. For calculations involving very large positive or negative values, the exact LLR algorithm gives the result:

  • Inf or −Inf if the noise dispersion is very large,

  • NaN if the noise dispersion and signal strength are very small.

The approximate LLR algorithm does not calculate exponents. You can avoid the results. Inf, −Inf and NaN using an approximate LLR algorithm.

Constellation size and scaling

Details

The set of signals contains points where — parameter value M-ary number.

it should have the form for some positive integer .

The block scales the signal constellation depending on what value is set for the parameter. Normalization method.

The following table lists the possible scaling conditions.

Parameter value Normalization method Zoom condition

Min. distance between symbols

The nearest pair of points in the constellation is separated depending on the value of the parameter Minimum distance.

Average Power

The average power of the symbols in a constellation is a parameter Average power, referenced to 1 ohm (watts).

Peak Power

The maximum power of symbols in a constellation is a parameter Peak power, referenced to 1 ohm (watts).