numpy.fft.irfft#

fft.irfft(a, n=None, axis=-1, norm=None, out=None)[原始碼]#

計算 rfft 的反轉換。

此函數計算由 rfft 計算的實數輸入的一維 n 點離散傅立葉轉換的反轉換。換句話說,在數值精度範圍內,irfft(rfft(a), len(a)) == a。(請參閱下面的「註解」以了解為何此處需要 len(a)。)

輸入預期為 rfft 傳回的形式,即實數零頻率項,後跟依頻率遞增順序排列的複數正頻率項。由於實數輸入的離散傅立葉轉換是 Hermitian 對稱的,因此負頻率項被視為對應正頻率項的複數共軛。

參數:
aarray_like

輸入陣列。

nint,選用

輸出轉換軸的長度。對於 n 個輸出點,需要 n//2+1 個輸入點。如果輸入長度大於此值,則會被裁剪。如果輸入長度小於此值,則會以零填充。如果未給定 n,則預設為 2*(m-1),其中 m 是輸入沿著由 axis 指定軸的長度。

axisint,選用

計算反 FFT 的軸。如果未給定,則使用最後一個軸。

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

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

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

outndarray,選用

如果提供,結果將放置在此陣列中。它應具有適當的形狀和 dtype。

2.0.0 版本新增。

傳回值:
outndarray

沿著由 axis 指示的軸轉換,或在未指定 axis 時沿著最後一個軸轉換的截斷或零填充輸入。轉換軸的長度為 n,或者,如果未給定 n,則為 2*(m-1),其中 m 是輸入轉換軸的長度。若要取得奇數個輸出點,必須指定 n

引發:
IndexError

如果 axis 不是 a 的有效軸。

另請參閱

numpy.fft

用於 DFT 的定義和慣例。

rfft

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

fft

一維 FFT。

irfft2

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

irfftn

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

註解

傳回 a 的實數值 n 點反離散傅立葉轉換,其中 a 包含 Hermitian 對稱序列的非負頻率項。n 是結果的長度,而不是輸入的長度。

如果您指定的 n 使得 a 必須進行零填充或截斷,則額外/移除的值將在高頻率處新增/移除。因此,可以透過傅立葉內插法將序列重新取樣到 m 個點:a_resamp = irfft(rfft(a), m)

hermitian 輸入的正確解譯取決於原始資料的長度,如 n 所給定。這是因為每個輸入形狀可能對應於奇數或偶數長度訊號。依預設,irfft 假設偶數輸出長度,這會將最後一個條目放在奈奎斯特頻率;與其對稱對應物混疊。根據 Hermitian 對稱性,該值因此被視為純實數。為了避免遺失資訊,必須給定實數輸入的正確長度。

範例

>>> import numpy as np
>>> np.fft.ifft([1, -1j, -1, 1j])
array([0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j]) # may vary
>>> np.fft.irfft([1, -1j, -1])
array([0.,  1.,  0.,  0.])

請注意,普通 ifft 的輸入中的最後一項是第二項的複數共軛,並且輸出在所有位置都具有零虛部。當呼叫 irfft 時,未指定負頻率,並且輸出陣列是純實數。