當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。