can any one explain how actually IFFT generating sub carriers in OFDM.... when we are simulating OFDM transmitter in matlab, we are taking input data stream, encoding it and modulating the encoded data. then we are converting this modulated serial data stream to parallel data and giving it to the IFFT block. my problem is how sub carriers are generating in IFFT??

  • 3
    $\begingroup$ Weinstein and Ebert were the first to show that an OFDM signal can be generated by IDFT in their paper "Data transmission by frequency-division multiplexing using the discrete Fourier transform". You can find the derivation in many textbooks including "OFDM and MC-CDMA for Broadband Multi-User Communications, WLANs and Broadcasting" by Hanzo et al. If you have more specific questions about it, I'll be glad to help. $\endgroup$
    – Deve
    Jan 18, 2013 at 9:02

5 Answers 5


The first thing you must change for understanding why IFFT is used for OFDM is to forget about time and frequency domains.

As the name states OFDM is a technique about frequency domain multiplexing. When you think in FDM you'll have several channels modulated with a guard interval between then to prevent interference. If the carriers are orthogonal you'll not have interference, but without the waste of band guard.

But how you can have this?

One way is to use several modulators, as in FDM, but with the correct frequencies. This is hard to accomplish.

If you will implement digitally the filter bank,and this is the correct way to view IFFT on OFDM systems: a transmultiplexer(TMUX), is equivalent to an IDFT. This is why you can use IFFT as a fast implementation for OFDM. You can read one of the books about multi-carrier communication for a better explanation. This paper http://wsl.stanford.edu/~ee359/ofdm_bingham.pdf is also one that I like about multi-carrier modulation.


Think of it this way. The DFT and IDFT are two different representations of the same thing. That thing is a sequence of complex exponentials (sub carriers) that have frequenies that are regularly spaced in the frequency domain (frequencies are the bins of a DFT).

For the sake of simplicity, I'm ignoring phase here


A1e^f1nT + A2ef2nT +... <---> A1, A2 ...

The coefficients A1, A2 ... of the DFT (frequency domain) represent amplitude information for the time sequence of complex exponentials (sub carriers) in the sum on the left (IDFT - time domain).

In OFDM, you map your data to represent the amplitudes of a DFT (A1,A2...).

Performing the IDFT, reconstructs a time sequence that is composed of the complex exponentials (sub carriers) summed together using the amplitudes represented by the coefficients A1,A2...

Alternatively, just look at the definition of the IDFT. The time sequence given from computing the IDFT is...

$$ f[n] = \frac {1}{\sqrt[2]N} \sum_{k=0}^{N-1} A[k]e^{i2\pi nk/N}$$

the $e^{i2\pi nk/N}$ part of the sum represents each of the OFDM subcarriers.

  • $\begingroup$ Hi can you please explain more on this... actaully am simulating ofdm transmitter in matlab.. in that output of the modulation block is given to ifft block... i am not getting how this generating ofdm symbols and where are sub carriers?? please help on this $\endgroup$ Jan 19, 2013 at 17:09
  • $\begingroup$ Ok. Let's start with some basic questions. What is the output of the IDFT section? What does this output represent? What is the frequency content of the output of the IDFT stage? How would you verify this frequency content? Keep in mind that the subcarriers are not explicitly represented in the time domain, but they are explicitly represented in the frequency domain. $\endgroup$
    – user2718
    Jan 20, 2013 at 0:38

This is my intuitive understanding of IFFT/FFT regarding OFDM (i.e. - little or no math):

The idea of most modern communication systems is to send symbols with some sequence of different amplitudes and phases. In OFDM, Those symbols are contained in the frequency domain. Transmitters need a sequence of complex symbols to send in the time domain, however.

Assume that you are generating the samples at "one-sample-per-symbol" (and will upsample/resample later). What is the simplest way to control the amplitude and phase of the sub-carriers in the frequency domain? The answer is the IFFT.

If you know what the amplitude and phase of the sub-carriers should be, the easiest way to enforce that, and give the transmitter the time-series complex exponentials that it needs, is the IFFT.

