图片缩略图

快速样本熵

版本1.0.0.0 (4.95 KB) 尼尔斯·Hammerla
样本熵在native Matlab和使用MEX接口。
5.0
2评级

8下载

更新2015年10月20日

从GitHub

在GitHub上查看许可

在native Matlab和c(使用MEX)中有效计算样本熵的脚本。欲知更多资料,请浏览:https://en.wikipedia.org/wiki/Sample_entropy
matlab版本是大约。速度是之前实现的2倍。c版本大约。10倍的速度。

引用作为

尼尔斯·Hammerla(2021)。快速样本熵GitHub (https://github.com/nhammerla/sampleEntropy)。检索

意见及评分(2)

卢卡斯·康诺利

非常感谢这段非常好的代码。但是我有一些问题与它相比我的自定义脚本我写明白SampleEntropy基于论文中描述的“有效的方法在时间序列数据计算样本熵分析”由r . Bhavasar n . Helian y太阳,n .戴维t . Steffert d市长Procedia计算机科学145(2018)97 - 104。

根据“by the book”SampleEntropy的算法,当我从你的for循环条件中移除“-1”来提取长度为wlen+1的窗口时,SampleEntropy返回的结果与你的脚本相同。这样就去掉了一些我认为有必要的比较。
-------------------
%提取长度为wlen+1的窗口
pos = 1:长度(seq) -wlen-1
: D (pos) = seq (pos: pos + wlen);
结束
--------------------

如果使用wlen=0,脚本将失败。我在你的代码中写了一个小修复:
----------------------
如果wlen > 0
v1 = max (DD (: 1: end-1), [], 2);%最大沿第二昏暗(情况1)
v1 = max(v1, DD(:,end));%添加最后一列(情况2)
B = B + sum(v1 < r);
A = A + sum(v2 < r);
其他的
A = A + sum(DD(:,end) < r);
结束
--------------------

最后,当B=0或wlen=0时,对B做一个小调整,以防止返回NaN。
-------------------------------------
如果B == 0
If (wlen == 0) = 0
时间序列中样本熵的有效计算方法
R. Bhavasar, N. Helian, Y. Sun, N. Davey, T. Steffert,
% D. Mayor in Procedia Computer Science 145 (2018) 97-104
ratioAB = / ((seq) *长度(长度(seq) 1) / 2);
其他的
ratioAB = 0;
结束
其他的
ratioAB = A / B;
结束
%%回到原来的使用ratioAB而不是A/B
d =日志(ratioAB);
-----------------------

而不是d = -log(A/B);

成国栋谢

MATLAB版本兼容性
创建R2015a
与任何版本兼容
平台的兼容性
窗户 macOS Linux
确认

启发:样本熵

社区寻宝

在MATLAB中心找到宝藏,并发现社区可以如何帮助您!

开始狩猎!

matlab

matlab +墨西哥人