Main Content

Linear Equalizer

情商ualize modulated signals using linear filtering

  • Library:
  • Communications Toolbox / Equalizers

  • Linear Equalizer block

Description

The Linear Equalizer block uses a tapped delay line filter to equalize a linearly modulated signal through a dispersive channel. Using an estimate of the channel modeled as a finite input response (FIR) filter, the block processes input frames and outputs the estimated signal.

This icon shows the block with all ports enabled for configurations that use the LMS or RLS adaptive algorithm.

This icon shows the block with all ports enabled for configurations that use the CMA adaptive algorithm.

Ports

Input

expand all

Input signal, specified as a column vector. The vector length ofinmust be equal to an integer multiple of theNumber of input samples per symbolparameter. For more information, seeSymbol Tap Spacing.

Data Types:double
Complex Number Support:Yes

Training symbols, specified as a column vector. The vector length ofDesiredmust be less than or equal to the length of inputin. TheDesired输入端口时被忽略Traininput port is0.

Dependencies

To enable this port, set theAdaptive algorithmparameter toLMSorRLS.

Data Types:double
Complex Number Support:Yes

Train equalizer flag, specified as1or0. The block starts training when this value changes from0to1(at the rising edge). The block trains until all symbols in theDesiredinput port are processed.

Dependencies

To enable this port, set theAdaptive algorithmparameter toLMSorRLSand select theEnable training control inputparameter.

Data Types:Boolean

Update tap weights flag, specified as1or0. The tap weights are updated when this value is1.

Dependencies

To enable this port, set theAdaptive algorithmparameter toCMAand the调整权重的旗帜parameter toInput port.

Data Types:Boolean

Reset equalizer flag, specified as1or0. IfResetis set to1, the block resets the tap weights before processing the incoming signal. The block performs initial training until all symbols in theDesiredinput port are processed.

Dependencies

To enable this port, select theEnable reset inputparameter.

Data Types:Boolean

Output

expand all

情商ualized symbols, returned as a column vector that has the same length as input signalin.

This port is unnamed until you select theOutput error signalorOutput taps weightsparameter.

Error signal, returned as a column vector that has the same length as input signalin.

Tap weights, returned as anNTaps-by-1 vector, whereNTapsis the value of theNumber of Tapsparameter.wcontains the tap weights from the last tap weight update.

Parameters

expand all

Structure parameters

Number of equalizer taps, specified as a positive integer. The number of equalizer taps must be greater than or equal to the value of theNumber of input samples per symbolparameter.

Signal constellation, specified as a vector. The default value is a QPSK constellation generated using this code:pskmod(0:3,4,pi/4).

Number of input samples per symbol, specified as a positive integer. Setting this parameter to any number greater than1effectively creates a fractionally spaced equalizer. For more information, seeSymbol Tap Spacing.

Algorithm parameters

Adaptive algorithm used for equalization, specified as one of these values:

Step size used by the adaptive algorithm, specified as a positive scalar. Increasing the step size reduces the equalizer convergence time but causes the equalizer output estimates to be less stable.

金枪鱼ble:Yes

Dependencies

To enable this parameter, setAdaptive algorithmtoLMSorCMA.

Forgetting factor used by the adaptive algorithm, specified as a scalar in the range (0, 1]. Decreasing the forgetting factor reduces the equalizer convergence time but causes the equalizer output estimates to be less stable.

金枪鱼ble:Yes

Dependencies

To enable this parameter, setAdaptive algorithmtoRLS.

Initial inverse correlation matrix, specified as a scalar or anNTaps-by-NTapsmatrix.NTapsis equal to theNumber of Tapsparameter value. If you specify this value as a scalar,a, the equalizer sets the initial inverse correlation matrix toatimes the identity matrix:a(eye(NTaps)).

Dependencies

To enable this parameter, setAdaptive algorithmtoRLS.

Control parameters

Reference tap, specified as a positive integer less than or equal to theNumber of Tapsparameter value. The equalizer uses the reference tap location to track the main energy of the channel.

Input signal delay in samples relative to the reset time of the equalizer, specified as a nonnegative integer. If the input signal is a vector of length greater than 1, then the input delay is relative to the start of the input vector. If the input signal is a scalar, then the input delay is relative to the first call of the block and to the first call of the block after theResetinput port toggles to1.

Dependencies

To enable this parameter, setAdaptive algorithmtoLMSorRLS.

Source of the adapt tap weights request, specified as one of these values:

  • Property— Specify this value to use theAdaptive algorithmparameter to control when the block adapts tap weights.

  • Input port— Specify this value to use theUpdateinput port to control when the block adapts tap weights.

Dependencies

To enable this parameter, setAdaptive algorithmtoCMA.

Select this parameter to adaptively update the equalizer tap weights. If this parameter is cleared, the block keeps the equalizer tap weights unchanged.

Dependencies

To enable this parameter, setAdaptive algorithmtoCMAand调整权重的旗帜toProperty.

Source for initial tap weights, specified as one of these values:

  • Auto— Initialize the tap weights to the algorithm-specific default values, as described in theInitial weightsparameter.

  • Property— Initialize the tap weights using theInitial weightsparameter value.

Initial tap weights used by the adaptive algorithm, specified as a scalar or anNTaps-by-1 vector.NTapsis equal to theNumber of Tapsparameter value. The default is0when theAdaptive algorithmparameter is set toLMSorRLS. The default is[0;0;1;0;0]when theAdaptive algorithmparameter is set toCMA.

If you specifyInitial weightsas a vector, the vector length must be equal to theNumber of Tapsparameter value. If you specifyInitial weightsas a scalar, the equalizer uses scalar expansion to create a vector of lengthNumber of Tapswith all values set toInitial weights.

Dependencies

To enable this parameter, setInitial tap weights sourcetoProperty.

Tap weight update period in symbols, specified as a positive integer. The equalizer updates the tap weights after processing this number of symbols.

Select this parameter to enable input portTrain. If this parameter is cleared, the block does not reenter training mode after the initial tap training.

Dependencies

To enable this parameter, setAdaptive algorithmtoLMSorRLS.

Select this parameter to use decision directed mode to update equalizer tap weights. If this parameter is cleared, the block keeps the equalizer tap weights unchanged after training.

Dependencies

To enable this parameter, setAdaptive algorithmtoLMSorRLS.

Select this parameter to enable input portTrain. If this parameter is cleared, the block does not reenter training mode after the initial tap training.

Diagnostic parameters

Select this parameter to enable output portErrcontaining the equalizer error signal.

Select this parameter to enable output portwcontaining tap weights from the last tap weight update.

Type of simulation to run, specified asCode generationorInterpreted execution.

  • Code generation–– Simulate the model by using generated C code. The first time you run a simulation, Simulink®generates C code for the block. The C code is reused for subsequent simulations unless the model changes. This option requires additional startup time, but the speed of the subsequent simulations is faster thanInterpreted execution.

  • Interpreted execution–– Simulate the model by using the MATLAB®interpreter. This option requires less startup time than theCode generationmethod, but the speed of subsequent simulations is slower. In this mode, you can debug the source code of the block.

Block Characteristics

Data Types

double|single

Multidimensional Signals

no

Variable-Size Signals

yes

More About

expand all

Algorithms

expand all

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Introduced in R2019a