lteULChannelEstimate
PUSCH uplink channel estimation
Syntax
Description
[
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.hest
, noiseest
]
= lteULChannelEstimate(ue
,chs
,rxgrid
)
[
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 hest
, noiseest
]
= lteULChannelEstimate(ue
,chs
,cec
,rxgrid
,refgrid
)refgrid
.
When cec.InterpType
is set to 'None'
,
values in refgrid
are treated as reference symbols
and the resulting hest
contains nonzero values
in their locations.
[
returns
the estimated channel using the estimation method as described in
TS 36.101 [1], Annex F4. The method
described utilizes extra channel information obtained through information
of the transmitted symbols found in hest
, noiseest
]
= lteULChannelEstimate(ue
,chs
,rxgrid
,refgrid
)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 SCFDMA symbols.
Examples
Estimate Channel Characteristics for PUSCH
Use lteULChannelEstimate
to estimate the channel characteristics for a received resource grid.
Initialize a UE configuration structure to RMC A32
. 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('A32'); ue.TotSubframes = 1; cec = struct('FreqWindow',7,'TimeWindow',1,'InterpType','cubic'); txWaveform = lteRMCULTool(ue,[1;0;0;1]); rxWaveform = txWaveform;
Demodulate the SCFDMA waveform and perform channel estimation operation on rxGrid
.
rxGrid = lteSCFDMADemodulate(ue,rxWaveform); hest = lteULChannelEstimate(ue,ue.PUSCH,cec,rxGrid);
Input Arguments
ue
— UEspecific configuration
structure
UEspecific configuration, specified as a structure. ue
can
contain the following fields.
Parameter Field  Required or Optional  Values  Description 

NULRB  Required  6, 15, 25, 50, 75, 100  Number of uplink resource blocks. ($${N}_{\text{RB}}^{\text{UL}}$$) 
NCellID  Required  Nonnegative scalar integer  Physical layer cell identity 
NSubframe  Required  0 (default), nonnegative scalar integer  Subframe number 
CyclicPrefixUL  Optional 
 Cyclic prefix length for uplink. 
NTxAnts  Optional  1 (default), 2, 4  Number of transmission antennas. 
Hopping  Optional 
 Frequency hopping method. 
SeqGroup  Optional  0 (default), integer from 0 to 29 
PUSCH sequence group assignment (Δ_{SS}). Only used if 
CyclicShift  Optional  0 (default), integer from 0 to 7  Number of cyclic shifts used for PUSCH DMRS (yields $${n}_{DMRS}^{(1)}$$). 
NPUSCHID  Optional  0 (default), nonnegative scalar integer from 0 to 509  PUSCH virtual cell identity. If this field is not present, See footnote. 
NDMRSID  Optional  0 (default), nonnegative scalar integer from 0 to 509  DMRS identity for cyclic shift hopping ($${n}_{ID}^{csh\_DMRS}$$).
If this field is not present, See footnote. 

Data Types: struct
chs
— PUSCH channel settings
structure
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 Field  Required or Optional  Values  Description 

PRBSet  Required  Integer column vector or twocolumn matrix  Physical resource block set, specified as a 1column or 2column matrix. This parameter field contains the zerobased physical resource block (PRB) indices corresponding to the slotwise resource allocations for this PUSCH. If 
NLayers  Optional  1 (default), 2, 3, 4  Number of transmission layers 
DynCyclicShift  Optional  0 (default), integer from 0 to 7  Cyclic shift for DMRS (yields $${n}_{DMRS}^{(2)}$$). 
OrthoCover  Optional 
 Applies ( 
The following field is required
only when ue .NTxAnts is set
to 2 or 4.  
PMI  Optional  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
— Received resource element grid
3D array
Received resource element grid, specified as an N_{SC}byN_{Sym}byN_{R} array of complex symbols.
N_{SC} is the number of subcarriers
N_{Sym} = N_{SF} × N_{SymPerSF}
N_{SF} is the total number of subframes. If N_{SF} is greater than one, the correct region is extracted from the returned
hest
array. The location of the estimated subframe withinhest
is specified using the parameter fieldcec.Window
.N_{SymPerSF} is the number of SCFDMA symbols per subframe.
For normal cyclic prefix, each subframe contains 14 SCFDMA symbols.
For extended cyclic prefix, each subframe contains 12 SCFDMA symbols.
N_{R} is the number of receive antennas
Data Types: double
Complex Number Support: Yes
cec
— Channel estimator configuration
structure
Channel estimator configuration, specified as a structure with these fields.
Parameter Field  Required or Optional  Values  Description  

FreqWindow  Required  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.  
TimeWindow  Required  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.  
InterpType  Required 
See footnote.  Type of 2D interpolation used during interpolation. For details,
see
 
PilotAverage  Optional 
See footnote.  Type of pilot averaging  
Reference  Optional 
See footnote.  Specifies point of reference (signals to internally generate) for channel estimation  
The following field is required only when
 
Window  Optional 
 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  

Data Types: struct
refgrid
— Reference array of known transmitted data symbols in their correct locations
3D numeric array
Reference array of known transmitted data symbols in their correct locations, specified as an
N_{SC}byN_{Sym}byN_{T}
array of complex symbols. All other locations, such as DMRS Symbols and unknown data
symbol locations, must be represented by a NaN
. The first two
dimensions of rxgrid
and refgrid
must be the same.
N_{SC} is the number of subcarriers.
N_{Sym} = N_{SF} × N_{SymPerSF}
N_{SF} is the total number of subframes. If N_{SF} is greater than one, the correct region is extracted from the returned
hest
array. The location of the estimated subframe withinhest
is specified using the parameter fieldcec.Window
.N_{SymPerSF} is the number of SCFDMA symbols per subframe.
For normal cyclic prefix, each subframe contains 14 SCFDMA symbols.
For extended cyclic prefix, each subframe contains 12 SCFDMA symbols.
N_{T} is the number of transmit antennas,
ue
.
NTxAnts
For
cec
.InterpType
= 'None'
,
values in refgrid
are treated as reference symbols and the
resulting hest
contains nonzero values in their locations. 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
hest
— Channel estimate between each transmit and receive antenna
4D array
Channel estimate between each transmit and receive antenna, returned as an N_{SC}byN_{Sym}byN_{R}byN_{T} array of complex symbols.
N_{SC} is the number of subcarriers.
N_{Sym} is the number of SCFDMA symbols.
N_{R} is the number of receive antennas.
N_{T} is the number of transmit antennas,
ue
.
NTxAnts
.
Optionally, the channel estimator can be configured to use the DMRS layers as the reference signal. In this case, the 4D array is an N_{SC}byN_{Sym}byN_{R}byN_{Layers} array of complex symbols, where N_{Layers} is the number of transmission layers.
noiseest
— Noise estimate
numeric 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.
Algorithms
The channel estimation algorithm is described in the following steps.
Extract the demodulation reference signals, or pilot symbols, for a transmitreceive antenna pair from the allocated physical resource blocks within the received subframe.
Average the leastsquares estimates to reduce any unwanted noise from the pilot symbols.
Using the cleaned pilot symbol estimates, interpolate to obtain an estimate of the channel for the entire number of subframes passed into the function.
LeastSquares Estimation
The leastsquares estimates of the reference signals are obtained by dividing the received pilot symbols by their expected value. The leastsquares 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 leastsquares 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 2D 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. “Evolved Universal Terrestrial Radio Access (EUTRA); User Equipment (UE) Radio Transmission and Reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
Version History
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
 América Latina (Español)
 Canada (English)
 United States (English)
Europe
 Belgium (English)
 Denmark (English)
 Deutschland (Deutsch)
 España (Español)
 Finland (English)
 France (Français)
 Ireland (English)
 Italia (Italiano)
 Luxembourg (English)
 Netherlands (English)
 Norway (English)
 Österreich (Deutsch)
 Portugal (English)
 Sweden (English)
 Switzerland
 United Kingdom (English)