SciPy

scipy.fftpack.ifft

scipy.fftpack.ifft(x, n=None, axis=-1, overwrite_x=False)[source]

Return discrete inverse Fourier transform of real or complex sequence.

The returned complex array contains y(0), y(1),..., y(n-1) where

y(j) = (x * exp(2*pi*sqrt(-1)*j*np.arange(n)/n)).mean().

Parameters:
x : array_like

Transformed data to invert.

n : int, optional

Length of the inverse Fourier transform. If n < x.shape[axis], x is truncated. If n > x.shape[axis], x is zero-padded. The default results in n = x.shape[axis].

axis : int, optional

Axis along which the ifft’s are computed; the default is over the last axis (i.e., axis=-1).

overwrite_x : bool, optional

If True, the contents of x can be destroyed; the default is False.

Returns:
ifft : ndarray of floats

The inverse discrete Fourier transform.

See also

fft
Forward FFT

Notes

Both single and double precision routines are implemented. Half precision inputs will be converted to single precision. Non floating-point inputs will be converted to double precision. Long-double precision inputs are not supported.

This function is most efficient when n is a power of two, and least efficient when n is prime.

If the data type of x is real, a “real IFFT” algorithm is automatically used, which roughly halves the computation time.

Examples

>>> from scipy.fftpack import fft, ifft
>>> import numpy as np
>>> x = np.arange(5)
>>> np.allclose(ifft(fft(x)), x, atol=1e-15)  # within numerical accuracy.
True

Previous topic

scipy.fftpack.fft

Next topic

scipy.fftpack.fft2