matlab小波变换函数的总结与程序
小波去噪举例MATLAB中用wnoise函数测试去噪算法sqrt_snr=3; init=231434; x,xn=wnoise(3,11,sqrt_snr,init); % 加噪,信噪比为3subplot(3,2,1),plot(x) title('original test function') subplot(3,2,2),plot(xn) title('noised function')lev=5; xd=wden(x,'heursure','s','one',lev,'sym8');%利用小波对一维信号进行降噪, XD为降噪后的%信号,CXD,LXD为XD的小波分解结构% 's' or 'h'决定阈值的使用方式,SCAL决定阈值是%否随噪声变化:'one' 不调整, 'sln'对第一层系%数的层噪声分别进行估计和调整; 'mln'对各层%系数的层噪声分别进行估计和调整; subplot(3,2,3),plot(xd) title('One de-noised function')xd=wden(x,'heursure','s','sln',lev,'sym8');subplot(3,2,4),plot(xd) title('Sln de-noised function')xd=wden(x,'sqtwolog','s','sln',lev,'sym8');% 固定阈值选择算法去噪subplot(3,2,5),plot(xd) title('Sqtwolog de-noised function')c,l=wavedec(x,lev,'sym8');subplot(3,2,6),plot(xd) title('CL de-noised function')MATLAB中图像噪声处理举例load sinsin; colormap('default'); subplot(1,3,1),image(X); title('original image'); axis('square');init=231434; randn('seed',init); X=X+18*randn(size(X); %产生噪声信号subplot(1,3,2),image(x); title('noised image'); axis('square');thr,sorh,keepapp=ddencmp('den','wv',x); %自动生成小波去躁或压缩的阈值选择方案,也 %就是寻找默认值xc,cxc,lxc,perf0,perfl2=wdencmp('gbl',x,'sym4',2,thr,sorh,keepapp);%使用全局阈值进行%图象降噪subplot(1,3,3),image(xc); title('denoised image'); axis('square')可见,含躁图像的噪声含量很强,利用小波去躁,可以有效去除躁声,同时保留了边界。Wdencmp函数xc,cxc,lxc,perf0,perfl2=wdencmp('gbl',x,'sym4',2,thr,sorh,keepapp)是使用小波进行一维或二维小波压缩或降噪的函数。前面的语句是对于输入的一维或二维信号X,使用全局正阈值THR,由小波系数阈值得到降噪或压缩后的信号XC。附加的输出变量cxc,lxc是XC的小波分解结构; perf0,perfl2是恢复和压缩的L2范数百分比。使用小波'sym4'执行小波分解到第N2层。Sorh是软阈值或硬阈值。若keepapp1,低频系数不能进行阈值处理。