|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
load 3;
b=X;
b=b';
L=length(b);
f=2e+6;
%做5层小波分解
[c,l]=wavedec(b,5,'coif4');
%重构尺度1,2,3,4,5的高频系数
cd1=wrcoef('d',c,l,'coif4',1);
cd2=wrcoef('d',c,l,'coif4',2);
cd3=wrcoef('d',c,l,'coif4',3);
cd4=wrcoef('d',c,l,'coif4',4);
cd5=wrcoef('d',c,l,'coif4',5);
d1=zeros(1,5120);
d2=zeros(1,5120);
d3=zeros(1,5120);
d4=zeros(1,5120);
d5=zeros(1,5120);
%计算尺度1、2的相关系数,求尺度1上降噪后系数
cor1=cd1.*cd2;
pcd1=sum(cd1.^2);
pcor1=sum(cor1.^2);
ncor1=cor1*sqrt(pcd1/pcor1);
abscd1=abs(cd1);
absnc1=abs(ncor1);
for i=1:L
if(absnc1(i)>=abscd1(i))
d1(i)=cd1(i);
end
end
%计算尺度2、3的相关系数,求尺度2上降噪后系数
cor2=cd2.*cd3;
pcd2=sum(cd2.^2);
pcor2=sum(cor2.^2);
ncor2=cor2*sqrt(pcd2/pcor2);
abscd2=abs(cd2);
absnc2=abs(ncor2);
for i=1:L
if(absnc2(i)>=abscd2(i))
d2(i)=cd2(i);
end
end
%计算尺度3、4的相关系数,求尺度3上降噪后系数
cor3=cd3.*cd4;
pcd3=sum(cd3.^2);
pcor3=sum(cor3.^2);
ncor3=cor3*sqrt(pcd3/pcor3);
abscd3=abs(cd3);
absnc3=abs(ncor3);
for i=1:L
if(absnc3(i)>=abscd3(i))
d3(i)=cd3(i);
end
end
%计算尺度4、5的相关系数,求尺度4上降噪后系数
cor4=cd4.*cd5;
pcd4=sum(cd4.^2);
pcor4=sum(cor4.^2);
ncor4=cor4*sqrt(pcd4/pcor4);
abscd4=abs(cd4);
absnc4=abs(ncor4);
for i=1:L
if(absnc4(i)>=abscd4(i))
d4(i)=cd4(i);
end
end
%尺度5
d5=cd5;
for i=1:L
if(d4(i)==0)
d5(i)=0;
end
end
%重构信号
ca5=wrcoef('a',c,l,'coif4',5);
bb=d1+d2+d3+d4+d5+ca5;
figure(1)
plot(0:L-1/f,d5)
title('降噪后尺度5的重构小波系数');
xlabel('时间T/s');
ylabel('幅度Amp/V');
figure(2)
plot(0:L-1/f,d4)
title('降噪后尺度4的重构小波系数');
xlabel('时间T/s');
ylabel('幅度Amp/V');
figure(3)
plot(0:L-1/f,d3)
title('降噪后尺度3的重构小波系数');
xlabel('时间T/s');
ylabel('幅度Amp/V');
figure(4)
plot(0:L-1/f,d2)
title('降噪后尺度2的重构小波系数');
xlabel('时间T/s');
ylabel('幅度Amp/V');
figure(5)
plot(0:L-1/f,d1)
title('降噪后尺度1的重构小波系数');
xlabel('时间T/s');
ylabel('幅度Amp/V');
figure(6)
plot(0:L-1/f,bb)
title('小波变换尺度间相关性降噪后的基材开裂信号');
xlabel('时间T/s');
ylabel('电压U/V');
%求均方根误差
err=norm(b-bb)/sqrt(L);
%求降噪后信号在原信号中的能量成分
per=sum(bb.^2)/sum(b.^2); |
|