|
t=1:512;
t=t*1/2560;
z=1+0.2*sin(2*pi*7.5*t)
x=5*cos(2*pi*30*t)
y=sin(2*pi*120*t);
f1=x+y+z;
s=x+0.5*randn(1,512);% x信号+噪声
%用db4小波进行5尺度分解
[c,l]=wavedec(s,5,'db4');
%[c,1]=wavedec(s(2,:),3,'db4');
%取第5层低频系数
ca5 = appcoef(c,l,'db4',5);
%取各层高频系数
cd5=detcoef(c,l,5);
cd4=detcoef(c,l,4);
cd3=detcoef(c,l,3);
cd2=detcoef(c,l,2);
cdl=detcoef(c,l,1);
%以极大值极小值原理选择信号消噪的阈值(软阈值),产生一个最小均方误差的极值
thr=thselect(s, 'minimaxi');
%对各高频系数进行消噪
cdlsoft=wthresh(cdl, 's',thr);
cd2soft=wthresh(cd2,'s',thr);
cd3soft=wthresh (cd3, 's',thr);
cd4soft=wthresh (cd4, 's',thr);
cd5soft=wthresh (cd5, 's',thr);
%由于原信号信噪比大,且高频成分较少thr=-2.409,而各高频系数实际值小于1,因此以上操作实际上是将高频成分置零
%对4层高频系数消噪后重构超声信号
cc=[ca5 cd5soft cd4soft cd3soft cd2soft cdlsoft];
s1= waverec(cc,l, 'db4');
% x~1,2,3层高频系数消噪后重构信号
cd=[ca5 cd5 cd4 cd3 cd2 cdlsoft];
s2= waverec(cd,l, 'db4');
ce=[ca5 cd5 cd4 cd3 cd2soft cdlsoft];
s3=waverec(ce,l, 'db4');
cf=[ca5 cd5 cd4 cd3soft cd2soft cdlsoft];
s4=waverec(cf,l, 'db4');
cg=[ca5 cd5 cd4soft cd3soft cd2soft cdlsoft];
s5=waverec(cg,l, 'db4');
subplot(611)
plot(s);
subplot(612)
plot(s1);
subplot(613)
plot(s2);
subplot(614)
plot(s3);
subplot(615)
plot(s4);
subplot(616)
plot(s5); |
|