# lteULChannelEstimatePUCCH2

PUCCH format 2 uplink channel estimation

## Syntax

• ``````[hest,noiseest] = lteULChannelEstimatePUCCH2(ue,chs,rxgrid,rxack2)``````
• ``````[hest,noiseest] = lteULChannelEstimatePUCCH2(ue,chs,cec,rxgrid,rxack2)``````
example
• ``````[hest,noiseest] = lteULChannelEstimatePUCCH2(ue,chs,cec,rxgrid,rxack2,refgrid)``````
• ``````[hest,noiseest] = lteULChannelEstimatePUCCH2(ue,chs,rxgrid,rxack2,refgrid)``````

## Description

``````[hest,noiseest] = lteULChannelEstimatePUCCH2(ue,chs,rxgrid,rxack2)``` returns an estimate for the channel by averaging the least squares estimates of the reference symbols across time and copying these across the allocated resource elements within the time frequency grid. It returns `hest`, the estimated channel between each transmit and receive antenna and `noiseest`, an estimate of the noise power spectral density. ```

example

``````[hest,noiseest] = lteULChannelEstimatePUCCH2(ue,chs,cec,rxgrid,rxack2)``` returns the estimated channel using the method and parameters defined by the user in the channel estimator configuration structure, `cec`. ```
``````[hest,noiseest] = lteULChannelEstimatePUCCH2(ue,chs,cec,rxgrid,rxack2,refgrid)``` returns the estimated channel using the method and parameters defined by the channel estimation configuration structure (`cec`), and the additional information about the transmitted symbols found in `refgrid`. For `cec.InterpType` = `'None'`, values in `refgrid` are treated as reference symbols and the resulting `hest` contains non-zero values in their locations.```
``````[hest,noiseest] = lteULChannelEstimatePUCCH2(ue,chs,rxgrid,rxack2,refgrid)``` returns the estimated channel using the estimation method, as described in TS 36.101, Annex F4 [1]. The method described utilizes extra channel information obtained through information of the transmitted symbols found in `refgrid`. This additional information allows for an improved estimate of the channel and is required for accurate EVM measurements. ```

## Examples

collapse all

### Estimate Channel Characteristics for PUCCH Format 2

Use the lteULChannelEstimatePUCCH2 function to estimate channel characteristics for PUCCH Format 2

Initialize a UE configuration structure, PUCCH settings, and create a resource grid. For the purpose of this example, we bypass the SC-FDMA modulation, channel and SC-FDMA demodulation stages of the system model and copy the `txGrid` to an `rxGrid`.

```ue = struct('NULRB',6,'NCellID',0,'NSubframe',0,'Hopping','Off'); ue.CyclicPrefixUL = 'Normal'; ue.NTxAnts =1; pucch2.ResourceIdx = 0; pucch2.ResourceSize = 0; pucch2.CyclicShifts = 0; txGrid = lteULResourceGrid(ue); txAck = [1;1]; drsIndices = ltePUCCH2DRSIndices(ue,pucch2); txGrid(drsIndices) = ltePUCCH2DRS(ue,pucch2,txAck); rxGrid = txGrid; ```

The channel estimator uses the PUCCH Format 2 DRS to estimate the channel, so decode the hybrid ARQ indicators from the PUCCH Format 2 DM-RS. Initialize the channel estimation configuration structure and perform channel estimation operation on `rxGrid`.

```rxAck = ltePUCCH2DRSDecode(ue,pucch2,length(txAck),rxGrid(drsIndices)); cec = struct('FreqWindow',12,'TimeWindow',1,'InterpType','cubic'); hest = lteULChannelEstimatePUCCH2(ue,pucch2,cec,rxGrid,rxAck); ```
```Warning: Using default value for parameter field PilotAverage ('UserDefined') ```

## Input Arguments

collapse all

### `ue` — UE-specific configuration settingsstructure

UE-specific configuration settings, specified as a structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
`NULRB`Required

Positive scalar integer

Number of uplink (UL) resource blocks (RBs).

`NCellID`Required

Integer from 0 to 503

Physical layer cell identity.

`NSubframe`Required

Nonnegative integer

Subframe number.

`CyclicPrefixUL`Optional

`'Normal'` (default), `'Extended'`

Cyclic prefix length

`NTxAnts`Optional

