OFDM Equalizer
Libraries:
Communications Toolbox /
Equalizers
Description
The OFDM Equalizer block performs frequencydomain equalization to recover OFDM modulated symbols transmitted through a channel.
This icon shows the block with all ports enabled.
Examples
OFDM Equalization
Apply equalization to an OFDMmodulated QAM signal that has been filtered through a Rayleigh MIMO channel.
The cm_ofdm_equalization
model initializes simulation variables and computes path filters in the InitFun
callback function. For more information, see Model Callbacks (Simulink).
The model generates random integer data, applies 64QAM, and then applies OFDM to the QAMmodulated signal. The OFDMmodulated signal gets filtered through a MIMO Rayleigh fading channel. The model adds a signal delay in samples, and then OFDMdemodulates the signal. In a parallel path, an OFDM Channel Response block computes the perfect OFDM channel response and an OFDM Equalizer block equalizes the received signal.
The value of the constant block labeled Fading Channel Delay equals the delay of the MIMO Fading Channel block. Since the discrete path delays of the MIMO Fading Channel block are set to [3 9 15]/Fs
, the first nonzero value of the channel impulse response has a delay of 3 samples and the Fading Channel Delay value can be any integer in the range [0,3] samples. If the Fading Channel Delay value is greater than 3, intersymbol interference will occur.
The delay block labeled Signal Delay is equal to (fftLen+cpLen
) – Fading Channel Delay samples. This removes the MIMO Fading Channel block delay and adds a delay of one OFDM symbol. Each OFDM symbol has (fftLen+cpLen
) samples.
The delay blocks labeled Delay1 and Delay2 each add a delay of one OFDM symbol to match the one OFDM symbol delay introduced by the Signal Delay block. Delay1 ensures that the right OFDM Modulator input is used as a reference to calculate the maximum error. Delay2 ensures that the OFDM Demodulator output and the OFDM Channel Response output correspond to the same OFDM symbol.
A constellation diagram displays the unequalized and equalized signals. The model computes and displays the maximum error between the transmitted QAM signal and the equalized signal on the receive side.
The maximum computed error is 0.000558.
Ports
Input
in — Input signal
3D array  2D array
Input signal, specified as a 3D or 2D array of received OFDM symbols.
If Data format is set to
3D
, the input signal must be specified as an N_{SC}byN_{Symbols}byN_{R} array. N_{SC} represents the number of OFDM subcarriers, N_{Symbols} represents the number of OFDM symbols, and N_{R} represents the number of receive antennas.If Data format is set to
2D
, the input signal must be specified as an N_{RE}byN_{R} array. N_{RE} represents the number of resource elements in an irregular subset of the OFDM subcarrier symbol grid.
Data Types: double
 single
Complex Number Support: Yes
hEst — Channel estimate
3D array
Channel estimate, specified as a 3D array.
If Data format is set to
3D
, the block expects hEst to be an N_{SC}byN_{T}byN_{R} or an (N_{SC}×N_{Symbols})byN_{T}byN_{R} array.If hEst is an N_{SC}byN_{T}byN_{R} array, all OFDM symbols in the input signal
in
are equalized by the same channel estimate. N_{SC} represents the number of OFDM subcarriers, N_{T} represents the number of transmit antennas, and N_{R} represents the number of receive antennas.If hEst is an (N_{SC}×N_{Symbols})byN_{T}byN_{R} array, each OFDM symbol in the input signal
in
is equalized by the corresponding entry in hEst. N_{Symbols} represents the number of OFDM symbols.
If Data format is set to
2D
, the block expects hEst to be an N_{RE}byN_{T}byN_{R} array. Each OFDM symbol in the input signalin
is equalized by the corresponding entry in hEst. N_{RE} represents the number of resource elements in an irregular subset of the OFDM subcarrier symbol grid.
Data Types: double
 single
Complex Number Support: Yes
noiseVar — Noise variance
0 (default)  nonnegative scalar
Noise variance estimate for minimum mean squared error (MMSE) equalization, specified as a nonnegative scalar.
Dependencies
The noise variance input port is used only when you set
Noise variance source to Input
port
and Algorithm to
Minimum mean squared error
.
Data Types: double
 single
Output
out — Equalized symbols
3D array  2D array
Equalized symbols, returned as a 3D or 2D array.
If Data format is set to
3D
, the block returns an N_{SC}byN_{Symbols}byN_{T} array. N_{SC} represents the number of OFDM subcarriers, N_{Symbols} represents the number of OFDM symbols, and N_{T} represents the number of transmit antennas.If Data format is set to
2D
, the block returns an N_{RE}byN_{T} array. N_{RE} represents the number of resource elements in an irregular subset of the OFDM subcarrier symbol grid.
csi — Soft channel state information
matrix
Soft channel state information, returned as a matrix with
size(csi,1) = size(hEst,1)
and
size(csi,2) = N_{T}
= size(hEst,2)
.
N_{T} represents the number
of transmit antennas.
Dependencies
To enable this output port, select the Output soft channel state information parameter.
Parameters
To edit block parameters interactively, use the Property Inspector. From the Simulink^{®} Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.
Data format — Format of signals
3D
(default)  2D
Format of the signals, specified as 3D
or
2D
.
When this parameter is set to 3D
, OFDM
subcarriers and OFDM symbols use two separate dimensions in the
representation of in and out.
The in input must be an N_{SC}byN_{Symbols}byN_{R} array.
The out output is returned as an N_{SC}byN_{Symbols}byN_{T} array.
When this parameter is set to 2D
, OFDM
subcarriers and OFDM symbols use one combined dimension in the
representation of in and out.
The in input must be an N_{RE}byN_{R} array.
The out output is returned as an N_{RE}byN_{T} array.
N_{SC} represents the number of OFDM subcarriers. N_{Symbols} represents the number of symbols. N_{RE} represents the number of resource elements in an irregular subset of the OFDM subcarrier symbol grid. N_{T} represents the number of transmit antennas. N_{R} represents the number of receive antennas.
Algorithm — Equalization algorithm
Minimum mean squared
error
(default)  Zeroforcing
Equalization algorithm, specified as Minimum mean squared
error
or Zeroforcing
.
When this parameter is set to
Minimum mean squared error
, the block equalizes using the MMSE algorithm.When this parameter is set to
Zeroforcing
, the block equalizes using the zeroforcing algorithm. When using the zeroforcing algorithm, the noiseVar port value is ignored.
Noise variance source — Source of noise variance
Input port
(default)  Property
Source of noise variance, specified as one of these values:
Input port
— Specify this value to use the noiseVar input port to specify the noise variance estimate for MMSE equalization.Property
— Specify this value to use the Noise variance parameter to specify the noise variance estimate for MMSE equalization.
Noise variance — Noise variance
0 (default)  nonnegative scalar
Noise variance estimate for MMSE equalization, specified as a nonnegative scalar.
Dependencies
The noise variance setting is used only when you set Noise
variance source to Property
and Algorithm to Minimum mean squared
error
.
Output soft channel state information — Enable soft channel state information output
off
(default)  on
Select this parameter to enable output port csi containing the soft channel state information.
Simulate using — Type of simulation to run
Interpreted execution
(default)  Code generation
Type of simulation to run, specified as Interpreted
execution
or Code generation
.
Interpreted execution
— Simulate the model by using the MATLAB^{®} interpreter. This option requires less startup time, but the speed of subsequent simulations is slower than with theCode generation
option. In this mode, you can debug the source code of the block.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 model reuses the C code for subsequent simulations unless the model changes. This option requires additional startup time, but the speed of the subsequent simulations is faster than with theInterpreted execution
option.
For more information, see Interpreted Execution vs. Code Generation (Simulink).
Block Characteristics
Data Types 

Multidimensional Signals 

VariableSize Signals 

Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
Version History
Introduced in R2022b
See Also
Blocks
 OFDM Modulator Baseband  OFDM Demodulator Baseband  OFDM Channel Response  Decision Feedback Equalizer  Linear Equalizer  MLSE Equalizer
Functions
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)