1、基于MATLAB小波分析的信号降噪处理1、摘 要小波分析作为一种全新的信号处理方法,它将信号中各种不同的频率成分分解到互不重叠的频带上,为信号滤波信噪分离和特征提取提供了有效途径,特别在信号去噪方面显出了独特的优势,文中介绍了小阐述了小波变换理论,小波降噪原理及方法,然后利用MATLAB软件编制程序实现了基于小波变换的正弦信号的去噪仿真分析,并通过使用不同方法和阈值来比较去噪结果。2、设计目的和意义在做具体电路设计和测试的时候,由于输入或输出电缆或其他没有很好屏蔽的导体内有用信号与外界噪声信号叠加,以及各种实验设备产生的信号之间互相串扰,使原本精度很高的信号叠加了高频噪声信号,从而造成信噪比严
2、重降低,这必然影响到设计的精度和测试结果,所以必须对信号进行降噪处理。传统的降噪方法是将混合信号进行傅里叶变换,去除掉高频成分(噪声)保留低频成分(有用信号) ,然后再做逆变换恢复原始信号,这样虽然能去掉噪声,但同时也把有用信号中的高频信息丢失了,产生了高频失真。小波变换是傅里叶变换的发展,它克服了傅里叶变换中时域的瞬间变化在频域不能反映出来的缺陷,在去除掉高频噪声的同时保留了信号的高频成分,因而是一种比傅里叶变换更有效的降噪方法。小波变换突破了传统的信号分析手段-傅立叶变换的限制,实现了对信号不同区域,不同分辨率的分析,这种特性使得它可广泛应用于信号处理,地震勘探,流体力学,图像分析等领域。
3、小波分析是局部化时频分析,它用时域和频域的联合表示信号的特征,是分析非平稳信号的有力工具,它通过伸缩、平移等运算功能对信号进行多尺度细化分析,能有效地从信号中提取信息。小波分析是目前国际公认的信号与信息处理领域的高新技术,是信号处理的前沿课题和研究热点,在信号滤波、图像去噪、图像压缩、图像边缘检测、图像融合等领域的应用愈来愈受到人们的重视。信号在采集、获取以及传输的过程中,往往要受到噪声的污染,被噪声污染了的信号叫做含噪信号。噪声是影响信号质量的主要因素,各种噪声极大的影响着人们从信号中提取必要信息,噪声消除一直是信号处理中一个古老的课题。近年来,小波理论已经成为目前信号去噪的主要方法之一。3
4、、设计原理实际采集的信号中常含有噪声,只有作降噪处理才能有效地表现原信号中有用的信息。信号降噪方法有时域和频域两种方法,但是归根到底是利用噪声和信号在频域上分布的不同进行的:信号主要分布在低频区域,而噪声主要分布在高频区域,但同时信号的高频区域也存在被检测对象的某些重要特征。传统的 Fourier 分析方法可将信号2的高频成分滤除,虽然也能够达到降低噪声的效果,但却影响了信号的某些重要特征。如何构造一种既能够降低信号噪声,又能够保持信号某些重要特征的降噪方法是此项研究的目标,而这在小波变换这种强有力的信号分析工具出现以后已经成为可能。由于小波变换同时具有时域和频域上的局部性特性,优于傅立叶变换
5、,所以它一出现,就很快被普遍应用于信号处理中。小波分析是Fourier 分析思想方法的发展和延拓,能同时在时域和频域内进行局部化信号分析.多分辨分析的思想是小波分析的核心,是理论和应用的结晶.小波变换是一种信号的时间-频率分析方法,它具有多分辨率分析的特点,而且在时频两域都具有表征信号局部特征的能力,小波分析的这种特性被誉为数学的显微镜。小波变换将信号分解为一系列由某个母小波函数经过平移与尺度变化得到的小波函数的叠加,用不同尺度小波对同一信号进行逼近有利于对信号进行逐步细致的分析,这是小波分析的基本思想。它的这种特性,使小波变换具有对信号的自适应性,这决定了小波变换对非平稳信号进行时频分析时所
6、具有的时频局部化的能力。4、详细设计步骤4.1 含噪信号的小波去噪原理及步骤原始输入信号S 通过两个互补的滤波器产生低频 A和高频D 两个信号,对大多数信号来说,低频部分是最重要的,基本体现了信号的特征,而高频部分是信号的细节部分,与信号噪声联系在一起。小波分解是将信号的低频部分反复分解,而对高频部分不做第二次分解,只对低频做第二次分解,反复分解低频部分,这样就得到小波分解树。例如对信号S 的分解,如图 1所示:图1 小波分解树信号以三层分解来进行说明:S=A1+D1=A2+D2+D1=A3+D3+D2+D1。如果要进一步的分解,则可以把信号分解的低频部分 A3 分解成低频 A4 和高频 D4
7、,以下再分解依此类推。但是在实际应用中,对信号的分解不是任意的,而是可以选择合适的分解3层数。随着小波分解层次的增加去噪效果变好,但是分解层次增加到 5 层以上后去噪效果改善已经不明显,反而增加了计算代价,实际应用中分解层次取 35 层即可。从上图可以看出,对低频部分进行进一步的分解,使频率的分解率变得越来越高。基于小波的信号去噪问题在数学上是一个函数逼近的问题,从信号处理的角度来看,小波去噪问题就是一个信号滤波问题,小波去噪实际上是特征提取和低通滤波的综合,所以还成功地保留原有真实信号的特征信息。在实际中,通常有用信号的基本特性都集中在低频部分,信号细节部分和噪声通常都表现在高频部分,因此我
8、们要进行小波消噪有三个步骤:(1)选择一个小波并决定小波分解层次N,然后对信号 S 进行N 层小波分解。找到合适的小波基对于信号的消噪是很重要的。(2)小波分解高频系数的阈值量化,其关键指出就是如何选取阈值和如何进行阈值的量化,这关系到消噪的质量。(3)由小波系数进行信号重构。信号消噪的算法流程图如图2所示:图2 信号消噪算法流程图在这3 个步骤中,最核心的就是如何选取阈值并对阈值进行量化,在某种程度上它关系到信号降噪的质量。在小波变换中,对各层系数所需的阈值一般根据原始信号的信号噪声比来选取,也即通过小波各层分解系数的标准差来求取,在得到信号噪声强度后,可以确定各层的阈值。4.2 小波分析的
9、信号去噪的仿真实现利用小波分析进行信号消噪具有重要意义,它是一种时频联合分析方法,它在时域和频域都具有良好的局部化特性,在信号去噪中小波变换得到了广泛的应用。小波包分析是比小波分析更为精细的多尺度分析,小波包分析的出现也给信号去噪方法带来了新的活力,利用小波包分析给信号去噪成为信号处理领域中的研究热点。4.2.1 一维平稳信号的去噪方法小波对平稳信号去噪处理的方法一般有三种,分别为:(1)默认阈值消噪处理:即先在MATLAB 产生信号的默认阈值,然后确定参数进行消噪处理;(2)强制消噪处理:它是把小波分解中的高频部分全部滤除掉,然后再对信号进行重构处理;(3)给定软或硬阈值消噪处理:阈值的取值
10、是去噪的关键部分,该方式可以通过一些经验阈值计算公式获得阈值,这样的值比默认的阈值更具有可信度,多次尝试以获得最佳消噪效果。通过含噪一维平稳信号在MATLAB中的仿真说明去噪效果从下图 3可以看出,采用4强制消噪的方法,处理后的信号比较光滑,但同时也去掉了含噪信号中某些有用的信息。而默认阈值处理和给定阈值消噪处理则在实际应用中更实用能达到较为理想的效果。图3 一维平稳信号去噪仿真图4.2.2 小波几种阈值去噪仿真实验我们对小波去噪时各种参数设置作了详尽的对比研究,实验信号是由 wnoise()函数产生的含标准的高斯白噪声信噪比为 3 的随机信号,用 wden()函数进行去噪处理,对在各种可选参
11、数下的去噪效果作了对比研究,得出了以下结论。(1)四种阈值选取方式的对比(tptr 的设置):可以看出固定阈值形式(sqtwolog)和启发式阈值形式(heursure)的去噪更彻底,而 minimaxi 阈值选取规则较为保守(阈值较小,导致只有部分系数置零)噪声去除不彻底,但在信号的高频成分和噪声有重叠时利用这两种阈值可以把弱小信号从噪声中分离出来。(2)软门限阈值和硬门限阈值处理比较(sorh 的设置):实验表明软门限阈值处理方式一般能够取得更为平滑和理想的去噪效果。(3)分解层次的比较(level):可以得到不同分解层次的去噪效果图,从中可以看出随着小波分解层次的增加去噪效果变好,但是分
12、解层次增加到 5 层以上后去噪效果改善已经不明显,反而增加了计算代价,实际应用中分解层次取 35 层即可。(4)小波函数的选取(wname ):小波函数可以选取一个正交小波,如 Daubechies (dbN),symlets (symN),coiflets (coifN),具体选择可以根据实际需要决定,在我们的实验中选择的是 sym8。5下面是给定的含噪声的随机信号,通过 Matlab 编制程序并运行,得到的运行结果图4 小波几种阈值去噪仿真图可以看出固定阅值形式sqtwolog和启发式阈值形式heursure的去噪更彻底,而由于rigrsure和minimaxi 阈值选取规则较为保守(阈值
13、较小,导致只有部分系数置零) ,噪声去除不彻底,但在信号的高频成分和噪声有重叠时利用这两种阈值可以把弱小信号从噪声中分离出来。阈值的4种选择规则及降噪效果比对: 内容来自92毕业论文网(1)tptr=rigrsure:是一种基于Stein的无偏似然估计理论的自适应阈值选取算法。给定一个阈值T,得到它的似然估计,再将非似然最小化,就可以得到所选的阈值。(2)tptr=sqtwolog:一种固定的阈值形式,它所产生的阈值为sqrt(2*log(length(x)。(3)tptr=heursure:是前两种阈值的综合,是一种启发式阈值选择,所选择的是最优预测变量阈值。如果信噪比很小,而sure估计又
14、很大的噪声,此时就需要采用这种固定的阈值形式。(4)tptr=minimaxi:是一种采用极大极小准则选择阈值,也是一种固定的阈值选择形6式,它所产生的是一个最小均方差的极值,而不是无误差。到目前为止,小波去噪的方法大概可以分为三类,不同的方法适宜不同的信号形式。软阈值和硬阈值:在对小波系数作门限阈值处理操作时,可以使用软阈值处理方法或硬阈值处理方法,硬阅值处理是令绝对值小于阈值的信号点的值为零,下式中w 为离散小波变换算子: tt,0,(1)软阈值处理是在硬阈值处理方法的基础上将边界出现不连续点收缩到零,这样可以有效避免中断,使得重建后的信号更加光滑。 ttt,0,(2)软阈值处理是一种更为
15、平滑的形式,在降噪声后能产生更为光滑的结果,而硬阈值处理能够更多的保留真实信号中的尖峰等特征。5、设计结果及分析仿真图像看出采用强制消噪的方法处理后的信号比较光滑,但同时也去掉了含噪信号中某些有用的信息。而默认阈值处理和给定阈值消噪处理则在实际应用中更实用能达到较为理想的效果。可以看出固定阈值形式(sqtwolog)和启发式阈值形式(heursure)的去噪更彻底,而 minimaxi 阈值选取规则较为保守(阈值较小,导致只有部分系数置零)噪声去除不彻底,但在信号的高频成分和噪声有重叠时利用这两种阈值可以把弱小信号从噪声中分离出来。6、总结通过以上小波分析理论和MATLAB知识的阐述,并结合计
16、算机仿真实验,我们不难发现,小波分析非常适合于分析非平稳信号,它能探测到正常信号中夹带的瞬态反常现象并展示其成分,实现信号中的有用部分和噪声的有效分离。结果表明采用强制降噪、默认阈值降噪和给定数值的软阈值降噪三种方法进行处理以及阈值的选取,分解的层数,小波基函数的选取对信号会产生不同的影响。不同使用背景下,可采用不同的降噪方法。对于不同方法中选用的阈值,以上方法的比较结果可能会有一些差异,但根据作者大量试验可知,一般来讲,采用强制降噪后的信号较为光滑,但是它很有可能丢失信号中的一些有用成分。默认阈值降噪和给定软阈值降噪在实际中应用更广泛一些。小波变换在信号去噪中具有更好的有效性和优越性。基于小
17、波变换的消噪方法是一种提取有用信号、展示噪声和突变信号的优越方法,具有切实的应用价值和广7阔的发展空间。7、体会这次专业方向设计让我又一次学习了MATLAB 相关知识,对MATLAB 软件操作更加熟练,掌握MATLAB软件程序开发流程,并在编写程序方面有了很大进步。通过查阅相关资料和文献,了解小波理论和信号去噪的相关知识及研究现状。这次设计的课题让我对小波分析信号去噪的原理有了深入的了解,了解到传统的fourier 分析方法可将信号的高频成分滤除,虽然也能够达到降低噪声的效果,但却影响了信号的某些重要特征,而小波变换是一种既能够降低信号噪声,又能够保持信号某些重要特征的降噪方法。小波变换同时具
18、有时域和频域上的局部性特性,优于傅立叶变换,所以它一出现,就很快被普遍应用于信号处理中。同时也了解到小波变化在信号滤波、图像去噪、图像压缩、图像边缘检测、图像融合等领域的应用愈来愈受到人们的重视,近年来,小波理论已经成为目前图象去噪的主要方法之一。在通过各类算法的分析及性能对比学习后,使我提高了全面思考问题的能力,加深了对小波理论的理解,从而达到巩固和深化所学的知识与技能。8、参考文献1 刘志松. 基于小波分析的信号去噪方法. 浙江海洋学院学报 (自然科学版).2 余晃晶. 小波降噪阈值选取的研究. 绍兴文理学院学报 , 2004.9.3 吴冬梅. 小波基下的多分辨率SURE阈值信号估计. 西
19、安科技大学学报,2005.9.4 杜浩藩. 基于MATLAB小波去噪方法的研究 . 2003.7 .5 朱来东. 小波变换在信号降噪中的应用及MATLAB 实现. 北京工商大学学报,2009.3.8%设置信噪比和随机数种子snr=3;init=2055615866;%产生原始信号,并叠加标准高斯白噪声xref,x=wnoise(3,11,snr,init);%对x使用sym8小波进行5层分解,得到高频系数。使用SURE阈值、软阈值进行降噪lev=5;xd=wden(x,heursure,s,one,lev,sym8);%画出原始信号subplot(2,3,1),plot(xref),axis(
20、1 2000 -20 20);title(原始信号 );subplot(2,3,2),plot(x),axis(1 2000 -20 20);title(噪声信号-信噪比为,num2str(fix(snr);subplot(2,3,3),plot(xd),axis(1 2000 -20 20);title(降噪信号 -heuristic SURE);%使用软SURE 阈值降噪xd=wden(x,heursure,s,one,lev,sym8);%画出信号subplot(2,3,4),plot(xd),axis(1 2000 -20 20);title(降噪信号 -SURE);%对噪声标准差进行
21、单层估计,使用fixed form阈值降噪xd=wden(x,sqtwolog,s,sln,lev,sym8);%画出信号subplot(2,3,5),plot(xd),axis(1 2000 -10 10);title(降噪信号 -sqtwolog阈值);%对噪声标准差进行多层估计,使用minimax 阈值降噪xd=wden(x,minimaxi,s,sln,lev,sym8);%画出信号subplot(2,3,6),plot(xd),axis(1 2000 -20 20);title(De-noised signal - Minimax);%如果需要多次尝试,最后是执行一次分解,多次设置阈
22、值%分解c,l=wavedec(x,lev,sym8);%使用小波分解结构c,l设置阈值xd=wden(c,l,minimaxi,s,sln,lev,sym8);9%装载采集的信号leleccum.matload leleccum;%将信号中第2000到第3450个采样点赋给 sindx=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
23、);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(g
24、bl,c,l,db1,3,thr,sorh,keepapp);subplot(2,2,3);plot(s2);grid;title(默认阈值消噪后的信号);%用给定的软阈值进行消噪处理softd1=wthresh(d1,s,1.465);softd2=wthresh(d2,s,1.823);softd3=wthresh(d3,s,2.768);c2=a3 softd3 softd2 softd1;s3=waverec(c2,l,db1);10subplot(2,2,4);plot(s3);grid;title(给定软阈值消噪后的信号); 西南科技大学专业方向设计报告课程名称: 专业方向设计 设
25、计名称:基于 MATLAB 小波分析的信号降噪处理姓 名: 张笑时 学 号: 20081313 班 级: 通信 0802 指导教师: 李强 起止日期: 2011-12-25 到 2012-1-3 西南科技大学信息工程学院制11方 向 设 计 任 务 书学生班级: 通信 0802 学生姓名: 张笑时 学号: 20081313 设计名称: 基于 MATLAB 小波分析的信号降噪处理 起止日期: 2011-12-25 到 2012-1-3 指导教师: 李强 设计要求:1)查阅相关资料和文献,了解小波理论和信号去噪的相关知识及研究现状。2)编程实现小波去噪算法。3)阅读有关设计报告写作的规范和格式规定,按照要求撰写设计报告。方 向 设 计 学 生 日 志时间 设计内容2011-12-25 安装 MATLAB 软件,复习 MATLBA 书本2011-12-26 上网搜集小波去噪理论,了解小波分析方法2011-12-27 写程序代码,在 MATLAB 上调试2011-12-28 整理,并开始设计报告2011-12-29 初步完成设计,交给老师检查2011-12-30 再一次书写设计报告2011-12-31 整理,修改设计报告2012-1-2 再次修改设计报告2012-1-3 修改设计报告12