1 (default), 2, 4

Number of transmission antennas.

`Hopping`Optional

`'Off'` (default), `'Group'`

Frequency hopping method.

`NPUCCHID`Optional

Integer from 0 to 503

PUCCH virtual cell identity. If this field is not present, `NCellID` is used as the identity.

Data Types: `struct`

### `chs` — PUCCH channel settingsstructure

PUCCH channel settings, specified as a structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription
`ResourceIdx`Optional

0 (default), integer from 0 to 1185 or vector of integers.

PUCCH resource indices which determine the physical resource blocks, cyclic shift, and orthogonal cover used for transmission. (${n}_{PUCCH}^{\left(2\right)}$). Define one index for each transmission antenna.

`ResourceSize`Optional

0 (default), integer from 0 to 98.

Size of resource allocated to PUCCH Format 2 (${N}_{RB}^{\left(2\right)}$)

`CyclicShifts`Optional

0 (default), integer from 0 to 7

Number of cyclic shifts used for format 1 in resource blocks (RBs) with a mixture of format 1 and format 2 PUCCH, specified as an integer from 0 to 7. (${N}_{cs}^{\left(1\right)}$)

Data Types: `struct`

### `rxgrid` — Received resource element grid3-D numeric array

Received resource element grid, specified as a 3-D numeric array of size M-by-N-by-`NRxAnts`. The second dimension of `rxgrid` contains one or more whole subframes worth of SC-FDMA symbols. For example, for normal cyclic prefix each subframe contains 14 SC-FDMA symbols. Therefore, N is equal to 14 × `TotalNoSubframes`. If `TotalNoSubframes` is greater than one, the correct region is extracted from the returned `hest` array. The location of the estimated subframe within `hest` is specified using the parameter field `cec.Window`.

Data Types: `double`
Complex Number Support: Yes

### `rxack2` — Hybrid ARQ indicatorslogical value

Hybrid ARQ indicators, specified as a row vector of either 1 or 2 indicators, decoded from the PUCCH Format 2 DRS. This is required as the channel estimator uses the PUCCH Format 2 DRS to estimate the channel. `rxack2` can be obtained for example by using the `lteULFrameOffsetPUCCH2` function.

Data Types: `logical`

### `cec` — Channel estimator configurationstructure

Channel estimator configuration, specified as a structure with these fields.

Parameter FieldRequired or OptionalValuesDescription
`FreqWindow`Optional

Odd scalar integer or a multiple of 12

Size of window used to average over frequency, in resource elements (REs), specified as a scalar integer.

`TimeWindow`Optional

Odd scalar integer

Size of window used to average over time, in resource elements (REs), specified as a scalar integer.

`InterpType`Optional

`'nearest'`, `'linear'`, `'natural'`, `'cubic'`, `'v4'`, `'None'`

See footnote 1

Type of 2-D interpolation used during interpolation. For details, see `griddata`. Supported choices are shown in the following table.

StringDescription
`'nearest'`Nearest neighbor interpolation
`'linear'`Linear interpolation
`'natural'`Natural neighbor interpolation
`'cubic'`Cubic interpolation
`'v4'`MATLAB® 4 `griddata` method
`'None'`Disables interpolation

`PilotAverage`Optional`'UserDefined'` (default), `'TestEVM'`

See footnote 2

Type of pilot averaging

The following parameter is required only if `rxgrid` contains more than one subframe.

See footnote 3

`Window`Optional

`'Left'`, `'Right'`, `'Centred'`, `'Centered'`

If more than one subframe is input this parameter is required to indicate the position of the subframe from rxgrid and refgrid containing the desired channel estimate. Only channel estimates for this subframe will be returned. For the `'Centred'` and `'Centered'` settings, the window size must be odd.

1. For `cec.InterpType` = `'None'`, no interpolation is performed between pilot symbols and no virtual pilots are created. `hest` will contain channel estimates in the locations of transmitted reference symbols for each received antenna and all other elements of `hest` are zero. The averaging of pilot symbols estimates described by `cec.TimeWindow` and `cec.FreqWindow` are still performed.

2. The `'UserDefined'` pilot averaging uses a rectangular kernel of size `cec.FreqWindow`-by-`cec.TimeWindow` and performs a 2-D filtering operation upon the pilots. Pilots near the edge of the resource grid are averaged less as they have no neighbors outside of the grid. For `cec.FreqWindow` = 12×X (i.e. any multiple of 12) and `cec.TimeWindow` = 1 the estimator enters a special case where an averaging window of (12×X)-in-frequency is used to average the pilot estimates; the averaging is always applied across (12×X) subcarriers, even at the upper and lower band edges; therefore the first (6×X) symbols at the upper and lower band edge have the same channel estimate. This operation ensures that averaging is always done on 12 (or a multiple of 12) symbols. This provides the appropriate despreading operation required for the case multi-antenna transmission where the DRS signals associated with each antenna occupy the same time/frequency locations but use different orthogonal cover codes to allow them to be differentiated at the receiver. The `'TestEVM'` pilot averaging ignores other structure fields in `cec`, and follows the method described in TS 36.101, Annex F for the purposes of transmitter EVM testing.

3. When `rxgrid` contains more than one subframe, `cec.Window` provides control of the location of the subframe for which channel estimation is performed. This allows channel estimation for the subframe of interest to be aided by the presence of pilot symbols occupying the same resource block in subframes before and/or after that subframe. For example, if `rxgrid` contains five subframes, `'Left'` estimates the last first subframe in `rxgrid`, `'Centred'`/`'Centered'` estimates the third (middle) subframe, and `'Right' ` estimates the last subframe. The parameter `ue.NSubframe` corresponds to the chosen subframe. So, with three subframes and `cec.Window` = `'Right'`, `rxgrid` corresponds to subframes (`ue.NSubframe-2`, `ue.NSubframe-1`, `ue.NSubframe`). The `hest` output will be the same size as `rxgrid` and will correspond to the same subframe numbers. All locations other than the estimated subframe will contain zeros.

Data Types: `struct`

### `refgrid` — Reference array of known transmitted data symbols in their correct locations3-D numeric array

Reference array of known transmitted data symbols in their correct locations, specified as a 3-D numeric array of size M-by-N-by-NTxAnts. All other locations, such as DRS Symbols and unknown data symbol locations, should be represented by a `NaN`. `rxgrid` and `refgrid` must have the same dimensions.

Data Types: `double`
Complex Number Support: Yes

## Output Arguments

collapse all

### `hest` — Channel estimate between each transmit and receive antenna3-D numeric array

Channel estimate between each transmit and receive antenna, returned as a 3-D numeric array of size M-by-N-by-NRxAnts. M is the total number of subcarriers, N is the number of SC-FDMA symbols, and NRxAnts is the number of receive antennas.

Data Types: `double`

### `noiseest` — Noise estimatenumeric scalar

Noise estimate, returned as a numeric scalar. This output is the power spectral density of the noise present on the estimated channel response coefficients.

Data Types: `double`

## More About

collapse all

### Algorithms

The channel estimation algorithm functions as described in the following steps.

1. Extract the PUCCH format 2 demodulation reference signals (DRS), or pilot symbols, for a transmit-receive antenna pair from the allocated physical resource blocks within the received subframe.

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

3. Using the cleaned pilot symbol estimates, interpolate to obtain an estimate of the channel for the allocated subframe slot.

### Least-Squares Estimation

The least-squares estimates of the reference signals are obtained by dividing the received pilot symbols by their expected value. The least-squares estimates are affected by any system noise. This noise needs to be removed or reduced to achieve a reasonable estimation of the channel at pilot symbol locations.

### Noise Reduction and Interpolation

To minimize the effects of noise on the pilot symbol estimates, the least-squares estimates are averaged. This simple method produces a substantial reduction in the level of noise found on the pilot symbols. The pilot symbol averaging method uses an averaging window defined by the user. The averaging window size is measured 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.

Then, the averaged pilot symbol estimates are used to perform a 2-D interpolation across the slot of the subframe that was allocated to the PUCCH format 2 data. The location of pilot symbols within the subframe is not ideally suited to interpolation. To account for this positioning, virtual pilots are created and placed out with the area of the current subframe. This placement allows complete and accurate interpolation to be performed.

## References

[1] 3GPP TS 36.101. "User Equipment (UE) Radio Transmission and Reception." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL: http://www.3gpp.org.

## See Also

#### Introduced in R2013b

Was this topic helpful?

Get trial now