Documentation

lteULChannelEstimate

PUSCH uplink channel estimation

Syntax

  • [hest, noiseest] = lteULChannelEstimate(ue,chs,rxgrid)
  • [hest, noiseest] = lteULChannelEstimate(ue,chs,cec,rxgrid)
    example
  • [hest, noiseest] = lteULChannelEstimate(ue,chs,cec,rxgrid,refgrid)
  • [hest, noiseest] = lteULChannelEstimate(ue,chs,rxgrid,refgrid)

Description

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

example

[hest, noiseest] = lteULChannelEstimate(ue,chs,cec,rxgrid) returns the estimated channel using the method and parameters defined by the user in the channel estimator configuration cec structure.

[hest, noiseest] = lteULChannelEstimate(ue,chs,cec,rxgrid,refgrid) returns the estimated channel using the method and parameters defined by the channel estimation configuration structure and the additional information about the transmitted symbols found in refgrid.

When cec.InterpType is set to 'None', values in refgrid are treated as reference symbols and the resulting hest contains non-zero values in their locations.

[hest, noiseest] = lteULChannelEstimate(ue,chs,rxgrid,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. rxgrid and refgrid must only contain a whole subframe worth of SC-FDMA symbols. For normal cyclic prefix, each subframe contains 14 SC-FDMA symbols. Therefore, N is 14.

Examples

collapse all

Estimate Channel Characteristics for PUSCH

Use lteULChannelEstimate to estimate the channel characteristics for a received resource grid.

Initialize a UE configuration structure to RMC A3-2. Initialize the channel estimation configuration structure. Generate a transmission waveform. For the purpose of this example, we bypass the channel stage of the system model and copy txWaveform to rxWaveform.

ue = lteRMCUL('A3-2');
ue.TotSubframes = 1;
cec = struct('FreqWindow',7,'TimeWindow',1,'InterpType','cubic');
txWaveform = lteRMCULTool(ue,[1;0;0;1]);
rxWaveform = txWaveform;

Demodulate the SC-FDMA waveform and perform channel estimation operation on rxGrid.

rxGrid = lteSCFDMADemodulate(ue,rxWaveform);
hest = lteULChannelEstimate(ue,ue.PUSCH,cec,rxGrid);
Warning: Using default value for parameter field PilotAverage ('UserDefined') 
Warning: Using default value for parameter field Reference ('Antennas') 

Note: The warning messages generated simply advise you that default values are available and being used for uninitialized parameters. To suppress warnings for defaulted lte parameter settings precede code with the command "lteWarning('off','DefaultValue')".

Input Arguments

collapse all

ue — UE-specific configurationstructure

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

Parameter FieldRequired or OptionalValuesDescription
NULRBRequired

6, 15, 25, 50, 75, 100

Number of uplink (UL) resource blocks (RBs)

NCellIDRequired

Nonnegative scalar integer

Physical layer cell identity

NSubframeRequired

Nonnegative scalar integer

Subframe number

CyclicPrefixULOptional

'Normal' (default), 'Extended'

Cyclic prefix length for uplink, specified as a string.

NTxAntsOptional

1 (default), 2, 4

Number of transmission antennas

HoppingOptional

'Off' (default), 'Group', or 'Sequence'

Frequency hopping method

SeqGroupOptional

0 (default), 0 ... 29, Nonnegative scalar integer.

PUSCH sequence group assignment (delta_SS)

Only used if NDMRSID or NPUSCHID is absent
CyclicShiftOptional

0 (default), 0 ... 7, Nonnegative scalar integer.

Number of cyclic shifts used for PUSCH DRS (yields n1_DMRS)

NPUSCHIDOptional

0 (default), Nonnegative scalar integer from 0 to 509.

PUSCH virtual cell identity. If this field is not present, NCellID is used for group hopping sequence-shift pattern initialization.

See footnote 1

NDMRSIDOptional

0 (default), Nonnegative scalar integer from 0 to 509.

DMRS identity for cyclic shift hopping (Ncsh_DMRSID). If this field is not present, NCellID is used for cyclic shift hopping initialization.

See footnote 1

  1. The pseudo-random sequence generator for cyclic shift hopping is initialized according to NDMRSID, if present, otherwise it is initialized according to the cell identity NCellID and the sequence group assignment SeqGroup. Similarly, the sequence-shift pattern for group hopping is initialized according to NPUSCHID, if present, otherwise it is initialized according to NCellID and SeqGroup.

Data Types: struct

chs — PUSCH channel settingsstructure

PUSCH channel settings, specified as a structure that can contain the following fields. The parameter field PMI is only required if ue.NTxAnts is set to 2 or 4.

Parameter FieldRequired or OptionalValuesDescription
PRBSetRequired

1- or 2-column integer matrix

Physical resource block set, specified as a 1-column or 2-column matrix. This parameter field contains the zero-based physical resource block (PRB) indices corresponding to the slot-wise resource allocations for this PUSCH.

If PRBSet is a column vector, the resource allocation is the same in both slots of the subframe. To specify differing PRBs for each slot in a subframe, use a 2-column matrix. The PRB indices are zero based.

NLayersOptional1 (default), 2, 3, 4Number of transmission layers
DynCyclicShiftOptional

0 (default), 0 ... 7, Nonnegative scalar integer.

Cyclic shift for DMRS (yields n2_DMRS)

OrthoCoverOptional

'Off' (default), 'On'

Applies ('On'), or does not apply ('Off'), orthogonal cover sequence, w (Activate-DMRS-with OCC)

The following field is required only when ue.NTxAnts is set to 2 or 4.
PMIOptional

nonnegative scalar integer (0,...,23)

0 (default)

Scalar precoder matrix indication (PMI) to be used during precoding

of the DRS reference symbols

Data Types: struct

rxgrid — Resource elements grid3-D numeric array

Resource elements 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 cec.Window parameter field.

Data Types: double
Complex Number Support: Yes

cec — Channel estimator configurationstructure

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

Parameter FieldRequired or OptionalValuesDescription
FreqWindowRequired

Nonnegative scalar integer

Size of window in resource elements used to average over frequency during channel estimation

The window size must be either an odd number or a multiple of 12.

TimeWindowRequired

Nonnegative scalar integer

Size of window in resource elements used to average over time during channel estimation

The window size must be an odd number.

InterpTypeRequired

'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

PilotAverageOptional

'UserDefined'(default), 'TestEVM'

See footnote 2

Type of pilot averaging

ReferenceOptional

'Antennas' (default), 'Layers', 'None'

3

Specifies point of reference (signals to internally generate) for channel estimation

The following field is required only when rxgrid contains more than one subframe.

See footnote 4

WindowOptional

'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.

    [1]

  3. Setting cec.Reference to 'Antennas' uses the PUSCH DMRS after precoding onto the transmission antennas as the reference for channel estimation. In this case, the precoding matrix indicated in chs.PMI is used to precode the DMRS layers onto antennas, and the channel estimate, hest, is a matrix of size M-by-N-by-NRxAnts-by-chs.NTxAnts. Setting cec.Reference to 'Layers' uses the PUSCH DMRS without precoding as the reference for channel estimation. The channel estimate, hest, is of size M-by-N-by-NRxAnts-by-chs.NLayers. Setting cec.Reference to 'None' generates no internal reference signals, and the channel estimation can be performed on arbitrary known REs as given by the refgrid argument. This approach can be used to provide a refgrid containing the SRS signals created on all NTxAnts, allowing for full-rank channel estimation for the purposes of PMI selection when the PUSCH is transmitted with less than full rank.

  4. 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. Represent all other locations, such as DRS Symbols and unknown data symbol locations, by NaN. rxgrid and refgrid must have the same dimensions.

A typical use for refgrid is to provide values of the SRS transmitted at some point during the time span of rxgrid. The SRS values can be used to enhance the channel estimation.

Data Types: double
Complex Number Support: Yes

Output Arguments

collapse all

hest — Channel estimate between each transmit and receive antenna4-D numeric array

Channel estimate between each transmit and receive antenna, returned as a 4-D numeric array of size M-by-N-by-NRxAnts-by-NTxAnts. M is the total number of subcarriers, N is the number of SC-FDMA symbols, NRxAnts is the number of receive antennas, and NTxAnts is the number of transmit antennas. Optionally, the channel estimator can be configured to use the DMRS layers as the reference signal. In this case, the array is an M-by-N-by-NRxAnts-by-NLayers array, where NLayers is the number of transmission layers.

Data Types: double
Complex Number Support: Yes

noiseest — Noise estimatenumeric scalar

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

Data Types: double

More About

expand all

Algorithms

The channel estimation algorithm is described in the following steps.

  1. Extract the demodulation reference signals, 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 entire number of subframes passed into the function.

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 allocated physical resource blocks. 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.

    Note:   The PUSCH channel estimator is only able to deal with contiguous allocation of resource blocks in time and frequency.

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.

Introduced in R2013b

Was this topic helpful?