Main Content

lteSLChannelEstimatePSBCH

PSBCH sidelink channel estimation

Description

example

[hest] = lteSLChannelEstimatePSBCH(ue,rxgrid) 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.

example

[hest] = lteSLChannelEstimatePSBCH(ue,cec,rxgrid) also accepts the channel estimator configuration structure, cec, to adjust the default method and parameters defined for estimating the channel.

example

[hest,noiseest] = lteSLChannelEstimatePSBCH(___) also returns an estimate of the noise power spectral density for the channel. This syntax supports input options from prior syntaxes.

Examples

collapse all

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 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 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

collapse all

User equipment settings, specified as a structure containing these fields.

Sidelink mode, specified as 'D2D' or 'V2X'.

Data Types: char | string

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

Cyclic prefix length, specified as 'Normal' or 'Extended'.

Data Types: char | string

Physical layer sidelink synchronization identity, specified as an integer from 0 to 355. (NIDSL)

Data Types: double

Data Types: struct

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 × NSymPerSF

    • NSF 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

PSBCH channel estimation settings, specified as a structure that can contain these fields.

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

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

Type of 2-D interpolation used during interpolation, specified as one of these supported choices.

ValueDescription
'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

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

collapse all

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 of hest are 0

  • The averaging of pilot symbol estimates, described by cec.TimeWindow and cec.FreqWindow, is still performed

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