Engee documentation

M-PSK Demodulator Baseband

Demodulates data modulated using the M-PSK method.

blockType: MPSKDemodulatorBaseband

Path in the library:

/Communication Systems/Modulation/Digital Modulation/PM/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 is a modulated input signal with noise dispersion
scalar | vector

Details

Modulated PSK is a signal with noise dispersion, 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 noise variance, given as a positive scalar or a vector of positive values.

The exact LLR algorithm computes 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 compute exponents. You can avoid the results Inf, -Inf and NaN using the approximate LLR algorithm.

Dependencies

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

Data types

Float32, Float64

Complex numbers support

I don’t

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

I don’t

Parameters

Parameters

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

Details

The order of modulation of the input signal, specified as a positive number, which 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 input signal elements as integers or bits.

  • If the output type is – Bit, the number of samples in a frame is an integer multiple of the number of bits per character, . The type of output data. Set 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 output of the demodulator: the hard solution, the logarithm of the likelihood ratio (LLR) or the approximate logarithm of the likelihood ratio (LLR). The LLR and ALLR outputs are used with error decoders that support software-based inputs, for example, Viterbi Decoder, to achieve higher performance. For more information, see Algorithms.

Output values for solution types Log-likelihood ratio and Approximate log-likelihood ratio they have the same data type as the input values.

Dependencies

To use this parameter, set the Output type parameter 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 — the source of the noise dispersion
Dialog | Port

Details

The source of the noise dispersion. Set as:

  • Dialog – the noise variance is set using the Noise variance parameter.

  • Port – The noise dispersion is set using the Var port.

Dependencies

To use this parameter, set the Decision type parameter 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 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.

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 matching
Binary | Gray | User-defined

Details

Specify it as an integer or a group of bits. it is displayed on the corresponding symbol. Set as:

  • Gray – The output symbol is mapped to the input signal using a Gray-coded signal constellation.

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

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

Example

[0 3 2 1] for the QPSK signal 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 the input integers are mapped to the output integers. It is set as a vector of rows or columns of size having unique integer values in the range ].

The first element of this vector corresponds to the point of the signal constellation at an angle , and subsequent elements go counterclockwise. The last element corresponds to the point of the signal constellation . is the phase shift in radians, Phase offset (rad), and – 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 shift of the initial signal constellation in radians, given as a scalar.

Example

pi/4

Default value

pi/8

Program usage name

PhaseOffset

Tunable

No

Evaluatable

Yes

Data Type

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

Details

The data type of the demodulated output signal. Set 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 — type of output data
Same as input

Details

The type of output data. Set 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 .