资源简介

matlab计算时间序列样本熵,含计算步骤

资源截图

代码片段和文件信息


function SampEnVal = SampEn(data m r)
%SAMPEN  计算时间序列data的样本熵
%        data为输入数据序列
%        m为初始分段,每段的数据长度
%        r为阈值
% $Author: lskyp
% $Date:   2010.6.20
% Orig Version: V1.0--------分开计算长度为m的序列和长度为m+1的序列
%                           这一版的计算有些问题,需要注意两个序列总数都要为N-m
% Modi Version: V1.1--------综合计算,计算距离时通过矩阵减法完成,避免重循环
% V1.1 Modified date: 2010.6.23
data = data(:)‘;
N = length(data);
Nkx1 = 0;
Nkx2 = 0;
% 分段计算距离,x1为长度为m的序列,x2为长度为m+1的序列
for k = N - m:-1:1
    x1(k :) = data(k:k + m - 1);
    x2(k :) = data(k:k + m);
end
for k = N - m:-1:1
    % x1序列计算
    % 统计距离,由于每行都要与其他行做减法,因此可以先将该行复制为N-m的矩阵,然后
    % 与原始x1矩阵做减法,可以避免两重循环,增加效率
    x1temprow = x1(k :);
    x1temp    = ones(N - m 1)*x1temprow;
    % 可以使用repmat函数完成上面的语句,即
    % x1temp = repmat(x1temprow N - m

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1521  2020-11-04 21:15  SampEn.m
     文件       75860  2020-11-04 21:15  ╤∙▒╛∞╪╝╞╦π▓╜╓Φ1.jpg
     文件       70808  2020-11-04 21:15  ╤∙▒╛∞╪╝╞╦π▓╜╓Φ2.jpg

评论

共有 条评论