上一主题

numpy.fft.fft

下一主题

numpy.fft.fft2

numpy.fft.ifft

numpy.fft.ifft(a, n=None, axis=-1, norm=None)[source]

计算一维离散傅里叶逆变换。

该函数计算由fft计算的一维n点离散傅立叶变换的逆。换句话说,在数值精度内的ifft(fft(a)) == a 有关算法和定义的一般说明,请参阅numpy.fft

输入应按照fft返回的相同方式排序,即,

  • a[0]应包含零频率项,
  • a[1:n//2]应包含正频项,
  • a [n // 2 + 1:]应包含负频率项从最负的频率。

对于偶数个输入点,A[n//2]表示正和负奈奎斯特频率处的值的总和,因为这两个输入点被混叠在一起。有关详细信息,请参见numpy.fft

参数:

a:array_like

输入数组,可以为复数。

n:int,可选

输出的变换轴的长度。如果n小于输入的长度,则输入被裁剪。如果它较大,输入用零填充。如果未给出n,则使用沿由指定的轴的输入长度。请参阅有关填充问题的注意事项。

axis:int,可选

在其上计算逆DFT的轴。如果未给出,则使用最后一个轴。

norm:{None,“ortho”},可选

版本1.10.0中的新功能。

规范化模式(参见numpy.fft)。默认值为None。

返回:

out:complex ndarray

未指定沿指示的轴变换的截断或零填充输入,如果指定最后一个输入。

上升:

IndexError

如果大于a的最后一个轴。

也可以看看

numpy.fft
介绍,定义和一般解释。
fft
一维(前向)FFT,其中ifft是反向的
ifft2
二维逆FFT。
ifftn
n维逆FFT。

笔记

如果输入参数n大于输入的大小,则通过在末尾添加零来填充输入。即使这是常见的方法,它可能会导致令人惊讶的结果。如果需要不同的填充,则必须在调用ifft之前执行。

例子

>>> np.fft.ifft([0, 4, 0, 0])
array([ 1.+0.j,  0.+1.j, -1.+0.j,  0.-1.j])

创建并绘制带有随机相位的带限信号:

>>> import matplotlib.pyplot as plt
>>> t = np.arange(400)
>>> n = np.zeros((400,), dtype=complex)
>>> n[40:60] = np.exp(1j*np.random.uniform(0, 2*np.pi, (20,)))
>>> s = np.fft.ifft(n)
>>> plt.plot(t, s.real, 'b-', t, s.imag, 'r--')
...
>>> plt.legend(('real', 'imaginary'))
...
>>> plt.show()

源代码pngpdf

../../_images/numpy-fft-ifft-1.png