| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Communications Blockset |
| Contents | Index |
| Learn more about Communications Blockset |
| On this page… |
|---|
Sources of Background Material |
Time-dispersive channels can cause intersymbol interference (ISI). For example, in a multipath scattering environment, the receiver sees delayed versions of a symbol transmission, which can interfere with other symbol transmissions. An equalizer attempts to mitigate ISI and thus improve the receiver's performance.
This section describes the capabilities of the Equalizers library's blocks.
To learn more about equalizers in general, see these sections of the Communications Toolbox documentation about equalizer functions:
Overview of Adaptive Equalizer Classes gives brief background material on the supported adaptive equalizer types
Choosing an Adaptive Algorithm has a brief description of the different adaptive algorithms, to help you decide which one might be appropriate for your application
Selected Bibliography for Equalizers has a list of published works that contain more detailed background material
Open the Equalizers library by double-clicking its icon in the main Communications Blockset library. This blockset supports these distinct classes of equalizers, each with a different overall structure:
Linear equalizers, a class that includes symbol-spaced equalizers and fractionally spaced equalizers
Decision-feedback equalizers
MLSE (maximum-likelihood sequence estimation) equalizer that uses the Viterbi algorithm
Linear and decision-feedback equalizers are adaptive equalizers that use an adaptive algorithm when operating. For each of the adaptive equalizer classes listed above, this blockset supports these adaptive algorithms:
Least mean square (LMS)
Normalized LMS
Signed LMS, including these types: sign LMS, sign regressor LMS, and sign-sign LMS
Variable-step-size LMS
Recursive least squares (RLS)
Constant Modulus Algorithm (CMA)
Several blocks from the Equalizers library implement adaptive equalizers, differing in the equalizer structure and the type of adaptive algorithm that they use. In all cases, you specify information about the equalizer structure (such as the number of taps), the adaptive algorithm (such as the step size), and the signal constellation used by the modulator in your model. You also specify an initial set of weights for the taps of the equalizer; the block adaptively updates the weights throughout the simulation. For adaptive algorithms other than CMA, the equalizer can adapt the weights in two modes: training mode and decision-directed mode. The following sections discuss some configuration details for blocks in the library:
Each equalizer block has a Signal constellation parameter that specifies the constellation for the modulated signal, as determined by the modulator in your model. Signal constellation is a vector of complex numbers, where the kth complex number in the vector is the constellation point to which the modulator maps the integer k-1.
Note The sequence of constellation points must be consistent between the modulator in your model and the Signal constellation parameter in the equalizer block. |
In typical applications, an equalizer begins by using a known sequence of transmitted symbols when adapting the equalizer weights. The known sequence, called a training sequence, enables the equalizer to gather information about the channel characteristics. After the equalizer finishes processing the training sequence, it adapts the equalizer weights in decision-directed mode using a detected version of the output signal. CMA equalizers are an exception, using neither training mode nor decision-directed mode.
To train a non-CMA equalizer block at the beginning of each frame throughout the simulation, follow these steps:
Clear the Mode input port check box.
Provide the training sequence at the input port labeled Desired. Valid training symbols are those listed in the Signal constellation vector. The block operates in training mode at the beginning of each frame and switches to decision-directed mode when it runs out of training symbols.
Typically, the symbol periods of the Input and Desired inputs match; that is, the sample time of the Desired signal is k times the sample time of the Input signal, where k is the Number of samples per symbol parameter in the equalizer block. If your training sequence is constant throughout the simulation, the Simulink Constant block is a convenient way to specify the sequence without having to specify a sample time explicitly.
To train a non-CMA equalizer block only on selected frames during the simulation, see Controlling the Use of Training or Decision-Directed Mode.
Decision-directed mode means that the equalizer uses a detected version of its output signal when adapting the weights. Adaptive equalizers typically start with a training sequence (as mentioned in Equalizing Using a Training Sequence) and switch to decision-directed mode after exhausting all symbols in the training sequence. CMA equalizers are an exception, using neither training mode nor decision-directed mode. The non-CMA equalizer blocks in this library operate in decision-directed mode when one of these conditions is true:
The equalizer started processing the current input frame in training mode, exhausted all symbols in the training sequence frame, and still has more input symbols to process.
The Mode input port check box is selected and the Mode input signal is 0.
You can configure a non-CMA equalizer block so that it adapts in training mode for the beginning or the entirety of selected frames. To achieve this level of control over the equalizer's mode, follow these steps:
Enable the Mode input port by checking the Mode input port check box.
Send a binary-valued scalar signal to the Mode input port. The Mode input enables you to toggle back and forth between training mode and decision-directed mode. The significance of this signal is as follows:
When the Mode input is 0, the equalizer operates in decision-directed mode on the entire frame and ignores the Desired input.
When the Mode input is 1, the equalizer operates in training mode at the beginning of the frame until it exhausts the symbols in the Desired input, and operates in decision-directed mode afterwards. If the Mode input is 1 and the Desired input has as many symbols as the Input signal has, then the equalizer operates in training mode on the entire frame.
You can configure the equalizer block so that it outputs the weights and/or error signal throughout the simulation. The table below indicates how to enable the extra output ports for these signals.
| Signal | Port Label | How to Enable |
|---|---|---|
| Error signal. For the exact definition, see the block's online reference page. | Err | Check the Output error check box. |
| A vector listing the weights after the block has processed either the current input frame or, in sample-based mode, the current input sample. | Wts | Check the Output weights check box. |
This example illustrates the usage of an LMS linear equalizer. The simulation transmits a 16-QAM signal, modeling the channel using an FIR filter followed by additive white Gaussian noise. The equalizer receives the signal from the channel and, as training symbols, a subset of the modulator's output. The equalizer operates in training mode at the beginning of each frame and switches to decision-directed mode when it runs out of training symbols. The example contrasts the signals before and after equalization to illustrate the effect of the equalizer.
To open the completed model, click here in the MATLAB Help browser.

