scipy.fftpack.
ifft#
- scipy.fftpack.ifft(x, n=None, axis=-1, overwrite_x=False)[source]#
返回實數或複數序列的離散反傅立葉轉換。
返回的複數陣列包含
y(0), y(1),..., y(n-1)
,其中y(j) = (x * exp(2*pi*sqrt(-1)*j*np.arange(n)/n)).mean()
.- 參數:
- xarray_like
要反轉的轉換資料。
- nint, optional
反傅立葉轉換的長度。如果
n < x.shape[axis]
,則會截斷 x。如果n > x.shape[axis]
,則會對 x 進行零填充。預設結果為n = x.shape[axis]
。- axisint, optional
計算 ifft 的軸;預設值為最後一個軸 (即
axis=-1
)。- overwrite_xbool, optional
如果為 True,則可以破壞 x 的內容;預設值為 False。
- 返回:
- ifftndarray of floats
反離散傅立葉轉換。
另請參閱
fft
正向 FFT
註解
單精度和雙精度常式皆有實作。半精度輸入將轉換為單精度。非浮點輸入將轉換為雙精度。不支援長雙精度輸入。
當 n 是 2 的冪時,此函數效率最高;當 n 是質數時,效率最低。
如果 x 的資料類型為實數,則會自動使用「實數 IFFT」演算法,這大約可將計算時間減半。
範例
>>> from scipy.fftpack import fft, ifft >>> import numpy as np >>> x = np.arange(5) >>> np.allclose(ifft(fft(x)), x, atol=1e-15) # within numerical accuracy. True