logo资料库

使用MATLAB实现样本熵算法.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
地理与生物信息学院 2011 / 2012 学年第 二 学期 实 验 报 告 课程名称: 实验名称: 医学信号处理 样本熵算法实现 班 级 学 号: 11111111 学 生 姓 名: AAAAAAA 指 导 教 师: BBBBB 日 期: 2012 年 6 月
一、 实验题目: 实现样本熵算法并能够在 Matlab 平台上编写出程序,用样本熵 算法分析医学信号并得出结果。 二、实验要求: 可以熟练使用 Matlab 进行编程。 三、实验内容: 对一个 N 点的时间序列 1:)({ ju  Nj } , 构 成  mN 1 个 矢 量 )(iX m 1{ i  mNi   }1 , 其 中 )( iX m  ({ iu  k 0:)  mk  }1 是从 )(iu 到 (  miu  )1 的 m 个数据点的矢 量。 两个矢量的距离定义为: ),([ ( juiud )]  max{ ( ix  k )  ( ju  k }) 0  mk  }1 即它们的对应的标量分量的最大差额。 iB 为距离矢量 )(iX m 为 r 的矢量 X m 的数量, iA 为距离矢量 )( j X m 为 r 的矢量 )(1 i X m 的数量。则样本熵定义为: )(1 j log( BA SampEn  其中 r 为时间序列 )( ju 大小的标准差乘以 15.0 ,即: ) r  15.0  STD (( ju )) 2
四、实验过程: 实现代码: clear; yf=textread('d:\nsrdb-16786.txt'); N=1000; random=fix(rand(1)*10000); X(1:N)=yf(random:(random-1+N),2)*100+2100; r=0.15*std(X); A=0; B=0; m=3; for k=1:m Y(1:N-m+1,k)=X(k:(N-m+k)); end for i=1:N-m for j=(i+1):N-m+1 dij(1:m)=abs(Y(i,1:m)-Y(j,1:m)); d=max(dij); if(d<=r) B=B+1; end end end m=m+1; for k=1:m Y(1:N-m+1,k)=X(k:(N-m+k)); end for i=1:N-m for j=(i+1):N-m+1 dij(1:m)=abs(Y(i,1:m)-Y(j,1:m)); d=max(dij); if(d<=r) A=A+1; end end end 实验结果: SampEn =0.1784 3
六、实验小结: 通过实验了解了很多有关样本熵算法的公式,样本熵定义为: SampEn  log( BA ) 。这对医学信号处理这门课的学习也有很大帮助, 此次实验的主要内容是使用 Matlab 软件编写、实现样本熵算法并处 理生物医学信号。 4
分享到:
收藏