scipy.fft.

rfft#

scipy.fft.rfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *, plan=None)[原始碼]#

計算實數輸入的一維離散傅立葉轉換。

此函數藉由稱為快速傅立葉轉換 (FFT) 的有效率演算法,計算實數值陣列的一維n點離散傅立葉轉換 (DFT)。

參數:
xarray_like

輸入陣列

nint,選用

要使用的輸入中沿轉換軸的點數。如果 n 小於輸入的長度,則會裁剪輸入。如果較大,則會用零填充輸入。如果未給定 n,則會使用沿 axis 指定軸的輸入長度。

axisint,選用

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

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

正規化模式(請參閱 fft)。預設值為 “backward”。

overwrite_xbool,選用

如果為 True,則可以破壞 x 的內容;預設值為 False。請參閱 fft 以取得更多詳細資訊。

workersint,選用

用於平行計算的最大工作人員數。如果為負數,則值會從 os.cpu_count() 環繞。請參閱 fft 以取得更多詳細資訊。

planobject,選用

此引數保留用於傳入下游 FFT 供應商提供的預先計算計劃。目前 SciPy 中未使用。

在 1.5.0 版本中新增。

傳回值:
out複數 ndarray

沿 axis 指示軸轉換的截斷或零填充輸入,如果未指定 axis,則為最後一個軸。如果 n 為偶數,則轉換軸的長度為 (n/2)+1。如果 n 為奇數,則長度為 (n+1)/2

引發:
IndexError

如果 axis 大於 a 的最後一個軸。

另請參閱

irfft

rfft 的反函數。

fft

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

fftn

N 維 FFT。

rfft2

實數輸入的二維 FFT。

rfftn

實數輸入的 N 維 FFT。

注意事項

當針對純實數輸入計算 DFT 時,輸出為 Hermitian 對稱,即負頻率項只是對應正頻率項的複共軛,因此負頻率項是多餘的。此函數不計算負頻率項,因此輸出轉換軸的長度為 n//2 + 1

X = rfft(x) 且 fs 為取樣頻率時,X[0] 包含零頻率項 0*fs,由於 Hermitian 對稱性,因此為實數。

如果 n 為偶數,則 A[-1] 包含表示正和負奈奎斯特頻率(+fs/2 和 -fs/2)的項,並且也必須是純實數。如果 n 為奇數,則 fs/2 處沒有項;A[-1] 包含最大的正頻率 (fs/2*(n-1)/n),並且在一般情況下是複數。

如果輸入 a 包含虛部,則會靜默捨棄。

範例

>>> import scipy.fft
>>> scipy.fft.fft([0, 1, 0, 0])
array([ 1.+0.j,  0.-1.j, -1.+0.j,  0.+1.j]) # may vary
>>> scipy.fft.rfft([0, 1, 0, 0])
array([ 1.+0.j,  0.-1.j, -1.+0.j]) # may vary

請注意,對於實數輸入,fft 輸出的最後一個元素是第二個元素的複共軛。對於 rfft,會利用此對稱性僅計算非負頻率項。