scipy.fftpack.

ifft#

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

返回实数或复数序列的离散逆傅里叶变换。

返回的复数数组包含 y(0), y(1),..., y(n-1),其中

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

参数:
xarray_like

要逆变换的数据。

nint, 可选

逆傅里叶变换的长度。如果 n < x.shape[axis],则 x 会被截断。如果 n > x.shape[axis],则 x 会被补零。默认结果是 n = x.shape[axis]

axisint, 可选

执行 ifft 的轴;默认是在最后一个轴上(即 axis=-1)。

overwrite_xbool, 可选

如果为 True,x 的内容可能会被破坏;默认为 False。

返回:
ifftndarray of floats

逆离散傅里叶变换。

另请参阅

fft

正向 FFT

注意

实现了单精度和双精度例程。半精度输入将被转换为单精度。非浮点输入将被转换为双精度。不支持长双精度输入。

n 是 2 的幂时,此函数效率最高;当 n 是素数时,效率最低。

如果 x 的数据类型是实数,则会自动使用“实数 IFFT”算法,这大约能将计算时间缩短一半。

示例

>>> 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