Decision Feedback Equalizer

From GNU Radio
Revision as of 13:25, 30 March 2021 by Mborawski (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Performs non-linear equalization on a stream of complex samples.

The Decision Feedback Equalizer block equalizes the incoming signal using two FIR filter, one on the incoming samples, and one in a feedback path using past decisions to remove inter-symbol interference (ISI). In some scenarios, a DFE can perform better equalization, especially when there are deep nulls in the channel response.

If provided with a training sequence and a training start tag, data aided equalization will be performed starting with the tagged sample. If training-based equalization is active and the training sequence ends, then optionally decision directed equalization will be performed given the adapt_after_training If no training sequence or no tag is provided, decision directed equalization will be performed

This equalizer decimates to the symbol rate according to the samples per symbol parameter


(R): Run-time adjustable

Num Taps Forward
Number of taps for the forward FIR filter
Num Taps Feedback
Number of taps for the feedback FIR filter
Samples per Symbol of the input stream. The output will be downsampled to the symbol rate relative to this parameter
Adaptive algorithm object. This is the heart of the equalizer, it controls how the adaptive weights of the linear equalizer are updated
Training Sequence
Sequence of samples that will be used to train the equalizer. Provide empty vector to default to DD equalizer
Adapt After Training
Flag that when set true, continue DD training after training on specified training sequence
Training Start Tag
String to specify the start of the training sequence in the incoming data

Example Flowgraph[edit]

The included example, le_vs_dfe.grc shows the equalization of a modulated sequence passed through a linear channel.

First a sequence of a known preamble followed by random data are modulated using the Constellation Modulator, then passed through a Channel Model which simulates a multipath channel with AWGN. Next, a correlation estimator is used to find the preamble and tag the stream where it was found.

The resulting equalization is compared with a Linear_Equalizer

Le vs dfe.grc.png

Le vs dfe.grc output.png

We can see that under this particular channel, the modulated sequence can be demodulated with lower EVM as shown in the constellation plot and the time plot which indicates how the equalizer converges at each step.

Source Files[edit]