This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.


Uplink perfect channel estimation


  • hest = lteULPerfectChannelEstimate(ue,propchan)
  • hest = lteULPerfectChannelEstimate(ue,propchan,toffset)



hest = lteULPerfectChannelEstimate(ue,propchan) performs perfect channel estimation for a system configuration given structures containing the UE-specific settings, and the propagation channel configuration. The perfect channel estimates are only produced for the fading channel model created using the lteFadingChannel toolbox function.

This function provides a perfect MIMO channel estimate after SC-FDMA 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.


hest = lteULPerfectChannelEstimate(ue,propchan,toffset) adds the parameter toffset, which specifies the timing offset. This parameter allows hest to be the precise channel that results when the receiver is precisely synchronized.


collapse all

Perform perfect channel estimation for a given propagation channel configuration.

Initialize strucutres for UE configuration and propagation channel configuration.

ue.NULRB = 6;
ue.CyclicPrefixUL = 'Normal';
ue.NTxAnts = 2;
ue.TotSubframes = 1;
chs.Seed = 1;
chs.DelayProfile = 'EPA';
chs.NRxAnts = 4;
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';

Perform perfect channel estimation and display dimension of channel estimate array.

H = lteULPerfectChannelEstimate(ue, chs);
sizeH = size(H)
sizeH =

    72    14     4     2

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

Configuration initialization

Initialize structures for UE configuration and propagation channel configuration, and timing offset.

ue = lteRMCUL('A1-1','FDD',1);
ue.NULRB = 10;
ue.CyclicPrefixUL = 'Normal';
ue.NTxAnts = 4;
ue.TotSubframes = 1;
propchan.Seed = 1;
propchan.DelayProfile = 'EVA';
propchan.NRxAnts = 2;
propchan.DopplerFreq = 5.0;
propchan.MIMOCorrelation = 'UplinkMedium';
propchan.InitPhase = 'Random';
propchan.InitTime = 0.0;
propchan.ModelType = 'GMEDS';
propchan.NTerms = 16;
propchan.NormalizeTxAnts = 'On';
propchan.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] = lteRMCULTool(ue,[1;0;0;1]);
txwave = [txwave; zeros(25,4)];
propchan.SamplingRate = rmcCfg.SamplingRate;
rxwave = lteFadingChannel(propchan,txwave);

Determine timing offset

  • Use lteULFrameOffset to estimate time offset.

  • Account for timing offset in the received waveform.

toffset = lteULFrameOffset(ue,ue.PUSCH,rxwave)
rxwave = rxwave(1+toffset:end,:);
toffset =


Demodulation and perfect channel estimation

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

  • Equalize with perfect channel estimate with 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 = lteSCFDMADemodulate(ue,rxwave);
hest = lteULPerfectChannelEstimate(ue,propchan,toffset);
sizeH = size(hest)
sizeH =

   120    14     2     4

The output channel estimate is a 4D array. The input specified ten resource blocks leading to 120 subcarriers per symbol. Normal cyclic prefix results in 14 symbols per subframe. The third and forth dimensions reflect the 2 receive and 4 transmit antennas specified in the input configuration structures.

recoveredgrid = rxgrid./hest;

title('Transmitted Grid')
title('Received Grid')
title('Perfect Channel Estimate')
title('Recovered Grid')

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

Input Arguments

collapse all

UE-specific settings, specified as a scalar structure that can contain the following fields.

Parameter FieldRequired or OptionalValuesDescription

Scalar integer from 6 to 110

Number of uplink resource blocks. (NRBUL)


'Normal' (default), 'Extended'

Cyclic prefix length.


1, 2, 4

Number of transmission antennas.


Nonnegative scalar integer

(default 1)

Total number of subframes to generate

Data Types: struct

Propagation channel configuration structure, specified as a scalar structure. propchan must contain the fields required to parameterize the channel model for lteFadingChannel to be configured.

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

Parameter FieldRequired or OptionalValuesDescription

1, 2, 4

Number of receive antennas


'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].


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


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

Delay profile model.

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'.
  DopplerFreqRequiredNumeric value

Maximum Doppler frequency, in Hz.

  InitTimeRequiredNumeric value

Fading process time offset, in seconds.


Positive integer, 16 (default), power of 2

Number of oscillators used in fading path modeling.


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


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


'Random' (default),

numeric value (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 numeric value, assumed to be in radians, is used to initialize the phases of all components.

  • An N-by-L-by-NTX-by-NRX array 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).


    • 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'.
  SeedRequiredNumeric value

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

Average gains of the discrete paths, expressed in dB.


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

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


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

Data Types: struct

Timing offset in samples, specified as a nonnegative integer. The timing offset is specified from the start of the output of the channel to the estimated SC-FDMA demodulation starting point. Specify the timing offset, when known, to obtain the perfect channel estimate as seen by a synchronized receiver. Use lteULFrameOffset to derive toffset.

Data Types: double

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 SC-FDMA symbols.

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

  • NTX is the number of transmit antenna planes, specified by ue.NTxAnts.

Data Types: double
Complex Number Support: Yes


[1] 3GPP TS 36.101. "User Equipment (UE) Radio Transmission and Reception." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). URL:

[2] 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). URL:

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

Introduced in R2014a

Was this topic helpful?