Engee documentation

M-PSK Demodulator Baseband

Demodulates data modulated using the M-PSK method.

m psk demodulator baseband

Description

Block M-PSK Demodulator Baseband demodulates a complex input signal that has been modulated using the PSK method and returns a real output signal.

The modulation order, , corresponds to the number of points in the signal constellation and is defined by the M-ary number parameters. The block accepts scalars or vector-columns as input.

Ports

Input

# IN — M-PSK modulated input signal
scalar | vector

Details

A modulated PSK signal specified as a scalar, vector or matrix. This port remains unnamed until the Var port is enabled.

Data types

Float32 | Float64.

Complex numbers support

Yes

# In — M-PSK modulated input signal with noise variance
scalar | vector

Details

A modulated PSK signal with noise variance, specified as a scalar or vector. This port remains unnamed until the Var port is enabled.

Data types

Float32 | Float64.

Complex numbers support

Yes

# Var — noise dispersion
`positive scalar

Details

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

The exact LLR algorithm computes exponents using finite precision arithmetic. For computations involving very large positive or negative values, the exact LLR algorithm gives the result: Inf or -Inf if the noise variance is very large. NaN if the noise variance and signal power are very small. The approximate LLR algorithm does not compute exponents. You can avoid the results of Inf, -Inf and NaN by using the approximate LLR algorithm.

Dependencies

To use this port, set the Noise variance source parameters to Port.

Data types

Float32 | Float64.

Complex numbers support

No

Output

# OUT — demodulated output signal
scalar | vector

Details

A demodulated PSK signal returned as a scalar or vector.

Data types

Float32 | Float64.

Complex numbers support

No

Parameters

Parameters

# M-ary number — modulation order of the PSK signalling constellation
Real number

Details

The modulation order of the input signal, specified as a positive number that is a power of two.

Example: 2 | 8

Default value

8

Program usage name

M

Tunable

No

Evaluatable

Yes

# Output type — output type
Bit | Integer

Details

Specify the elements of the input signal as integers or bits.

  • If the output type is Bit, the number of samples per frame is an integer multiple of the number of bits per character, . Output Data Type. Defined as:

Values

Bit | Integer

Default value

Integer

Program usage name

OutputType

Tunable

No

Evaluatable

No

# Decision type — demodulator output type
Hard decision | Log-likelihood ratio | Approximate log-likelihood ratio

Details

Specify the demodulator output: hard decision, logarithm of the likelihood ratio (LLR), or approximate logarithm of the likelihood ratio (LLR). The LLR and ALLR outputs are used with error decoders that support software-decision inputs, such as Viterbi Decoder, to achieve higher performance. For more information, see. Algorithms.

The output values for the Log-likelihood ratio and Approximate log-likelihood ratio decision types have the same data type as the input values.

Dependencies

To use this parameter, set the Output type parameters to Bit.

Values

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

Default value

Hard decision

Program usage name

DecisionType

Tunable

No

Evaluatable

No

# Noise variance source — noise dispersion source
Dialog | Port

Details

The source of noise variance. Defined as:

  • Dialog - noise variance is set using the Noise variance parameters.

  • Port - noise variance is specified using the Var port.

Dependencies

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

Values

Dialog | Port

Default value

Dialog

Program usage name

NoiseVarianceSource

Tunable

No

Evaluatable

No

# Noise variance — noise dispersion
Real number

Details

The noise variance given as a positive scalar.

The exact LLR algorithm computes exponents using finite precision arithmetic. For computations involving very large positive or negative values, the exact LLR algorithm gives the result: Inf or -Inf if the noise variance is very large. NaN if the noise variance and signal power are very small. The approximate LLR algorithm does not compute exponents. You can avoid the results of Inf, -Inf and NaN by using the approximate LLR algorithm.

Dependencies

To use this parameter, set the Noise variance source parameter to Dialog.

Default value

1

Program usage name

NoiseVariance

Tunable

Yes

Evaluatable

Yes

# Constellation ordering — character mapping
Binary | Gray | User-defined

Details

Specify how an integer or group of bits is mapped to the corresponding character. Specified as:

  • Gray - the output symbol is mapped to the input signal using a Gray-encoded signal constellation.

  • Binary - the modulated symbol is equal to , where is the phase shift in radians, is the integer output such that , and is the modulation order.

  • User-defined - Specify a vector of size , which has unique integer values in the range ]. The first element of this vector corresponds to a signal constellation point having the value , and subsequent elements go anti-clockwise.

Example: [0 3 2 1 1] for a QPSK signalling constellation

Values

Binary | Gray | User-defined

Default value

Gray

Program usage name

ConstellationOrdering

Tunable

No

Evaluatable

No

# Constellation mapping — custom character display
Array of real numbers

Details

Specify the order in which input integers are mapped to output integers. Defined as a vector of rows or columns of size , having unique integer values in the range ].

The first element of this vector corresponds to a signal constellation point at , and subsequent elements go anti-clockwise. The last element corresponds to a signal constellation point . - is the phase shift in radians, Phase offset (rad), and is the modulation order, M-ary number.

Dependencies

To use this parameter, set the Constellation ordering parameter to User-defined.

Default value

collect(0:7)

Program usage name

ConstellationMapping

Tunable

No

Evaluatable

Yes

# Phase offset (rad) — phase shift in radians
Real number

Details

The phase offset of the initial signal constellation in radians, specified as a scalar.

Example: pi/4

Default value

pi/8

Program usage name

PhaseOffset

Tunable

No

Evaluatable

Yes

Data Type

# Output data type — output data type
Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Bool

Details

The data type of the demodulated output signal type. Defined as:

  • Float64.

  • Float32

  • Float16

  • Int8

  • `UInt8

  • `Int16

  • `UInt16

  • Int32

  • `UInt32

  • Int64

  • UInt64

  • Int128

  • `UInt128

  • Bool

Values

Float64 | Float32 | Float16 | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32 | Int64 | UInt64 | Int128 | UInt128 | Bool

Default value

Float64

Program usage name

OutDataTypeStr

Tunable

No

Evaluatable

No

# Output — output data type
Same as input

Details

Output Data Type. Defined as:

  • Same as input.

Values

Same as input

Default value

Same as input

Program usage name

OutputAsInput

Tunable

No

Evaluatable

No

Additional Info

Algorithms

*BPSK demodulation with hard decision

The signal pre-processing required to demodulate a BPSK signal depends on the configuration.

This figure shows a schematic of the BPSK demodulation signal with hard decision for a configuration with a simple phase shift (multiple of ).

m psk demodulator baseband 1 en

This figure shows the BPSK floating point demodulation signal diagram for a configuration with non-trivial phase shift.

m psk demodulator baseband 2 en

This figure shows the signal diagram of BPSK demodulation with a fixed point hard decision for a configuration with non-trivial phase offset.

m psk demodulator baseband 2.1 en

* QPSK demodulation with hard decision*

The signal pre-processing required to demodulate a QPSK signal depends on the configuration.

This figure shows the signal layout of the QPSK demodulation signal with hard decision for a configuration with simple phase shift (odd multiple of ).

m psk demodulator baseband 3 en

This figure shows the signal diagram of QPSK floating-point signal demodulation with rigid solution for configuration with non-trivial phase shift.

m psk demodulator baseband 4 en

This figure shows the QPSK demodulation signal diagram with rigid fixed point solution for a configuration with non-trivial phase offset.

m psk demodulator baseband 5 en

* Higher-order hard PSK solutions.

The signal pre-processing required for higher order PSK demodulation is configuration dependent.

This figure shows a schematic of an 8-PSK demodulation signal with a hard solution for a configuration with a trivial phase shift (odd multiple of ).

m psk demodulator baseband 6 en

This figure shows the 8-PSK demodulation signal diagram with a fixed-point rigid solution for a configuration with trivial phase shift (odd multiple of ).

m psk demodulator baseband 7 en

This figure shows a diagram of the M-PSK floating point demodulation signals for a non-trivial phase offset configuration.

m psk demodulator baseband 8 en

For , to increase the speed and cost of implementation, in the simple case (namely, when the phase shift is equal to , , or , no derotation arithmetic is performed.

In addition, only double and single input types are supported for .