Main Content

OFDM Channel Response

Calculate OFDM channel response

Since R2023a

  • OFDM Channel Response block

Libraries:
Communications Toolbox / Channels

Description

The OFDM Channel Response block calculates the OFDM channel response in the frequency domain by using perfect information from the channel. For more information, see OFDM Channel Response.

This icon shows the block with all ports enabled.

OFDM Channel Response block showing all input ports (path gains, path filters, and offset) and the output port (hEst).

Examples

expand all

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

expand all

Channel path gains, specified as an NS-by-NP-by-T-by-NR array of values.

  • NS is the number of samples.

  • NP is the number of paths.

  • NT is the number of transmit antennas.

  • NR is the number of receive antennas.

The channel path gains follow the definition of channel path gains as calculated and output by the fading channel System objects. For example, see MIMO Fading Channel or SISO Fading Channel. This block assumes that the path gains sample rate matches the OFDM sample rate.

Data Types: single | double
Complex Number Support: Yes

Channel path filter coefficients, specified as an NP-by-NH matrix of values.

  • NP is the number of paths.

  • NH is the number of impulse response samples.

The channel path filter coefficient matrix is used to convert path gains to channel filter tap gains for each sample and each pair of transmit and receive antennas. The channel path filter coefficients follow the definition of channel path filter coefficients as calculated by the info object function of the fading channel System objects.

The channel path gains follow the definition of channel path gains as calculated and output by the fading channel System objects. For example, see MIMO Fading Channel or SISO Fading Channel.

Data Types: single | double
Complex Number Support: Yes

Timing offset in samples, specified as a nonnegative, integer scalar.

Dependencies

Data Types: double | single

Output

expand all

Frequency response, returned as an NSC-by-NSymbols-by-NT-by-NR array.

  • NSC is the number of OFDM subcarriers and equals the length of Active subcarrier indices.

  • NSymbols is the number of whole OFDM symbols contained in Path gains. Specifically, floor(NS/(NFFT + LCP)).

  • NT is the number of transmit antennas.

  • NR is the number of receive antennas.

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

FFT length, specified as a positive, integer scalar. The FFT length must align with that of the OFDM-modulated signal.

Cyclic prefix length of one OFDM symbol, specified as a nonnegative, integer scalar with a value less than FFT length.

Number of active subcarriers, specified as a positive, integer scalar or column vector of values in the range [1, FFT length].

Select this parameter to add an input port to input timing offset.

  • on — Adds the Offset input port to specify the timing offset for channel response estimation.

  • off — The block uses the Path gains and Path filters inputs to estimate the timing offset for OFDM channel response estimation.

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 the Code 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 the Interpreted execution option.

For more information, see Interpreted Execution vs. Code Generation (Simulink).

Block Characteristics

Data Types

double | single

Multidimensional Signals

yes

Variable-Size Signals

yes

Algorithms

expand all

Extended Capabilities

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

Version History

Introduced in R2023a