Python中的小波奇異熵(Wavelet Singular Entropy)是一種信號處理方法,可以用于對時間序列數據進行分析,以評估其無序性和復雜性。小波奇異熵能夠將信號分解成不同的分量,從而檢測出信號中的不同頻率成分。
from scipy.signal import cwt, ricker import numpy as np def calculate_wse(data, scales): wse = [] for scale in scales: wavelet = ricker(scale, 4) coefficients, _ = cwt(data, wavelet) sig_power = coefficients ** 2 W = sig_power / np.sum(sig_power) S = - W * np.log2(W) S[np.isnan(S)] = 0 wse.append(np.sum(S)) return wse
上述代碼中,我們使用了scipy庫中的cwt和ricker函數。cwt函數會將數據進行小波變換,而ricker函數則用于生成母小波。第一個參數是數據,第二個參數是母小波的尺度。我們可以通過調整尺度的大小來獲取不同頻率范圍內的信息。接著我們對每一個小波尺度計算系數,然后計算信號的功率,再計算每個系數的權重W以及對應的小波奇異熵S(用于評估無序性和復雜性),最后返回所有小波尺度的小波奇異熵。
上一篇vue $emit()