资源描述:
《matlab小波变换函数的总结与程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、小波去噪举例MATLAB中用wnoise函数测试去噪算法sqrt_snr=3;init=231434;[x,xn]=wnoise(3,11,sqrt_snr,init);%加噪,信噪比为3subplot(3,2,1),plot(x)title('originaltestfunction')subplot(3,2,2),plot(xn)title('noisedfunction')lev=5;xd=wden(x,'heursure','s','one',lev,'sym8');%利用小波对一维信号进行降噪,XD为降噪后的%信号,CXD,LXD为XD
2、的小波分解结构%'s'or'h'决定阈值的使用方式,SCAL决定阈值是%否随噪声变化:'one'不调整,'sln'对第一层系%数的层噪声分别进行估计和调整;'mln'对各层%系数的层噪声分别进行估计和调整;subplot(3,2,3),plot(xd)title('Onede-noisedfunction')xd=wden(x,'heursure','s','sln',lev,'sym8');subplot(3,2,4),plot(xd)title('Slnde-noisedfunction')xd=wden(x,'sqtwolog','s','
3、sln',lev,'sym8');%固定阈值选择算法去噪subplot(3,2,5),plot(xd)title('Sqtwologde-noisedfunction')[c,l]=wavedec(x,lev,'sym8');subplot(3,2,6),plot(xd)title('CLde-noisedfunction')MATLAB中图像噪声处理举例loadsinsin;colormap('default');subplot(1,3,1),image(X);title('originalimage');axis('square');init
4、=231434;randn('seed',init);X=X+18*randn(size(X));%产生噪声信号subplot(1,3,2),image(x);title('noisedimage');axis('square');[thr,sorh,keepapp]=ddencmp('den','wv',x);%自动生成小波去躁或压缩的阈值选择方案,也%就是寻找默认值[xc,cxc,lxc,perf0,perfl2]=wdencmp('gbl',x,'sym4',2,thr,sorh,keepapp);%使用全局阈值进行%图象降噪subplot
5、(1,3,3),image(xc);title('denoisedimage');axis('square')可见,含躁图像的噪声含量很强,利用小波去躁,可以有效去除躁声,同时保留了边界。Wdencmp函数[xc,cxc,lxc,perf0,perfl2]=wdencmp('gbl',x,'sym4',2,thr,sorh,keepapp)是使用小波进行一维或二维小波压缩或降噪的函数。前面的语句是对于输入的一维或二维信号X,使用全局正阈值THR,由小波系数阈值得到降噪或压缩后的信号XC。附加的输出变量[cxc,lxc]是XC的小波分解结构;[pe
6、rf0,perfl2]是恢复和压缩的L2范数百分比。使用小波'sym4'执行小波分解到第N=2层。Sorh是软阈值或硬阈值。若keepapp=1,低频系数不能进行阈值处理。