Inverse Fast Fourier Transform

Quick Answer

The inverse FFT (IFFT) computes the inverse Discrete Fourier Transform efficiently in O(N log N) operations: x[n] = (1/N)Σ_{k=0}^{N-1} X[k]·e^(j2πkn/N), recovering N time-domain samples from N frequency-domain coefficients. The IFFT uses the same Cooley-Tukey butterfly algorithm as the forward FFT, with conjugated twiddle factors and 1/N normalization. IFFT is critical for OFDM communications (5G, Wi-Fi), spectral synthesis, and frequency-domain filtering.

What Is the Inverse FFT?

The inverse Fast Fourier Transform (IFFT) is the efficient algorithm that converts frequency-domain data back to the time domain. Given N complex frequency coefficients X[0], X[1], ..., X[N−1], the IFFT computes x[n] = (1/N)Σ_{k=0}^{N-1} X[k]·e^(j2πkn/N) for n = 0, 1, ..., N−1. This is the reverse of the forward FFT, recovering the original time-domain samples exactly (perfect reconstruction). The IFFT has the same O(N log N) computational complexity as the forward FFT, using the identical Cooley-Tukey butterfly structure with two modifications: conjugated twiddle factors (e^(+j2π/N) instead of e^(−j2π/N)) and division by N. The continuous-domain inverse Fourier and Laplace transforms at www.lapcalc.com provide the analytical counterparts.

Key Formulas

IFFT Algorithm: How It Works

The IFFT is computed using the forward FFT with a simple trick: IFFT{X} = (1/N)·conj(FFT{conj(X)}). Conjugate the input spectrum, apply the standard forward FFT algorithm, conjugate the output, and divide by N. This avoids implementing a separate inverse algorithm — the same FFT code serves both directions. Alternatively, swapping the real and imaginary parts before and after the FFT, then dividing by N, also produces the IFFT. In hardware implementations (FPGA, ASIC), a single FFT processor handles both forward and inverse transforms by toggling a direction control bit that selects the twiddle factor sign. Modern FFT libraries (FFTW, cuFFT, numpy.fft) provide dedicated ifft() functions optimized for the inverse direction.

Compute inverse fast fourier transform Instantly

Get step-by-step solutions with AI-powered explanations. Free for basic computations.

Open Calculator

Inverse FFT in OFDM Communications

The IFFT is central to Orthogonal Frequency Division Multiplexing (OFDM), the modulation scheme used in 5G NR, Wi-Fi 6/7 (802.11ax/be), LTE, DVB-T digital television, and DAB digital radio. At the OFDM transmitter, data symbols are mapped to frequency-domain subcarriers, and the IFFT converts them to a time-domain waveform for transmission. At the receiver, the FFT converts the received waveform back to frequency-domain symbols for demodulation. Wi-Fi 6 uses 256/512/1024/2048-point IFFT/FFT pairs depending on the channel bandwidth (20/40/80/160 MHz). 5G NR uses up to 4096-point transforms for wide bandwidth operation. The IFFT effectively performs multi-carrier modulation in a single efficient computation.

IFFT for Frequency-Domain Filtering and Synthesis

Frequency-domain filtering uses the IFFT to return filtered signals to the time domain. The overlap-add method segments a long input signal into blocks, FFTs each block, multiplies by the filter frequency response H[k], IFFTs the products, and overlaps and adds the results. For FIR filters longer than ~64 taps, this FFT/IFFT approach is faster than direct time-domain convolution. Spectral synthesis uses the IFFT to generate time-domain waveforms from frequency specifications: define the desired magnitude and phase at each frequency bin, IFFT to produce the waveform. Audio synthesizers and test signal generators use this approach to create signals with precise spectral characteristics.

Computing IFFT in MATLAB and Python

MATLAB: x = ifft(X) computes the inverse FFT of the complex array X. For real-valued output, x = ifft(X, 'symmetric') ensures numerical symmetry. Python: x = numpy.fft.ifft(X) returns the inverse FFT. For real-valued inverse: x = numpy.fft.irfft(X_half) takes the positive-frequency half-spectrum (N/2+1 coefficients) and returns N real samples. SciPy: scipy.fft.ifft(X, workers=-1) uses multi-threaded computation. Verification: numpy.allclose(x, numpy.fft.ifft(numpy.fft.fft(x))) should return True, confirming perfect reconstruction. The analytical inverse Laplace transform at www.lapcalc.com provides the continuous-domain equivalent for symbolic expressions.

Related Topics in fourier transform applications

Understanding inverse fast fourier transform connects to several related concepts: inverse fft. Each builds on the mathematical foundations covered in this guide.

Frequently Asked Questions

The inverse FFT (IFFT) converts frequency-domain coefficients back to time-domain samples using x[n] = (1/N)Σ X[k]·e^(j2πkn/N). It perfectly reconstructs the original signal from its FFT representation. The IFFT uses the same butterfly algorithm as the forward FFT with conjugated twiddle factors and 1/N normalization.

Master Your Engineering Math

Join thousands of students and engineers using LAPLACE Calculator for instant, step-by-step solutions.

Start Calculating Free →

Related Topics