Downlink channel estimation
[
returns hest
,noiseEst
]
= lteDLChannelEstimate(enb
,rxgrid
)hest
, the estimated channel response between each transmit and
receive antenna for the input cellwide 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].
[
specifies the channel estimation method and parameters in the channel estimator
configuration structure hest
,noiseEst
]
= lteDLChannelEstimate(enb
,cec
,rxgrid
)cec
. The value that you specify for the
Reference
field in cec
determines whether the
function estimates the channel for an LTE or NBIoT configuration.
Estimate the channel for an RMC R.12 (fourantenna transmit diversity) waveform.
Initialize a cellwide 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 1by1 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 cellwide 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
enb
— Cellwide settingsCellwide settings, specified as a structure. The fields that you specify in
enb
depend on whether the function performs channel estimation
for an LTE or NBIoT configuration.^{[1]}
Name  Required or Optional  Values  Description  Dependencies  Data Types 

NDLRB  Required for LTE configuration  Integer in the interval [6, 110]  Number of downlink resource blocks  This 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 cellspecific reference signal (CRS) antenna ports  This field applies only when you specify the Reference
field of the cec input to a value other than
'NRS' .  double 
NCellID  Required for LTE configuration  Integer 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  Required  Nonnegative integer  Subframe number  Not applicable  double 
CyclicPrefix  Optional  'Normal' (default),
'Extended'  Cyclic prefix length  Not 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]  Uplinkdownlink 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 channelstate information reference signal (CSIRS) antenna ports  This 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]  CSIRS configuration index; for more information, see Table 6.10.5.21 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], 1by2 vector of integers  CSIRS subframe configuration, specified as one of these values:
 This field applies only when you specify the Reference
field of the cec input as
'CSIRS' .  double , char ,
string 
NNCellID  Required for NBIoT configuration  Integer in the interval [0, 503]  Narrowband PCI  This field applies only when you specify the Reference
field of the cec input as 'NRS' .  double 
NBRefP  Required for NBIoT configuration  1 , 2  Number of narrowband reference signal (NRS) antenna ports  This field applies only when you specify the Reference
field of the cec input as 'NRS' .  double 
Data Types: struct
rxgrid
— Received resource element gridReceived resource element grid, specified as a complexvalued array of size N_{SC}byN_{Sym}byN_{R}, where:
N_{SC} is the number of subcarriers
N_{Sym} = N_{SF} × N_{SymPerSF} is the number of OFDM symbols, where:
N_{SF} is the total number of subframes
N_{SymPerSF} 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.
N_{R} is the number of receive antennas
cec
— Channel estimation configurationChannel estimation configuration, specified as a structure containing these fields.
Name  Required or Optional  Values  Description  Dependencies  Data 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  Required  Positive integer  Size of window for frequency averaging, in resource elements  Not applicable  double 
TimeWindow  Required  Positive integer  Size of window for time averaging, in resource elements  Not applicable  double 
InterpType  Required  'nearest' , 'linear' ,
'natural' , 'cubic' ,
'v4' , 'none'  Type of interpolation between pilot symbols, specified as one of these values:
For more information, see the  Not applicable  char , string 
InterpWindow  Required  'Causal' , 'Noncausal' ,
'Centred' , 'Centered'  Interpolation type; the values 'Centred' and
'Centered' are equivalent. For more information, see
Noise Reduction and Interpolation.  Not applicable  char , string 
InterpWinSize  Required  Positive scalar  Interpolation window size, in number of subframes  If 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:
 This field applies only when you specify one of these configurations:
 char , string 
^{[a]} If you specify this field as When you specify this field as ^{[b]} When you specify this field as 
pdsch
— PDSCH transmission configurationPDSCH transmission configuration, specified as a structure containing these fields.
Name  Required or Optional  Values  Description  Dependencies  Data Types 

TxScheme  Required  'Port0' , 'TxDiversity' ,
'CDD' , 'SpatialMux' ,
'MultiUser' , 'Port5' ,
'Port78' , 'Port8' ,
'Port714'  PDSCH transmission scheme, specified as one of these values:
 Not applicable  char , string 
PRBSet  Required  Column vector of integers, twocolumn matrix of integers, cell array  Physical resource block (PRB) indices, in zerobased form, corresponding to the slotwise resource allocations for the PDSCH. Specify this field as one of:
This field varies per subframe for these
reference measurement channels (RMCs):  Not applicable  single , double ,
cell 
RNTI  Required  Nonnegative integer  Radio network temporary identifier (RNTI) value  Not applicable  double 
NLayers  Required  Integer in the interval [1, 8]  Number of transmission layers  This field applies only when you specify the
TxScheme field as one of these values:
'Port5' , 'Port78' ,
'Port8' , 'Port714' .  double 
You can initialize a special case by specifying:
The TxScheme
field of pdsch
as
'Port78'
, 'Port8'
, or
'Port714'
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 UERS and CSIRS ports because they occupy the same time/frequency locations, using different orthogonal covers for the receiver to differentiate them.
For the CSIRS with any number of configured CSIRS antenna ports, the pilot
REs occur in one pair per subframe. The CSIRS pilot RE pairs are averaged with
the TimeWindow
field of cec
set to
2
, resulting in one channel estimate per subframe.
For the UERS with the NLayers
field of
pdsch
specified as 1
,
2
, 3
, or 4
, the pilot
REs occur in pairs repeated in each slot. The UERS 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 UERS 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
— EPDCCH transmission configurationEPDCCH transmission configuration, specified as a structure containing these fields.
Name  Required or Optional  Values  Description  Data Types 

EPDCCHType  Required  'Localized' , 'Distributed'  EPDCCH transmission type. As indicated in Table 6.8A.51 of [3], the function performs channel estimation according to the value you specify for this field.
 char , string 
EPDCCHPRBSet  Required  Vector of integers  EPDCCH PRB pair indices, in zerobased 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  double 
EPCCHNID  Required  Nonnegative integer  EPDCCH 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.
This argument applies only when you specify the Reference
field of the cec
input as 'EPDCCHDMRS'
.
Data Types: struct
hest
— Estimated channel between transmit and receive antennasEstimated channel between transmit and receive antennas, returned as a complexvalued 4D
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  RSSpecific Dimension  Transmission Scheme 

 N_{SC}byN_{Sym}byN_{R}by 


 N_{SC}byN_{Sym}byN_{R}by 


 N_{SC}byN_{Sym}byN_{R}by 


 N_{SC}byN_{Sym}byN_{R}by  Estimate across all four possible EPDCCH ports (107–110), which ensures consistency
with the indexing used by the  Not applicable 
'NRS'  N_{SC}byN_{Sym}byN_{R}by  NBRefP is the number of NRS antenna ports.  Not applicable 
Output array dimensions:

Data Types: double
noiseEst
— Noise power spectral density estimateNoise power spectral density estimate on reference signal subcarriers, returned as a
realvalued scalar. The function computes noiseest
by using the
reference signals.
Data Types: double
The steps associated with channel estimation processing are:
Extract the reference signals, or pilot symbols, for a transmitreceive antenna pair from the received grid. Use the reference signals to calculate the leastsquares estimates of the channel response at the pilot symbol positions within a received grid.
The function obtains the leastsquares estimates of the reference signals by dividing the received pilot symbols by their expected value. Any system noise affects the leastsquares 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.
Average the leastsquares estimates to reduce any unwanted noise from the pilot symbols.
Interpolate the cleaned pilot symbol estimates into an estimate of the channel for the entire number of subframes passed into the function.
To minimize the effects of noise on the pilot symbol estimates, the function averages the
leastsquares 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 userdefined parameters.
Estimation behaves as described in [2].
The algorithm differs from the implementation described in [2] due to the number of subframes across which timeaveraging 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 2D
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'
, 'Noncausal'
,
'Centred'
, or 'Centered'
.
The value that you specify for InterpWindow
depends upon the
data that you use for interpolation.
'Causal'
– Use past data.
'Noncausal'
– Use future data, the opposite of
'Causal'
. Relying on only future data is commonly referred to
as an anticausal method of interpolation.
'Centered'
or 'Centred'
– Use a
combination of past, present, and future data.
[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 (EUTRA).
[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 (EUTRA).
[3] 3GPP TS 36.211. “Physical Channels and Modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (EUTRA).
lteOFDMDemodulate
 lteEqualizeMIMO
 lteEqualizeMMSE
 lteEqualizeZF
 lteDLPerfectChannelEstimate
 griddata
^{[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 NBIoT configuration.
You have a modified version of this example. Do you want to open this example with your edits?
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.
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: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.