Once you have samples at "one-sample-per-symbol" (which is okay when generating symbols), you you can resample that sequence to whatever is required by the transmitter or the receiving side of the simulation.

Background: I found the official, mathematical explanation (Weinstein) from my digital communications class not very helpful. I came to this intuitive understanding when writing an OFDM simulation and an actual receiver for an OFDM specification. Some people learn differently and I hope this helps.


Each bin in the DFT represents the magnitude and phase of a that subcarrier as given by the frequency for that bin, for the symbol duration as given by the time duration of the IFFT result. Thus we get, via the IFFT, the time domain summation for one symbol duration of multiple sub-carriers all transmitted in parallel. The IFFT output is the equivalent baseband result for what we would get at any RF carrier frequency. The IFFT output is translated to the RF carrier using an IQ modulator.

To see this, consider a single carrier modulation such as QPSK, where we could map data to the magnitude and phase according to the following complex diagram:


So if the user wants to send the bits 10 for example, we would transmit the carrier with a 45 degree phase shift (the symbol for the 10 pattern) and magnitude 1 in a given symbol interval (time slot). If the user wanted to transmit multiple bits such as 10 11 11, we would use 3 time slots and transmit the carrier with a 45 degree phase shift for the first time slot (10), and then with a 135 degree phase shift for the next two time slots (11).

We could instead use a multi-carrier approach, where we combine multiple QPSK transmitters on separate carriers closely spaced together. For example the drawing below depicts the possible phase states for 4 separate QPSK carriers each at frequency index k where $k=0,1,2,3$.

multi-carrier QPSK

The time domain waveform would be the result of these four independent carriers with independent data all running in parallel. Further, if we were to space the carriers at a frequency spacing of $1/T$ where $T$ is the symbol duration, each separate carrier would be orthogonal to the others providing the closest we could space these carriers with no cross-interference (without getting into too many specifics but pulse shaping if done would destroy this orthogonality).

So we could create the above system by actually combining separate QPSK modulators with specific carrier frequency offsets, but we don't need to thanks the the FFT! Each of the phase and amplitude values we would want for the four (in this example) carriers in any given time slot (based on the data we want to transmit) is the complex values of a 4 bin FFT! If we take the inverse FFT of a block of samples representing the FFT (created from our data), we would get the time domain waveform that would have otherwise resulted from the parallel combination of individual single-carrier modulators grouped together.

With the implementation of OFDM we also insert a "cyclic prefix" (CP) between each IFFT block, and then remove this in the receiver. Because of that the time domain waveform will not be exactly the same as the parallel modulation described above but have a time gap between each symbol where the CP resides. Without the CP, (or after we remove the CP in the receiver) there is absolutely no difference and the use of the IFFT and FFT processing significantly simplifies the implementation. Basically the IFFT is a massive parallel modulator as given by the IFFT formula:

$$x[n] = \sum_{k=0}^{N-1}C_k e^{j \omega_k n}, \space n=0\ldots N-1$$

Where $C_k$ is the complex symbol for any given sub-carrier $k$. This provides the result for a single modulated symbol in a given time slot of $N$ samples. If we cascade one IFFT block after the other, we achieve the desired time domain modulation as the sum of multiple modulated symbols each at different sub-carriers, since the first sample in each sub-carrier in the IFFT block result is phase consistent with being the next sample right after the last sample, so we end up with a correctly modulated sub-carrier based on the DFT value that was used!

If that is difficult to visualize or understand, consider the simpler case of a single carrier modulation without OFDM and then compare to the summation of multiple such carriers as given above; a simple QPSK modulator upconverted to $\omega_c$ which each individual symbol $m$ in the time domain is given as:

$$x[n] = C_m e^{j \omega_c n}$$

