Main Content

lteDLPerfectChannelEstimate

Downlink perfect channel estimation

Description

hest = lteDLPerfectChannelEstimate(enb,propchan) performs perfect channel estimation for a system configuration given structures containing the cell-wide settings, and the propagation channel configuration. The perfect channel estimates are only produced for channel models created using lteFadingChannel or lteHSTChannel.

This function provides a perfect MIMO channel estimate after OFDM modulation. Perfect channel estimation is achieved by setting the channel with the desired configuration and sending a set of known symbols through it for each transmit antenna in turn.

example

hest = lteDLPerfectChannelEstimate(enb,propchan,timefreqoffset) specifies the timing and frequency offsets. This parameter allows hest to be the precise channel that results when the receiver is precisely synchronized.

example

hest = lteDLPerfectChannelEstimate(enb,propchan,timefreqoffset,ntxants) specifies the number of transmit antenna planes.

Note

This syntax is provided to allow modeling of greater than four transmit antenna planes. For this syntax, the enb.CellRefP field, is not required and, if included, is not used to define the number of antenna planes.

example

Examples

collapse all

Perform perfect channel estimation for a given propagation channel configuration in the downlink.

Initialize eNodeB and propagation channel configuration structures.

enb.NDLRB = 6;
enb.CyclicPrefix = 'Normal';
enb.CellRefP = 4;
enb.TotSubframes = 1;
chs.Seed = 1;
chs.DelayProfile = 'EPA';
chs.NRxAnts = 2;
chs.DopplerFreq = 5.0;
chs.MIMOCorrelation = 'Low';
chs.InitPhase = 'Random';
chs.InitTime = 0.0;
chs.ModelType = 'GMEDS';
chs.NTerms = 16;
chs.NormalizeTxAnts = 'On';
chs.NormalizePathGains = 'On';

Compute the downlink channel estimate and display the dimension of the output channel estimate.

H = lteDLPerfectChannelEstimate(enb,chs);
sizeH = size(H)
sizeH = 1×4

    72    14     2     4

Perform perfect channel estimation on a time offset waveform that has passed through a fading channel.

Configuration initialization

  • Initialize cell-wide configuration to R.12 (TxDiversity, 6 RB, CellRefP=4, normal cyclic prefix).

  • Initialize propagation channel configuration.

enb = lteRMCDL('R.1','FDD',1);
enb.TotSubframes = 1;

chan.Seed = 1;
chan.DelayProfile = 'EPA';
chan.NRxAnts = 1;
chan.DopplerFreq = 5.0;
chan.MIMOCorrelation = 'Low';
chan.InitPhase = 'Random';
chan.InitTime = 0.0;
chan.ModelType = 'GMEDS';
chan.NTerms = 16;
chan.NormalizeTxAnts = 'On';
chan.NormalizePathGains = 'On';

Waveform processing

  • Create waveform and add samples for channel delay.

  • Pass through a fading channel, generating time-domain receiver samples.

[txwave,txgrid,rmcCfg] = lteRMCDLTool(enb,[1;0;0;1]);
txwave = [txwave; zeros(25,enb.CellRefP)];
chan.SamplingRate = rmcCfg.SamplingRate;
rxwave = lteFadingChannel(chan,txwave);

Determine timing offset

  • Use lteDLFrameOffset to estimate time offset.

  • Account for the timing offset in the received waveform.

toffset = lteDLFrameOffset(enb,rxwave)
toffset = 
7
rxwave = rxwave(1+toffset:end,:);

Demodulation and perfect channel estimation

  • Demodulate rxwave to generate frequency-domain receiver data in rxgrid.

  • Equalize with perfect channel estimate using time offset.

  • Plot resource element grids to show impact of fading channel on the transmitted signal and recovery of the signal using the perfect channel estimate.

rxgrid = lteOFDMDemodulate(enb,rxwave);
hest = lteDLPerfectChannelEstimate(enb,chan,[toffset,0]);
sizeH = size(hest);
recoveredgrid = rxgrid./hest;

