小波去噪
[xd,cxd,lxd]=wden(x,tptr,sorh,scal,n,'wname')
式中:
输入参数x 为需要去噪的信号;
1.tptr :阈值选择标准.
1)无偏似然估计(rigrsure)原则。它是一种基于史坦无偏似然估计(二次方程)原理的自适应阈值选择。对于一个给定的阈值t,得到它的似然估计,再将似然t 最小化,就得到了所选的阈值,它是一种软件阈值估计器。
2)固定阈值(sqtwolog)原则。固定阈值thr2 的计算公式为:thr 2log(n) 2 = (6)式中,n 为信号x(k)的长度。
3)启发式阈值(heursure) 原则。它是rigrsure原则和sqtwolog 原则的折中。如果信噪比很小,按
rigrsure 原则处理的信号噪声较大,这时采用sqtwolog原则。
4)极值阈值(minimaxi)原则。它采用极大极小原理选择阈值,产生一个最小均方误差的极值,而不
是没有误差。
2.sorh :阈值函数选择方式,即软阈值(s) 或硬阈值(h).
3.scal :阈值处理随噪声水平的变化,scal=one 表示不随噪声水平变化,scal=sln 表示根据第一层小波分解的噪声水平估计进行调整,scal=mln 表示根据每一层小波分解的噪声水平估计进行调整.
4.n 和wname 表示利用名为wname 的小波对信号进行n 层分解。输出去噪后的数据xd 及xd 的附加小波分解结构[cxd,lxd].
常见的几种小波:haar,db,sym,coif,bior
haar | |||||||||||
db | db1 | db2 | db3 | db4 | db5 | db6 | db7 | db8 | db9 | db10 | |
sym | sym2 | sym3 | sym4 | sym5 | sym6 | sym7 | sym8 | ||||
coif | coif1 | coif2 | coif3 | coif4 | coif5 | coif6 | coif7 | coif8 | coif9 | coif10 | |
bior | bior1.1 | bior1.3 | bior1.5 | bior2.2 | bior2.4正则化损伤识别matlab | bior2.6 | bior2.8 | bior3.5 | bior3.7 | bior3.9 | bior4.4 |
用MATLAB对一语音信号进行小波分解,分别用强阈值,软阈值,默认阈植进行消噪处理。
复制内容到剪贴板
代码:
%装载采集的信号leleccum.mat
load leleccum;
%=============================
%将信号中第2000到第3450个采样点赋给s
indx=2000:3450;
s=leleccum(indx);
%=============================%画出原始信号
subplot(2,2,1);
plot(s);
title('原始信号');
%=============================
%用db1小波对原始信号进行3层分解并提取系数
[c,l]=wavedec(s,3,'db1');
a3=appcoef(c,l,'db1',3);
d3=detcoef(c,l,3);
d2=detcoef(c,l,2);
d1=detcoef(c,l,1);
%=============================
%对信号进行强制性消噪处理并图示结果
dd3=zeros(1,length(d3));
dd2=zeros(1,length(d2));
dd1=zeros(1,length(d1));
c1=[a3 dd3 dd2 dd1];
s1=waverec(c1,l,'db1');
subplot(2,2,2);
plot(s1);grid;
title('强制消噪后的信号');
%=============================
%用默认阈值对信号进行消噪处理并图示结果
%用ddencmp函数获得信号的默认阈值
[thr,sorh,keepapp]=ddencmp('den','wv',s);
s2=wdencmp('gbl',c,l,'db1',3,thr,sorh,keepapp);
subplot(2,2,3);
plot(s2);grid;
title('默认阈值消噪后的信号');
%=============================
%用给定的软阈值进行消噪处理
sosoftd2=wthresh(d2,'s',1.823);
softd3=wthresh(d3,'s',2.768);
c2=[a3 softd3 softd2 softd1];
s3=waverec(c2,l,'db1');
subplot(2,2,4);
plot(s3);grid;
title('给定软阈值消噪后的信号');
ftd1=wthresh(d1,'s',1.465);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论