lteDLChannelEstimate
Downlink channel estimation
Syntax
Description
[
returns hest
,noiseEst
]
= lteDLChannelEstimate(enb
,rxgrid
)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].
[
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 NB-IoT configuration.
Examples
Estimate Downlink Channel Characteristics
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
enb
— Cell-wide settings
structure
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
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 cell-specific 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] | 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 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] | 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:
| This field applies only when you specify the Reference
field of the cec input as
'CSIRS' . | double , char ,
string |
NNCellID | Required for NB-IoT 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 NB-IoT 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 grid
complex-valued 3-D array
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
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
cec
— Channel estimation configuration
structure
Channel 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 averaginga | 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' , '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 | 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 configuration
structure
PDSCH 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' ,
'Port7-8' , 'Port8' ,
'Port7-14' | PDSCH transmission scheme, specified as one of these values:
| Not applicable | char , string |
PRBSet | Required | Column 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:
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' , 'Port7-8' ,
'Port8' , 'Port7-14' . | double |
You can initialize a special case by specifying:
The
TxScheme
field ofpdsch
as'Port7-8'
,'Port8'
, or'Port7-14'
The
PilotAverage
field ofcec
as'UserDefined'
The
TimeWindow
field ofcec
as2
or4
The
FreqWindow
field ofcec
as1
.
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 ofcec
set to2
, resulting in one channel estimate per subframe.For the UE-RS with the
NLayers
field ofpdsch
specified as1
,2
,3
, or4
, the pilot REs occur in pairs repeated in each slot. The UE-RS pilot RE pairs are averaged with theTimeWindow
field ofcec
set to2
, 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
— EPDCCH transmission configuration
structure
EPDCCH 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.5-1 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 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 | double |
EPCCHNID | Required | Nonnegative integer | EPDCCH scrambler initialization parameter. This field represents the parameter 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
hest
— Estimated channel between transmit and receive antennas
complex-valued 4-D array
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 Dimension | Transmission Scheme |
---|---|---|---|
| NSC-by-NSym-by-NR-by- |
|
|
| NSC-by-NSym-by-NR-by- |
|
|
| NSC-by-NSym-by-NR-by- |
|
|
| NSC-by-NSym-by-NR-by- | Estimate across all four possible EPDCCH ports (107–110), which ensures consistency
with the indexing used by the | Not applicable |
'NRS' | NSC-by-NSym-by-NR-by- | NBRefP is the number of NRS antenna ports. | Not applicable |
Output array dimensions:
|
Data Types: double
noiseEst
— Noise power spectral density estimate
real-valued scalar
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
Channel Estimation Processing
The steps associated with channel estimation processing are:
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.
Average the least-squares 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.
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 therxgrid
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. TheInterpWindow
field defines the causal nature of the available data. Valid settings forInterpWindow
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).
Version History
Introduced in R2013b
See Also
lteOFDMDemodulate
| lteEqualizeMIMO
| lteEqualizeMMSE
| lteEqualizeZF
| lteDLPerfectChannelEstimate
| griddata
Topics
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.
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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)