使用小波分析的各类函数对信号图像进行消噪(含数据以及图像)珍贵版讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)