lteSLChannelEstimatePSCCH
PSCCH sidelink 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. The
channel estimation configuration uses the method described in TS 36.101 [1], Annex F.hest
] = lteSLChannelEstimatePSCCH(ue
,rxgrid
)
Examples
Estimate Channel Using PSCCH DM-RS and Default CE Settings
Estimate the channel characteristics given the PSCCH-received resource grid containing PSCCH DM-RS symbols. Use the default channel estimation configuration method, as defined in TS 36.101, Annex F.
Create a structure defining UE-specific settings.
ue = struct('NSLRB',25,'CyclicPrefixSL','Normal','PRBSet',5);
Create the subframe grid, control channel, and indices for a subframe. Populate the subframe with PSCCH symbols.
subframe = lteSLResourceGrid(ue); [pscchIndices,pscchInfo] = ltePSCCHIndices(ue); pscchSymbols = ltePSCCH(randi([0 1],pscchInfo.G,1)); subframe(pscchIndices) = pscchSymbols;
Create the control DM-RS and indices. Add the PSCCH DM-RS symbols to the subframe.
subframe(ltePSCCHDRSIndices(ue)) = ltePSCCHDRS;
Perform sidelink SC-FDMA modulation.
txWaveform = lteSLSCFDMAModulate(ue,subframe);
No channel impairment is applied, so set the received waveform equal to the transmit waveform. Perform sidelink SC-FDMA demodulation and channel estimation.
rxWaveform = txWaveform; rxGrid = lteSLSCFDMADemodulate(ue,rxWaveform); hest = lteSLChannelEstimatePSCCH(ue,rxGrid);
Estimate Channel Using PSCCH DM-RS
Estimate the channel characteristics given the PSCCH-received resource grid containing PSCCH DM-RS symbols. The default channel estimation configuration is adjusted.
Create structures defining UE-specific settings and channel estimation configuration settings.
ue = struct('NSLRB',50,'CyclicPrefixSL','Normal','PRBSet',5); cec = struct('FreqWindow',7,'TimeWindow',1,'InterpType','cubic', ... 'PilotAverage','UserDefined');
Create the subframe grid, control channel, and indices for a subframe. Populate the subframe with PSCCH symbols.
subframe = lteSLResourceGrid(ue); [pscchIndices,pscchInfo] = ltePSCCHIndices(ue); pscchSymbols = ltePSCCH(randi([0 1],pscchInfo.G,1)); subframe(pscchIndices) = pscchSymbols;
Create the control DM-RS and indices. Add the PSCCH DM-RS symbols to the subframe.
subframe(ltePSCCHDRSIndices(ue)) = ltePSCCHDRS;
Perform sidelink SC-FDMA modulation.
txWaveform = lteSLSCFDMAModulate(ue,subframe);
No channel impairment is applied, so set the received waveform equal to the transmit waveform. Perform sidelink SC-FDMA demodulation and channel estimation.
rxWaveform = txWaveform; rxGrid = lteSLSCFDMADemodulate(ue,rxWaveform); hest = lteSLChannelEstimatePSCCH(ue,cec,rxGrid);
Estimate Channel and Noise Using PSCCH DM-RS
Estimate the channel characteristics and noise power spectral density given the PSCCH-received resource grid containing PSCCH DM-RS symbols.
Create structures defining UE-specific and channel estimation configuration settings.
ue = struct('NSLRB',25,'CyclicPrefixSL','Normal','PRBSet',5); cec = struct('FreqWindow',7,'TimeWindow',1,'InterpType','cubic', ... 'PilotAverage','UserDefined');
Create the subframe grid, control channel, and indices for a subframe. Populate the subframe with PSCCH symbols.
subframe = lteSLResourceGrid(ue); [pscchIndices,pscchInfo] = ltePSCCHIndices(ue); pscchSymbols = ltePSCCH(randi([0 1],pscchInfo.G,1)); subframe(pscchIndices) = pscchSymbols;
Create the control DM-RS and indices. Add the PSCCH DM-RS symbols to the subframe.
subframe(ltePSCCHDRSIndices(ue)) = ltePSCCHDRS;
Perform sidelink SC-FDMA modulation.
txWaveform = lteSLSCFDMAModulate(ue,subframe);
Add noise to impair the channel. Perform sidelink SC-FDMA demodulation and channel estimation. View the noise estimate.
rxWaveform = awgn(txWaveform,15,'measured');
rxGrid = lteSLSCFDMADemodulate(ue,rxWaveform);
[hest,noiseest] = lteSLChannelEstimatePSCCH(ue,cec,rxGrid);
noiseest
noiseest = 3.4375e-04
Input Arguments
ue
— UE-specific settings
structure
User equipment settings, specified as a structure containing these fields.
SidelinkMode
— Sidelink mode
'D2D'
(default) | 'V2X'
| optional
Sidelink mode, specified as 'D2D'
or
'V2X'
.
Data Types: char
| string
NSLRB
— Number of sidelink resource blocks
integer scalar from 6 to 110
Number of sidelink resource blocks, specified as an integer scalar from 6 to 110.
Example: 6
, which corresponds to a channel
bandwidth of 1.4 MHz.
Data Types: double
CyclicPrefixSL
— Cyclic prefix length
'Normal'
(default) | 'Extended'
| optional
Cyclic prefix length, specified as 'Normal'
or 'Extended'
.
Data Types: char
| string
PRBSet
— Zero-based physical resource block index
integer | integer column vector | two-column integer matrix
Zero-based physical resource block (PRB) index, specified as an integer, an integer column vector, or a two-column integer matrix.
For D2D sidelink, the PSCCH is intended to be transmitted in a single PRB in a subframe and
therefore, specifying PRBSet
as a scalar PRB index is recommended.
For V2X sidelink, the PSCCH is intended to be transmitted in a pair of consecutive PRB
in a subframe, therefore PRBSet
must be a column vector containing
two consecutive indices. However, for a more general nonstandard multi-PRB allocation,
PRBSet
can be a set of indices specified as an integer column
vector or as a two-column integer matrix corresponding to slot-wise resource allocations
for PSCCH.
Data Types: double
CyclicShift
— Cyclic shift for DM-RS
0
(default) | 3
| 6
| 9
Cyclic shift for DM-RS, specified as 0
,
3
, 6
or
9
. The function uses this input only for
V2X sidelink.
Data Types: double
Data Types: struct
rxgrid
— Received resource element grid
3-D array
Received resource element grid, specified as an NSC-by-NSym-by-NR array of complex symbols.
NSC is the number of subcarriers.
NSym = NSF × NSymPerSF =
1
× NSymPerSFNSF is the total number of subframes. For this function
rxgrid
must contain one subframe.NSymPerSF is the number of SC-FDMA symbols per subframe.
For normal cyclic prefix, a subframe contains 14 SC-FDMA symbols.
For extended cyclic prefix, a subframe contains 12 SC-FDMA symbols.
NR is the number of receive antennas.
Data Types: double
Complex Number Support: Yes
cec
— PSCCH channel estimation settings
structure
PSCCH channel estimation settings, specified as a structure that can contain these fields.
FreqWindow
— Size of frequency window
integer
Size of frequency window, specified as an integer that is odd
or a multiple of 12. FreqWindow
is the number
of resource elements (REs) used to average over frequency.
Data Types: double
TimeWindow
— Size of time window
integer
Size of time window, specified as an odd integer. TimeWindow
is
the number of resource elements (REs) used to average over time.
Data Types: double
InterpType
— Type of 2-D interpolation
'nearest'
| 'linear'
| 'natural'
| 'cubic'
| 'v4'
| 'none'
Type of 2-D interpolation used during interpolation, specified as one of these supported choices.
Value | Description |
---|---|
'nearest' | Nearest neighbor interpolation |
'linear' | Linear interpolation |
'natural' | Natural neighbor interpolation |
'cubic' | Cubic interpolation |
'v4' | MATLAB® 4 griddata method |
'none' | Disables interpolation |
For details, see griddata
.
Data Types: char
| string
PilotAverage
— Type of pilot averaging
'UserDefined'
(default) | 'TestEVM'
| optional
Type of pilot averaging, specified as 'UserDefined'
or
'TestEVM'
.
The 'UserDefined'
pilot averaging uses a rectangular kernel of size
cec
.FreqWindow
-by-cec
.TimeWindow
and performs a 2-D filtering operation on the pilots. Pilots near the edge of the
resource grid are averaged less because they have no neighbors outside of the grid.
For cec
.FreqWindow
=
12×X (that is, 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. The 'TestEVM'
pilot
averaging ignores other structure fields in cec
, and for the
transmitter EVM testing, it follows the method described in TS 36.101, Annex F.
Data Types: char
| string
Data Types: struct
Output Arguments
hest
— Channel estimate between each transmit and receive antenna
3-D array
Channel estimate between each transmit and receive antenna, returned as an NSC-by-NSym-by-NR array of complex symbols. NSC is the total number of subcarriers, NSym is the number of SC-FDMA symbols, and NR is the number of receive antennas.
For cec
.InterpType
= 'none'
,
No interpolation between the pilot symbol estimates is performed and no virtual pilots are created
hest
contains channel estimates in the locations of transmitted DM-RS symbols for each received antenna and all other elements ofhest
are0
The averaging of pilot symbol estimates, described by
cec
.TimeWindow
andcec
.FreqWindow
, is still performed
noiseest
— Noise estimate
numeric scalar
Noise estimate, returned as a numeric scalar. When cec
.PilotAverage
is 'UserDefined'
,
this output is the power spectral density of the noise present on
the estimated channel response coefficients. Otherwise, noiseest
returns 0
.
References
[1] 3GPP TS 36.101. “Evolved Universal Terrestrial Radio Access (E-UTRA); User Equipment (UE) Radio Transmission and Reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
Version History
Introduced in R2017a
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)