资源描述:
《基于matlab的小波包分析在信号降噪中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第25卷第1期西华师范大学学报(自然科学版)2004年3月Vol125No11JournalofChinaWestNormalUniversity(NaturalSciences)Mar12004文章编号:100128220(2004)0120048203基于MATLAB的小波包分析①在信号降噪中的应用程正军,张运陶(西华师范大学化学系,四川南充637002)摘 要:应用MATLAB小波工具箱中的一维小波包分析函数,采用默认阈值、调节后的阈值两种方法对含噪声的信号进行处理,并以一可见吸收光谱降噪为例,说明该方法在
2、信号降噪中有效可行.关键词:MATLAB;小波包分析;阈值;降噪中图分类号:O65文献标识码:B信号在传输过程中不可避免地受到自然的和人为的各种干扰.能否从受扰动观测信号中获得去噪的信息,不仅与干扰的性质和信号形式有关,也与信号的处理方式有关.在实际应用中,针对不同性质的信号和干扰,寻找最佳的处理方法降低噪声,一直是信号处理领域广泛讨论的重要问题.在化学领域,经常涉及到光谱[8-10]信号、波谱信号、电化学信号等各种化学信号的处理,在这方面小波分析已得到了成功的应用.目前有很多方法可用于信号降噪,如中值滤波,低通
3、滤波,傅立叶变换等,但它们都滤掉了信号细节中的[5-7]有用部分.小波分析作为一种新的数学工具,对很多领域(特别是信号分析领域)产生了重大影响.小波变换是空间(时间)和频率的局部变换,能有效地从信号中提取有用的信息.由于有些信号主要分布在低频区域,噪声主要分布在高频区域,但在高频区域中也含有一小部分有用的信息,使用小波变换处理信号,分解只作用于低频部分,高频部分保持不动,这样一来一些有用的信号可能被滤掉.小波包变换是小波变换的推广,可以视为普遍的小波函数的线性组合,它在表示信号时具有比小波变换更强的灵活性.小波包
4、变换在处理信号时,高频部分也和低频部分一样被分解,因此,对含噪信号作小波包变换,针对其小波包系数进行阈值操作,然后进行重构,得出消噪后信号优于小波变换的处理结果.1MATLAB中的小波包分析MATLAB的Wavelet工具箱中给出了小波包函数,其算法包括分解算法和合成算法[4]1.1 小波包分解算法(2l)(l)(2l+1)-(l)dj,n=∑…hm-2ndj+1,m,dj,n=∑gm-2ndj+1,mm∈Zm∈Z2lj/22lj实际上,如果将原始信号f(t)在小波包空间uj=Closespan{μ2l,j,n(
5、t)=2μ(2t-n);n∈z}和2l+1j/2j2l2l+1uj=Closespan{μ2l+1,j,n(t)=2u2l+1(2t-n);n∈z}上的正交投影分别记为gj和gj(t),那么2l(2l)(2l+1)gj(t)在相应的特定小波包基{u2l,j,n(t);n∈z}下展开的系数正好是{dj,n;n∈z};而gj(t)在小波(2l+1)包基{μ2l+1,j,n(t);n∈z}下展开的系数正好是{dj,n;n∈z}1[4]1.2 小波包的合成算法(l)(2l)(2l+1)dj+1,m=∑(h(m-2n)dj
6、,n+gm-2ndj,n)n∈z(l)(l)(l)合成所得的结果Dj+1={dj+1,m;m∈z},实际上是原始信号f(t)在小波包空间uj+l=Closespan{μl,j+1,n(j+1)/2j+1(l)(t)=2ul(2t-n);∈z}上的正交投影gj(t)在基{ul,j+1,n(t);n∈z}下的系数.①收稿日期:2003207204作者简介:程正军(19732),男,陕西商洛人,西华师范大学化学系在读研究生,主要研究计算机化学.通讯作者:张运陶(19482),男,四川南充人,西华师范大学化学系教授,主要
7、从事计算机化学研究.©1994-2011ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http://www.cnki.net 第25卷第1期 程正军,等:基于MATLAB的小波包分析在信号降噪中的应用49本文采用具有紧支撑和近似对称的Symlets小波系中的Sym2对含噪信号进行离散小波包变换,从而达到降噪的目的,Sym2的小波函数如图1所示.2 用一维小波包分析对信号降噪一般地,某些有用信号通常表现为低频信号或者一些比较平稳的信
8、号,而噪声则通常表现为高频信号,所以降噪过程主要进行以下处理:首先对原始信号进行小波包分解,则噪声通常含在高频系数中,然后对小波包分解的高频系数以阈值等形式进行量化处理,最后再对信号重构即可达到降噪的目的.2.1 一维小波包分析信号降噪的步骤(1)一维小波包分解图1 小波函数Ψ(sym2)用函数wavedec()对含噪信号d进行小波包分解.Fig.1waveletfunc