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的最后一个轴。
笔记
如果输入参数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()