小波函数介绍(wden)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阈值消噪处理后的信号');