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


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


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

用法:

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

計算具有 Hermitian 對稱性的信號的 FFT,即實頻譜。

參數

a array_like

輸入數組。

n 整數,可選

輸出的變換軸的長度。為了n輸出點,n//2 + 1輸入點是必要的。如果輸入比這個長,它會被裁剪。如果它比這短,則用零填充。如果n沒有給出,它被認為是2*(m-1)其中m是輸入沿指定軸的長度.

axis 整數,可選

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

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

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

返回

out ndarray

截斷或補零的輸入,沿由, 或者最後一個如果未指定。變換軸的長度為n, 或者如果n沒有給出,2*m - 2其中m是輸入的變換軸的長度。要獲得奇數個輸出點,n必須指定,例如2*m - 1在典型情況下,

拋出

IndexError

如果axis不是a的有效軸。

注意

hfft / ihfft 是一對類似於 rfft / irfft 的對,但情況相反:這裏信號在時域中具有埃爾米特對稱性,並且在頻域中是實數。所以這裏是hfft,如果它是奇數,則必須提供結果的長度。

  • 偶數:ihfft(hfft(a, 2*len(a) - 2)) == a,在舍入誤差內,

  • 奇數:ihfft(hfft(a, 2*len(a) - 1)) == a,在舍入誤差內。

厄米特輸入的正確解釋取決於原始數據的長度,如n.這是因為每個輸入形狀都可能對應於奇數或偶數長度的信號。默認,hfft假設一個偶數輸出長度,將最後一個條目置於奈奎斯特頻率;與其對稱對應物混疊。通過 Hermitian 對稱性,該值因此被視為純實數。為了避免丟失信息,完整信號的形狀必須被給予。

例子

>>> signal = np.array([1, 2, 3, 4, 3, 2])
>>> np.fft.fft(signal)
array([15.+0.j,  -4.+0.j,   0.+0.j,  -1.-0.j,   0.+0.j,  -4.+0.j]) # may vary
>>> np.fft.hfft(signal[:4]) # Input first half of signal
array([15.,  -4.,   0.,  -1.,   0.,  -4.])
>>> np.fft.hfft(signal, 6)  # Input entire signal and truncate
array([15.,  -4.,   0.,  -1.,   0.,  -4.])
>>> signal = np.array([[1, 1.j], [-1.j, 2]])
>>> np.conj(signal.T) - signal   # check Hermitian symmetry
array([[ 0.-0.j,  -0.+0.j], # may vary
       [ 0.+0.j,  0.-0.j]])
>>> freq_spectrum = np.fft.hfft(signal)
>>> freq_spectrum
array([[ 1.,  1.],
       [ 2., -2.]])

相關用法


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