MT Demodulate FSK VI

LabView Digital Modulation

MT Demodulate FSK VI

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

Note  This VI 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 the MT Resample (Complex Cluster) VI 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 for more information about this effect. You can use the MT Detect FSK VI if your application requires only the demodulated bit stream output and not the recovered complex waveform or measurements.

Details

MT Demodulate FSK

ccclst.gif

input complex waveform specifies the FSK-modulated complex baseband waveform data.

cdbl.gif

t0 specifies the trigger (start) time of the Y array. The default is 0.0.

cdbl.gif

dt specifies the time interval between data points in the Y array. The default is 1.0.

c1dcdb.gif

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

ccclst.gif

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

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

samples per symbol specifies an even, positive number of samples dedicated to each symbol. Multiply this value by the symbol rate to determine the sample rate. The default is 16.

Note  The Modulation Toolkit demodulation and detector VIs use timing recovery, which is optimized for four or more samples per symbol.
c1ddbl.gif

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

cenum.gif

symbol phase continuity specifies whether the phase transitions between symbols are continuous.

continuous (0)

Specifies continuous phase transitions between symbols. This is the default value.

discontinuous (1)

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

c1ddbl.gif

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

Note  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 VI uses data from the previous iteration to eliminate the transient.
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 specified to the demodulator to obtain at least 1,000 symbols at the output. This formula does not account for truncation caused by any specified synchronization parameters.
ccclst.gif

synchronization parameters specifies 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 the MT Generate Synchronization Parameters VI 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.
ci32.gif

expected sync location specifies 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.

ci32.gif

sync location uncertainty specifies the number of symbols before or after the expected sync location where the first symbol of the sync sequence may be located. This parameter is ignored if the expected sync location parameter is set to -1.

c1dcdb.gif

sync sequence specifies the mapped symbol pattern. Although the data type is complex, only the real portion is used. For FSK, the real portion represents the frequency deviation of the symbol 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. For FSK, the real portion of the mapped symbols is the frequency deviation of the symbol value, and the imaginary portion is 0. If this parameter is left empty, the signal is still demodulated.

ci32.gif

sync indent specifies the 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.

c1ddbl.gif

pulse shaping filter coefficients specifies an ordered array containing the desired pulse shaping coefficients. This parameter is used internally to reproduce the ideal waveform for making measurements. Wire the pulse shaping filter coefficients parameter of the MT Generate Filter Coefficients VI to this parameter. When generating the filter coefficients, ensure that the value of the pulse shaping samples per symbol parameter of the MT Generate Filter Coefficients VI is equal to the value of the samples per symbol element of the FSK system parameters cluster to this VI.

cbool.gif

reset? specifies whether the VI continues demodulating using the previous iteration states. reset? must be TRUE whenever you want to restart the demodulator. The VI resets on the first call and when reset? is set to TRUE. Set reset? to FALSE if the input complex waveform is contiguous with the input complex waveform from the previous iteration of this VI. The default is TRUE.

ccclst.gif

error in (no error) can accept error information wired from previously called VIs. Use this information to decide if any functionality should be bypassed in the event of errors from other VIs. Right-click the front panel error in control and select Explain Error or Explain Warning from the shortcut menu for more information about the error.

cbool.gif

status is TRUE (X) if an error occurred or FALSE (checkmark) to indicate a warning or that no error occurred. Right-click the front panel error in control and select Explain Error or Explain Warning from the shortcut menu for more information about the error.

ci32.gif

code identifies the error or warning code. Right-click the front panel error in control and select Explain Error or Explain Warning from the shortcut menu for more information about the error.

cstr.gif

source describes the origin of the error or warning. Right-click the front panel error in control and select Explain Error or Explain Warning from the shortcut menu for more information about the error.

icclst.gif

recovered complex waveform returns 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 the MT Demodulate FM VI, followed by the MT Matched Filter VI. Refer to the VI named mod_Plot FSK Eye Diagram.vi, available in the <LabVIEW >/Modulation/Digital/Support/Examples folder, for an example of how to create and eye diagram.
idbl.gif

t0 returns the trigger (start) time of the Y array.

idbl.gif

dt returns the time interval between data points in the Y array.

i1dcdb.gif

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

i1di8.gif

output bit stream returns the demodulated information bit stream.

Note  For FSK systems with more than 1 bit per symbol, such as 4-FSK, 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...
inclst.gif

measurements returns the results of measurements performed by the FSK demodulator.

idbl.gif

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

idbl.gif

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

idbl.gif

deviation error returns the measured FSK deviation error, in hertz.

idbl.gif

FSK error returns the measured FSK error, in hertz. This value is an average of the average rms deviation error for each FSK state.

FSK error can be measured as a percentage by normalizing the reported FSK error, in hertz, by the maximum ideal frequency deviation and multiplying by 100, as shown in the following formula:

FSK error(%) = [FSK error(Hz)/maximum ideal frequency deviation]×100

The maximum ideal frequency deviation can be obtained from the FSK symbol map.

idbl.gif

sync found index returns the 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, this parameter returns the offset from the start of the input complex waveform to the first complete symbol.

icclst.gif

error out passes error or warning information out of a VI to be used by other VIs. Right-click the front panel error out indicator and select Explain Error or Explain Warning from the shortcut menu for more information about the error.

ibool.gif

status is TRUE (X) if an error occurred or FALSE (checkmark) to indicate a warning or that no error occurred. Right-click the front panel error out indicator and select Explain Error or Explain Warning from the shortcut menu for more information about the error.

ii32.gif

code is the error or warning code. Right-click the front panel error out indicator and select Explain Error or Explain Warning from the shortcut menu for more information about the error.

istr.gif

source describes the origin of the error or warning. Right-click the front panel error out indicator and select Explain Error or Explain Warning from the shortcut menu for more information about the error.

Details

Tip   NI recommends using some form of pulse shaping on continuous-phase FSK-modulated signals to optimize demodulator performance. Demodulator performance under these conditions can also be improved by increasing the number of samples per symbol, but a better improvement is realized 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 2bits per symbol.