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


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


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

用法:

fft.rfft(a, n=None, axis=- 1, norm=None)

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

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

參數

a array_like

輸入數組

n 整數,可選

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

axis 整數,可選

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

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

標準化模式(參見 numpy.fft )。默認為“backward”。指示前向/後向變換對的哪個方向被縮放以及使用什麽歸一化因子。

返回

out 複雜的ndarray

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

拋出

IndexError

如果axis不是a的有效軸。

注意

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

A = rfft(a) 和 fs 為采樣頻率時,A[0] 包含 zero-frequency 項 0*fs,由於 Hermitian 對稱性,這是實數。

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

如果輸入 a 包含一個虛部,它會被默默地丟棄。

例子

>>> 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 ,利用這種對稱性來僅計算非負頻率項。

相關用法


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