Main Content


OFDM demodulation



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 the position of the demodulation through the cyclic prefix.

grid = lteOFDMDemodulate(enb,waveform,cpfraction,Nfft) specifies the number of FFT points to use in the demodulation.


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

Scalar integer from 6 to 110

Number of downlink resource blocks (NRBDL)


'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

The number of FFT points to use in the OFDM demodulation, specified as a positive integer.

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

expand all