# MT Demodulate FSK (G Dataflow)

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

Note

MT Demodulate FSK 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.

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 FSK if your application requires only the demodulated bit stream output and not the recovered complex waveform or measurements.

## input complex waveform

The modulated complex baseband waveform data.

### t0

Trigger (start) time of the Y array.

Default: 0.0

### dt

Time interval between data points in the Y array.

Default: 1.0

### 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.

## FSK system parameters

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

Note

If you configure the symbol phase continuity element of the FSK system parameters cluster to discontinuous, no pulse-shaping filter can be applied, and the matched filter coefficients parameter is ignored. Refer to MT Generate FSK System Parameters (M) or MT Generate FSK System Parameters (map) for more information about these parameters.

### samples per symbol

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

Note

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

Default: 16

### symbol map

An ordered array that maps each Boolean symbol to its desired deviation frequency. The number of FSK levels in the array is 2 N , where N is the number of bits per symbol.

### symbol phase continuity

Continuity of phase transitions between symbols.

Name Description
continuous

Continuous phase transitions between symbols.

discontinuous

Discontinuous phase transitions between symbols, that is, discontinuous phase FSK (DPFSK).

With discontinuous phase-FSK (DPFSK), modulation consists of selecting the appropriate sinusoid based on the input data. Thus, when switching between symbols, there is a discontinuity in the FSK signal phase. To emulate a hardware-based DPFSK source, this node maintains the phase of each independent sinusoid versus time. Thus, the DPFSK modulator acts like a hardware-based (multiple switched tone generator) FSK modulator.

Default: continuous

## 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 FSK system parameters cluster passed to this node.

Dependency on reset? Input

reset? reset?
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/2 + P/2 + 4(13 + K)]/K, where L is the matched filter length in taps, P is the pulse-shaping filter length in taps, and K is the number of samples per symbol. For typical values of L = 57, P = 25, and K = 4, this value equals 27.25 symbols. Therefore, when reset? is set to TRUE, a total of 1,028 FSK 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.

## synchronization parameters

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

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 carrier phase ambiguity.

### 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.

### sync sequence

The mapped symbol pattern. Although the data type is complex, only the real portion is used.

The real portion of the mapped symbols is the frequency deviation of the symbol value, and the imaginary portion is 0. To prevent false synchronization, configure this pattern so 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.

### 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

### 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

## error in

Error conditions that occur before this node runs. The node responds to this input according to standard error behavior.

Default: no error

## pulse shaping filter coefficients

An ordered array containing the desired pulse shaping coefficients. This parameter is used to reproduce the ideal waveform for performing 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 FSK system parameters cluster.

## 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

## recovered complex waveform

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

Note

The recovered complex waveform returned by the FSK demodulator is corrected for carrier phase and frequency offsets. Because FSK modulation is essentially a digital implementation of analog FM modulation, you must perform FM demodulation and matched filtering to make frequency deviation measurements or display the eye diagram of the frequency of the recovered waveform. To do this, pass the recovered complex waveform to MT Demodulate FM, followed by MT Matched Filter.

### t0

Trigger (start) time of the Y array.

Default: 0

### dt

Time interval between data values in the Y array.

Default: 1.0

### 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.

## output bit stream

The demodulated information bit stream.

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...

## measurements

Measurements performed by the demodulator.

### frequency offset

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

### frequency drift

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

### phase offset

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

## 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.

## error out

Error information. The node produces this output according to standard error behavior.

## Demodulator Performance

Tip

NI recommends using some form of pulse shaping on continuous-phase FSK- and CPM-modulated signals to optimize demodulator performance. Demodulator performance under these conditions can also be improved by increasing the number of samples per symbol, but you can achieve better performance by using some form of pulse shaping.

## 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\left[n\right]={b}_{0}x\left[n\right]+{b}_{1}x\left[n-1\right]+...+{b}_{P}x\left[n-P\right]$

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=\left(L-1\right)\frac{{\mathrm{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=\frac{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: Not supported