本文簡要介紹 python 語言中 scipy.fftpack.fft
的用法。
用法:
scipy.fftpack.fft(x, n=None, axis=-1, overwrite_x=False)#
返回實數或複數序列的離散傅裏葉變換。
返回的複數數組包含
y(0), y(1),..., y(n-1)
,其中y(j) = (x * exp(-2*pi*sqrt(-1)*j*np.arange(n)/n)).sum()
.- x: array_like
數組到傅裏葉變換。
- n: 整數,可選
傅裏葉變換的長度。如果
n < x.shape[axis]
,x被截斷。如果n > x.shape[axis]
,x是零填充的。默認結果是n = x.shape[axis]
.- axis: 整數,可選
計算 fft 的軸;默認值在最後一個軸上(即
axis=-1
)。- overwrite_x: 布爾型,可選
如果為 True,則 x 的內容可以被銷毀;默認為假。
- z: 複雜的ndarray
與元素:
[y(0),y(1),..,y(n/2),y(1-n/2),...,y(-1)] if n is even [y(0),y(1),..,y((n-1)/2),y(-(n-1)/2),...,y(-1)] if n is odd
其中:
y(j) = sum[k=0..n-1] x[k] * exp(-sqrt(-1)*j*k* 2*pi/n), j = 0..n-1
參數 ::
返回 ::
注意:
結果的打包為 “standard”:如果
A = fft(a, n)
,則A[0]
包含 zero-frequency 項,A[1:n/2]
包含正頻率項,A[n/2:]
包含負頻率項,順序為:負頻率逐漸減少。因此,對於 8 點變換,結果的頻率為 [0, 1, 2, 3, -4, -3, -2, -1]。要重新排列 fft 輸出以使 zero-frequency 組件居中,如 [-4, -3, -2, -1, 0, 1, 2, 3],請使用fftshift
。實現了單精度和雙精度例程。半精度輸入將轉換為單精度。非浮點輸入將被轉換為雙精度。不支持Long-double 精度輸入。
當 n 是 2 的冪時,此函數效率最高,而當 n 為素數時,此函數效率最低。
請注意,如果
x
是實值,則A[j] == A[n-j].conjugate()
。如果x
是實值並且n
是偶數,則A[n/2]
是實數。如果數據類型為x如果是真實的,則會自動使用“real FFT”算法,這大約使計算時間減少一半。要進一步提高效率,請使用scipy.fftpack.rfft,它執行相同的計算,但隻輸出對稱頻譜的一半。如果數據既真實又對稱,則scipy.fftpack.dct通過從一半信號生成一半頻譜,可以再次使效率加倍。
例子:
>>> import numpy as np >>> from scipy.fftpack import fft, ifft >>> x = np.arange(5) >>> np.allclose(fft(ifft(x)), x, atol=1e-15) # within numerical accuracy. True
相關用法
- Python SciPy fftpack.fft2用法及代碼示例
- Python SciPy fftpack.fftfreq用法及代碼示例
- Python SciPy fftpack.fftn用法及代碼示例
- Python SciPy fftpack.fftshift用法及代碼示例
- Python SciPy fftpack.ihilbert用法及代碼示例
- Python SciPy fftpack.ss_diff用法及代碼示例
- Python SciPy fftpack.dstn用法及代碼示例
- Python SciPy fftpack.idstn用法及代碼示例
- Python SciPy fftpack.ifftshift用法及代碼示例
- Python SciPy fftpack.itilbert用法及代碼示例
- Python SciPy fftpack.dct用法及代碼示例
- Python SciPy fftpack.idct用法及代碼示例
- Python SciPy fftpack.hilbert用法及代碼示例
- Python SciPy fftpack.irfft用法及代碼示例
- Python SciPy fftpack.tilbert用法及代碼示例
- Python SciPy fftpack.diff用法及代碼示例
- Python SciPy fftpack.sc_diff用法及代碼示例
- Python SciPy fftpack.shift用法及代碼示例
- Python SciPy fftpack.cs_diff用法及代碼示例
- Python SciPy fftpack.dctn用法及代碼示例
- Python SciPy fftpack.idctn用法及代碼示例
- Python SciPy fftpack.cc_diff用法及代碼示例
- Python SciPy fftpack.next_fast_len用法及代碼示例
- Python SciPy fftpack.rfft用法及代碼示例
- Python SciPy fftpack.ifft用法及代碼示例
注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.fftpack.fft。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。