算法原理(2):样本熵(SampEn)0 i3 o0 t, C$ z% W* i1 K
本文主要介绍样本熵的物理意义、算法以及Matlab里代码实现。
7 n. H" j1 m4 K% [4 x0 _, ?9 Z3 @4 @5 i2 W E3 X/ ~5 W) P5 c
1.物理意义
0 h# [0 a' K1 b( Q0 j+ l4 B" t& i2 s 样本熵(Sample Entropy,SampEn)与近似熵的物理意义相似(近似熵参见博客【近似熵理论相关知识与代码实现】),都是通过度量信号中产生新模式的概率大小来衡量时间序列复杂性,新模式产生的概率越大,序列的复杂性就越大。 " C4 ?7 ]/ k* p5 V
与近似熵相比,样本熵具有两个优势:样本熵的计算不依赖数据长度;样本熵具有更好的一致性,即参数m和r的变化对样本熵的影响程度是相同的。
/ C/ { K3 p# Z- m; {5 F3 c 样本熵的值越低,序列自我相似性就越高;样本熵的值越大,样本序列就越复杂。目前样本熵在评估生理时间序列(EEG,sEMG等)的复杂性和诊断病理状态等方面均有应用。/ u! U1 V: y2 u+ ]4 x) t3 `% A
3 M' N! G" H2 s. s6 M2.计算方法' J0 \& [9 B3 W5 v6 ?6 E( f
样本熵的计算方法如下:. j& j- s; \7 _+ p( S- `) V
![]()
, F9 d+ h: a/ Q! m( }+ X' l3 n+ {& y* u2 c |" |
3.代码实现 在Matlab里实现样本熵函数,计算一段时间序列的样本熵值,代码如下:
# O/ c* _& k8 m/ \9 l
/ b8 Q3 q% S! G. {: \
# }, @; _0 _: ]+ m3 D" B- b0 z
|