JOINT MMSE-FSE+DFE DESIGN

Raúl Casas - Cornell University Blind Equalization Research Group

This page contains documentation for a set of Matlab software written for experimentation with joint fractionally spaced equalizer (FSE) and decision feedback equalizer (DFE) digital communications receiver designs. Each piece of code is documented and described below through simple examples.


MMSE-FSE+DFE Design

The first set of scripts and functions demostrates the design of a minimum mean square error (MMSE) FSE+DFE system under the following assumptions: The script design.m designs an unbiased MMSE-FSE+DFE receiver (i.e. a MMSE-FSE+DFE constrained to have a channel-FSE cursor equal to unity) using ummse_fse_dfe.m and plots (the real parts of) impulse responses of (a) the channel, (b) the resulting FSE , (c) the channel-FSE combination (d) the DFE, padded with zeros to match the channel-FSE impulse response, as well as (e) the received T/2-spaced data, and (f) the T-spaced equalized data. These are shown in the example figures below for the following settings: Each of these parameters can be changed by the designer directly in the code. The most interesting aspect of this demo is how the resulting design can be interpreted. Here, the FSE is attempting to remove ISI from the precursor of the channel-FSE combination while the DFE matches, and therefore cancels, as much postcursor as it can. The remaining postcursor not included in the ``DFE window'' is also mitigated by the FSE.


Waterfall Plots

The next script waterfall.m (which uses qam_ser.m) provides symbol error rate (SER) versus signal to noise ratio (SNR) curves for certain complex channel with complex AWGN transmitting (square) M-QAM. The idea behind this code is to show the theoretical performance of a FSE+DFE system for some choice of total number of parameters and distribution (i.e. the total number of FSE and DFE taps, and how many are allocated for each filter). The example below compares a MMSE receiver with 128 FSE taps and no DFE taps with one using 96 FSE taps and 32 DFE taps (as done above). Note that the cursor and feedback delays are also important parameters that can be manipulated.


Adaptation

Matlab code implementing a blind adaptive MMSE-FSE+DFE receiver is also provided in adapt.m (the code requires the additional functions ummse_fse.m, qam.m, pam.m and unqam.m). It is based on the following algorithm:
  1. Open the channel eye by adapting the FSE using CMA (CMA-FSE).

  2. Once the eye is open, adapt both the FSE and DFE through decision-direction (DD-FSE+DFE).

This algorithm is detailed in:

``On the Blind Adaptation of a FSE+DFE Combination'', Raul Casas and C.R. Johnson, Jr., Proceedings of IEEE Signal Processing Workshop on Signal Processing in Wireless Communications, pp. 113-116, Paris, France, April 16-18

The script actually works on the second step of the algorithm by initializing the FSE to the MMSE-FSE solution for a certain system delay and the DFE to zero, and then adapting both using decision-direction. Continuing the examples from before, we do this for a 96 tap FSE, 32 tap DFE on channel #3 transmitting 64-QAM at 35 dB SNR. The program plots the FSE and DFE parameter trajectories as well as the impulse responses (b)-(d) at the beginning (above) and end (below) of adaptation. Note how the DD-FSE+DFE algorithm after 500,000 iterations is converging to the MMSE-FSE+DFE solution.