Toolbox: OFDM signal generator
μNRBModulationK0Sym idx lCP
tstart,l [μs]0.000
tduration,l [μs]36.198
Random binary input b
Modulated signal α
Zero padded
Circular shifted
N-point IFFT
OFDM signal: value
OFDM signal: time [μs]

Below shows the frequency domain signal before IFFT. Top bar is the modulated signal with length of NRB*12; middle bar is after zero-padding, where 0s are added two both ends; bottom bar is after circular shift, where middle subcarrier is shifted to the left-most edge and padded 0s are shifted to the center.

Below show the amplitude of the time domain signal after IFFT, with CP attached. Before the first vertical line is CP, which is a duplication of the last portion of the signal (after the last vertical line).

Note: according to TS 38.211 5.3.1, the OFDM signal is not normalized by N. This differs from some IFFT implementations (e.g. Matlab).

Below show the phase of the time domain signal after IFFT, with CP attached.

OFDM baseband signal generation

OFDM baseband signal generation for all channels except PRACH

The time-continuous signal on antenna port p and subcarrier spacing configuration μ for OFDM symbol in a subframe for any physical channel or signal except PRACH is defined in the equation below. This equation represents an Inverse Fast Fourier Transform (IFFT), i.e., the equation generates a time domain signal from a frequency domain signal by summing a set of modulated subcarriers.

where is the time within the frame,


  • p is the antenna port;
  • μ∈{0, 1, 2, 3, 4} is the subcarrier spacing configuration;
  • Δf=2μ·15 [kHz] is the subcarrier spacing;
  • μ0 is the largest μ value among the subcarrier spacing configurations by the higher-layer parameter scs-SpecificCarrierList;
  • is the number of Resouce Blocks given by the higher-layer parameter carrierBandwidth in the SCS-SpecificCarrier IE;
  • is the start Resource Block index given by the higher-layer parameter offsetToCarrier in the SCS-SpecificCarrier IE;
  • x can be uplink or downlink;
  • is the content of Resource Element (subcarrier k and symbol l);
  • ;
  • κ=64;
  • Tc=1/(Δfmax·Nf) = 1/(480·103·4096) = 0.5086 ns

The starting position of OFDM symbol l for subcarrier spacing configuration μ in a subframe is given by

Interpretation of the equations

  • The summation uses the variable k which ranges from 0 to the total number of subcarriers. The baseband signal is centered around kHz. With , the subcarrier index is generated by subtracting half of the total number of subcarriers from k. So first half of the subcarriers have negative index, second half of the subcarriers have 0 or positive index.
  • Subcarrier index of 0 (i.e., ) corresponds to the DC subcarrier on frequency 0 Hz.
  • The subcarrier index includes a k0μ variable which shifts the center subcarrier of input signal α away from the DC subcarrier, in order to ensure the Common Resource Blocks (CRBs) belonging to different numerologies are alingned at 'Point A'.
  • The input information is multiplied by a complex phasor of the form ej2πk't/N, where k' is generated from the subcarrier index, N is the IFFT size . The time t is generated from the time index.
  • The time index has two parts, first is which is used to generate the cyclic prefix. The second part is which is the start time of each symbol.

Use IFFT to generate the OFDM signal

It is possible to directly calculate the OFDM signals by the equations in TS 38.213 clause 5.3. However, doing so will involve two nested loops of large size and will take long time to finish. Instead, we can use IFFT to compute the OFDM signals quickly.

Recall the IFFT equation of , let's re-formulate the OFDM signal generation equation to make use of it:

  1. Find the IFFT size N: minimum value of 2x which is no less than Nsc + abs(k0μ) with E.g., IFFT size of 1024 for number of subcarriers plus shift between 513 and 1024, IFFT size of 4096 for number of subcarriers plus shift between 2049 and 4096.
  2. Zero-pad input data: , where (N - Nsc)/2 + k0μ 0s are padded before input data, and (N - Nsc)/2 - k0μ 0s are padded after input data. E.g., with input data of {1, 2, 3, 4, 5, 6} and k0μ=1, zero-padded data is {0, 0, 1, 2, 3, 4, 5, 6}.
  3. Circular shift zero-padded input data around the center: . E.g., {0, 0, 1, 2, 3, 4, 5, 6} becomes {3, 4, 5, 6, 0, 0, 1, 2}.
  4. Generate time domain signal without CP: with n=0,1,...,N-1, and t(n)=n/Δf/N. Total duration of the time domain signal without CP is 1/Δf.
  5. Generate CP: the time duration of CP is . CP is the last L elements of x(n), i.e. , with length .
  6. Attach CP: the final OFDM signal is CP appended in front of X, i.e. . The corresponding time for the OFDM signal is: