转:小波函数介绍(wden)

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

你可能感兴趣的:(matlab,plot,算法,c)