小波去噪函数二(转)Wden函数:一维信号的小波消噪处理
[xd,cxd,lxd]=wden(x,tptr,sorh,scal,n,‘wname’);返回经过小波消噪处理后的信号xd及其小波分解结构。 输入参数tptr为阈值选择标准: thr1=thselect(x,'rigrsure');%stein无偏估计; thr2=thselect(x,'heursure');%启发式阈值; thr3=thselect(x,'sqtwolog');%固定式阈值; thr4=thselect(x,'minimaxi');%极大极小值阈值; 输出参数sorh为函数选择阈值使用方式: Sorh=s,为软阈值; Sorh=h,为硬阈值; 输入参数scal规定了阈值处理随噪声水平的变化: Scal=one,不随噪声水平变化。 Scal=sln,根据第一层小波分解的噪声水平估计进行调整。 Scal=mln,根据每一层小波分解的噪声水平估计进行调整。 [xd,cxd,lxd]=wden(c,l,tptr,sorh,scal,n,‘wname’);由有噪信号的小波分解结构得到消噪处理后的信号xd,及其小波分解结构。 例:比较不同阈值算法进行信号消噪的处理结果; r=2055415866; snr=3;%设置信噪比; [xref,x]=wnoise(3,11,snr,r);%产生有噪信号; lev=5; xdH=wden(x,'heursure','s','sln',lev,'sym6');%heursure阈值信号处理; xdR=wden(x,'rigrsure','s','sln',lev,'sym6');%rigrsure阈值信号处理; xdS=wden(x,'sqtwolog','s','sln',lev,'sym6');%sqtwolog阈值信号处理; xdM=wden(x,'minimaxi','s','sln',lev,'sym6');%minimaxi阈值信号处理; subplot(3,2,1); plot(xref);title('原始信号'); axis([1,2048,-10,10]); subplot(3,2,2); plot(x);title('有噪信号'); axis([1,2048,-10,10]); subplot(3,2,3); plot(xdH);xlabel('heursure阈值消噪处理后的信号'); axis([1,2048,-10,10]); subplot(3,2,4); plot(xdR);xlabel('rigrsure阈值消噪处理后的信号'); axis([1,2048,-10,10]); subplot(3,2,5); plot(xdS);xlabel('sqtwolog阈值消噪处理后的信号'); axis([1,2048,-10,10]); subplot(3,2,6); plot(xdM);xlabel('minimaxi阈值消噪处理后的信号'); |
|