irfft#
- scipy.fft.irfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *, plan=None)[source]#
計算
rfft
的反轉換。此函數計算由
rfft
計算的實數輸入的 1 維 n 點離散傅立葉轉換的反轉換。 換句話說,在數值精度範圍內,irfft(rfft(x), len(x)) == x
。(有關為什麼len(a)
在此是必要的,請參閱下面的「註解」。)輸入預期為
rfft
返回的形式,即實數零頻項,後跟複數正頻項,依頻率遞增順序排列。 由於實數輸入的離散傅立葉轉換是 Hermitian 對稱的,因此負頻項被視為相應正頻項的複共軛。- 參數:
- xarray_like
輸入陣列。
- nint, optional
輸出轉換軸的長度。 對於 n 個輸出點,需要
n//2+1
個輸入點。 如果輸入長於此值,則會將其裁剪。 如果短於此值,則會用零填充。 如果未給定 n,則將其視為2*(m-1)
,其中m
是輸入沿 axis 指定軸的長度。- axisint, optional
計算反 FFT 的軸。 如果未給定,則使用最後一個軸。
- norm{“backward”, “ortho”, “forward”}, optional
正規化模式(請參閱
fft
)。 預設值為 “backward”。- overwrite_xbool, optional
如果為 True,則可以銷毀 x 的內容;預設值為 False。 有關更多詳細資訊,請參閱
fft
。- workersint, optional
用於平行計算的最大 worker 數量。 如果為負數,則值會從
os.cpu_count()
環繞。 有關更多詳細資訊,請參閱fft
。- planobject, optional
此引數保留用於傳入下游 FFT 供應商提供的預先計算的 plan。 目前 SciPy 中未使用它。
在 1.5.0 版本中新增。
- 返回:
- outndarray
沿 axis 指示的軸轉換的截斷或零填充輸入,如果未指定 axis,則為最後一個軸。 轉換軸的長度為 n,或者,如果未給定 n,則為
2*(m-1)
,其中m
是輸入轉換軸的長度。 若要取得奇數個輸出點,則必須指定 n。
- 引發:
- IndexError
如果 axis 大於 x 的最後一個軸。
註解
返回 x 的實數值 n 點反離散傅立葉轉換,其中 x 包含 Hermitian 對稱序列的非負頻率項。 n 是結果的長度,而不是輸入的長度。
如果您指定的 n 使得 a 必須進行零填充或截斷,則額外/移除的值將在高頻率處新增/移除。 因此,可以透過傅立葉內插法將序列重新取樣為 m 個點:
a_resamp = irfft(rfft(a), m)
。n 的預設值假設輸出長度為偶數。 根據 Hermitian 對稱性,最後一個虛數分量必須為 0,因此會被忽略。 為了避免遺失資訊,必須給定實數輸入的正確長度。
範例