您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 畜牧/养殖 > 信号阈值去噪MATLAB程序实例
信号阈值去噪实例首先讲一下原理步骤:一般来说,信号去噪的基本步骤主要包括如下三步:(1)信号的小波分解;(2)小波分解高频系数的阈值量化;(3)信号的小波重构。使用分解的低频系数以及阈值量化后的高频系数进行小波重构。例1:信号阈值去噪一程序daimaru代码如下:loadleleccum;indx=1:1024;x=leleccum(indx);%产生噪声信号init=2055615866;randn('seed',init);nx=x+18*randn(size(x));%获取消噪的阈值[thr,sorh,keepapp]=ddencmp('den','wv',nx);%对信号进行消噪xd=wdencmp('gbl',nx,'db4',2,thr,sorh,keepapp);subplot(221);plot(x);title('原始信号');subplot(222);plot(nx);title('含噪信号');subplot(223);plot(xd);title('消噪后的信号');例2:信号阈值去噪二在本例中,首先使用函数wnoiset获取噪声方差,然后使用函数wbmpen获取小波去噪阈值,最后使用函数wdencmp实现信号消噪。程序代码如下:loadleleccum;indx=1:1024;x=leleccum(indx);%产生含噪信号init=2055615866;randn('seed',init);nx=x+18*randn(size(x));%使用小波函数'db6'对信号进行3层分解[c,l]=wavedec(nx,3,'db6');%估计尺度1的噪声标准差sigma=wnoiset(c,l,1);alpha=2;%获取消噪过程中的阈值thr=wbmpen(c,l,sigma,alpha);keepapp=1;%对信号进行消噪xd=wdencmp('gbl',c,l,'db6',3,thr,'s',keepapp);subplot(221);plot(x);title('原始信号');subplot(222);plot(nx);title('含噪信号');subplot(223);plot(xd);title('消噪后的信号');例3:信号阈值去噪三在本例中,对小波分解系数使用函数wthcoef进行阈值处理,然后利用阈值处理后的小波系数进行重构达到去噪目的。程序代码如下:loadleleccum;indx=1:1024;x=leleccum(indx);%产生含噪信号init=2055615866;randn('seed',init);nx=x+18*randn(size(x));%使用小波函数'db5'对信号进行3层分解[c,l]=wavedec(nx,3,'db5');%设置尺度向量n=[1,2,3];%设置阈值向量p=[120,110,100];%对高频系数进行阈值处理nc=wthcoef('d',c,l,n,p);%对修正后的小波分解结构进行重构rx=waverec(nc,l,'db5');subplot(221);plot(x);title('原始信号');subplot(222);plot(nx);title('含噪信号');subplot(223);plot(rx);title('消噪后的信号');例4:信号阈值去噪四在本例中,使用一维信号的自动消噪函数wden对信号进行消噪。程序代码如下:loadleleccum;indx=1:1024;x=leleccum(indx);%产生含噪信号init=2055615866;randn('seed',init);nx=x+18*randn(size(x));%将信号nx使用小波函数'sym5'分解到第5层%使用minimaxi阈值选择对系数进行处理,消除噪声信号lev=5;xd=wden(nx,'minimaxi','s','mln',lev,'sym5');subplot(221);plot(x);title('原始信号');subplot(222);plot(nx);title('含噪信号');subplot(223);plot(xd);title('消噪后的信号');(引用自高手,谢谢支持)
本文标题:信号阈值去噪MATLAB程序实例
链接地址:https://www.777doc.com/doc-6154722 .html