numpy.fft.fft#

fft.fft(a, n=None, axis=-1, norm=None, out=None)[原始碼]#

計算一維離散傅立葉轉換。

此函數使用有效率的快速傅立葉轉換 (FFT) 演算法 [CT],計算一維 n 點離散傅立葉轉換 (DFT)。

參數:
aarray_like

輸入陣列,可以是複數。

nint,選用

輸出轉換軸的長度。如果 n 小於輸入長度,則會裁剪輸入。如果較大,則會用零填充輸入。如果未給定 n,則會使用沿著 axis 指定軸的輸入長度。

axisint,選用

計算 FFT 的軸。如果未給定,則使用最後一個軸。

norm{“backward”, “ortho”, “forward”},選用

正規化模式(請參閱 numpy.fft)。預設為 “backward”。表示前向/後向轉換對中的哪個方向要縮放以及使用哪個正規化因子。

在 1.20.0 版本中新增: 新增了 “backward”、“forward” 值。

out複數 ndarray,選用

如果提供,結果將放置在此陣列中。它應該具有適當的形狀和 dtype。

在 2.0.0 版本中新增。

回傳值:
out複數 ndarray

沿著 axis 指示的軸轉換的截斷或零填充輸入,如果未指定 axis,則為最後一個軸。

引發:
IndexError

如果 axis 不是 a 的有效軸。

另請參閱

numpy.fft

用於 DFT 的定義和使用的慣例。

ifft

fft 的反轉換。

fft2

二維 FFT。

fftn

n 維 FFT。

rfftn

實數輸入的 n 維 FFT。

fftfreq

給定 FFT 參數的頻率 bins。

註解

FFT(快速傅立葉轉換)指的是一種有效計算離散傅立葉轉換 (DFT) 的方法,透過使用計算項中的對稱性。當 n 是 2 的冪時,對稱性最高,因此對於這些大小,轉換效率最高。

DFT 的定義以及此實作中使用的慣例,在 numpy.fft 模組的文件中。

參考文獻

[CT]

Cooley, James W., and John W. Tukey, 1965, “An algorithm for the machine calculation of complex Fourier series,” Math. Comput. 19: 297-301.

範例

>>> import numpy as np
>>> 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()
../../_images/numpy-fft-fft-1.png