刹那公子 发表于 2008-12-27 22:27:54

样本熵 近似熵 代码 应用于matlab

又是大家开始忙碌着毕业论文的时候了~~
这个是我当时毕业论文的核心内容~~
需要做信号非线性的学弟学妹 可以参考下~~








function =jss(xdate)
m=2;
n=length(xdate);
r=0.2*std(xdate);
cr=[];
gn=1;
gnmax=m;
while gn<=gnmax
x2m=zeros(n-m+1,m);%存放变换后的向量
d=zeros(n-m+1,n-m);% 存放距离结果的矩阵
cr1=zeros(1,n-m+1);%存放
k=1;
for i=1:n-m+1

for j=1:m

x2m(i,j)=xdate(i+j-1);

end
end
x2m;


for i=1:n-m+1

for j=1:n-m+1

if i~=j

d(i,k)=max(abs(x2m(i,:)-x2m(j,:)));%计算各个元素和响应元素的距离

k=k+1;

end
end

k=1;
end
d;

for i=1:n-m+1

=size(find(d(i,:)<r));%将比R小的个数传送给L

cr1(1,i)=l;
end
cr1;

cr1=(1/(n-m))*cr1;
sum1=0;
for i=1:n-m+1

if cr1(i)~=0

sum1=sum1+log(cr1(i));

end
end
cr1=1/(n-m+1)*sum1;
cr(1,gn)=cr1;
gn=gn+1;
m=m+1;
end
cr;
shang=cr(1,1)-cr(1,2);




function =ybs(xdate)
m=2;
n=length(xdate);
r=0.2*std(xdate);
cr=[];
gn=1;
gnmax=m;
while gn<=gnmax
x2m=zeros(n-m+1,m);%存放变换后的向量
d=zeros(n-m+1,n-m);% 存放距离结果的矩阵
cr1=zeros(1,n-m+1);%存放
k=1;
for i=1:n-m+1

for j=1:m

x2m(i,j)=xdate(i+j-1);

end
end
x2m;


for i=1:n-m+1

for j=1:n-m+1

if i~=j

d(i,k)=max(abs(x2m(i,:)-x2m(j,:)));%计算各个元素和响应元素的距离

k=k+1;

end
end

k=1;
end
d;

for i=1:n-m+1

=size(find(d(i,:)<r));%将比R小的个数传送给L

cr1(1,i)=l;
end
cr1;

cr1=(1/(n-m))*cr1;
sum1=0;
for i=1:n-m+1

sum1=sum1+cr1(i);

end
end
cr1=1/(n-m+1)*sum1;
cr(1,gn)=cr1;
gn=gn+1;
m=m+1;
end
cr;
shang=-log(cr(1,1)/cr(1,2));

[ 本帖最后由 刹那公子 于 2008-12-27 22:30 编辑 ]

刹那公子 发表于 2008-12-27 22:31:56

其中圆脸为
: ) 中间没有空格
页: [1]
查看完整版本: 样本熵 近似熵 代码 应用于matlab