subplot(2,2,1)
mesh(abs(txgrid(:,:,1,1)))
title('Transmitted Grid');
subplot(2,2,2)
mesh(abs(rxgrid(:,:,1,1)))
title('Received Grid');
subplot(2,2,3)
mesh(abs(hest(:,:,1,1)))
title('Perfect Channel Estimate');
subplot(2,2,4)
mesh(abs(recoveredgrid(:,:,1,1)))
title('Recovered Grid');

Figure contains 4 axes objects. Axes object 1 with title Transmitted Grid contains an object of type surface. Axes object 2 with title Received Grid contains an object of type surface. Axes object 3 with title Perfect Channel Estimate contains an object of type surface. Axes object 4 with title Recovered Grid contains an object of type surface.

Comparing the transmitted grid to the recovered grid shows equalization of the received grid with the perfect channel estimate recovers the transmission.

Perform perfect channel estimation for a high speed train (HST) propagation channel configuration in the downlink. Include time and frequency offsets in the channel estimation computation.

Configuration initialization

Initialize configuration structures for eNodeB and HST propagation channel.

enb.NDLRB = 6;
enb.NCellID = 1;
enb.CyclicPrefix = 'Normal';
enb.CellRefP = 1;
enb.TotSubframes = 1;

hst.NRxAnts = 2;
hst.Ds = 100;
hst.Dmin = 500;
hst.Velocity = 200;
hst.DopplerFreq = 5.0;
hst.InitTime = 0.0;
hst.ModelType = 'GMEDS';
hst.NormalizeTxAnts = 'On';

Waveform processing

  • Create waveform and add samples for channel delay.

  • Pass through an HST channel, generating time-domain receiver samples.

[txwave,txgrid,rmcCfg] = lteRMCDLTool(enb,[1;0;0;1]);
txwave = [txwave; zeros(25,enb.CellRefP)];
hst.SamplingRate = rmcCfg.SamplingRate;
rxwave = lteHSTChannel(hst,txwave);

Determine timing and frequency offsets

toffset = lteDLFrameOffset(enb,rxwave)
toffset = 
7
rxwave = rxwave(1+toffset:end,:);
foffset = lteFrequencyOffset(enb,rxwave)
foffset = 
0.4953

Demodulation and perfect channel estimation

  • Demodulate rxwave to generate frequency-domain receiver data in rxgrid.

  • Equalize with perfect channel estimate using time and frequency offsets.

rxgrid = lteOFDMDemodulate(enb,rxwave);
hest = lteDLPerfectChannelEstimate(enb,hst,[toffset,foffset]);
sizeH = size(hest)
sizeH = 1×3

    72    14     2

recoveredgrid = rxgrid./hest;

Perform perfect channel estimation for eight transmit antenna planes for a given propagation channel configuration in the downlink.

Initialize eNodeB and propagation channel configuration structures. Define a local variable for the number of transmit antenna planes.

enb.NDLRB = 6;
enb.CyclicPrefix = 'Normal';
enb.TotSubframes = 1;

chs.Seed = 1;
chs.DelayProfile = 'EPA';
chs.NRxAnts = 2;
chs.DopplerFreq = 5.0;
chs.MIMOCorrelation = 'Low';
chs.InitPhase = 'Random';
chs.InitTime = 0.0;
chs.ModelType = 'GMEDS';
chs.NTerms = 16;
chs.NormalizeTxAnts = 'On';
chs.NormalizePathGains = 'On';

txAntPlanes = 8;

Compute the downlink channel estimate and display the dimension of the output channel estimate.

chest = lteDLPerfectChannelEstimate(enb,chs,[0 0],txAntPlanes);
sizeH = size(chest)
sizeH = 1×4

    72    14     2     8

The dimensionality of chest indicates two receive and eight transmit antenna planes are included in the channel estimate.

Input Arguments

collapse all

Cell-wide settings, specified as a structure with the following fields.

Parameter FieldRequired or OptionalValuesDescription
NDLRBRequired

Scalar integer from 6 to 110

Number of downlink resource blocks (NRBDL)

CyclicPrefixOptional

'Normal' (default), 'Extended'

Cyclic prefix length

CellRefPRequired

1, 2, 4

Number of cell-specific reference signal (CRS) antenna ports

TotSubframesOptional

Nonnegative scalar integer

1 (default)

Total number of subframes to generate

Data Types: struct

Propagation channel configuration, specified as a structure that can contain these parameter fields. propchan must contain the fields required to parameterize the channel model for a fading channel (lteFadingChannel) or a high-speed train channel (lteHSTChannel).

Note

Before execution of the channel itself, lteDLPerfectChannelEstimate sets SamplingRate internally to the sampling rate of the time domain waveform passed to lteFadingChannel or lteHSTChannel for channel filtering. Therefore, the propchan structure does not require the SamplingRate field. If one is included, it is not used.

propchan structure fields to be included for fading channel model case:

Parameter FieldRequired or OptionalValuesDescription
NRxAntsRequired

Positive scalar integer

Number of receive antennas

MIMOCorrelationRequired

'Low', 'Medium', 'UplinkMedium', 'High', 'Custom'

Correlation between UE and eNodeB antennas

  • 'Low' correlation is equivalent to no correlation between antennas.

  • 'Medium' correlation level is applicable to tests defined in TS 36.101 [1].

  • 'UplinkMedium' correlation level is applicable to tests defined in TS 36.104 [2].

NormalizeTxAntsOptional

'On' (default), 'Off'

Transmit antenna number normalization.

  • 'On', this function normalizes the model output by 1/sqrt(NTX), where NTX is the number of transmit antennas. Normalization by the number of transmit antennas ensures that the output power per receive antenna is unaffected by the number of transmit antennas.

  • 'Off', normalization is not performed.

DelayProfileRequired

'EPA', 'EVA', 'ETU', 'Custom', 'Off'

Delay profile model. For more information, see Propagation Channel Models.

Setting DelayProfile to 'Off' switches off fading completely and implements a static MIMO channel model. In this case, the antenna geometry corresponds to propchan.MIMOCorrelation, propchan.NRxAnts, and the number of transmit antennas. The temporal part of the model for each link between transmit and receive antennas consists of a single path with zero delay and constant unit gain.

The following fields are applicable when DelayProfile is set to a value other than 'Off'.
  DopplerFreqRequiredScalar

Maximum Doppler frequency, in Hz.

  InitTimeRequiredScalar

Fading process time offset, in seconds.

  NTermsOptional

16 (default)

scalar power of 2

Number of oscillators used in fading path modeling.

  ModelTypeOptional

'GMEDS' (default), 'Dent'

Rayleigh fading model type.

  • 'GMEDS', the Rayleigh fading is modeled using the Generalized Method of Exact Doppler Spread (GMEDS), as described in [4].

  • 'Dent', the Rayleigh fading is modeled using the modified Jakes fading model described in [3].

Note

ModelType = 'Dent' is not recommended. Use ModelType = 'GMEDS' instead.

  NormalizePathGainsOptional

'On' (default), 'Off'

Model output normalization.

  • 'On', the model output is normalized such that the average power is unity.

  • 'Off', the average output power is the sum of the powers of the taps of the delay profile.

  InitPhaseOptional'Random' (default), scalar (in Radians), or N-by-L-by-NTX-by-NRX array

Phase initialization for the sinusoidal components of the model.

  • 'Random', sets the phases randomly initialized according to Seed.

  • A scalar, assumed to be in radians, is used to initialize the phases of all components.

  • An N-by-L-by-NTX-by-NRX array is used to explicitly initialize the phase in radians of each component. In this case, N is the number of phase initialization values per path, L is the number of paths, NTX is the number of transmit antennas, and NRX is the number of receive antennas. (NRxAnts)

Note

  • When ModelType is set to 'GMEDS', N = 2 × NTerms.

  • When ModelType is set to 'Dent', N = NTerms.

