小波变换理论及应用
ABSTRACT:小波理论是近几年发展起来的新的信号处理技术,因其在时间域和频率域都可以达到高的分辨率,被称为“数学显微镜”,在数值信号处理领域应用广泛,发展非常快。但其涉及较多的数学知识,以及巧妙的数字计算技巧,对于非数学专业的科研人员,要完全掌握其中的精妙之处,有一定的难度。正是考虑到这一点,本文的开始部分不过多说明小波分析的数学理论,只是以尽量简短的篇幅介绍必要的预备知识,接着阐述小波变换理论。在理解了小波变换理论的基础上,再举例说明小波变换在实际中的应用。
第一章小波变换理论
这一章用尽量简短的篇幅和通俗的语言介绍小波变换的基本概念。
1.1.从傅里叶变换到小波变换
一、傅里叶变换
在信号处理中重要方法之一是傅里叶变换(Fourier Transform),它架起了时间域和频率域之间的桥梁。图1.1给出了傅里叶分析的示意图。
图1.1 傅里叶变换示意图
定义x(t)的傅里叶变换X(ω):
?∞∞--
=dt
e
t
x
X t jω
ω)
(
)
( (1)
X(ω)的傅里叶反变换x(t):
?∞∞-
=ω
ω
π
ωd
e
X
t
x t j
)
(
2
1
)
( (2)
对很多信号来说,傅里叶分析非常有用。因为它能给出信号中包含的各种频率成分。但是,傅里叶变换有着严重的缺点:变换之后使信号失去了时间信息,它不能告诉人们在某段时间里发生了什么变化。而很多信号都包含有人们感兴趣的非稳态(或)特性,如漂移、趋势项、突然变化以及信号的开始或结束。这些特性是信号的重要部分。因此傅里叶变换不适于分析处理这类信号。
二、短时傅里叶变换
为了克服傅里叶变换的缺点,D.Gabor(1946)提出了短时傅里叶变换(Short Time Fourier Transform), 又称为盖博(Gabor)变换或者加窗傅里叶变换(Windowed Fourier Transform)。图1.2给出了短时傅里叶变换的示意图。
图1.2短时傅里叶变换
盖博变换把一个时间信号变换为时间和频率的二维函数,它能够提供信号在某个时间段和某个频率范围的一定信息。这些信息的精度依赖于时间窗的大小。盖博变换的缺点是对所有的频率成分,所取的时间窗的大小都相同。然而,对很多信号为了获得更精确的时间或频率信息,需要可变的时间窗。
三、小波变换
小波变换提出了变化的时间窗。当需要精确的低频信息时,采用长的时间窗,当需要精确的高频信息时,采用短的时间窗。图1.3给出了时间域信号、傅
里叶变换、短时傅里叶变换和小波变换对比的示意图。
时间域频率域
短时傅里叶变换小波变换
图1.3 小波变换示意图
1.2.连续小波变换
什么是小波?小波是一个衰减的波形,它在有限的区域里存在(不为零),
且其均值为零。小波变换采用改变时间-频率窗口形状的方法,很好的解决了时
间分辨率和频率分辨率的矛盾,在时间域和频率域里都具有很好的局部性质。对信号中的低频部分,采用宽的时间窗,得到高的频率分辨率;对信号中的高频部分,采用窄的的时间窗,得到低的频率分辨率。小波变换的这种自适应,使它在工程技术中和信号处理方面获得广泛的应用。
1.2.1 连续小波的定义
图1.4是一个Daubechies 小波(db10)与正弦波的比较。
正弦波 小波(db10)
图1.4 傅里叶变换和小波变换基本单元 正弦波是振幅不变、随时间无限振动的光滑波形,它是傅里叶变换的基础。由图看出,小波是尖锐变化而且是无规则的波形,这是小波变换的基础。因此用小波能更好的刻画信号的局部特性。
连续小波变换(Continue W avelet Transform)的数学表达式为
?-=R
f dt a b t t f a b a WT )()(1),(*ψ…………………………………………………..(3) 式中,)(t ψ为小波,a 为尺度因子,b 为平移参数。尺度因子a 越小,)(,t b a ψ的波形变窄,)(,ωψb a 的频谱向高频扩展;a 越大,)(,t b a ψ的波形变宽,)(,ωψb a 的频谱向低频端扩展,从而实现时间-频率窗的自适应调节。
1.2.2 连续小波变换的物理意义
连续小波变换的实质是滤波器。滤波器在时间域和频率域中的表达式为:
?∞
∞--=τττd t h f t g )()()( (4)
)()()(ωωωH F G *= (5)
式中,h(t)是系统的脉冲响应,)(ωH 是滤波器的系统函数。
与连续小波变换公式(3)比较,小波变换的脉冲响应为
)()(2/1a t
a t h -=-ψ (6)
这种滤波器称为相关滤波器或者镜像滤波器。
1.2.3 连续小波变换的时间-频率特性
为了说明小波变换的时间-频率特性,引入时间-频率空间,该空间中横轴为时间,纵轴为频率,称为时频空间。在频率空间中的窗函数可能为单窗函数或双窗函数。
设有窗口函数w(t),其Fourier 变换为)(?
ωw ,其在相平面时间轴上窗口的中心与宽度定义为:
??==dt t w w dt t w t w E w 2222|)(|||||,|
)(|||||1
…..…………..(7) dt t w E t w w w 222|)(|)(||||1
?-=? (8)
图1.5
图1.5 时间轴主要能量区域
在相平面频率轴上窗口的中心与宽度为: ??==ωωωωωd w w d w w E w 2222
?|)(?|||?||,|)(?|||?||1……..(9) ωωωd w E w w w 22?2?|)(?|)(||?||1
?
-=?…………..………………..(10) 图1.6给出了频率轴上窗口函数能量集中的主要区域。
图1.6 频率轴主要能量区域
因此,每个窗口函数在相平面上都对应着一个矩形区域,称为分辨率单元(Resolution Sell),如图1.7所示。分辨率单元同时度量了窗口函数在时间和频率域的局部化能力。
小波构建块的分辨率单元:设母小波为ψ(t),其Fourier 变换为)(?ωψ
,由
母小波经不同的尺度参数及平移参数形成的伸缩小波即构建块在相空间的时间轴和频率轴的窗口中心与窗宽分别为:
τψψτ+?=E a E a ,
....................................................(11) ψψτ??=?a a ,.. (12)
ψψτ??1,E a
E a ?=...........................................................(13) ψψτ??1,??=?a a . (14)
在相空间所形成的分辨率单元为(小波)(,t a τψ分辨率单元如图1.7所示):
]11,11[],[????ψψψψψψψψττ?+?-??++??-+?a
E a a E a a E a a E a
图1.7 小波)(,t a τψ分辨率单元
1.3. 离散小波变换
实际计算中不可能对全部尺度因子值和位移参数计算b a CWT ,值,加之实际 的观测信号都是离散的,所以信号处理中都是用离散小波变换(DWT)。大多数情况下是将尺度因子和位移参数按2的幂次进行离散。最有效的计算方法是快速小波算法(又称塔式算法)。
对任一信号,离散小波变换第一步运算是将信号分为近似部分和细节部分。近似部分代表了信号的主要特征。第二步对近似部分进行相似运算。不过这时尺度因子已改变。依次进行到所需要的尺度。图1.8给出了信号经过第一次运算后获得的近似部分和细节部分。
1.3.1 函数空间及框架概念
一、函数空间
在分析数学的现在研究中,常常需要各种由函数组成的集类,称这些集类为
函数空间。几种常见的函数空间如下所示:
图1.8近似部分和细节部分
1.预希尔伯特空间
一个复线性空间H,在其上
2.
1.3.2
10.2小波变换的基本原理 地质雷达的电磁波信号和地震波信号都是非平稳随机时变信号,长期以来,因非平稳信号处理的理论不健全,只好将其作为平稳信号来处理,其处理结果当然不满意。近年来,随着科学技术的发展和进步,国内外学术界已将注意力转向非平稳随机信号分析与处理的研究上,其中非平稳随机信号的时频表示法是研究热点之一。在这一研究中,戈勃展开、小波变换、维格纳分布与广义双线性时频分布等理论发展起来,这些方法既可以处理平稳信号过程,也可以处理非平稳随机时变信号。 小波变换是上世纪80年代中后期逐渐发展起来的一种数学分析方法。1984年法国科学家J.M OLET在分析地震波的局部特性时首先使用了小波这一术语,并用小波变换对地震信号进行处理。小波术语的含义是指一组衰减震动的波形,其振幅正负相间变化,平均值为零,是具有一定的带宽和中心频率波组。小波变换是用伸缩和平移小波形成的小波基来分解(变换)或重构(反变换)时变信号的过程。不同的小波具有不同带宽和中心频率,同一小波集中的带宽与中心频率的比是不变的,小波变换是一系列的带通滤波响应。它的数学过程与傅立叶分析是相似的,只是在傅立叶分析中的基函数是单频的调和函数,而小波分析中的基函数是小波,是一可变带宽内调和函数的组合。 小波变换在时域和频域都具有很好的局部化性质,较好地解决了时域和频域分辨率的矛盾,对于信号的低频成分采用宽时窗,对高频成分采用窄时窗。因而,小波分析特别适合处理非平稳时变信号,在语音分析和图象处理中有广泛的应用,在地震、雷达资料处理中将有良好的应用前景。 下边就小波分析的基本原理、主要作用及在雷达资料处理中的应用三方面作以介绍。 10.2.1小波分析的基本原理 小波函数的数学表达
第六章小波变换的几个典型应用 6.1 小波变换与信号处理 小波变换作为信号处理的一种手段,逐渐被越来越多领域的理论工作者和工程技术人员所重视和应用,并在许多应用中取得了显著的效果。同传统的处理方法相比,小波变换取得了质的飞跃,在信号处理方面具有更大的优势。比如小波变换可以用于电力负载信号的分析与处理,用于语音信号的分析、变换和综合,还可以检测噪声中的未知瞬态信号。本部分将举例说明。 6.1.1 小波变换在信号分析中的应用 [例6-1] 以含躁的三角波与正弦波的组合信号为例具体说如何利用小波分析来分析信号。已知信号的表达式为 应用db5小波对该信号进行7层分解。xiaobo0601.m 图6-1含躁的三角波与正弦波混合信号波形 分析: (1)在图6-2中,逼近信号a7是一个三角波。 (2)在图6-3中细节信号d1和d2是与噪声相关的,而d3(特别是d4)与正弦信号相关。 图6-2 小波分解后各层逼近信号 图6-3 小波分解后各层细节信号 6.1.2 小波变换在信号降躁和压缩中的应用 一、信号降躁 1.工程中,有用信号一般是一些比较平稳的信号,噪声通常表现为高频信号。2.消躁处理的方法:首先对信号进行小波分解,由于噪声信号多包含在具有较高频率的细节中,我们可以利用门限、阈值等形式对分解所得的小波系数进行处理,然后对信号进行小波重构即可达到对信号的消躁目的。 小波分析进行消躁处理的3种方法: (1)默认阈值消躁处理。该方法利用ddencmp生成信号的默认阈值,然后利用wdencmp函数进行消躁处理。 (2)给定阈值消躁处理。在实际的消躁处理过程中,阈值往往可通过经验公式获得,且这种阈值比默认阈值的可信度高。在进行阈值量化处理时可利用函数wthresh。 (3)强制消躁处理。该方法时将小波分解结构中的高频系数全部置为0,即滤掉所有高频部分,然后对信号进行小波重构。方法简单,消躁后信号比较平滑,但易丢失信号中的有用成分。 小波阈值去噪方法是目前应用最为广泛的小波去噪方法之一。 3.信号降噪的准则: 1.光滑性:在大部分情况下,降噪后的信号应该至少和原信号具有同等的光滑性。
MATLAB小波变换指令及其功能介绍 1 一维小波变换的 Matlab 实现 (1) dwt函数 功能:一维离散小波变换 格式:[cA,cD]=dwt(X,'wname') [cA,cD]=dwt(X,Lo_D,Hi_D)别可以实现一维、二维和 N 维DFT 说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname' 对信号X 进行分解,cA、cD 分别为近似分量和细节分量; [cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信 号进行分解。 (2) idwt 函数 功能:一维离散小波反变换 格式:X=idwt(cA,cD,'wname') X=idwt(cA,cD,Lo_R,Hi_R) X=idwt(cA,cD,'wname',L)函数 fft、fft2 和 fftn 分 X=idwt(cA,cD,Lo_R,Hi_R,L) 说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经 小波反变换重构原始信号 X 。 'wname' 为所选的小波函数 X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和 Hi_R 经小波反变换重构原始信号 X 。 X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。 2 二维小波变换的 Matlab 实现 二维小波变换的函数别可以实现一维、二维和 N 维 DFT 函数名函数功能
--------------------------------------------------- dwt2 二维离散小波变换 wavedec2 二维信号的多层小波分解 idwt2 二维离散小波反变换 waverec2 二维信号的多层小波重构 wrcoef2 由多层小波分解重构某一层的分解信号 upcoef2 由多层小波分解重构近似分量或细节分量 detcoef2 提取二维信号小波分解的细节分量 appcoef2 提取二维信号小波分解的近似分量 upwlev2 二维小波分解的单层重构 dwtpet2 二维周期小波变换 idwtper2 二维周期小波反变换 ----------------------------------------------------------- (1) wcodemat 函数 功能:对数据矩阵进行伪彩色编码函数 fft、fft2 和 fftn 分 格式:Y=wcodemat(X,NB,OPT,ABSOL) Y=wcodemat(X,NB,OPT) Y=wcodemat(X,NB) Y=wcodemat(X) 说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵 Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16; OPT 指定了编码的方式(缺省值为 'mat'),即:别可以实现 一维、二维和 N 维 DFT OPT='row' ,按行编码 OPT='col' ,按列编码
我希望能简单介绍一下小波变换,它和傅立叶变换的比较,以及它在移动平台做motion detection的应用。如果不做特殊说明,均以离散小波为例子。考虑到我以前看中文资料的痛苦程度,我会尽量用简单,但是直观的方式去介绍。有些必要的公式是不能少的,但我尽量少用公式,多用图。另外,我不是一个好的翻译者,所以对于某些实在翻译不清楚的术语,我就会直接用英语。我并不claim我会把整个小波变换讲清楚,这是不可能的事,我只能尽力去围绕要点展开,比如小波变换相对傅立叶变换的好处,这些好处的原因是什么,小波变换的几个根本性质是什么,背后的推导是什么。我希望达到的目的就是一个小波变换的初学者在看完这个系列之后,就能用matlab或者别的工具对信号做小波变换的基本分析并且知道这个分析大概是怎么回事。 要讲小波变换,我们必须了解傅立叶变换。要了解傅立叶变换,我们先要弄清楚什么是”变换“。很多处理,不管是压缩也好,滤波也好,图形处理也好,本质都是变换。变换的是什么东西呢?是基,也就是basis。如果你暂时有些遗忘了basis的定义,那么简单说,在线性代数里,basis是指空间里一系列线性独立的向量,而这个空间里的任何其他向量,都可以由这些个向量的线性组合来表示。那basis在变换里面啥用呢?比如说吧,傅立叶展开的本质,就是把一个空间中的信号用该空间的某个basis的线性组合表示出来,要这样表示的原因,是因为傅立叶变换的本质,是。小波变换自然也不例外的和basis有关了。再比如你用Photoshop去处理图像,里面的图像拉伸,反转,等等一系列操作,都是和basis的改变有关。 既然这些变换都是在搞基,那我们自然就容易想到,这个basis的选取非常重要,因为basis的特点决定了具体的计算过程。一个空间中可能有很多种形式的basis,什么样的basis比较好,很大程度上取决于这个basis服务于什么应用。比如如果我们希望选取有利于压缩的话,那么就希望这个basis能用其中很少的向量来最大程度地表示信号,这样即使把别的向量给砍了,信号也不会损失很多。而如果是图形处理中常见的线性变换,最省计算量的完美basis就是eigenvector basis了,因为此时变换矩阵T对它们的作用等同于对角矩阵( Tv_n = av_n,a是eigenvalue )。总的来说,抛开具体的应用不谈,所有的basis,我们都希望它们有一个共同的特点,那就是,容易计算,用最简单的方式呈现最多的信号特性。 好,现在我们对变换有了基本的认识,知道他们其实就是在搞基。当然,搞基也是分形式的,不同的变换,搞基的妙处各有不同。接下来先看看,傅立叶变换是在干嘛。 傅立叶级数最早是Joseph Fourier 这个人提出的,他发现,这个basis不仅仅存在与vector space,还存在于funct ion space。这个function space本质上还是一个linear vector space,可以是有限的,可以是无限的,只不过在这个空间里,vector就是function了,而对应的标量就是实数或者复数。在vector space里,你有vector v可以写成vector basis的线性组合,那在function space里,function f(x)也可以写成对应function basis的线性组合,也有norm。你的vector basis可以是正交的,我的function basis也可以是正交的(比如sin(t)和sin(2t))。唯一不同的是,我的function basis是无穷尽的,因为我的function space的维度是无穷的。好,具体来说,那就是现在我们有一个函数,f(x)。我们希望将它写成一些cos函数和一些sin函数的形式,像这样 again,这是一个无限循环的函数。其中的1,cosx, sinx, cos2x …..这些,就是傅立叶级数。傅立叶级数应用如此广泛的主要原因之一,就是它们这帮子function basis是正交的,这就是有趣的地方了。为什么function basis正交如此重要呢?我们说两个vector正交,那就是他俩的内积为0。那对于function basis呢?function basis怎么求内积呢? 现在先复习一下vector正交的定义。我们说两个vector v,w如果正交的话,应符合: