Table Of Contents

MT Demodulate PSK (G Dataflow)

Version:
    Last Modified: February 7, 2018

    Demodulates a phase-shift keying (PSK) modulated complex baseband waveform and returns the time-aligned oversampled complex waveform, the demodulated bit stream, and measurement results obtained during demodulation. This node attempts to remove carrier and phase offset by locking to the carrier signal.

    spd-note-note
    Note  

    This note assumes that the sample rate of the input complex waveform is exactly samples per symbol × the symbol rate. If this relationship does not apply to your application, use MT Resample (Complex Cluster) to resample the waveform to the desired sample rate.

    spd-note-note
    Note  

    Matched filtering and/or waveform realignment performed during symbol timing recovery may lead to the apparent loss of bits. Refer to Filter Delay in the Details for more information about this effect. You can use MT Detect PSK if your application requires only the demodulated bit stream output and not the recovered complex waveform or measurements.

    connector_pane_image
    datatype_icon

    input complex waveform

    The modulated complex baseband waveform data.

    datatype_icon

    t0

    Trigger (start) time of the Y array.

    Default: 0.0

    datatype_icon

    dt

    Time interval between data points in the Y array.

    Default: 1.0

    datatype_icon

    Y

    The complex-valued signal-only baseband modulated waveform. The real and imaginary parts of this complex data array correspond to the in-phase (I) and quadrature-phase (Q) data, respectively.

    datatype_icon

    PSK system parameters

    Parameter values defining the PSK system. Wire the PSK system parameters cluster of MT Generate PSK System Parameters (M) or MT Generate PSK System Parameters (map) to this cluster. Do not alter the values.

    datatype_icon

    samples per symbol

    An even number of samples dedicated to each symbol. Multiply this value by the symbol rate to determine the sample rate.

    spd-note-note
    Note  

    The demodulation and detector nodes use timing recovery, which is optimized for four or more samples per symbol.

    Default: 16

    datatype_icon

    symbol map

    An ordered array that maps each Boolean symbol to its desired coordinates in the complex plane. The number of states in the array must be 2 N , where N is the number of bits per symbol.

    datatype_icon

    differential PSK

    Status of the differential PSK.

    Name Description
    disable

    Disables bit sequence encoding.

    enable

    Enables bit sequence encoding.

    Default: enable

    datatype_icon

    PSK type

    Type of PSK modulation.

    Name Description
    normal

    Sets the modulation type to regular PSK.

    shifted

    Rotates the constellation by π /M each symbol.

    offset

    Sets the modulation type to offset quadrature phase-shift keying (OQPSK). This modulation scheme is a form of phase-shift keying in which four different phase angles are used. This scheme is sometimes referred to as staggered quadrature phase-shift keying (SQPSK). For offset PSK, the ideal symbol timing for Q is offset by 1/2 of a symbol period from the ideal symbol timing for I. offset is currently only supported for M= 4.

    Default: normal

    datatype_icon

    matched filter coefficients

    An ordered array containing the desired matched filter coefficients. Wire the matched filter coefficients parameter of MT Generate Filter Coefficients to this parameter. When generating the filter coefficients, ensure that the value of the matched samples per symbol parameter of MT Generate Filter Coefficients is equal to the value of the samples per symbol element of the PSK system parameters cluster passed to this node.

    Dependency on reset? Input

    When reset? is set to TRUE, there is a transient response of half the filter length at the start of the demodulated signal, and the returned data is shortened by approximately half the filter length. When reset? is set to FALSE, the node uses data from the previous iteration to eliminate the transient.

    spd-note-tip
    Tip  

    When reset? is set to TRUE, the number of trailing symbols that are carried over to the next iteration during demodulation is upper bounded by [L + 4(13 + K)]/K , where L is the matched filter length in taps and K is the number of samples per symbol. For typical values of L = 25 (4 samples per symbol, filter length of 6 symbols) and K = 4, this value equals 23.25 symbols. Therefore when reset? is set to TRUE, a total of 1,024 PSK symbols must be passed to the demodulator to obtain at least 1,000 symbols at the output. This formula does not account for truncation due to any specified synchronization parameters.

    datatype_icon

    synchronization parameters

    Parameter values describing the synchronization sequence and the range of bits over which to search for this sequence. Wire the PSK synchronization parameters cluster returned by the PSK bit array or number array instances of MT Generate Synchronization Parameters to this cluster.

    spd-note-note
    Note  

    If the synchronization parameters cluster is not wired, the demodulator does not attempt to synchronize, and the constellation of the demodulated waveform has a 180° carrier phase ambiguity.

    datatype_icon

    expected sync location

    The expected location of the first symbol of the sync sequence.

    This value is an index to the input complex waveform. A value of -1 searches the entire input complex waveform and ignores the sync location uncertainty parameter.

    datatype_icon

    sync sequence

    The mapped symbol pattern used to synchronize the bit stream. To prevent false synchronization, select this pattern such that there is a low probability of accidental correlation to nonsynchronized parts of the data stream. If this parameter is left empty, the signal is still demodulated, but there is a phase ambiguity in the recovered symbols.

    datatype_icon

    sync location uncertainty

    Number of symbols before or after the expected sync location where the first symbol of the sync sequence may be located. The node ignores this parameter if the expected sync location parameter is set to -1.

    Default: 10

    datatype_icon

    sync indent

    Distance that the sync sequence is indented into the information block.

    The distance is the number of demodulated symbols preceding the sync sequence. For example, a value of 10 indicates that the output bit stream consists of 10 data symbols, followed by the sync sequence, followed by the remaining data symbols.

    Default: 0

    datatype_icon

    error in

    Error conditions that occur before this node runs.

    The node responds to this input according to standard error behavior.

    Standard Error Behavior

    Many nodes provide an error in input and an error out output so that the node can respond to and communicate errors that occur while code is running. The value of error in specifies whether an error occurred before the node runs. Most nodes respond to values of error in in a standard, predictable way.

    error in does not contain an error error in contains an error
    If no error occurred before the node runs, the node begins execution normally.

    If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.

    If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.

    Default: No error

    datatype_icon

    pulse shaping filter coefficients

    An ordered array containing the desired pulse shaping coefficients. This parameter is used to remodulate the bit stream to perform measurements. Wire the pulse shaping filter coefficients parameter of MT Generate Filter Coefficients to this parameter. When generating the filter coefficients, ensure that the value of the pulse shaping samples per symbol parameter of MT Generate Filter Coefficients is equal to the value of the samples per symbol element of the PSK system parameters cluster.

    datatype_icon

    reset?

    A Boolean that determines whether the node continues demodulating using the previous iteration states.

    TRUE Restarts the demodulator. The node resets on the first call and when reset? is set to TRUE.
    FALSE Continues demodulating using the previous iteration states. The input complex waveform is contiguous with the input complex waveform from the previous iteration of this node.

    Default: TRUE

    datatype_icon

    recovered complex waveform

    The time-aligned and oversampled complex waveform data after matched filtering, frequency offset correction, and phase offset correction. The frequency offset and phase offset corrections are scalar values applied to the entire block.

    datatype_icon

    t0

    Time of the first value in the Y array.

    datatype_icon

    dt

    Time interval between data values in the Y array.

    Default: 1.0

    datatype_icon

    Y

    The complex-valued signal-only baseband modulated waveform. The real and imaginary parts of this complex data array correspond to the in-phase (I) and quadrature-phase (Q) data, respectively.

    datatype_icon

    output bit stream

    The demodulated information bit stream.

    spd-note-note
    Note  

    For systems with more than 1 bit per symbol the symbols are converted to bits in least significant bit (LSB) first order. For example, if the detected symbols are 2,1,... the generated bits are 0,1,1,0...

    datatype_icon

    measurements

    Measurements performed by the demodulator.

    datatype_icon

    frequency offset

    The measured carrier frequency offset, in hertz (Hz). The measured frequency offset is removed from the recovered complex waveform.

    datatype_icon

    frequency drift

    The measured carrier frequency drift, in Hz. The measured frequency drift is not removed from the recovered complex waveform.

    datatype_icon

    phase offset

    The measured phase offset, in degrees. The measured phase offset is removed from the recovered complex waveform.

    datatype_icon

    sync found index

    Symbol index within the input complex waveform where the peak correlation to the sync sequence was found. If no sync sequence is specified in the synchronization parameters cluster, the sync found index parameter returns the offset from the start of the input complex waveform to the first complete symbol.

    datatype_icon

    error out

    Error information.

    The node produces this output according to standard error behavior.

    Standard Error Behavior

    Many nodes provide an error in input and an error out output so that the node can respond to and communicate errors that occur while code is running. The value of error in specifies whether an error occurred before the node runs. Most nodes respond to values of error in in a standard, predictable way.

    error in does not contain an error error in contains an error
    If no error occurred before the node runs, the node begins execution normally.

    If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.

    If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.

    Offset PSK Mode

    Offset PSK mode is only supported for 4-PSK (OQPSK), and setting psk type to offset requires some form of band-limiting filtration. Raised cosine and root-raised cosine are the only valid filter types for OQPSK demodulation. Demodulator locking performance degrades with alpha values <0.3 in the raised cosine or root-raised cosine filter design. Set the PSK type parameter to offset in MT Generate PSK System Parameters (M) or MT Generate PSK System Parameters (Map) to access this mode.

    Matched Filter Demodulation

    If the matched filter used in demodulation has a large number of significant taps, the recovered complex waveform might have some transients at the beginning when the reset? parameter is set to TRUE. This results in a few distorted constellation points if the constellation is plotted from the recovered complex waveform after suitable decimation. In such cases, NI recommends deleting the initial part of the recovered complex waveform for a length equal to the length of the matched filter.

    Successful Locking

    Successful locking depends on many factors, including signal quality, modulation type, filtering parameters, and acquisition size. Locking also requires a fairly uniform distribution of symbols in the signal. The demodulator lock rate increases (and failures decrease) as the number of symbols demodulated increases. In general, you can expect to achieve a better than 95% lock when demodulating 10 × M number of symbols, where M is 2 bits per symbol .

    Filter Delay

    Finite impulse response (FIR) filters are used for different operations such as pulse-shaping, matched filtering, and downconversion filtering. For such filters, the output signal is related to the input signal as shown by the following equation:
    y [ n ] = b 0 x [ n ] + b 1 x [ n 1 ] + ... + b P x [ n P ]

    where

    P is the filter order

    x[n] is the input signal

    y[n] is the output signal

    bi are the filter coefficients

    The initial state for all samples in an FIR filter is 0. The filter output until the first input sample reaches the middle tap (the first causal sample) is called the transient response, or filter delay. For an FIR filter that has N taps, the delay is (N-1)/2 samples. This relationship is illustrated in the following figure, where a sine wave is filtered by an FIR filter with 50 taps.

    Recovering Samples in Single-Shot Operations

    In single-shot operations for modulators and demodulators, the filter delay is truncated before the signal is generated because these samples are not valid. Some samples at the end of the block do not appear at the modulator or demodulator output, and hence appear to have been lost.

    You can recover these samples by sending extra samples to the modulator or demodulator. To determine how many extra samples you must add, use the following guidelines:
    • For modulation: Let L be the pulse-shaping filter length, m be the number of samples per symbol, and M be the modulation order. The number of bits to be added to the input bit stream is given by the following formula:
      N = ( L 1 ) log 2 M m
    • For demodulation: Demodulation use filters during matched filtering. Let L be the length of the matched filter. The number of samples to be added to the input signal prior to filtering is given by the following formula:
      N = L 1 2
      The N extra samples are obtained by repeating the last sample value of the input signal N times to ensure signal continuity.

    Where This Node Can Run:

    Desktop OS: Windows

    FPGA:

    Web Server: Not supported in VIs that run in a web application


    Recently Viewed Topics