算法原理(2):样本熵(SampEn); e- g! O- b# M% U' r. W+ f) p* i
本文主要介绍样本熵的物理意义、算法以及Matlab里代码实现。
" P* e8 F* R5 Y8 N/ | @: q- Q% _, o
% J: m/ S _: h' {, g8 s! l- _: E1.物理意义3 P3 X4 {/ R0 I& |& j" _- E
样本熵(Sample Entropy,SampEn)与近似熵的物理意义相似(近似熵参见博客【近似熵理论相关知识与代码实现】),都是通过度量信号中产生新模式的概率大小来衡量时间序列复杂性,新模式产生的概率越大,序列的复杂性就越大。 % k8 _7 C) S7 K0 T- C3 k1 g
与近似熵相比,样本熵具有两个优势:样本熵的计算不依赖数据长度;样本熵具有更好的一致性,即参数m和r的变化对样本熵的影响程度是相同的。 & x! r( r. D; \5 o" S5 T! o
样本熵的值越低,序列自我相似性就越高;样本熵的值越大,样本序列就越复杂。目前样本熵在评估生理时间序列(EEG,sEMG等)的复杂性和诊断病理状态等方面均有应用。
7 h; L( P; J8 o( R. |2 e
: L: e# \0 w) _0 {7 ^9 s; U0 s2.计算方法/ j& W( ~1 r2 W+ c& A; ~; Z; ]: z
样本熵的计算方法如下:2 m0 K9 }3 A I
![]()
+ F2 L: u& {! i0 z5 v9 G3 N- t( W2 o) k4 g/ V" w& I* X" N+ Y9 k/ F& M
3.代码实现 在Matlab里实现样本熵函数,计算一段时间序列的样本熵值,代码如下:
: w7 q" A& W9 d- x# @
2 C' ^. t% X9 i7 p4 Z: @% I0 N8 _' p& l
|