numpy.fft.irfftn#

fft.irfftn(a, s=None, axes=None, norm=None, out=None)[source]#

計算 rfftn 的反轉換。

此函數計算 M 維陣列中任意數量的軸上實數輸入的 N 維離散傅立葉轉換的反轉換,方法是使用快速傅立葉轉換 (FFT)。換句話說,在數值精度範圍內,irfftn(rfftn(a), a.shape) == a。(a.shape 是必要的,就像 irfft 需要 len(a) 一樣,原因相同。)

輸入的排序方式應與 rfftn 返回的方式相同,即對於最後一個轉換軸,與 irfft 相同,而沿所有其他軸,與 ifftn 相同。

參數:
aarray_like (類陣列)

輸入陣列。

s整數序列,選用

輸出的形狀 (每個轉換軸的長度) (s[0] 指的是軸 0,s[1] 指的是軸 1,依此類推)。s 也是沿此軸使用的輸入點數,但最後一個軸除外,其中使用 s[-1]//2+1 個輸入點。沿任何軸,如果 s 指示的形狀小於輸入的形狀,則會裁剪輸入。如果較大,則會用零填充輸入。

在 2.0 版本中變更:如果為 -1,則會使用整個輸入 (不填充/修剪)。

如果未給定 s,則使用沿 axes 指定軸的輸入形狀。最後一個軸除外,該軸被視為 2*(m-1),其中 m 是輸入沿該軸的長度。

自 2.0 版本起已棄用:如果 s 不是 None,則 axes 也不能是 None

自 2.0 版本起已棄用:s 必須僅包含 int,而不是 None 值。None 值目前表示在相應的 1 維轉換中使用 n 的預設值,但此行為已棄用。

axes整數序列,選用

計算反 FFT 的軸。如果未給定,則使用最後 len(s) 個軸,如果也未指定 s,則使用所有軸。axes 中重複的索引表示在該軸上執行多次反轉換。

自 2.0 版本起已棄用:如果指定了 s,則也必須明確指定要轉換的相應 axes

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

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

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

outndarray,選用

如果提供,結果將放置在此陣列中。它應該具有適合最後一次轉換的形狀和 dtype。

在 2.0.0 版本中新增。

傳回:
outndarray

截斷或零填充的輸入,沿 axes 指示的軸轉換,或通過 sa 的組合轉換,如上述參數部分所述。每個轉換軸的長度由 s 的相應元素給出,或者如果未給定 s,則為每個軸 (最後一個軸除外) 的輸入長度。在最後一個轉換軸中,如果未給定 s,則輸出的長度為 2*(m-1),其中 m 是輸入的最後一個轉換軸的長度。若要在最後一個軸中獲得奇數個輸出點,則必須指定 s

引發:
ValueError

如果 saxes 的長度不同。

IndexError

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

另請參閱

rfftn

實數輸入的前向 n 維 FFT,其中 ifftn 是其反轉換。

fft

一維 FFT,具有使用的定義和慣例。

irfft

實數輸入的一維 FFT 的反轉換。

irfft2

實數輸入的二維 FFT 的反轉換。

註解

請參閱 fft 以了解使用的定義和慣例。

請參閱 rfft 以了解用於實數輸入的定義和慣例。

hermitian 輸入的正確解釋取決於原始資料的形狀,如 s 給定。這是因為每個輸入形狀都可能對應於奇數或偶數長度的訊號。預設情況下,irfftn 假設輸出長度為偶數,這會將最後一個條目放在奈奎斯特頻率;與其對稱對應物混疊。當執行最終的複數到實數轉換時,最後一個值因此被視為純實數。為了避免遺失資訊,必須給定實數輸入的正確形狀。

範例

>>> import numpy as np
>>> a = np.zeros((3, 2, 2))
>>> a[0, 0, 0] = 3 * 2 * 2
>>> np.fft.irfftn(a)
array([[[1.,  1.],
        [1.,  1.]],
       [[1.,  1.],
        [1.,  1.]],
       [[1.,  1.],
        [1.,  1.]]])