Linear Equalizer
情商ualize modulated signals using linear filtering
- Library:
Communications Toolbox / Equalizers
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
in
— Input signal
column vector
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
Desired
— Training symbols
column vector
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 toLMS
orRLS
.
Data Types:double
Complex Number Support:Yes
Train
— Train equalizer flag
1
|0
Train equalizer flag, specified as1
or0
. The block starts training when this value changes from0
to1
(at the rising edge). The block trains until all symbols in theDesiredinput port are processed.
Dependencies
To enable this port, set theAdaptive algorithmparameter toLMS
orRLS
and select theEnable training control inputparameter.
Data Types:Boolean
Update
— Update tap weights flag
1
|0
Update tap weights flag, specified as1
or0
. The tap weights are updated when this value is1
.
Dependencies
To enable this port, set theAdaptive algorithmparameter toCMA
and the调整权重的旗帜parameter toInput port
.
Data Types:Boolean
Reset
— Reset equalizer flag
1
|0
Reset equalizer flag, specified as1
or0
. 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
Out
— Equalized symbols
column vector
情商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.
Err
— Error signal
column vector
Error signal, returned as a column vector that has the same length as input signalin.
w
— Tap weights
column vector
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
Number of taps
— Number of equalizer taps
5
(default) | positive integer
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
— Signal constellation
pskmod(0:3,4,pi/4)
(default) | vector
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
— Number of input samples per symbol
1
(default) | positive integer
Number of input samples per symbol, specified as a positive integer. Setting this parameter to any number greater than1
effectively creates a fractionally spaced equalizer. For more information, seeSymbol Tap Spacing.
Adaptive algorithm
— Adaptive algorithm
LMS
(default) |RLS
|CMA
Adaptive algorithm used for equalization, specified as one of these values:
LMS
— Update the equalizer tap weights using theLeast Mean Square (LMS) Algorithm.RLS
— Update the equalizer tap weights using theRecursive Least Square (RLS) Algorithm.CMA
— Update the equalizer tap weights using theConstant Modulus Algorithm (CMA).
Step size
— Step size
0.01
(default) | positive scalar
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 algorithmtoLMS
orCMA
.
Forgetting factor
— Forgetting factor
0.99
(default) | scalar in the range (0, 1]
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
— Initial inverse correlation matrix
0.1
(default) | scalar | matrix
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
.
Reference tap
— Reference tap
3
(default) | positive integer
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 (samples)
— Input signal delay
0
(default) | nonnegative integer
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 algorithmtoLMS
orRLS
.
调整权重的旗帜
— Source of adapt tap weights request
Property
(default) |Input port
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
.
Adapt tap weights
— Adapt tap weights
on
(default) |off
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 algorithmtoCMA
and调整权重的旗帜toProperty
.
Initial tap weights source
——来源initial tap weights
Auto
(default) |Property
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 weights
— Initial tap weights
0
or[0;0;1;0;0]
(default) | scalar | column vector
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 is0
when theAdaptive algorithmparameter is set toLMS
orRLS
. 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 (symbols)
— Tap weight update period
1
(default) | positive integer
Tap weight update period in symbols, specified as a positive integer. The equalizer updates the tap weights after processing this number of symbols.
Enable training control input
— Enable training control input
off
(default) |on
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 algorithmtoLMS
orRLS
.
Update tap weights when not training
— Update tap weights when not training
on
(default) |off
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 algorithmtoLMS
orRLS
.
Enable reset input
— Enable reset input
off
(default) |on
Select this parameter to enable input portTrain. If this parameter is cleared, the block does not reenter training mode after the initial tap training.
Output error signal
— Enable error signal output
off
(default) |on
Select this parameter to enable output portErrcontaining the equalizer error signal.
Output taps weights
— Enable tap weights output
off
(default) |on
Select this parameter to enable output portwcontaining tap weights from the last tap weight update.
Simulate using
— Type of simulation to run
Code generation
(default) |Interpreted execution
Type of simulation to run, specified asCode generation
orInterpreted 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 generation
method, but the speed of subsequent simulations is slower. In this mode, you can debug the source code of the block.
Model Examples
Block Characteristics
Data Types |
|
Multidimensional Signals |
|
Variable-Size Signals |
|
More About
Symbol Tap Spacing
You can configure the equalizer to operate as a symbol-spaced equalizer or as a fractional symbol-spaced equalizer.
To operate the equalizer at a symbol-spaced rate, specify the number of samples per symbol as
1
. Symbol-rate equalizers have taps spaced at the symbol duration. Symbol-rate equalizers are sensitive to timing phase.To operate the equalizer at a fractional symbol-spaced rate, specify the number of input samples per symbol as an integer greater than
1
and provide an input signal oversampled at that sampling rate. Fractional symbol-spaced equalizers have taps spaced at an integer fraction of the input symbol duration. Fractional symbol-spaced equalizers are not sensitive to timing phase.
Algorithms
Linear Equalizers
Linear equalizers can remove intersymbol interference (ISI) when the frequency response of a channel has no null. If a null exists in the frequency response of a channel, linear equalizers tend to enhance the noise. In this case, use decision feedback equalizers to avoid enhancing the noise.
A linear equalizer consists of a tapped delay line that stores samples from the input signal. Once per symbol period, the equalizer outputs a weighted sum of the values in the delay line and updates the weights to prepare for the next symbol period.
Linear equalizers can be symbol-spaced or fractional symbol-spaced.
For a symbol-spaced equalizer, the number of samples per symbol,K, is 1. The output sample rate equals the input sample rate.
For a fractional symbol-spaced equalizer, the number of samples per symbol,K, is an integer greater than 1. Typically,Kis 4 for fractionally spaced equalizers. The output sample rate is 1/Tand the input sample rate isK/T, whereTis the symbol period. Tap-weight updating occurs at the output rate.
This schematic shows a linear equalizer withLweights, a symbol period ofT, andKsamples per symbol. IfKis 1, the result is a symbol-spaced linear equalizer instead of a fractional symbol-spaced linear equalizer.
In each symbol period, the equalizer receivesKinput samples at the tapped delay line. The equalizer then outputs a weighted sum of the values in the tapped delay line and updates the weights to prepare for the next symbol period.
For more information, see情商ualization.
Least Mean Square (LMS) Algorithm
For the LMS algorithm, in the previous schematic,wis a vector of all weightswi, anduis a vector of all inputsui. Based on the current set of weights, the LMS algorithm creates the new set of weights as
wnew=wcurrent+ (StepSize)ue*.
The step size used by the adaptive algorithm is specified as a positive scalar. Increasing the step size reduces the equalizer convergence time but causes the equalized output signal to be less stable. To determine the maximum step size allowed when using the LMS adaptive algorithm, use themaxstep
object function. The * operator denotes the complex conjugate and the error calculatione=d-y.
Recursive Least Square (RLS) Algorithm
For the RLS algorithm, in the previous schematic,wis the vector of all weightswi, andu是所有输入的向量ui. Based on the current set of inputs,u, and the inverse correlation matrix,P, the RLS algorithm first computes the Kalman gain vector,K, as
The forgetting factor used by the adaptive algorithm is specified as a scalar in the range (0, 1]. Decreasing the forgetting factor reduces the equalizer convergence time but causes the equalized output signal to be less stable.Hdenotes the Hermitian transpose. Based on the current inverse correlation matrix, the new inverse correlation matrix is
Based on the current set of weights, the RLS algorithm creates the new set of weights as
wnew=wcurrent+K*e.
The * operator denotes the complex conjugate and the error calculatione=d-y.
Constant Modulus Algorithm (CMA)
For the CMA adaptive algorithm, in the previous schematic,wis the vector of all weightswi, andu是所有输入的向量ui. Based on the current set of weights, the CMA adaptive algorithm creates the new set of weights as
wnew=wcurrent+ (StepSize)u*e.
The step size used by the adaptive algorithm is specified as a positive scalar. Increasing the step size reduces the equalizer convergence time but causes the equalized output signal to be less stable. To determine the maximum step size allowed by the CMA adaptive algorithm, use themaxstep
object function. The * operator denotes the complex conjugate and the error calculatione=y(R- |y|2), whereRis a constant related to the signal constellation.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
See Also
Blocks
Objects
Topics
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)