MATLAB Examples

Adaptive Equalization with Filtering and Fading Channel

This model shows the behavior of least mean square (LMS) and recursive least square (RLS) adaptive equalizers in a communication link with a fading channel. The transmitter and receiver have root raised cosine pulse shaped filtering.


Structure of the model

  • The transmitter generates 16QAM random signal data which includes a training sequence and applies root raised cosine pulse shaped filtering.
  • Channel impairments include multipath fading, Doppler shift, carrier frequency offset, variable integer delay, free space path loss, and AWGN.
  • The receiver applies root raised cosine pulse shaped filtering, AGC, includes equalizer mode control to enable training and allows you to select the equalizer algorithm from these choices:

$$ \begin{array}{|l|l|c|} \hline\vphantom{\displaystyle\int}
Algorithm}\end{array}\\ \hline\mathrm{LMS\
Linear}&\begin{array}{l}\mathrm{Linear\ least\ mean\ square\
equalizer}\end{array}\\ \hline\mathrm{LMS\
DFE}&\begin{array}{l}\mathrm{Decision\ feedback\ least\ mean\ square\
equalizer}\end{array}\\ \hline\mathrm{RLS\
Linear}&\begin{array}{l}\mathrm{Linear\ recursive\ least\ square\
equalizer}\end{array}\\ \hline\mathrm{RLS\
DFE}&\begin{array}{l}\mathrm{Decision\ feedback\ recursive\ least\
square\ equalizer}\end{array}\\ \hline\end{array} $$

  • The model also uses scopes that can help you understand how different algorithms behave.

Explore Example Model

Experimenting with the model

This model provides several ways for you to change settings and observe the results. The InitFcn found in File>Model Properties>Callbacks calls slex_adaptive_eq_with_fading_init to initialize the model. This file enables you to vary settings in the model, including:

  • System parameters, such as SNR
  • Pulse shaping filter parameters, such as rolloff and filter length
  • Path loss value
  • Channel conditions: Rayleigh or Rician fading, channel path gains, channel path delays, Doppler shift
  • Equalizer choice and parameters

Model Considerations

This non-standards-based communication link is representative of a modern communications system.

  • The optimal equalizer configuration is dependent on the channel conditions. The initialization file sets the Doppler shift and multipath fading channel parameters that highlight the capabilities of different equalizers.

  • The LMS algorithm executes quickly but converges slowly, and its complexity grows linearly with the number of weights.
  • The RLS algorithm converges quickly, but its complexity grows with the square of the number of weights, roughly speaking. This algorithm can also be unstable when the number of weights is large.
  • The channel exercised for different equalizers have the following characteristics:

$$ \begin{array}{|l|l|c|} \hline\vphantom{\displaystyle\int}
Characteristics}\end{array}\\ \hline\mathrm{LMS\
Linear}&\begin{array}{l}\mathrm{3\ tap\ multipath\ fading\ channel\ with\
10\ Hz\ Doppler\ shift}\end{array}\\ \hline\mathrm{LMS\
DFE}&\begin{array}{l}\mathrm{5\ tap\ multipath\ fading\ channel\ with\
25\ Hz\ Doppler\ shift}\end{array}\\ \hline\mathrm{RLS\
Linear}&\begin{array}{l}\mathrm{3\ tap\ multipath\ fading\ channel\ with\
50\ Hz\ Doppler\ shift}\end{array}\\ \hline\mathrm{RLS\
DFE}&\begin{array}{l}\mathrm{5\ tap\ multipath\ fading\ channel\ with\
100\ Hz\ Doppler\ shift}\end{array}\\ \hline\end{array} $$

  • Initial settings for other channel impairments are the same for all equalizers. Carrier frequency offset value is set to 50 Hz. Free space path loss is set to 60 dB. Variable integer delay is set to 2 samples, which requires the equalizers to perform some timing recovery.

Deep channel fades and path loss can cause the equalizer input signal level to be much less than the desired output signal level and result in acceptably long equalizer convergence time. The AGC block adjusts the magnitude of received signal to reduce the equalizer convergence time. The optimal AGC output power level must be adjusted based on the modulation scheme selected. For 16QAM, a desired output power of 10 W is used.

Training of the equalizer is performed:

  • At the beginning of the simulation
  • If the number of symbol errors for a given frame exceeds a preset threshold

The threshold is set to 10 for this model. The equalizer mode control block gets feedback on the number of errors and decides based on this information, whether the equalizer should be trained or decision directed. The Error Rate Calculation block generates the error rate data needed by the equalizer mode control.

Running the Simulation

Running the simulation produces these figures:

  • A constellation diagram of the signal after the receive filter
  • A constellation diagram of the signal after AGC
  • A constellation diagram of the signal after equalization with signal quality measurements shown
  • An equalizer error plot

For the plots shown here the equalizer algorithm selected is RLS Linear. Monitoring these figures, you can see that the received signal quality fluctuates as simulation time progresses. If the error threshold is exceeded, the equalizer reenters training mode.

Equalization Training

Throughout the simulation, the signal before equalization deviates noticeably from a 16QAM signal constellation. At the start of the simulation, the equalizer weights have not converged and constellation after equalization is poor. In the Eq Error plot, at approximately 1 ms the equalizer converges. Between 5 and 6 ms the channel conditions cause the Equalizer Mode Control to switch back to training mode.

After some simulation time passes, the equalizer weighting reconverges and the recovered signal error count stays below the retraining threshold for the remainder of the simulation run.

The After AGC diagram show the constellation before equalization. It shows the impact of the channel conditions on the transmitted signal. The signal plotted in the constellation diagram after equalization shows the variation in signal quality based on the effectiveness of the equalization process.

Further Exploration

Double-click the Equalizer Selector block and select a different equalizer. Run the simulation to see performance of the various equalizer options. You can use the signal logger to compare the results from this experimentation. Right-click on signal wires in the block diagram and select Log Selected Signals.

At the MATLAB™ command prompt, enter edit slex_adaptive_eq_with_fading_init.m to open the initialization file, then modify a parameter and rerun the simulation. If you have enabled signal logging, after the simulation run finishes, open the Simulation Data Inspector to view the logged signals. For example:

  • Adjust the error threshold (params.trngErrorThreshold). Decreasing the error threshold increases the frequency of equalizer weight recomputations, which results in a lower symbol error rate but higher processing burden. Increasing the error threshold decreases the frequency of equalizer weight recomputations, which results in a lower processing burden but a higher overall symbol error rate.