原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.fft.ifft.html
校对:(虚位以待)
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,可选
axis:int,可选
norm:{None,“ortho”},可选
|
---|---|
返回: | out:complex ndarray
|
上升: | IndexError
|
笔记
如果输入参数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()