Where $C_m$ is the complex value for that specific symbol (for example if QPSK as demonstrated above, $C_m$ would take on one value from the set $\{ 1+j1, 1-j1, -1+j1, -1-j1\}$. (scaled by $1/\sqrt{2}$ if we wanted the symbols to be normalized).

  • $\begingroup$ But the catch is - for the transmission of the IFFT sequence (each IFFT sequence), each transmitted IFFT block would need to be periodic. If each transmitted IFFT sequence isn't periodic, then we're not really generating a physical 'OFDM' spectrum/signal at all. Instead, it's regular quadrature modulation. The IFFT OFDM approach is actually a 'virtual' OFDM approach, rather than a physical OFDM approach. It involves receiving/demodulated quadrature modulation (i/q) signal to recover the complex value IFFT sequence. And recovering each IFFT sequence allows the encoded raw data to be recovered. $\endgroup$
    – Kenny
    Dec 10, 2023 at 0:17
  • $\begingroup$ @Kenny I don't quite follow yet. Could you elaborate in your own answer why it would need to be periodic? As I detail in my answer (excluding the cyclic prefix for now) one block represents the state for each of the QAM waveforms for one symbol period of those QAM waveforms. So the next block in time would be the next symbols based on whatever data we have, and therefore, in the frequency domain as the magnitude and phase for each of those QAM carriers, a different FFT block. The result is identical, and we get multiple QAM channels multiplexed in freq, orthogonally spaced (true OFDM). $\endgroup$ Dec 10, 2023 at 5:02
  • $\begingroup$ So I guess what I am missing is what would be "True OFDM" if this isn't..and why this isn't. $\endgroup$ Dec 10, 2023 at 5:03
  • $\begingroup$ 'True OFDM' will be the one generated using the 'classical' approach. The IFFT 'ofdm' method that people are discussing does not generate a 'physical' OFDM spectrum at all. In fact, the IFFT OFDM 'technique' doesn't even generate an OFDM signal. The IFFT signal, when transmitted is really a time-domain based quadrature modulation signal. That's because - as I mentioned - each IFFT sequence that is sent, is not sent as a 'periodic' sequence (repetitive). So you're not physically transmitting OFDM at all with the 'IFFT' method. It's a red herring. $\endgroup$
    – Kenny
    Dec 10, 2023 at 22:17
  • $\begingroup$ I can elaborate. A sinusoid exists for 'all' time. If you generate just a single period of a 'sinusoid', then that short burst is not going to pass as a sinusoid signal. But if you are in a lab, and you generate the sinusoid (periodic) and watch it for 5 seconds, or 1 minute, then at least that will 'pass' as a sinusoid signal, more or less. Same deal here with IFFT 'ofdm' method. Each IFFT sequence is transmitted once only. The actual (even theoretical) signal is not OFDM. Going back to time-freq relations, the time signal is assumed to be periodic in order to link it to the frequency side. $\endgroup$
    – Kenny
    Dec 10, 2023 at 22:18

The basic answer is - you can't generate sub-carriers for OFDM (for realising an OFDM symbol) with IFFT sequences - unless the IFFT block sequence is periodic (repetitive). This also means that generating a physical 'OFDM' signal (spectrum) for even just one OFDM symbol using IFFT should be taken with a grain of salt.

That is, if each particular IFFT block sequence isn't purposely made to be periodic (or at least periodic for a relatively long time), then the idea of generating an actual OFDM (frequency domain OFDM symbol spectrum of any sort) won't pull through.

One single IFFT block sequence, transmitted one time only (physically non-periodic), does not equate to the frequency domain 'spectrum' for the OFDM symbol that we want to 'physically produce'. That's because we don't have periodicity. A key point is a lack of physical periodicity for each IFFT block sequence.

When carrying out an 'FFT', periodicity of the time domain signal is implied especially when the 'physical' line spectrum is meant to match the time domain signal for any particular individual OFDM symbol.

To get the 'right' physical spectrum, the IFFT block time domain complex sequence should 'physically' be periodic, or at least periodic for a long enough amount of time. If not physically periodic, then we cannot even begin to delve into the line spectrum OFDM symbol side of things, because each line spectrum component for one particular OFDM symbol, is meant to correspond to a periodic waveform in the time domain.


Not the answer you're looking for? Browse other questions tagged or ask your own question.