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


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

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

用法:

scipy.fft.hfftn(x, s=None, axes=None, norm=None, overwrite_x=False, workers=None, *, plan=None)#

計算 Hermitian 對稱複數輸入的 N-D FFT,即具有實頻譜的信號。

此函數通過快速傅裏葉變換 (FFT) 計算 M-D 數組中任意數量軸上的 Hermitian 對稱複數輸入的 N-D 離散傅裏葉變換。換句話說,ihfftn(hfftn(x, s)) == x 在數值精度範圍內。 ( s 這裏是 x.shapes[-1] = x.shape[-1] * 2 - 1 ,這是必要的,原因與 x.shape irfft 是必需的相同。)

參數

x array_like

輸入數組。

s 整數序列,可選

輸出的形狀(每個變換軸的長度)(s[0]指軸 0,s[1]到軸 1 等)。s也是沿該軸使用的輸入點數,最後一個軸除外,其中s[-1]//2+1使用輸入點。沿著任何軸,如果形狀由s小於輸入的,輸入被裁剪。如果它更大,則用零填充輸入。如果s如果未給出,則使用沿軸指定的軸的輸入形狀。除了最後一個軸被認為是2*(m-1)其中m是輸入沿該軸的長度。

axes 整數序列,可選

計算逆 FFT 的軸。如果未給出,則使用最後一個 len(s) 個軸,如果也未指定 s,則使用所有軸。

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

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

overwrite_x 布爾型,可選

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

workers 整數,可選

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

plan 對象,可選

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

返回

out ndarray

截斷或補零的輸入,沿由,或通過組合s或者x,如上麵的參數部分所述。每個變換軸的長度由對應的元素給出s,或者除了最後一個軸之外的每個軸的輸入長度,如果s沒有給出。在最終轉換的軸中,輸出的長度是s沒有給出是2*(m-1)其中m是輸入的最終變換軸的長度。要在最終軸上獲得奇數個輸出點,s必須指定。

拋出

ValueError

如果 s 和軸有不同的長度。

IndexError

如果軸的某個元素大於 x 的軸數。

注意

對於一維信號 x 具有實頻譜,它必須滿足 Hermitian 屬性:

x[i] == np.conj(x[-i]) for all i

通過依次反映每個軸,這可以推廣到更高的維度:

x[i, j, k, ...] == np.conj(x[-i, -j, -k, ...]) for all i, j, k, ...

這不應與 Hermitian 矩陣相混淆,後者的轉置是它自己的共軛:

x[i, j] == np.conj(x[j, i]) for all i, j

s 的默認值假定最終轉換軸上的輸出長度為偶數。在執行最終複數到實數的變換時,厄米對稱性要求沿該軸的最後一個虛數分量必須為 0,因此它被忽略。為了避免丟失信息,必須給出真實輸入的正確長度。

例子

>>> import scipy.fft
>>> import numpy as np
>>> x = np.ones((3, 2, 2))
>>> scipy.fft.hfftn(x)
array([[[12.,  0.],
        [ 0.,  0.]],
       [[ 0.,  0.],
        [ 0.,  0.]],
       [[ 0.,  0.],
        [ 0.,  0.]]])

相關用法


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