Decision Feedback Equalizer
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
Parameters
(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
- SPS
- Samples per Symbol of the input stream. The output will be downsampled to the symbol rate relative to this parameter
- Alg
- 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
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
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.