numpy.fft.ifft

fft.ifft(a, n=None, axis=- 1, norm=None)[源代码]

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

这个函数计算一维的倒数 n -点离散傅立叶变换 fft . 换言之, ifft(fft(a)) == a 在数字精度范围内。有关算法和定义的一般描述,请参见 numpy.fft .

输入的顺序应与返回的顺序相同。 fft ,即

  • a[0] 应包含零频率项,

  • a[1:n//2] 应包含正频率项,

  • a[n//2 + 1:] 应包含负频率项,从最负频率开始依次递增。

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

参数
aarray_like

输入数组,可以是复杂的。

n可选的

输出转换轴的长度。如果 n 小于输入的长度时,将剪切输入。如果它更大,输入将用零填充。如果 n 未给定,输入沿指定轴的长度 axis 使用。请参见有关填充问题的注释。

axis可选的

用于计算逆DFT的轴。如果没有给出,则使用最后一个轴。

norm{“向后”,“正交”,“向前”},可选

1.10.0 新版功能.

标准化模式(参见 numpy.fft ). 默认为“向后”。指示前向/后向变换对的哪个方向被缩放以及使用什么规格化因子。

1.20.0 新版功能: 添加了“向后”、“向前”值。

返回
out复合中子

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

加薪
IndexError

如果 axis 不是有效的轴 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]) # may vary

用随机相位创建和绘制带限信号:

>>> 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--')
[<matplotlib.lines.Line2D object at ...>, <matplotlib.lines.Line2D object at ...>]
>>> plt.legend(('real', 'imaginary'))
<matplotlib.legend.Legend object at ...>
>>> plt.show()
../../_images/numpy-fft-ifft-1.png