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 的有效軸。

另請參閱

numpy.fft

有關 DFT 的定義和慣例用法。

irfft

rfft 的反函數。

fft

一般(複數)輸入的一維 FFT。

fftn

n 維 FFT。

rfftn

實數輸入的 n 維 FFT。

說明

當為純實數輸入計算 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,此對稱性被利用來僅計算非負頻率項。