To build the model, gather and configure these blocks:
Random Integer Generator, in the Random Data Sources sublibrary of the Comm Sources library
Set M-ary number to 16.
Set Sample time to 1/1000.
Select Frame-based outputs.
Set Samples per frame to 1000.
Rectangular QAM Modulator Baseband, in the AM sublibrary of the Digital Baseband sublibrary of Modulation
Set Normalization method to Average Power.
Set Average power to 1.
Digital Filter, in the Signal Processing Blockset Filter Designs sublibrary of Filtering
Set Transfer function type to FIR (all zeros).
Set Filter structure to Direct form transposed.
Set Numerator coefficients to [1 -.3 .1 .2j].
Submatrix, in the Signal Processing Blockset Indexing sublibrary of Signal Management
Set Ending row to Index.
Set Ending row index to 100.
AWGN Channel, in the Channels library
Set Mode to Signal to noise ratio (SNR).
Set SNR to 40.
Set Number of taps to 6.
Clear the Mode input port, Output error, and Output weights check boxes.
Two copies of Discrete-Time Scatter Plot Scope, in the Comm Sinks library
Set Points displayed to 400 in each of the two copies.
Connect the blocks as in the figure. Running the simulation produces two scatter plots that display the signal before and after equalization, respectively.
Throughout the simulation, the signal before equalization deviates noticeably from a 16-QAM signal constellation, as below.

Early in the simulation, the equalizer does not appear to improve the scatter plot. In fact, the equalizer is busy trying to adapt its weights appropriately. The following figure shows the equalized signal very early in the simulation.

After some simulation time passes, the equalizer's weights work well on the received signal. As a result, the equalized signal looks far more like a 16-QAM signal constellation than the received signal does. The figure below shows the equalized signal in its steady state.

The MLSE Equalizer block uses the Viterbi algorithm to equalize a linearly modulated signal through a dispersive channel. The block outputs the maximum likelihood sequence estimate (MLSE) of the signal, using your estimate of the channel modeled as a finite input response (FIR) filter.
The block decodes the received signal using these steps:
Applies the FIR filter corresponding to the channel estimate to the symbols in the input signal.
Uses the Viterbi algorithm to compute the traceback paths and the state metric, which are the numbers assigned to the symbols at each step of the Viterbi algorithm.
Outputs the maximum likelihood sequence estimate of the signal, as a sequence of complex numbers corresponding to the constellation points of the modulated signal.
An MLSE equalizer yields the best possible performance, in theory, but is computationally intensive.
When using the MLSE Equalizer block, you specify the channel estimate and the signal constellation that the modulator in your model uses. If applicable, you can also specify a preamble and/or postamble that you expect to accompany your data. For full details on options, see the reference page for the MLSE Equalizer block.
![]() | Synchronization | Modeling Communication Systems | ![]() |

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |