Main Content

# lteDLPerfectChannelEstimate

Downlink perfect channel estimation

## Syntax

``hest = lteDLPerfectChannelEstimate(enb,propchan)``
``hest = lteDLPerfectChannelEstimate(enb,propchan,timefreqoffset)``
``hest = lteDLPerfectChannelEstimate(enb,propchan,timefreqoffset,ntxants)``

## Description

example

````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. NoteThis 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. ```

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

`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');```

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
`NDLRB`Required

Scalar integer from 6 to 110

Number of downlink resource blocks. (${N}_{\text{RB}}^{\text{DL}}$)

`CyclicPrefix`Optional

`'Normal'` (default), `'Extended'`

Cyclic prefix length

`CellRefP`Required

1, 2, 4

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

`TotSubframes`Optional

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
`NRxAnts`Required

Positive scalar integer

Number of receive antennas

`MIMOCorrelation`Required

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

`NormalizeTxAnts`Optional

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

`DelayProfile`Required

`'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'`.
`DopplerFreq`RequiredScalar

Maximum Doppler frequency, in Hz.

`InitTime`RequiredScalar

Fading process time offset, in seconds.

`NTerms`Optional

16 (default)

scalar power of 2

Number of oscillators used in fading path modeling.

`ModelType`Optional

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

`NormalizePathGains`Optional

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

`InitPhase`Optional`'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'`.
`Seed`RequiredScalar

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'`.
`AveragePathGaindB`RequiredVector

Average gains of the discrete paths, expressed in dB.

`PathDelays`RequiredVector

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'`.
`TxCorrelationMatrix`RequiredMatrix

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

`RxCorrelationMatrix`RequiredMatrix

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
`NRxAnts`Required

Positive scalar integer

Number of receive antennas

`Ds`Required

Scalar

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

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

`Dmin`Required

Scalar

eNodeB to railway track distance, in meters

`Velocity`Required

Scalar

Train velocity, in kilometers per hour

`DopplerFreq`RequiredScalar

Maximum Doppler frequency, in Hz.

`InitTime`RequiredScalar

Doppler shift timing offset, in seconds

`NormalizeTxAnts`Optional

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

Introduced in R2013b

Download ebook