当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy fft.fft用法及代码示例


本文简要介绍 python 语言中 numpy.fft.fft 的用法。

用法:

fft.fft(a, n=None, axis=- 1, norm=None)

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

此函数使用高效的快速傅里叶变换 (FFT) 算法 [CT] 计算一维 n-point 离散傅里叶变换 (DFT)。

参数

a array_like

输入数组,可以很复杂。

n 整数,可选

输出的变换轴的长度。如果 n 小于输入的长度,则裁剪输入。如果它更大,则用零填充输入。如果未给出 n,则使用沿轴指定的轴的输入长度。

axis 整数,可选

计算 FFT 的轴。如果未给出,则使用最后一个轴。

norm {“backward”, “ortho”, “forward”},可选

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

返回

out 复杂的ndarray

截断或补零的输入,沿轴指示的轴转换,如果未指定轴,则为最后一个。

抛出

IndexError

如果axis不是a的有效轴。

注意

FFT(快速傅里叶变换)是指通过在计算项中使用对称性,可以有效计算离散傅里叶变换 (DFT) 的一种方式。当 n 是 2 的幂时,对称性最高,因此对于这些大小,变换是最有效的。

numpy.fft 模块的文档中定义了 DFT,以及此实现中使用的约定。

参考

CT

Cooley、James W. 和 John W. Tukey,1965 年,“复杂傅里叶级数的机器计算算法”,数学。计算。 19:297-301。

例子

>>> np.fft.fft(np.exp(2j * np.pi * np.arange(8) / 8))
array([-2.33486982e-16+1.14423775e-17j,  8.00000000e+00-1.25557246e-15j,
        2.33486982e-16+2.33486982e-16j,  0.00000000e+00+1.22464680e-16j,
       -1.14423775e-17+2.33486982e-16j,  0.00000000e+00+5.20784380e-16j,
        1.14423775e-17+1.14423775e-17j,  0.00000000e+00+1.22464680e-16j])

在此示例中,实输入具有 Hermitian 的 FFT,即实部对称而虚部反对称,如 numpy.fft 文档中所述:

>>> import matplotlib.pyplot as plt
>>> t = np.arange(256)
>>> sp = np.fft.fft(np.sin(t))
>>> freq = np.fft.fftfreq(t.shape[-1])
>>> plt.plot(freq, sp.real, freq, sp.imag)
[<matplotlib.lines.Line2D object at 0x...>, <matplotlib.lines.Line2D object at 0x...>]
>>> plt.show()
numpy-fft-fft-1.png

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.fft.fft。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。