# lteOFDMDemodulate

OFDM demodulation

## Syntax

``grid = lteOFDMDemodulate(enb,waveform)``
``grid = lteOFDMDemodulate(enb,waveform,cpfraction)``

## Description

example

````grid = lteOFDMDemodulate(enb,waveform)` performs OFDM demodulation of `waveform`, the time-domain waveform, for cell-wide settings `enb`.The demodulation performs one FFT operation per received OFDM symbol to recover the received subcarrier values. These values are then used to construct each column of the output resource array, `grid`. The FFT is positioned partway through the cyclic prefix to allow for a certain degree of channel delay spread while avoiding the overlap between adjacent OFDM symbols. The particular position of the FFT chosen here avoids the OFDM symbol overlapping used in `lteOFDMModulate`. Since the FFT is performed away from the original zero-phase point on the transmitted subcarriers, a phase correction is applied to each subcarrier after the FFT. Then, the received subcarriers are extracted from the FFT bins, skipping unused frequency bins at either end of the spectrum and the central DC frequency bin. These extracted subcarriers form the columns of the output `grid`.The sampling rate of the time-domain waveform, `waveform`, must be the same as used in `lteOFDMModulate` for the specified number of resource blocks, `NDLRB`. `waveform` must also be time-aligned such that the first sample is the first sample of the cyclic prefix of the first OFDM symbol in a subframe. This alignment can be achieved by using `lteDLFrameOffset`.```
````grid = lteOFDMDemodulate(enb,waveform,cpfraction)` specifies of the position of the demodulation through the cyclic prefix.```

## Examples

collapse all

Perform modulation and demodulation of Test Model 1.1 5MHz.

```cfg = lteTestModel('1.1','5MHz'); txWaveform = lteTestModelTool(cfg); rxGrid = lteOFDMDemodulate(cfg,txWaveform);```

## Input Arguments

collapse all

Cell-wide settings, specified as a structure containing these 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

Data Types: `struct`

Time-domain waveform, specified as a numeric matrix of size T-by-P, where P is the number of antennas and T is the number of time-domain samples. T = K × 30720 / 2048 × Nfft, where Nfft is the IFFT size and K is the number of subframes in the input, `grid`. `waveform` must be time-aligned such that the first sample is the first sample of the cyclic prefix of the first OFDM symbol in a subframe.

Data Types: `double`
Complex Number Support: Yes

Demodulation position, specified as a scalar in the interval [0, 1], with 0 representing the start of the cyclic prefix and 1 representing the end of the cyclic prefix. The default value allows for the default level of windowing in `lteOFDMModulate`

Data Types: `double`

## Output Arguments

collapse all

Resource elements, returned as a 3-D numeric array. `grid` stores the resource elements for a number of subframes across all configured antenna ports. It is an M-by-N-by-P array, where M is the number of subcarriers, N is the number of OFDM symbols, and P is the number of antennas.

Data Types: `double`
Complex Number Support: Yes

## Version History

Introduced in R2014a