信號處理 - 熵


熵,事物的混亂程度;

熵有很多種計算方式; 

 

概念介紹

 

 

 

如何理解呢?或者說 兩個 均值相減 怎么就能反應 時間序列 的復雜性?

首先,簡單思考下這個計算過程,先用 m 長的窗口 滑動生成 一組 m 長的數組,假設 m = 2,那就是 一個 (n-m+1)x2 的數組,然后計算 每行 之間的距離,這其實就是 計算 原時間序列 中 相鄰元素的距離,或者說 相關性,然后 看看 所有 相鄰元素的相關性 如何(均值);

接着,把 每 相鄰 元素 變成 每 3 個元素,變成 (n-m+1)x3 的數組,然后 再 計算 相關性;

如果 原時間序列 很平穩,我們可以想象成 恆等於 某個值,那么相鄰 2 個相關性很大,相鄰 3 個相關性還是很大,也就是說 窗口變長 並沒有 降低相關性;

反之,如果原時間序列 沒那么平穩,只存在短期相關,那么 相鄰 2 個 相關性較大,相鄰 3 個 相關性 會大大降低,此時 兩個 相關性 相減 差就會比較大,這就得到了 近似熵;   【此次的平穩是我們通俗說的平穩】

所以,近似熵 越大,時間序列 越 不平穩,或者說 越 復雜;

 

 

 

 

 

 

從原理上看,三者都是評價 波形 前后的混亂程度的,也就是 評價 波形 重復性的,也就是 頻率,熵越大,包含的不同頻率越多,越混亂;

三個之間的區別的話
近似熵,1991年的算法。
樣本熵,2000年的算法。近似熵在比較的時候有一個自身比較的數值在里面,這個算法優化了。
模糊熵,2007年的算法。前面兩個算法在評價時加入了一個閾值:大於閾值就混亂,小於就不混亂。模糊熵加入了一個fuzzy的思想在里面。更科學一些。
啥叫fuzzy,就比如說,原來分男女,只有 是 或者 不是 這種。現在加入了模糊思想,就告訴你,這貨有0.8的概率是男的,有0.2的概率是女的這種。這種軟分類其實更科學的。更多的可以參考fuzzy c means算法。

與近似熵相比,樣本熵具有兩個優勢:樣本熵的計算不依賴數據長度;樣本熵具有更好的一致性,即參數m和r的變化對樣本熵的影響程度是相同的。

目前樣本熵在評估生理時間序列(EEG,sEMG等)的復雜性和診斷病理狀態等方面均有應用。

還有一個是 排列熵,是評價數據周期性隨機性的;

Python 樣本熵

python 自帶了一個庫;
pip install sampen

參數解釋

def sampen2(data, mm=2, r=0.2, normalize=False)

data:一維信號

mm:窗口長度,一般 選擇 2,偶爾選擇 3,一般不選其他值

r:在很大程度上取決於實際應用場景,通常選擇 r=0.2stdr,其中 st表示原時間序列的標准差

 

示例

from sampen import sampen2

# initialize a list(初始化list)
series_data = []

# open the file and read each line into the list(按行讀取)
with open('relative/path/to/file.txt', 'r') as file:
    for row in file:
        series_data.append(float(row.strip(' \t\n\r')))

# calculate the sample entropy
sampen_of_series = sampen2(series_data)

輸出

[
    (0, 2.140629540027156, 0.0028357991885715863)
    (1, 2.162868347337613, 0.004903248034526253),
    (
        # Epoch length for max epoch(最大長度)
        2,
        # SampEn(樣本熵的值)
        2.123328492035711,
        # Standard Deviation(標准偏差)
        0.007596323621379352
    ),
]

 

 

 

參考資料:

https://www.zhihu.com/question/266285555/answer/1151247378  知乎

https://sampen.readthedocs.io/en/stable/    官網代碼

https://blog.csdn.net/Fanhe_ecust/article/details/101778803  樣本熵的python代碼實現

https://blog.csdn.net/cratial/article/details/79707169

https://blog.csdn.net/u011389706/article/details/80984209  信號處理算法(2):樣本熵(SampEn)   有原理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM