# lteDLChannelEstimate

## Syntax

``````[hest,noiseEst] = lteDLChannelEstimate(enb,rxgrid)``````
``````[hest,noiseEst] = lteDLChannelEstimate(enb,cec,rxgrid)``````
``````[hest,noiseEst] = lteDLChannelEstimate(enb,pdsch,cec,rxgrid)``````
``````[hest,noiseEst] = lteDLChannelEstimate(enb,epdcch,cec,rxgrid)``````

## 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].```

example

``````[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.```
``````[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
`NDLRB`Required 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`
`CellRefP`Required for LTE configuration`1`, `2`, `4`Number 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`
`NCellID`Required 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`
`NSubframe`RequiredNonnegative integerSubframe numberNot applicable`double`
`CyclicPrefix`Optional`'Normal'` (default), `'Extended'`Cyclic prefix lengthNot applicable`char`, `string`
`DuplexMode`Optional`'FDD'` (default), `'TDD'`Duplex mode, specified as `'FDD'` for frequency division duplex or `'TDD'` for time division duplex.Not applicable`char`, `string`
`TDDConfig`Optional`1` (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`
`SSC`Optional`0` (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`
`CSIRefP`Required when you specify the `Reference` field of the `cec` input as `'CSIRS'`.`1`, `2`, `4`, `8`Number 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`
`CSIRSConfig`Required 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`
`CSIRSPeriod`Optional`'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

This field applies only when you specify the `Reference` field of the `cec` input as `'CSIRS'`.`double`, `char`, `string`
`NNCellID`Required 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`
`NBRefP`Required for NB-IoT configuration`1`, `2`Number 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
`PilotAverage`Required`'TestEVM'`, `'UserDefined'`Type of pilot averaging[a]The `'TestEVM'` value applies only when you specify the `Reference` field as a value other than `'NRS'`.`char`, `string`
`FreqWindow`RequiredPositive integerSize of window for frequency averaging, in resource elementsNot applicable`double`
`TimeWindow`RequiredPositive integerSize of window for time averaging, in resource elementsNot applicable`double`
`InterpType`Required`'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 interpolation[b]

For more information, see the `griddata` function.

Not applicable`char`, `string`
`InterpWindow`Required`'Causal'`, `'Non-causal'`, `'Centred'`, `'Centered'`Interpolation type; the values `'Centred'` and `'Centered'` are equivalent. For more information, see Noise Reduction and Interpolation.Not applicable`char`, `string`
`InterpWinSize`RequiredPositive 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`
`Reference`Optional`'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
`TxScheme`Required`'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 applicable`char`, `string`
`PRBSet`RequiredColumn 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 applicable`single`, `double`, `cell`
`RNTI`RequiredNonnegative integerRadio network temporary identifier (RNTI) valueNot applicable`double`
`NLayers`RequiredInteger 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
`EPDCCHType`Required`'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`
`EPDCCHPRBSet`RequiredVector 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`
`EPCCHNID`RequiredNonnegative integerEPDCCH scrambler initialization parameter. This field represents the parameter ${n}_{\text{ID},m}^{\text{EPDCCH}}$ 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 `cec`Output 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).

### Topics

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.