小波分析的语音信号噪声消除方法_第1页
小波分析的语音信号噪声消除方法_第2页
小波分析的语音信号噪声消除方法_第3页
小波分析的语音信号噪声消除方法_第4页
小波分析的语音信号噪声消除方法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于小波分析的语音信号噪声消除方法及MATLAB实现实验内容噪声污染是我们生产、生活中普遍存在的问题。在某些环境中,噪声的影响给人们的生活和工作带来了极大不便,尤其在语音信号处理中,噪声甚至使人们正常的生活和工作无法进行。因此,消除噪声干扰具有极为重要的研究意义和广泛的应用前景。小波分析理论是一种新兴的信号处理理论,它在时间上和频率上都有很好的局部性,这使得小波分析非常适合于时-频分析,借助时-频局局部析特性,小波分析理论已经成为信号去噪中的一种重要的工具。利用小波方法去噪,是小波分析应用于实际的重要方面。小波去噪的关键是如何选择阈值和如何利用阈值来处理小波系数,通过对小波阈值化去噪的原理介绍,运用MATLAB中的小波工具箱,对一个含噪信号进行阈值去噪,实例验证理论的实际效果,证实了理论的可靠性。本文简述了几种小波去噪方法,其中的阈值去噪的方法是一种实现简单、效果较好的小波去噪方法。实验内容包括:〔1〕分别利用软阈值法和硬阈值法对含噪信号进行去噪,并进行效果比照。〔2〕分别使用FFT和小波分析方法对含噪信号进行去噪处理,并进行效果比照。实验原理1.小波去噪原理分析1.1.小波去噪原理叠加性高斯白噪声是最常见的噪声模型,受到叠加性高斯白噪声“污染〞的观测信号可以表示为:(1.1)其中yi为含噪信号,为“纯洁〞采样信号,zi为独立同分布的高斯白噪声,为噪声水平,信号长度为n.为了从含噪信号yi中复原出真实信号,可以利用信号和噪声在小波变换下的不同的特性,通过对小波分解系数进行处理来到达信号和噪声别离的目的。在实际工程应用中,有用信号通常表现为低频信号或是一些比拟平稳的信号,而噪声信号那么通常表现为高频信号,所以我们可以先对含噪信号进行小波分解〔如进行三层分解〕:(1.2)图1三层小波分解示意图其中为分解的近似局部,为分解的细节局部,,那么噪声局部通常包含在,,中,用门限阈值对小波系数进行处理,重构信号即可到达去噪的目的。1.2.小波去噪步骤总结去噪过程,可以分成以下三个步骤:1)对观测数据作小波分解变化:(1.3)其中y表示观测数据向量y1,y2,…y,f是真实信号向量f1,f2,…fn,z是高斯随机向量z1,z2,…zn,其中用到了小波分解变换是线性变换的性质。2〕对小波系数W0作门限阈值处理〔根据具体情况可以使用软阈值处理或硬阈值处理,而且可以选择不同的阈值形式,这将在后面作详细讨论〕,比方选取最著名的阈值形式:(1.4)门限阈值处理可以表示为,可以证明当n趋于无穷大时使用阈值公式(4)对小波系数作软阈值处理可以几乎完全去除观测数据中的噪声。3)对处理过的小波系数作逆变换重构信号:(1.5)即可得到受污染采样信号去噪后的信号。2.阈值的选取与量化Donoho-Johnstone小波收缩去噪方法的关键步骤是如何选择阈值和如何进行门限阈值处理,在这将作较为详细的讨论。2.1.软阈值和硬阈值在对小波系数作门限阈值处理操作时,可以使用软阈值处理方法或硬阈值处理方法,硬阈值处理只保存较大的小波系数并将较小的小波系数置零:(2.1)软阈值处理将较小的小波系数置零但对较大的小波系数向零作了收缩:(2.2)直观形式见图2〔图中取t=1〕从图上我们可以看出软阈值处理是一种更为平滑的形式,在去噪后能产生更为光滑的结果,而硬阈值处理能够更多的保存真实信号中的尖峰等特征软阈值处理实质上是对小波分解系数作了收缩,从而Donoho-Johnstone将这种去噪技术称之为小波收缩。图2硬阀值和软阀值2.2.阈值的几种形式阈值的选取有多种形式,选取规那么都是基于含噪信号模型式(1.1)中信号水平为1的情况,对于噪声水平未知或非白噪声的情况可以在去噪时重新调整得到的阈值。在MATLAB中有4种阈值函数形式可以选用:(1)sqtwolog:采用固定的阈值形式,如式(1.4),因为这种阈值形式在软门限阈值处理中能够得到直观意义上很好的去噪效果。(2)minimaxi采用极大极小原理选择的阈值,和sqtwolog一样也是一种固定的阈值,它产生一个最小均方误差的极值,计算公式为:(2.3)(3)rigrsure:采用史坦的无偏似然估计原理进行阈值选择,首先得到一个给定阈值的风险估计,选择风险最小的阈值作为最终选择。(4)heursure:选择启发式阈值它是sqtwolog和rigrsure的综合,当信噪比很小时,估计有很大的噪声,这时heursure,采用固定阈值sqtwolog。2.3.阀值的选取阈值化处理的关键问题是选择适宜的阈值如果阈值(门限)太小,去噪后的信号仍然有噪声存在;相反,如果太大,重要信号特征将被滤掉,引起偏差。从直观上,对于给定小波系数,噪声越大,阈值就越大。大多数阈值选择过程是针对一组小波系数,即根据本组小波系数的统计特性,计算出一个阈值。Donoho等提出了一种典型阈值选取方法,从理论上给出并证明阈值与噪声的方差成正比,其大小为:3.小波消噪的MATLAB实现MATLAB中的小波工具包提供了全面的小波变化及其应用的各种功能,其中小波去噪方面实现Donoho-Johnstone等的去噪算法,而且可以选择使用图形界面操作工具或者去噪函数集合两种形式,图形界面操作工具直观易用,而利用函数集合可以实现更灵活强大的功能。我们利用小波去噪函数集合在中MATLAB作了一系列实验,充分体会到了小波去噪的强大功能。下面是几个最为常用的小波去噪函数:1)x=wnoise(fun,n):产生Donoho-Johnstone设计的6种用于测试小波去噪效果的典型测试数据,函数根据输入参数fun的值输知名为“blocks〞,“bumps〞,“heavy〞,“doppler〞,“quadchirp〞或“mishmash〞的6种函数数据,数据长度为2n。这6种测试数据在验证和仿真实验时非常有用。2〕[xd,cxd,lxd]=wden(x,tptr,sorh,scal,level,wname):最主要的一维小波去噪函数。其中输入参数为输入需要的信号,tptr为2.2节中4种阀值形式,sorh设定为“s〞表示用软门限阀值或硬门限阀值处理。2.2节中说过4种阈值形式是基于信号水平为1的高斯白噪声模型推导得到的,当噪声不是白噪声时,必须在小波分解的不同层次估计噪声水平,scal=“one〞不进行重新估计,scal=“sln〞只根据第一层小波分解系数估计噪声水平,scal=“mln〞在每个不同的小波分解层次估计噪声水平,根据scal参数的设定,wden〔〕函数决定最终应用于每一个小波分解层次的阀值函数。最后两个参数level和wname表示利用名为wname的小波对信号分解结构[cxd,lxd]。还有功能更强大的用于一维或二维小波去噪或压缩的函数wdencmp()。3)thr=thselect(x,tptr):去噪阀值选择函数。4)y=wthresh(x,sorh,t):对信号x做阀值为t的门限阀值处理。实验步骤1.小波去噪验证仿真实验信号是由wnoise()函数产生的含标准的高斯白噪声信噪比为3的heavysine信号,用wden()函数进行去噪处理。1)首先产生一个长度为210点,包含高斯噪声的heavysine信号及heavysine含噪信号,其噪声标准差为3,如图3a及2)利用‘sym8’小波对信号分解,在分解的第5层上,利用软阈值法去噪,结果如图33)同样的条件下,利用固定阈值选择算法对信号去噪,结果如图3d所示。验证仿真程序如下:x=wnoise(3,10);ind=linspace(0,1,2^10);subplot(4,1,1);plot(x);title('(a)');[x,noisyx]=wnoise(3,10,3,2^10);subplot(4,1,2);plot(noisyx);title('(b)');xd=wden(x,'rigrsure','s','sln',5,'sym8');subplot(4,1,3);plot(xd);title('(c)')xd=wden(x,'sqtwolog','h','sln',5,'sym8');subplot(4,1,4);plot(xd);title('(d)');2.小波去噪与FFT去噪效果比照选择MATLAB6.5中含有噪声的仿真信号noisbloc作为原始信号,分别使用FFT和小波分析方法对信号进行去噪处理,采用的小波是sym8,分解层数为5,比照结果如图4所示。验证仿真程序如下:loadnoisbloc;x=noisbloc;subplot(2,2,1);plot(x);title('a')xd=wden(x,'rigrsure','s','sln',5,'sym8');subplot(2,2,2);plot(xd);title('b')p1=1/length(x)*norm(x)^2;p2=1/length(x)*norm(x-xd)^2;snr1=10*log(p1/p2)RMSE1=sqrtm(p2)xd=wden(x,'sqtwolog','h','sln',5,'sym8');subplot(2,2,3);plot(xd);title('c')p1=1/length(x)*norm(x)^2;p2=1/length(x)*norm(x-xd)^2;snr2=10*log(p1/p2)RMSE2=sqrtm(p2)wc=0.3;N=5;[b,a]=butter(N,wc);xd=filter(b,a,x);subplot(2,2,4);plot(xd);title('d');p1=1/length(x)*norm(x)^2;p2=1/length(x)*norm(x-xd)^2;snr3=10*log(p1/p2)RMSE3=sqrtm(p2)实验结论图3小波去噪验证仿真图〔a〕为原始信号〔b〕为含噪信号〔c〕为软阀值去噪信号〔d〕为硬阀值去噪信号通过对图3的分析,可以看出对原始信号添加噪声后得到含噪信号,利用MATLAB中的小波工具箱对含噪信号分别进行软阈值化和硬阈值化去噪处理,得出的去噪结果与原始信号效果非常接近,由此可以看出利用MATLAB中的小波变换工具箱对信号进行去噪处理是非常理想的。由图4可以看出,利用小波分析去噪的结果明显优于Fourier变换,这是由于Fourier变换只能在频域范围内表述,对系数进行处理的方法也相对单一,而利用小波对信号进行分解后,可以采用多种计算阈值和处理阈值的方法.对信号的噪声成分进行抑制,手段更加灵活。为了更加精确地表示去噪结果,可以计算去噪后信号的信噪比(RSN)和均方根误差(RMSE)。图4小波去噪和FFT去噪效果比照图a为含噪信号图,b为软阀值去噪信号图,c为硬阀值去噪图,d为FFT去噪图表4几种方法去噪后的RSN和RMSErigrsuresqtwologFFTSNR41.237637.638924.9344RMSE0.96001.14932.1692信号的信噪比越高,原始信号和去噪信号的均方根误差越小,去噪信号就越接近原信号,去噪的效果也就越好。表4.给出了3种方法去噪后信噪比和均方根误差的比拟,可以看出,小波分析去噪结果的信噪比和均方根误差指标均优于FFT。心得体会小波去噪是一个正在研究的课题,新的方法在不断地提出。小波变换是一种信号的时频分析方法,它具有多分辨率分析的特点,很适合探测正常信号中夹带的瞬态反常现象并展示其成分,有效区

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论