OFDM Demodulator Baseband

Demodulate orthogonal frequency division modulated data

Library

OFDM, in Digital Baseband sublibrary of Modulation

  • OFDM Demodulator Baseband block

Description

The Orthogonal Frequency Division Modulation (OFDM) Demodulator Baseband block demodulates an OFDM input signal. The block accepts a single input and has one or two output ports, depending on the status of Pilot output port.

Signal Dimensions

Pilot Output PortPilot Carrier IndicesSignal InputSignal OutputPilot Output
falseN/ANCPTotal+NFFT×Nsym-by-NrNdata-by-Nsym-by-NrN/A
true2-DNpilot-by-Nsym-by-Nr
3-DNpilot-by-Nsym-by-Nt-by-Nr

where

  • NCP represents the cyclic prefix length as determined by Cyclic prefix length.

  • NCPTotal represents the cyclic prefix length over all the symbols. When NCP is a scalar, NCPTotal = NCP × Nsym. When NCP is a row vector, NCPTotal = ∑ NCP.

  • NFFT represents the number of subcarriers as determined by FFT length.

  • Nsym represents the number of symbols as determined by Number of OFDM symbols.

  • Nr represents the number of receive antennas as determined by Number of receive antennas.

  • Ndata represents the number of data subcarriers. For further information on how Ndata is determined, see the info reference page.

  • Npilot represents the number of pilot symbols determined by the second dimension in the Pilot subcarrier indices array.

  • Nt represents the number of transmit antennas. This parameter is derived from the third dimension of the Pilot subcarrier indices array.

Parameters

FFT Length

Specify the FFT length, which is equivalent to the number of subcarriers. The length of the FFT, NFFT, must be greater than or equal to 8.

Number of guard bands

Assign the number of subcarriers to the left, NleftG, and right, NrightG, guard bands. The input is a 2-by-1 vector. The number of subcarriers must fall within [0,NFFT/2 − 1].

Remove DC carrier

Select to remove the DC subcarrier.

Pilot output port

Select to separate the data from the pilot signal and output the demodulated pilot signal.

Pilot subcarrier indices

Specify the pilot subcarrier indices. This field is available only when the Pilot output port check box is selected. You can assign the indices can be assigned to the same or different subcarriers for each symbol. Similarly, the pilot carrier indices can differ across multiple transmit antennas. Depending on the desired level of control for index assignments, the dimensions of the indices’ array vary from 1 to 3. Valid pilot indices fall in the range

[NleftG+1,NFFT/2][NFFT/2+2,NFFTNrightG],

where the index value cannot exceed the number of subcarriers. If the number of transmit antennas is greater than one, ensure that the indices per symbol are mutually distinct across antennas to minimize interference.

Cyclic prefix length

Specify the length of the cyclic prefix. If you specify a scalar, the prefix length is the same for all symbols through all antennas. If you specify a row vector of length Nsym, the prefix length can vary across symbols but remains the same length through all antennas.

Number of OFDM symbols

Specify the number of OFDM symbols, Nsym, in the time-frequency grid.

Number of receive antennas

Specify the number of receive antennas, Nr, as a positive integer such that Nr ≤ 64.

Simulate using

Select the simulation type from these choices:

  • Code generation

  • Interpreted execution

Algorithms

This block implements the algorithm, inputs, and outputs described in the OFDM Demodulator System object reference page. The object properties correspond to the block parameters.

Supported Data Types

PortSupported Data Types

Input

  • Double-precision floating point

Pilot (optional)

  • Double-precision floating point

Output

  • Double-precision floating point

References

[1] Dahlman, E., S. Parkvall, and J. Skold. 4G LTE/LTE-Advanced for Mobile Broadband.London: Elsevier Ltd., 2011.

[2] Andrews, J. G., A. Ghosh, and R. Muhamed. Fundamentals of WiMAX.Upper Saddle River, NJ: Prentice Hall, 2007.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Introduced in R2014a