• 大小: 2KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-07-06
  • 语言: Matlab
  • 标签: 样本熵  matlab  

资源简介

利用matlab计算信号序列的样本熵,估算信号的复杂度

资源截图

代码片段和文件信息


function SampEnVal = SampEn(data m r)
% 调用时data是要分析的一维行向量,向空间重构的时间延迟默认为1,m重构维数
%  r 阈值大小,一般选择r=e*std(data)
%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序列计算
 
    % 统计距离,由于每行都要与

评论

共有 条评论