📄 probability.m
字号:
function Ys=probability(s,tt)
col=size(s);
col=col(1,2);
for i=1:col
[c(:,i),l(:,i)]=wavedec(s(:,i),tt,'db4');
Cs(:,i)=c(:,i);
la=length(appcoef(c(:,i),l(:,i),'db4',tt));
qq=0;
for j=tt:-1:1
dd=detcoef(c(:,i),l(:,i),j);
t(j,i)=length(dd); %计算各阶小波系数的长度
q=1+qq;qq=qq+t(j,i);
D(q:qq,i)=dd;
end;
N=length(c(:,i));
%以下的阈值计算需要针对不同的信号特征随时调整
g(i)=std(abs(D(q:qq,i)),1);
%下面就是根据数学推导提出的所谓的“概率”阈值求法 ,各位不妨试一试,看看效果如何
u(1,i)=g(i)*2; %这里的噪声服从正态分布,且方差为零,其...
%概率分布函数为F(X)=1-exp(-x^2/g^2),g 为标准差。当x等于2 ...
%倍的方差g 时,0.9817%的噪声可以去除。
for j=1:tt
u(j,i)=u(1,i)/2^((j-1)/2);
end
co=0;
for j=tt:-1:1
ln=1+co;co=co+t(j,i);
DD(ln:co,i)=wthresh(D(ln:co,i),'s',u(j,i));
end
Cs(la+1:N,i)=DD(:,i);
Ys(:,i)=waverec(Cs(:,i),l(:,i),'db4');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -