样本熵(Sample entropy)
基本原理
设有长度为 \(N\) 的时间序列 \(X = \left\{ {x\left( 1 \right),x\left( 2 \right), \cdots ,x\left( N \right)} \right\}\) ,样本熵的计算步骤如下:
将时间序列 \(X\) 重构相空间,形成向量序列 \(\left\{ {{x_m}\left( 1 \right),{x_m}\left( 2 \right), \cdots ,{x_m}\left( {N - m + 1} \right)} \right\}\) ,嵌入维度也就是向量的维度为 \(m\) ,其中:
定义距离 \(d\left[ {{x_m}\left( i \right),{x_m}\left( j \right)} \right]\) 为向量 \({x_m}\left( i \right)\) 和 \({x_m}\left( j \right)\) 对应元素差值绝对值的最大值,即切比雪夫距离:
给定容限 \(r\) ,对于固定的 \({x_m}\left( i \right)\) ,统计其与 \({x_m}\left( j \right)\) 之间的距离满足 \(d\left[ {{x_m}\left( i \right),{x_m}\left( j \right)} \right] \le r,j \ne i\) 的距离个数记为 \({B_i}\) ,总的距离数为 \(N - m\) ,定义:
对 \(1 \le i \le N - m + 1\),定义 \({B^m}\left( r \right)\) 为
将维数 \(m\) 增加到 \(m+1\) ,重复以上(步骤1-步骤4),得到 \({B^{m + 1}}\left( r \right)\)
样本熵可以被定义为:
由于实际信号的 \(N\) 不能趋近于无穷大,因此有限序列的样本熵定义为:
备注
- This is a note admonition.
样本熵是由Richman等人 1,提出的,建议的参数选择为:
嵌入维度 \(m=2\)
容限 \(r\) 一般取 0.1~0.25 倍时间序列的标准差(SD)。在后续的仿真验证中,我们选择 \(m=2\) , \(r = 0.15 \times {\rm{SD}}\) 。
代码实现
这里假设您已经获得本项目的的所有代码,若您此时还未获得有关程序,请移步到 安装说明
样本熵(Sample entropy)的核心程序为 ApproximateEntropy
function SE=SampleEntropy(data,m,r) % 输入的时间序列data为列向量即可
SE=SampleEntropy1(data,m,r);
end
重要
各输入参数的信息如下:
data:输入的时间序列,为列向量r: 容限m:嵌入维度
仿真验证
样本熵的脉冲检测结果
多尺度样本熵的故障分类可视化结果
抗噪性分析
计算效率结果
- 1
Richman and J. R. Moorman, “Physiological time-series analysis using approximate entropy and sample entropy,” Am. J. Physiol.-Heart Circ. Physiol., vol. 278, no. 6, pp. H2039–H2049, Jun. 2000, doi: 10.1152/ajpheart.2000.278.6.H2039.