📄 niose.m
字号:
function [e_new,e_med]=niose(k)
fc=k/4;
s=zeros(k,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:k
if i<=fc
s(i)=20-40*i/fc;
elseif i<=2*fc
s(i)=20;
elseif i<=3*fc
s(i)=-20+40*(i/fc-2)*(i/fc-2)*(i/fc-2);
else s(i)=-20+40*(i/fc-3)*(i/fc-3);
end
end
% stem(s);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c1=randn(k,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y=s+randn(k,1);
rou_exp=std(c1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[ca1,d1]=dwt(y,'db4');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
c=d1;
rou_new=std(c);
T=rou_new*sqrt(2*log(k));
for m=0:10
sel=find(abs(d1)<=T);
c=d1(sel);
rou_new=std(c);
T=rou_new*sqrt(2*log(k));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a1=sort(abs(d1));
[m1,m2]=size(a1);
rou_med=a1(ceil(m1/2))/0.6745;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
e_new=abs((rou_new*rou_new-rou_exp*rou_exp)/(rou_exp*rou_exp));
e_med=abs((rou_med*rou_med-rou_exp*rou_exp)/(rou_exp*rou_exp));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -