基于小波空域相关法去噪MATLAB源程序.doc

基于小波空域相关法去噪MATLAB源程序.doc

ID:57275346

大小:14.50 KB

页数:3页

时间:2020-08-08

基于小波空域相关法去噪MATLAB源程序.doc_第1页
基于小波空域相关法去噪MATLAB源程序.doc_第2页
基于小波空域相关法去噪MATLAB源程序.doc_第3页
资源描述:

《基于小波空域相关法去噪MATLAB源程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、closeall;clc;clear;snr=5;init=;[xref,x]=wnoise(1,10,snr,init);signal=x;points=1024;  level=5;  wf='bior1.5';%sym8,bior1.5[Lo_D,Hi_D,Lo_R,Hi_R]=wfilters(wf);[swa,swd]=swt(signal,level,Lo_D,Hi_D);%swd是细节系数,swa是近似系数Swd_n=swd;swd_org=swd;mask_n=zeros(size(Swd_n));%

2、先把系数处理矩阵设置为全0。forj=1:(level-1)  %在1:(level-1)分解层次上对高频系数处理,最后一层无法求相关系数,所以不作处理。  Noise_d1=swd_org(j,:);  Noise_d1=Noise_d1(1:80);  Noise_var=var(Noise_d1);%以信号的前80个只含有噪声的点估计噪声在各层的方差。  Pw_var=var(swd_org(j,:));  Corr=swd_org(j,:).*swd_org(j+1,:);%定义相关系数为相邻两层的乘积。  

3、    cc=1.7;%_______用以设定停止迭代的噪声能量阈值,需要根据情况调节。________%  whilePw_var>cc*Noise_var  Pw=sum(abs(swd(j,:)).^2);%计算小波能量  Pcorr=sum(abs(Corr).^2);%计算相关系数能量  Corr_new=Corr.*((Pw/Pcorr)^0.5);%归一化      corr_mod=abs(Corr_new);  w_mod=abs(swd(j,:));  swd_n=swd(j,:).*(corr_

4、mod>w_mod);%(corr_mod>w_mod)返回0或者1  swd_n1=(swd_n~=0);  mask_n(j,:)=mask_n(j,:)+swd_n1;  %将选出的点赋给系数处理矩阵相应位置。  swd_n0=ones(size(swd_n1));  swd_n0=swd_n0-swd_n1;    swd(j,:)=swd(j,:).*swd_n0;%将高频系数选出大值后的地方置0。  Pw_var=var(swd(j,:));  Corr_new=Corr_new.*swd_n0;%将相关

5、系数选出大值后的地方置0。  Corr=Corr_new;  endend    mask_max=ones(1,length(mask_n));mask_n=[mask_n((1:(level-1)),:);mask_max];%最后一层系数处理矩阵全置1。Swd_reg=swd_org.*mask_n;signal_n=iswt(swa,Swd_reg,wf);%S_mix=wden(signal_n,'sqtwolog','s','sln',5,'sym8');%rigrsure;heursure;sqtwol

6、og;minimaxixcrr=signal_n-xref;%求滤波误差信号。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%画图:figure;%空域法处理后的高频系数。subplot(level+1,1,1);plot(real(signal));gridon;axistight;title('空域法处理后的高频系数');fori=1:level  subplot(level+1,1,i+1);  plot(

7、Swd_reg(i,:));axistight;gridon;ylabel(strcat('j=  ',num2str(i)));endfigure;%高频系数处理前后的比较。fori=1:level  subplot(level,2,2*(i)-1);  plot(swd_org(i,:));axistight;gridon;  ylabel(strcat('d  ',num2str(i)));  subplot(level,2,2*(i));  plot(Swd_reg(i,:));axistight;grido

8、n;  ylabel(strcat('j=  ',num2str(i)));endfigure;%信号滤波前后比较。subplot(3,1,1);plot(signal);axistight;gridon;axis([01000-522]);title('原始信号');subplot(3,1,2);plot(signal_n);axistigh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。