numpy.fft.rfft#
- fft.rfft(a, n=None, axis=-1, norm=None, out=None)[原始碼]#
計算實數輸入的一維離散傅立葉轉換。
此函數透過稱為快速傅立葉轉換 (FFT) 的高效演算法,計算實數值陣列的一維 n 點離散傅立葉轉換 (DFT)。
- 參數:
- aarray_like
輸入陣列
- nint,選用
要使用的輸入中沿轉換軸的點數。如果 n 小於輸入的長度,則會裁剪輸入。如果較大,則會用零填充輸入。如果未給定 n,則使用沿 axis 指定軸的輸入長度。
- axisint,選用
計算 FFT 的軸。如果未給定,則使用最後一個軸。
- norm{“backward”, “ortho”, “forward”},選用
正規化模式(請參閱
numpy.fft
)。預設為 “backward”。表示正向/反向轉換對中的哪個方向被縮放以及使用什麼正規化因子。版本 1.20.0 新增: 新增了 “backward”、“forward” 值。
- out複數 ndarray,選用
如果提供,結果將放置在此陣列中。它應具有適當的形狀和 dtype。
版本 2.0.0 新增。
- 回傳值:
- out複數 ndarray
沿著 axis 指示的軸轉換,或在未指定 axis 時沿著最後一個軸轉換的截斷或補零輸入。如果 n 是偶數,則轉換軸的長度為
(n/2)+1
。如果 n 是奇數,則長度為(n+1)/2
。
- 觸發:
- IndexError
如果 axis 不是 a 的有效軸。
說明
當為純實數輸入計算 DFT 時,輸出是 Hermitian 對稱的,即負頻率項只是對應正頻率項的複共軛,因此負頻率項是多餘的。此函數不計算負頻率項,因此輸出轉換軸的長度為
n//2 + 1
。當
A = rfft(a)
且 fs 是取樣頻率時,A[0]
包含零頻率項 0*fs,由於 Hermitian 對稱性,它是實數。如果 n 是偶數,則
A[-1]
包含表示正負奈奎斯特頻率(+fs/2 和 -fs/2)的項,並且也必須是純實數。如果 n 是奇數,則在 fs/2 處沒有項;A[-1]
包含最大的正頻率 (fs/2*(n-1)/n),並且在一般情況下是複數。如果輸入 a 包含虛部,則會靜默捨棄它。
範例
>>> import numpy as np >>> np.fft.fft([0, 1, 0, 0]) array([ 1.+0.j, 0.-1.j, -1.+0.j, 0.+1.j]) # may vary >>> np.fft.rfft([0, 1, 0, 0]) array([ 1.+0.j, 0.-1.j, -1.+0.j]) # may vary
請注意,對於實數輸入,
fft
輸出的最後一個元素是如何成為第二個元素的複共軛。對於rfft
,此對稱性被利用來僅計算非負頻率項。