當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy fft.rfft用法及代碼示例


本文簡要介紹 python 語言中 scipy.fft.rfft 的用法。

用法:

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

計算實際輸入的一維離散傅裏葉變換。

此函數通過稱為快速傅裏葉變換 (FFT) 的有效算法計算實值數組的一維 n-point 離散傅裏葉變換 (DFT)。

參數

x array_like

輸入數組

n 整數,可選

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

axis 整數,可選

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

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

標準化模式(參見 fft )。默認為“backward”。

overwrite_x 布爾型,可選

如果為真,則內容x可以銷毀;默認為假。看scipy.fft.fft更多細節。

workers 整數,可選

用於並行計算的最大工作線程數。如果為負,則該值從 os.cpu_count() 環繞。有關詳細信息,請參閱 fft

plan 對象,可選

此參數保留用於傳遞下遊 FFT 供應商提供的預先計算的計劃。它目前未在 SciPy 中使用。

返回

out 複雜的ndarray

截斷或補零的輸入,沿由, 或者最後一個如果未指定。如果n是偶數,變換軸的長度是(n/2)+1.如果n是奇數,長度是(n+1)/2.

拋出

IndexError

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

注意

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

X = rfft(x) 和 fs 為采樣頻率時,X[0] 包含 zero-frequency 項 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 ,利用這種對稱性來僅計算非負頻率項。

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.fft.rfft。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。