Main Content

lteDLChannelEstimate

Downlink channel estimation

Description

[hest,noiseEst] = lteDLChannelEstimate(enb,rxgrid) returns hest, the estimated channel response between each transmit and receive antenna for the input cell-wide settings enb and the resource grid rxgrid. The function also returns noiseEst, an estimate of the noise power spectral density on the reference signal subcarriers. For more information, see Channel Estimation Processing.

Use this syntax to estimate the channel in an LTE configuration by using the method described in Annex E of [1] and Annex F of [2].

[hest,noiseEst] = lteDLChannelEstimate(enb,cec,rxgrid) specifies the channel estimation method and parameters in the channel estimator configuration structure cec. The value that you specify for the Reference field in cec determines whether the function estimates the channel for an LTE or NB-IoT configuration.

example

[hest,noiseEst] = lteDLChannelEstimate(enb,pdsch,cec,rxgrid) performs physical downlink shared channel (PDSCH) estimation for pdsch, the PDSCH transmission configuration.

[hest,noiseEst] = lteDLChannelEstimate(enb,epdcch,cec,rxgrid) performs enhanced physical downlink control channel (EPDCCH) estimation for epdcch, the EPDCCH transmission configuration.

Examples

collapse all

Estimate the channel for an RMC R.12 (four-antenna transmit diversity) waveform.

Initialize a cell-wide configuration structure for transmission of RMC R.12.

rc = 'R.12';
enb = lteRMCDL(rc);

Initialize a channel estimation configuration. The averaging window size is configured in terms of resource elements (REs), time, and frequency. Use cubic interpolation with an averaging window of 1-by-1 REs. No noise estimate or averaging is required because no noise is not present in this example. You can therefore set the frequency window and time window size to one.

cec.FreqWindow = 1;
cec.TimeWindow = 1;
cec.InterpType = 'cubic';
cec.PilotAverage = 'UserDefined';
cec.InterpWinSize = 3;
cec.InterpWindow = 'Causal';

Generate a transmit waveform for the specified cell-wide settings by using the lteRMCDLTool function.

txWaveform = lteRMCDLTool(enb,[1;0;0;1]);

Model the propagation channel by combining all transmit antennas into one receive antenna.

rxWaveform = sum(txWaveform,2);

Perform OFDM demodulation.

rxGrid = lteOFDMDemodulate(enb,rxWaveform);

Estimate the channel characteristics, displaying the size of the returned array. Confirm that the noise power spectral density estimate is zero.

[hest,noiseEst] = lteDLChannelEstimate(enb,cec,rxGrid);
disp(size(hest))
    72   140     1     4
disp(noiseEst)
     0

Input Arguments

collapse all

Cell-wide settings, specified as a structure. The fields that you specify in enb depend on whether the function performs channel estimation for an LTE or NB-IoT configuration.1

NameRequired or OptionalValuesDescriptionDependenciesData Types
NDLRBRequired for LTE configurationInteger in the interval [6, 110]Number of downlink resource blocksThis field applies only when you specify the Reference field of the cec input to a value other than 'NRS'.double
CellRefPRequired for LTE configuration1, 2, 4Number of cell-specific reference signal (CRS) antenna portsThis field applies only when you specify the Reference field of the cec input to a value other than 'NRS'.double
NCellIDRequired for LTE configurationInteger in the interval [0, 503]Physical layer cell identity (PCI)This field applies only when you specify the Reference field of the cec input to a value other than 'NRS'.double
NSubframeRequiredNonnegative integerSubframe numberNot applicabledouble
CyclicPrefixOptional'Normal' (default), 'Extended'Cyclic prefix lengthNot applicablechar, string
DuplexModeOptional'FDD' (default), 'TDD'Duplex mode, specified as 'FDD' for frequency division duplex or 'TDD' for time division duplex.Not applicablechar, string
TDDConfigOptional1 (default), integer in the interval [0, 6]Uplink-downlink configuration; for more information, see Section 4.2 of [3].This field applies only when you specify the DuplexMode field as 'TDD'.double
SSCOptional0 (default), integer in the interval [0, 9]Special subframe configuration; for more information, see Section 4.2 of [3].This field applies only when you specify the DuplexMode field as 'TDD'.double
CSIRefPRequired when you specify the Reference field of the cec input as 'CSIRS'.1, 2, 4, 8Number of channel-state information reference signal (CSI-RS) antenna portsThis field applies only when you specify the Reference field of the cec input as 'CSIRS'.double
CSIRSConfigRequired when you specify the Reference field of the cec input as 'CSIRS'.Integer in the interval [0, 31]CSI-RS configuration index; for more information, see Table 6.10.5.2-1 in [3].This field applies only when you specify the Reference field of the cec input as 'CSIRS'.double
CSIRSPeriodOptional'On' (default), 'off', integer in the interval [0, 154], 1-by-2 vector of integers

