使用小波分析的各类函数对信号图像进行消噪(含数据以及图像)珍贵版讲解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用sym6和db6小波对信号y1进行5层分解。其中信号y1是由正余弦信号y和白噪声信号s构成。选用sure阈值模式。Wden函数是对一维信号的小波进行消噪处理。

xd=wden(x,tptr,sorh,scal,n,’wname’)

X即为将要去噪的信号。tptr为所选用的sure阈值模式。sorh为函数选择阈值使用方式,其中s表示软阈值,h为硬阈值。输入参数scal规定阈值处理随噪声水平变化。scal=one,不随噪声水平变化。scal=sln,根据第一层小波分解的噪声水平估计进行调整。scal=mln根据每一层小波分解的噪声水平估计进行调整。

对于函数heursure为启发式阈值,rigrsure为stein无偏估计,sqtwolog 为固定式阈值minimaxi为极大值极小值阈值。

应用小波分析对信号去噪的程序如下:

t=0:0.001:1

f1=5;

f2=20;

y=3*sin(2*pi*f1*t)+5*cos(5*pi*f2*t)

s1=randn(1,length(y))

s=y+s1

subplot(211);

plot(t,s);

grid on;

lev=5;

xdH=wden(s,'heursure','s','sln',lev,'sym6');

xdR=wden(s,'rigrsure','s','sln',lev,'sym6');

xdS=wden(s,'sqtwolog','s','sln',lev,'sym6');

xdM=wden(s,'minimaxi','s','sln',lev,'sym6');

subplot(5,2,1);

plot(y);title('原始信号')

axis([1,2048,-10,10]);

subplot(5,2,2);

plot(s);title('有噪信号')

axis([1,2048,-10,10]);

subplot(5,2,3);

plot(xdH);xlabel('heursure阈值消噪处理后的信号')

axis([1,2048,-10,10]);

subplot(5,2,4);

plot(xdR);xlabel('rigrsure阈值消噪处理后的信号')

axis([1,2048,-10,10]);

subplot(5,2,5);

plot(xdS);xlabel('sqtwolog阈值消噪处理后的信号')

axis([1,2048,-10,10]);

subplot(5,2,6);

plot(xdM);xlabel('minimaxi阈值消噪处理后的信号')

Subplot(5,2,7);

plot(y-xdH);xlabel('heursure阈值消噪后与原信号比较')

subplot(5,2,8);

plot(y-xdR);xlabel('rigrsure阈值消噪后与原信号比较') subplot(5,2,9);

plot(y-xdS);xlabel('sqtwolog阈值消噪后与原信号比较') subplot(5,2,10);

plot(y-xdM);xlabel('minimaxi阈值消噪后与原信号比较') A=var(y-xdH)

B=var(y-xdR)

C=var(y-xdS)

D=var(y-xdM)

A =

0.2415

B =

0.2421

C =

2.2178

D =

1.0703

各信号图形如下:

当采用db6作为小波时:

t=0:0.001:1

f1=5;

f2=20;

y=3*sin(2*pi*f1*t)+5*cos(5*pi*f2*t)

s1=randn(1,length(y))

s=y+s1

subplot(211);

plot(t,s);

grid on;

lev=3;

xdH=wden(s,'heursure','s','sln',lev,'db6');

xdR=wden(s,'rigrsure','s','sln',lev,'db6');

xdS=wden(s,'sqtwolog','s','sln',lev,'db6');

xdM=wden(s,'minimaxi','s','sln',lev,'db6');

subplot(5,2,1);

plot(y);title('原始信号')

axis([1,2048,-10,10]);

subplot(5,2,2);

plot(s);title('有噪信号')

axis([1,2048,-10,10]);

subplot(5,2,3);

plot(xdH);xlabel('heursure阈值消噪处理后的信号')

axis([1,2048,-10,10]);

subplot(5,2,4);

plot(xdR);xlabel('rigrsure阈值消噪处理后的信号')

axis([1,2048,-10,10]);

subplot(5,2,5);

plot(xdS);xlabel('sqtwolog阈值消噪处理后的信号')

axis([1,2048,-10,10]);

subplot(5,2,6);

plot(xdM);xlabel('minimaxi阈值消噪处理后的信号') Subplot(5,2,7);

plot(y-xdH);xlabel('heursure阈值消噪后与原信号比较') subplot(5,2,8);

plot(y-xdR);xlabel('rigrsure阈值消噪后与原信号比较') subplot(5,2,9);

plot(y-xdS);xlabel('sqtwolog阈值消噪后与原信号比较') subplot(5,2,10);

plot(y-xdM);xlabel('minimaxi阈值消噪后与原信号比较') A=var(y-xdH)

B=var(y-xdR)

相关文档
最新文档