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


Python numpy fft.ifftn用法及代碼示例


本文簡要介紹 python 語言中 numpy.fft.ifftn 的用法。

用法:

fft.ifftn(a, s=None, axes=None, norm=None)

計算 N 維離散傅裏葉逆變換。

此函數通過快速傅裏葉變換 (FFT) 在 M-dimensional 數組中的任意數量的軸上計算 N 維離散傅裏葉變換的逆。換句話說,ifftn(fftn(a)) == a 在數值精度範圍內。有關使用的定義和約定的說明,請參閱 numpy.fft

輸入,類似於 ifft ,應該以與 fftn 返回相同的方式排序,即它應該在低階角的所有軸上具有零頻率項,第一個是正頻率項所有軸的一半,所有軸中間的奈奎斯特頻率項和所有軸的後半部分的負頻率項,按負頻率遞減的順序。

參數

a array_like

輸入數組,可以很複雜。

s 整數序列,可選

輸出的形狀(每個變換軸的長度)(s[0]指軸 0,s[1]到軸 1 等)。這對應於n為了ifft(x, n).沿著任何軸,如果給定的形狀小於輸入的形狀,則裁剪輸入。如果它更大,則用零填充輸入。如果s未給出,輸入沿指定軸的形狀用來。請參閱有關問題的注釋numpy.fft.ifft零填充。

axes 整數序列,可選

計算IFFT的軸。如果沒有給出,最後一個len(s)使用軸,或所有軸,如果s也沒有指定。中的重複索引表示對該軸進行多次逆變換。

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

標準化模式(參見 numpy.fft )。默認為“backward”。指示前向/後向變換對的哪個方向被縮放以及使用什麽歸一化因子。

返回

out 複雜的ndarray

截斷或補零的輸入,沿軸指示的軸或通過 s 或 a 的組合進行變換,如上麵的參數部分所述。

拋出

ValueError

如果 s 和軸有不同的長度。

IndexError

如果軸的元素大於a的軸數。

注意

有關使用的定義和約定,請參見 numpy.fft

零填充與 ifft 類似,是通過沿指定維度向輸入附加零來執行的。盡管這是常見的方法,但它可能會帶來令人驚訝的結果。如果需要另一種形式的零填充,則必須在調用 ifftn 之前執行。

例子

>>> a = np.eye(4)
>>> np.fft.ifftn(np.fft.fftn(a, axes=(0,)), axes=(1,))
array([[1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j], # may vary
       [0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j],
       [0.+0.j,  0.+0.j,  1.+0.j,  0.+0.j],
       [0.+0.j,  0.+0.j,  0.+0.j,  1.+0.j]])

創建並繪製具有 band-limited 頻率內容的圖像:

>>> import matplotlib.pyplot as plt
>>> n = np.zeros((200,200), dtype=complex)
>>> n[60:80, 20:40] = np.exp(1j*np.random.uniform(0, 2*np.pi, (20, 20)))
>>> im = np.fft.ifftn(n).real
>>> plt.imshow(im)
<matplotlib.image.AxesImage object at 0x...>
>>> plt.show()
numpy-fft-ifftn-1.png

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.fft.ifftn。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。