📄 小波包进行信号的去噪处理.txt
字号:
小波包进行信号的去噪处理
callback()
load noismima;
x=noismima(1:1024);
subplot(221);plot(x);title('原始信号');%画出原始信号
[thr,sorch,keepapp,crit]=ddencmp('den','wp',x);%用wdencmp进行信号的去噪,并采用默认阀值
[xc,treed,datad,pref0,pref12]=wpdencmp(x,sorch,3,'db2',crit,thr,keepapp);
subplot(222);plot(xc);title('默认阀值去噪信号');%画出去噪信号
%根据上面的去噪效果,调节阀值大小进行去噪
thr=thr+15;
[xc1,treed,datad,pref0,pref12]=wdencmp(x,sorch,3,'db2',crit,thr,keepapp);
subplot(223);plot(xc1);title('调节后阀值去噪信号');%画调节后阀值去噪信号
检测第一种类型的间断点1
callback()
load freqbrk;
s=freqbrk;ls=length(s);
[c,l]=wavedec(s,6,'db5',6);%用db5小波分解信号到第六层
subplot(8,1,l);plot(s);
title('用db5小波分解六层:s=a6+d6+d5+d4+d3+d2+d1');Ylabel('s');
%对分解结构[c,l]中的第六层低频部分进行重构
a6=wrcoef('a',c,l,'db5',6);
subplot(8,1,2),plot(a6);Ylabel('a6');
%对分解结构[c,l]中的个层高频部分进行重构
for i=1:6
decmp=wrcoef('d',c,l,'db6'7-i);
subplot(8,1,i+2);plot(decmp);Tlabel(['d',num2str(7-i)]);
end
检测第一种类型的间断点2
callback()
load freqbrk;
s=freqbrk;ls=length(s);
subplot(6,1,1);plot(s);title('原始信号的时域图');
%对信号s进行FFT变换
fs=fft(s,1024);%在s信号中取1024个点,若s中不够长,后面补零
fs=abs(fs);%将FFT后的复数用abs求其模的大小,返回的值是复数的模
subplot(6,1,2);plot(fs);Ylabel('FFT');grid;
%信号用db1小波分解到第三层后的频域特性
[c,l]=wavedec(s,3,'db1');%用db1小波分解信号到第三层
%对分解结构[c,l]的第三层低频部分进行重构
a3=wrcoef('a',c,l,'db1',3);
subplot(6,1,3);plot(a3);Ylabel('a3');
%对分解结构[c,l]的各层高频部分进行重构
for i=1:3
decmp=wrcoef('d',c,l,'db3',4-i);
subplot(6,1,i+3);plot(decmp);Ylabel(['d',int2str(4-i)]);
end
检测第一种类型的间断点3
callback()
t=0:pi/125:4*pi;
s1=sin(t);%设置一正常信号
s2=sin(10*t);%设置一故障信号,表现在信号的突变
s3=sin(t);%设置一正常信号
s=[s1,s2,s3];%整个信号
subplot(6,1,1);plot(s);title('原始信号');
Ylabel(['d',c,l,'db1',7-i);
[c,l]=wavedec(s,6,'db3');%采用db3小波并对信号进行六层分解
apcmp=wrcoef('a',c,l,'db3',6);
subplot(422);plot(apcmp);
Ylabel('ca6');
for i=1:6
decmp=wrcoef('d',c,l,'db3',7-i);
subplot(4,2,i+2);plot(decmp);
Ylabel(['d',num2str(7-i)]);
end
实际信号的读取
callback()
EditHandle=findobj(gcbf,'Tag','EditText1');
ZString=get(EditHandle);
fid=fopen('c:\ren\renzy.wav','rb');
[a1,count1]=freed(fid,'real*4');
count1
plot(a1);
load noisdopp;
x=noisdopp;
[wpt,wpd]=wpdec(x,3,'db1');
[wpt,wpd]=wpsplt(wpt,wpd,[3,0]);
plottree(wpt)
[blt,bld]=besttree(wpt,wpd);
plottree(blt);
subplot(423);plot(blt);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -