OFDM Equalizer
Libraries:
Communications Toolbox /
Equalizers
Description
The OFDM Equalizer block performs frequency-domain 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 OFDM-modulated 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 64-QAM, and then applies OFDM to the QAM-modulated signal. The OFDM-modulated signal gets filtered through a MIMO Rayleigh fading channel. The model adds a signal delay in samples, and then OFDM-demodulates 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
3-D array | 2-D array
Input signal, specified as a 3-D or 2-D array of received OFDM symbols.
If Data format is set to
3-D
, the input signal must be specified as an NSC-by-NSymbols-by-NR array. NSC represents the number of OFDM subcarriers, NSymbols represents the number of OFDM symbols, and NR represents the number of receive antennas.If Data format is set to
2-D
, the input signal must be specified as an NRE-by-NR array. NRE 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
3-D array
Channel estimate, specified as a 3-D array.
If Data format is set to
3-D
, the block expects hEst to be an NSC-by-NT-by-NR or an (NSC×NSymbols)-by-NT-by-NR array.If hEst is an NSC-by-NT-by-NR array, all OFDM symbols in the input signal
in
are equalized by the same channel estimate. NSC represents the number of OFDM subcarriers, NT represents the number of transmit antennas, and NR represents the number of receive antennas.If hEst is an (NSC×NSymbols)-by-NT-by-NR array, each OFDM symbol in the input signal
in
is equalized by the corresponding entry in hEst. NSymbols represents the number of OFDM symbols.
If Data format is set to
2-D
, the block expects hEst to be an NRE-by-NT-by-NR array. Each OFDM symbol in the input signalin
is equalized by the corresponding entry in hEst. NRE 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
3-D array | 2-D array
Equalized symbols, returned as a 3-D or 2-D array.
If Data format is set to
3-D
, the block returns an NSC-by-NSymbols-by-NT array. NSC represents the number of OFDM subcarriers, NSymbols represents the number of OFDM symbols, and NT represents the number of transmit antennas.If Data format is set to
2-D
, the block returns an NRE-by-NT array. NRE 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) = NT
= size(hEst,2)
.
NT 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
3-D
(default) | 2-D
Format of the signals, specified as 3-D
or
2-D
.
When this parameter is set to 3-D
, OFDM
subcarriers and OFDM symbols use two separate dimensions in the
representation of in and out.
The in input must be an NSC-by-NSymbols-by-NR array.
The out output is returned as an NSC-by-NSymbols-by-NT array.
When this parameter is set to 2-D
, OFDM
subcarriers and OFDM symbols use one combined dimension in the
representation of in and out.
The in input must be an NRE-by-NR array.
The out output is returned as an NRE-by-NT array.
NSC represents the number of OFDM subcarriers. NSymbols represents the number of symbols. NRE represents the number of resource elements in an irregular subset of the OFDM subcarrier symbol grid. NT represents the number of transmit antennas. NR represents the number of receive antennas.
Algorithm — Equalization algorithm
Minimum mean squared error
(default) | Zero-forcing
Equalization algorithm, specified as Minimum mean squared
error
or Zero-forcing
.
When this parameter is set to
Minimum mean squared error
, the block equalizes using the MMSE algorithm.When this parameter is set to
Zero-forcing
, the block equalizes using the zero-forcing algorithm. When using the zero-forcing 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 |
|
Variable-Size 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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)