CSI-RS subframe configuration, specified as one of these values:

  • 'On'

  • 'Off'

  • An integer in the interval [0, 154] corresponding to the value of ICSI-RS in Table 6.10.5.3-1 of [3]

  • A 1-by-2 vector of integers in the form [TCSI-RS ΔCSI-RS], where

    • TCSI-RS is the CSI-RS periodicity

    • ΔCSI-RS is the CSI-RS subframe offset

    For more information, see Table 6.10.5.3-1 of [3].

This field applies only when you specify the Reference field of the cec input as 'CSIRS'.double, char, string
NNCellIDRequired for NB-IoT configurationInteger in the interval [0, 503]Narrowband PCIThis field applies only when you specify the Reference field of the cec input as 'NRS'.double
NBRefPRequired for NB-IoT configuration1, 2Number of narrowband reference signal (NRS) antenna portsThis field applies only when you specify the Reference field of the cec input as 'NRS'.double

Data Types: struct

Received resource element grid, specified as a complex-valued array of size NSC-by-NSym-by-NR, where:

  • NSC is the number of subcarriers

  • NSym = NSF × NSymPerSF is the number of OFDM symbols, where:

    • NSF is the total number of subframes

      Note

      To adhere to the estimation method defined in [1] and [2], NSF must be 10.

    • NSymPerSF is the number of OFDM symbols per subframe

      • For normal cyclic prefix, each subframe contains 14 OFDM symbols.

      • For extended cyclic prefix, each subframe contains 12 OFDM symbols.

  • NR is the number of receive antennas

Channel estimation configuration, specified as a structure containing these fields.

NameRequired or OptionalValuesDescriptionDependenciesData Types
PilotAverageRequired'TestEVM', 'UserDefined'Type of pilot averagingaThe 'TestEVM' value applies only when you specify the Reference field as a value other than 'NRS'.char, string
FreqWindowRequiredPositive integerSize of window for frequency averaging, in resource elementsNot applicabledouble
TimeWindowRequiredPositive integerSize of window for time averaging, in resource elementsNot applicabledouble
InterpTypeRequired'nearest', 'linear', 'natural', 'cubic', 'v4', 'none'

Type of interpolation between pilot symbols, specified as one of these values:

  • 'nearest' – Nearest neighbor interpolation

  • 'linear' – Linear interpolation

  • 'natural' – Natural neighbor interpolation

  • 'cubic' – Cubic interpolation

  • 'v4' – MATLAB® 4 griddata method

  • 'none' – No interpolationb

For more information, see the griddata function.

Not applicablechar, string
InterpWindowRequired'Causal', 'Non-causal', 'Centred', 'Centered'Interpolation type; the values 'Centred' and 'Centered' are equivalent. For more information, see Noise Reduction and Interpolation.Not applicablechar, string
InterpWinSizeRequiredPositive scalarInterpolation window size, in number of subframesIf you specify the InterpWindow field as 'Centred' or 'Centered', you cannot specify this field as an even integer.double
ReferenceOptional'DMRS' (Default), 'CSIRS', 'CellRS', 'EPDCCHDMRS', 'NRS'

Reference signals for channel estimation, specified as one of these values:

  • 'DMRS' – Perform PDSCH estimation by using the demodulation reference signals (DM-RSs)

  • 'CSIRS' – Perform PDSCH estimation by using the channel-state information reference signals (CSI-RSs)c

  • 'CellRS' – Perform channel estimation by using the cell-specific reference signals (CRSs)

  • 'EPDCCHDMRS' – Perform EPDCCH estimation by using the DM-RSs

  • 'NRS' – Perform channel estimation for an NB-IoT configuration by using the NRSs.

This field applies only when you specify one of these configurations:

  • PDSCH channel estimation with the TxScheme field of the pdsch argument specified as one of these values: 'Port5', 'Port7-8', 'Port8', 'Port7-14'

  • EPDCCH channel estimation

  • NB-IoT channel estimation

char, string

a If you specify this field as 'TestEVM', the function ignores any other fields you specify in cec. The function performs pilot averaging according to the method set out in Annex E of [1] and Annex F of [2]. This method is for transmitter error vector magnitude (EVM) testing and is not supported for NB-IoT configurations.

When you specify this field as 'UserDefined', the function performs pilot averaging with a rectangular kernel of size FreqWindow-by-TimeWindow. The function also performs a two-dimensional filtering operation on the pilots. The pilots near the edge of the resource grid either have no neighbors or a limited number of neighbors through the creation of virtual pilots. Consequently, these pilots are not averaged in the same way as pilots away from the edge of the resource grid.

b When you specify this field as 'none', the function performs no interpolation between pilot symbols and does not create virtual pilots. The hest output contains channel estimates in the locations of transmitted reference symbols for each receive antenna, and all other elements of hest are 0. The function still performs pilot symbol averaging in accordance with the values you specify for the FreqWindow and TimeWindow fields.

c CSI-RS-based channel estimation is strictly only valid within the standard for the transmission scheme corresponding to the 'Port7-14' value of the TxScheme field of the pdsch argument. For more information, see Section 6.10.5.3 of [3].

PDSCH transmission configuration, specified as a structure containing these fields.

NameRequired or OptionalValuesDescriptionDependenciesData Types
TxSchemeRequired'Port0', 'TxDiversity', 'CDD', 'SpatialMux', 'MultiUser', 'Port5', 'Port7-8', 'Port8', 'Port7-14'

PDSCH transmission scheme, specified as one of these values:

  • 'Port0' – Single-antenna port, port 0

  • 'TxDiversity' – Transmit diversity

  • 'CDD' – Large-delay cyclic delay diversity (CDD) scheme

  • 'SpatialMux' – Closed-loop spatial multiplexing

  • 'MultiUser' – Multiuser multiple-input/multiple-output (MIMO)

  • 'Port5' – Single-antenna port, port 5

  • 'Port7-8' – Single-antenna, port 7 when the NLayers field is 1; dual-layer transmission, ports 7 and 8 when the NLayers field is 2

  • 'Port8' – Single-antenna port, port 8

  • 'Port7-14' – Up to eight-layer transmission, ports 7–14

Not applicablechar, string
PRBSetRequiredColumn vector of integers, two-column matrix of integers, cell array

Physical resource block (PRB) indices, in zero-based form, corresponding to the slot-wise resource allocations for the PDSCH. Specify this field as one of:

  • A column vector of integers, for which the resource allocation is the same in both slots of the subframe

  • A two-column matrix, in which you can specify PRBs for each slot in a subframe

  • A cell array of length 10, corresponding to a frame if the allocated PRBs vary across subframes

This field varies per subframe for these reference measurement channels (RMCs): 'R.25' (TDD), 'R.26' (TDD), 'R.27' (TDD), 'R.43' (FDD), 'R.44', 'R.45', 'R.48', 'R.50', and 'R.51'.

Not applicablesingle, double, cell
RNTIRequiredNonnegative integerRadio network temporary identifier (RNTI) valueNot applicabledouble
NLayersRequiredInteger in the interval [1, 8]Number of transmission layersThis field applies only when you specify the TxScheme field as one of these values: 'Port5', 'Port7-8', 'Port8', 'Port7-14'.double

You can initialize a special case by specifying:

  • The TxScheme field of pdsch as 'Port7-8', 'Port8', or 'Port7-14'

  • The PilotAverage field of cec as 'UserDefined'

  • The TimeWindow field of cec as 2 or 4

  • The FreqWindow field of cec as 1.

