Main Content

OFDM Channel Estimator

Estimate channel using input data and reference subcarriers

  • Library:
  • Wireless HDL Toolbox / Modulation

  • OFDM Channel Estimator block

Description

The OFDM Channel Estimator block estimates a channel using input data and reference subcarriers. The block accepts data subcarriers, a valid control port, and refData and refValid reference ports. The block outputs channel estimates and a valid control port. The block allows you to specify the number of subcarriers to estimate for each output symbol.

You can use this block to estimate multipath faded channels on the receiver side in different communications standards, such as long term evolution (LTE) [1] and wireless local area network (WLAN) [4]. To perform proper channel estimation, the refData and refValid ports must be synchronized with the data and valid ports, respectively. For more information about channel estimation and reference data, see Channel Estimation (LTE Toolbox).

This block provides an interface and architecture suitable for HDL code generation and hardware deployment.

Ports

Input

expand all

Input data subcarriers, specified as a scalar of real or complex values.

double and single data types are supported for simulation, but not for HDL code generation.

Data Types: single | double | int8 | int16 | int32 | signed fixed point
Complex Number Support: Yes

Indicates valid input data, specified as a scalar.

This port is a control signal that indicates when the sample from the data input port is valid. When this value is 1, the block captures the values from the data input port. When this value is 0, the block ignores the values from the data input port.

Data Types: Boolean

Reference data subcarriers, specified as a scalar of real or complex values.

Reference data must be a sequence of unimodular values. In a sequence of values, r1, r2, r3…, rn, the values are unimodular if rj x rj* = 1,

where:

  • j = 1, 2, 3, …, n.

  • rj* is the complex conjugate of rj.

Data Types: single | double | int8 | int16 | int32 | signed fixed point
Complex Number Support: Yes

Indicates valid reference data, specified as a scalar.

This port is a control signal that indicates when the sample from the refData input port is valid. When this value is 1, the block captures the values from the refData input port. When this value is 0, the block ignores the values from the refData input port.

refValid port values must be synchronized with valid port values.

Data Types: Boolean

Number of valid subcarriers per OFDM symbol, specified as a scalar in the range from 2 to 65,536.

To support the minimum number of subcarriers per symbol, numScPerSym must be of data type fixdt(0,k,0), where k is greater than or equal to 2.

Dependencies

To enable this port, select the Enable averaging parameter or Enable interpolation parameter.

Data Types: uint8 | uint16 | uint32 | unsigned fixed point

Clear internal states, specified as a scalar. When this value is 1, the block stops the current calculation and clears all internal states.

Dependencies

To enable this port, select the Enable reset input port parameter.

Data Types: Boolean

Output

expand all

Output channel estimates, returned as a scalar. The output data type is the same as the input data.

Data Types: single | double | int8 | int16 | int32 | signed fixed point
Complex Number Support: Yes

Indicates valid output data, returned as a scalar.

This port is a control signal that indicates when the data output port is valid. The block sets this value to 1 when the data samples are available from the data output port.

Data Types: Boolean

Parameters

expand all

Select this parameter to enable averaging.

Specify the number of symbols to be averaged.

Dependencies

To enable this parameter, select the Enable averaging parameter.

Select this parameter to enable interpolation.

Specify the interpolation factor.

Dependencies

To enable this parameter, select the Enable interpolation parameter.

Specify the maximum number of subcarriers per symbol.

Dependencies

To enable this parameter, select the Enable averaging parameter or Enable interpolation parameter.

Select this parameter to enable the reset port on the block icon.

Algorithms

expand all

This figure shows the architecture block diagram of the OFDM Channel Estimator block. The block implements least squares (LS) estimation for the channel estimation. To improve the accuracy of LS estimation, the block uses an averaging technique and provides an interpolation feature if the number of known reference signals are limited to certain subcarriers for a particular OFDM symbol. The Least Squares (LS) Estimation block calculates the least-squares estimates using the input data and the reference data.

The Averaging and Interpolation blocks are optional. To perform averaging, select the Enable averaging parameter. To perform interpolation, select the Enable interpolation parameter. The parameters shown in this figure configure the behavior of the block.

OFDM Channel Estimator block architecture

The Averaging block accepts the LS estimates and averages the corresponding subcarriers with valid LS estimates over the number of OFDM symbols to be averaged provided in the block mask. This figure shows a sample output of the OFDM Channel Estimator block when only averaging is enabled. In this case, the Number of symbols to be averaged parameter is set to 4, Maximum number of subcarriers per symbol parameter is set to 16, and the numScPerSym port is set to 4.

The block samples the numScPerSym port value at the first valid clock cycle. After that, the block samples this value at the every first valid clock cycle, after completing the valid number of Number of symbols to be averaged x numScPerSym clock cycles. As the number of OFDM symbols to be averaged is 4, the output valid shows the valid channel estimates obtained by averaging over four OFDM symbols.

OFDM Channel Estimator Block Averaging Enabled

The Interpolation block accepts the LS estimates and performs linear interpolation to calculate the missing channel information between two consecutive valid LS estimates. This figure shows a sample output of the OFDM Channel Estimator block when only interpolation is enabled. In this case, the Interpolation factor parameter is set to 2, Maximum number of subcarriers per symbol parameter is set to 16, and the numScPerSym port is set to 8.

The block samples the numScPerSym port value at the first valid clock cycle. After that, the block samples this value at the every first valid clock cycle, after completing the valid number of subcarriers per symbol clock cycles. The output valid shows the interpolated LS estimates for two OFDM symbols.

OFDM Channel Estimator Block Interpolation Enabled

References

[1] 3GPP TS 36.211 version 14.2.0 Release 14. "Physical channels and modulation." LTE - Evolved Universal Terrestrial Radio Access (E-UTRA).

[2] Sesia, Stefania, Issam Toufik, and Matthew Baker, eds. LTE - The UMTS Long Term Evolution: From Theory to Practice. Chichester, UK: John Wiley & Sons, Ltd, 2011. https://doi.org/10.1002/9780470978504.

[3] Dahlman, Erik, Stefan Parkvall, and Johan Sköld. 4G LTE/LTE-Advanced for Mobile Broadband. Second edition. Amsterdam ; New York: Elsevier, 2014.

[4] "Wireless LAN Medium Access Control (MAC) and Physical layer (PHY) Specifications." IEEE Std 802.11 – 2012.

Extended Capabilities

See Also

Blocks

Functions

Introduced in R2020a