?? 小波包進行信號的去噪處理.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 + -