The function uses a window of two or four pilots in time to average the pilot estimates. For this configuration, averaging is always applied across two or four pilots, regardless of their separation in OFDM symbols. Averaging is required for the UE-RS and CSI-RS ports because they occupy the same time/frequency locations, using different orthogonal covers for the receiver to differentiate them.

  • For the CSI-RS with any number of configured CSI-RS antenna ports, the pilot REs occur in one pair per subframe. The CSI-RS pilot RE pairs are averaged with the TimeWindow field of cec set to 2, resulting in one channel estimate per subframe.

  • For the UE-RS with the NLayers field of pdsch specified as 1, 2, 3, or 4, the pilot REs occur in pairs repeated in each slot. The UE-RS pilot RE pairs are averaged with the TimeWindow field of cec set to 2, resulting in two estimates per subframe, one for each slot.

For the UE-RS with the NLayers field of pdsch specified as 5, 6, 7, or 8, the pairs are distinct between the slots of the subframe. The pairs are averaged with the TimeWindow field of cec set to 4, resulting in one estimate per subframe. In these cases, rxgrid must contain only one subframe because only a single subframe can be estimated.

Data Types: struct

EPDCCH transmission configuration, specified as a structure containing these fields.

NameRequired or OptionalValuesDescriptionData Types
EPDCCHTypeRequired'Localized', 'Distributed'

EPDCCH transmission type. As indicated in Table 6.8A.5-1 of [3], the function performs channel estimation according to the value you specify for this field.

  • When you specify this field as 'Localized', the function performs channel estimation in one of these sets of antenna ports: {107, 108, 109, 110}, {107, 109}, or {107, 108}. The antenna ports used depend on the cell configuration.

  • When you specify this field as 'Distributed', the function performs channel estimation in the pair of EPDCCH antenna ports used for EPDCCH transmission. When you specify the CyclicPrefix field of the enb input as 'Normal', the function uses antenna ports 107 and 109. When you specify the CyclicPrefix field of the enb input as 'Extended', the function uses antenna ports 107 and 108.

  • In other EPDCCH antenna ports, the channel estimate is zero.

char, string
EPDCCHPRBSetRequiredVector of integers

EPDCCH PRB pair indices, in zero-based form. The length of this field must be a power of two. If no transmission is required, specify this field as an empty vector.

The function returns only a channel estimate for the PRB pairs that you specify in this field, but performs estimation for all EPDCCH candidate locations within those pairs. In other PRBs, the function interpolates the channel estimate according to the interpolation type that you specify in the InterpType field of the cec input.

double
EPCCHNIDRequiredNonnegative integerEPDCCH scrambler initialization parameter. This field represents the parameter nID,mEPDCCH in the definition of the initial state of the scrambling sequence generator, given in Section 6.8A.2 of [3].double

Note

Specifying the PilotAverage, TimeWindow, and FreqWindow fields of the cec input as 'UserDefined', 2, and 1, respectively, initializes a special case. The function performs the "despreading" pilot averaging behavior described in the note for the TxScheme field of the pdsch input. This behavior results because the EPDCCH DMRS and PDSCH DMRS RE have the same arrangement and employ the same use of orthogonal cover codes.

Dependencies

This argument applies only when you specify the Reference field of the cec input as 'EPDCCHDMRS'.

Data Types: struct

Output Arguments

collapse all

Estimated channel between transmit and receive antennas, returned as a complex-valued 4-D array. The fourth dimension of hest varies based on the reference signal option you specify in the Reference field of the cec argument and the TxScheme field of the pdsch input.

Value of Reference Field of cecOutput Array Dimensions RS-Specific DimensionTransmission Scheme

'DMRS'

NSC-by-NSym-by-NR-by-NLayers

NLayers is the number of transmission layers.

'Port5', 'Port7-8', 'Port8', and 'Port7-14'

'CSIRS'

NSC-by-NSym-by-NR-by-CSIRefP

CSIRefP is the number of CSI-RS antenna ports.

'Port5', 'Port7-8', 'Port8', and 'Port7-14'

'CellRS'

NSC-by-NSym-by-NR-by-CellRefP

CellRefP is the number of cell-specific reference signal antenna ports.

'SpatialMux', 'Port0', 'TxDiversity', 'CDD', 'MultiUser', 'Port5', 'Port7-8', 'Port8', 'Port7-14'

'EPDCCHDMRS'

NSC-by-NSym-by-NR-by-4

Estimate across all four possible EPDCCH ports (107–110), which ensures consistency with the indexing used by the lteEPDCCHDMRSIndices and lteEPDCCHIndices functions

Not applicable

'NRS'

NSC-by-NSym-by-NR-by-NBRefP

NBRefP is the number of NRS antenna ports.

Not applicable

Output array dimensions:

  • NSC is the number of subcarriers.

  • NSym is the number of OFDM symbols.

  • NR is the number of receive antennas.

Data Types: double

Noise power spectral density estimate on reference signal subcarriers, returned as a real-valued scalar. The function computes noiseest by using the reference signals.

Data Types: double

Algorithms

collapse all

Channel Estimation Processing

The steps associated with channel estimation processing are:

  1. Extract the reference signals, or pilot symbols, for a transmit-receive antenna pair from the received grid. Use the reference signals to calculate the least-squares estimates of the channel response at the pilot symbol positions within a received grid.

    The function obtains the least-squares estimates of the reference signals by dividing the received pilot symbols by their expected value. Any system noise affects the least-squares estimates. Remove or reduce the noise to achieve a reasonable estimation of the channel at pilot symbol locations. For more information, see Noise Reduction and Interpolation.

  2. Average the least-squares estimates to reduce any unwanted noise from the pilot symbols.

  3. Interpolate the cleaned pilot symbol estimates into an estimate of the channel for the entire number of subframes passed into the function.

Noise Reduction and Interpolation

To minimize the effects of noise on the pilot symbol estimates, the function averages the least-squares estimates through an averaging window. This method ensures a substantial reduction in the level of noise found on the pilot symbols. The two pilot symbol averaging methods, which also define the interpolation method performed to obtain the channel estimate, are 'TestEVM' and 'UserDefined'.

  • 'TestEVM' — Follows the method described in Annex F.3.4 of [2]. The function performs time averaging across each pilot symbol carrying subcarrier, resulting in a column vector containing the time averaged estimates of the channel. The function then performs frequency averaging by using a moving window with a maximum size of 19. The function uses linear interpolation to estimate the values between the pilot symbols. The function replicates the estimated vector and uses it as the entire channel estimate.

    Note

    For 'TestEVM', there are no user-defined parameters. Estimation behaves as described in [2].

    The algorithm differs from the implementation described in [2] due to the number of subframes across which time-averaging is performed. In [2], the method requires 10 subframes. The lteDLChannelEstimate function performs time averaging across the total number of subframes contained in the rxgrid input.

  • 'UserDefined' — Uses an averaging window that you define. The averaging window size is in resource elements. Any pilot symbols located within the window are used to average the value of the pilot symbol found at the center of the window. The function uses the averaged pilot symbol estimates to perform a 2-D interpolation across a window of subframes. The location of pilot symbols within the subframe is not ideally suited to interpolation. To account for this issue, the function creates virtual pilots and places them outside the area of the current subframe. This approach allows for complete and accurate interpolation. The InterpWindow field defines the causal nature of the available data. Valid settings for InterpWindow are 'Causal', 'Non-causal', 'Centred', or 'Centered'.

    The value that you specify for InterpWindow depends upon the data that you use for interpolation.

    • 'Causal' – Use past data.

    • 'Non-causal' – Use future data, the opposite of 'Causal'. Relying on only future data is commonly referred to as an anti-causal method of interpolation.

    • 'Centered' or 'Centred' – Use a combination of past, present, and future data.

References

[1] 3GPP TS 36.104. “Base Station (BS) radio transmission and reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA).

[2] 3GPP TS 36.141. “Base Station (BS) conformance testing.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA).

[3] 3GPP TS 36.211. “Physical Channels and Modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA).

Version History

Introduced in R2013b


1 The value to which you set the Reference field of the cec input determines whether the function performs channel estimation for an LTE or NB-IoT configuration.