lteSLChannelEstimatePSBCH
PSBCH 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
] = lteSLChannelEstimatePSBCH(ue
,rxgrid
)
Examples
Estimate Channel Using PSBCH DM-RS and Default CE Settings
Estimate the channel characteristics given the PSBCH-received resource grid containing PSBCH DM-RS symbols. Use the default channel estimation configuration method, as defined in TS 36.101, Annex F.
Create Parameter Structure
Define UE-specific settings in a parameter structure.
ue = struct('NSLRB',50,'CyclicPrefixSL','Normal','NSLID',1);
Populate Subframe with PSBCH Symbols
Create the subframe grid and indices for the subframe. Create broadcast channel and demodulation reference symbols and populate the subframe.
subframe = lteSLResourceGrid(ue); psbchIndices = ltePSBCHIndices(ue); psbchdmrsIndices = ltePSBCHDRSIndices(ue); psbchSymbols = ltePSBCH(ue,lteSLBCH(ue,zeros(40,1))); subframe(psbchIndices) = psbchSymbols; subframe(psbchdmrsIndices) = ltePSBCHDRS(ue);
Estimate Channel Characteristics
Use the received resource grid containing PSBCH DM-RS symbols to estimate the channel characteristics.
Perform sidelink SC-FDMA modulation.
No channel impairment is applied, so set the received waveform equal to the transmit waveform.
Perform sidelink SC-FDMA demodulation and channel estimation.
txWaveform = lteSLSCFDMAModulate(ue,subframe); rxWaveform = txWaveform; rxGrid = lteSLSCFDMADemodulate(ue,rxWaveform); hest = lteSLChannelEstimatePSBCH(ue,rxGrid);
Estimate Channel Using PSBCH DM-RS
Estimate the channel characteristics given the PSBCH-received resource grid containing PSBCH DM-RS symbols. The default channel estimation configuration is adjusted.
Create parameter structures
Define UE-specific settings and channel estimation configuration settings in parameter structures.
ue = struct('NSLRB',50,'CyclicPrefixSL','Normal','NSLID',1); cec = struct('FreqWindow',7,'TimeWindow',1,'InterpType','cubic','PilotAverage','UserDefined');
Populate a subframe with PSBCH symbols
Create the subframe grid and indices for the subframe. Create broadcast channel and demodulation reference (DM-RS) symbols.
subframe = lteSLResourceGrid(ue); psbchIndices = ltePSBCHIndices(ue); psbchSymbols = ltePSBCH(ue,lteSLBCH(ue,zeros(40,1))); subframe(psbchIndices) = psbchSymbols; subframe(ltePSBCHDRSIndices(ue)) = ltePSBCHDRS(ue);
Estimate the channel characteristics
Use the received resource grid containing PSBCH DM-RS symbols to estimate the channel characteristics.
Perform sidelink SC-FDMA modulation.
No channel impairment is applied, so set the received waveform equal to the transmit waveform.
Perform sidelink SC-FDMA demodulation and channel estimation.
txWaveform = lteSLSCFDMAModulate(ue,subframe); rxWaveform = txWaveform; rxGrid = lteSLSCFDMADemodulate(ue,rxWaveform); hest = lteSLChannelEstimatePSBCH(ue,cec,rxGrid);
Estimate Channel and Noise Using PSBCH DM-RS
Estimate the channel characteristics and noise power spectral density given the PSBCH-received resource grid containing PSBCH DM-RS symbols.
Create Parameter Structures
Define UE-specific settings and channel estimation configuration settings in parameter structures.
ue = struct('NSLRB',50,'CyclicPrefixSL','Normal','NSLID',1); cec = struct('FreqWindow',7,'TimeWindow',1,'InterpType','cubic','PilotAverage','UserDefined');
Populate Subframe with PSBCH Symbols
Create the subframe grid and indices for the subframe. Create broadcast channel and demodulation reference symbols.
subframe = lteSLResourceGrid(ue); psbchIndices = ltePSBCHIndices(ue); psbchSymbols = ltePSBCH(ue,lteSLBCH(ue,zeros(40,1))); subframe(psbchIndices) = psbchSymbols; subframe(ltePSBCHDRSIndices(ue)) = ltePSBCHDRS(ue);
Estimate Channel Characteristics
Estimate the channel characteristics by using the received resource grid containing PSBCH DM-RS symbols.
Perform sidelink SC-FDMA modulation
Add noise to the transmitted signal
Perform sidelink SC-FDMA demodulation and channel estimation
View the noise estimate
txWaveform = lteSLSCFDMAModulate(ue,subframe);
rxWaveform = awgn(txWaveform,15,'measured');
rxGrid = lteSLSCFDMADemodulate(ue,rxWaveform);
[hest,noiseEst] = lteSLChannelEstimatePSBCH(ue,cec,rxGrid);
disp(noiseEst)
8.8347e-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
NSLID
— Physical layer sidelink synchronization identity
integer from 0 to 355
Physical layer sidelink synchronization identity, specified as an integer from 0 to 355. ()
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
— PSBCH channel estimation settings
structure
PSBCH 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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)