The following field is applicable when DelayProfile is set to a value other than 'Off' and InitPhase is set to 'Random'.
  SeedRequiredScalar

Random number generator seed. To use a random seed, set Seed to zero.

Note

MathWorks® recommends using Seed values from 0 to 231 – 1 – (K(K – 1)/2), where K = NTX × NRX, the product of the number of transmit and receive antennas. Seed values outside of this range are not guaranteed to give distinct results.

The following fields are applicable when DelayProfile is set to 'Custom'.
  AveragePathGaindBRequiredVector

Average gains of the discrete paths, expressed in dB.

  PathDelaysRequiredVector

Delays of the discrete paths, expressed in seconds. This vector must have the same size as AveragePathGaindB.

The following fields are applicable when MIMOCorrelation is set to 'Custom'.
  TxCorrelationMatrixRequiredMatrix

Correlation between each of the transmit antennas, specified as a NTX-by-NTX complex matrix.

  RxCorrelationMatrixRequiredMatrix

Correlation between each of the receive antennas, specified as a complex matrix of size NRX-by-NRX.

propchan structure fields to be included for the high-speed train channel model case:

Parameter FieldRequired or OptionalValuesDescription
NRxAntsRequired

Positive scalar integer

Number of receive antennas

DsRequired

Scalar

Train-to-eNodeB double initial distance, in meters.

Ds/2 is initial distance between train and eNodeB, in meters

DminRequired

Scalar

eNodeB to railway track distance, in meters

VelocityRequired

Scalar

Train velocity, in kilometers per hour

DopplerFreqRequiredScalar

Maximum Doppler frequency, in Hz.

InitTimeRequiredScalar

Doppler shift timing offset, in seconds

NormalizeTxAntsOptional

'On' (default), 'Off'

Transmit antenna number normalization.

  • 'On', lteHSTChannel normalizes the model output by 1/sqrt(NTX), where NTX is the number of transmit antennas. Normalization by the number of transmit antennas ensures that the output power per receive antenna is unaffected by the number of transmit antennas.

  • 'Off', normalization is not performed.

Data Types: struct

Timing and frequency offset, specified as a nonnegative scalar providing toffset or two element row vector providing [toffset, foffset].

Timing offset in samples from the start of the output of the channel to the OFDM demodulation starting point, specified as a nonnegative scalar. The timing offset accounts for delay introduced during propagation, which is useful to obtain the perfect estimate of the channel seen by a synchronized receiver. Use lteDLFrameOffset to derive toffset.

Frequency offset in Hertz of the time-domain waveform, specified as a scalar. Use lteFrequencyOffset to derive foffset.

Example: [3 100] indicates a time offset of three samples and a frequency offset of 100 Hz.

Data Types: double

Number of transmit antenna planes, specified as a nonnegative integer.

Output Arguments

collapse all

Perfect channel estimate, returned as an NSC-by-NSYM-by-NRX-by-NTX array.

  • NSC is the number of subcarriers.

  • NSYM is the number of OFDM symbols.

  • NRX is the number of receive antennas as specified by propchan.NRxAnts.

  • NTX is the number of transmit antenna planes, specified either by the input ntxants or by enb.CellRefP. If ntxants is provided as an input, the enb.CellRefP field is not required and, if included, is not used.

Data Types: double
Complex Number Support: Yes

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.

[2] 3GPP TS 36.104. “Evolved Universal Terrestrial Radio Access (E-UTRA); Base Station (BS) Radio Transmission and Reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

[3] Dent, P., G. E. Bottomley, and T. Croft. “Jakes Fading Model Revisited.” Electronics Letters. Vol. 29, 1993, Number 13, pp. 1162–1163.

[4] Pätzold, Matthias, Cheng-Xiang Wang, and Bjørn Olav Hogstad. “Two New Sum-of-Sinusoids-Based Methods for the Efficient Generation of Multiple Uncorrelated Rayleigh Fading Waveforms.” IEEE Transactions on Wireless Communications. Vol. 8, 2009, Number 6, pp. 3122–3131.

Version History

Introduced in R2013b