对这几天所学习的小波变换的知识做一下总结,方便我以后再复习:)
下面的文字和图片大部分源于教程《THE WAVELET TUTORIAL》,如果想了解更多关于小波变换的知识,大家可以去访问原教程。我只是一个知识的搬运工~
《THE WAVELET TUTORIAL》
部分图片和视频来源于video
DWT部分的图片来源,强烈推荐!!!
为什么要进行变换
信号是一般是时域表示的,但它的信息通常存在于其频域中。例如心电图信号,医生通过将病人的心电图信号与正常的心电图进行对比,能获得相应的病理信息,但如果从频域进行分析,可能会更加直观。
FT
FT从整个时域上求解信号和基向量之间的相关性,窗口大小为整个时域。因而在频域中它能获得最好的频率分辨率,即各个频率上分量的幅度都是确定的,但没有任何时间的信息。
FT 给出了信号的频率信息,这意味着它告诉我们信号中每个频率有多少存在,但它没有告诉我们这些频率分量何时存在。即傅里叶变换只能分析平稳信号(频率成分不随时间变化的信号)。而对于非平稳信号,如果我们不仅关心有什么频率成分,也关心各个频率成分出现的具体时间,FT就存在不足。
对于时域的任意信号,和其沿Y轴翻转后所得新信号的FT都是相同的。
STFT
为了改进FT的上述不足,人们提出了STFT。FT在分析非平稳信号时显得很呆,那就将非平稳信号通过一个一个的窗口,分割为平稳信号,再分别对其求FT就可以啦。
在 STFT 中,我们的窗口是有限长度的,因此它只覆盖了信号的一部分,这导致频率分辨率变差。我们不再知道信号中存在的确切频率分量,只知道存在的频带。STFT窗口的大小将影响到我们分析信号时的频率分辨率和时间分辨率,如下图所示。
例一
窗口的宽度很窄,在时频域具有较好的时间分辨率,具体体现为图的四个峰值在时间上彼此分开;但其频率分辨率不太理想,我们选择任意一个时刻,得到的频谱是一个频率范围。
例二
稍微宽一点的窗口,时间分辨率变差,频率分辨率变好。
因而STFT中窗函数的选取是一个核心问题,太窄频率分辨率较差;太宽又会丢失部分时间分辨率。我们需要为不同的信号选取适中的窗函数。在对具体信号的分析过程中,窗函数一直是固定的,低频分量和高频分量都具有相同的分辨率,存在不足(这里有点稍微难以理解,阐述一下自己的认知,就比如我们想解析一个人睡觉的信息,我们选取的窗口肯定是比较宽的,如果只选取中间的两个小时,就会丢失很多信息;而如果我们想解析一个人呼吸的信息,窗口就很小,一般几秒就够了。而信号呢,同时具有高频分量和低频分量,好比我们的一天,既要呼吸也要睡觉)。所以STFT虽然引入了窗函数,但一旦窗函数确定了,在整个分析过程中就不可以更改了,也显得很呆。
CWT和多分辨率分析
CWT在STFT的基础上引入了多分辨率分析(MRA),它能够在高频下提供良好的时间分辨率和较差的频率分辨率以及在低频下提供良好的频率分辨率和较差的时间分辨率。说人话就是为不同频率的信号分量,提供适合它的窗口(在实现上它用不同尺寸的窗口去解析信号,引入了很多冗余计算,这也是DWT产生的部分基础)。小波变换窗口的宽度随着对每个光谱分量的计算而改变,它能够同时提供时间和频率信息,从而给出信号的时频表示。
CWT中比较重要的便是母小波,它是生成其他窗函数的原型。在分析一个信号之前,我们首先要选择母小波作为分析过程中所有窗口的原型(小波基函数很多种不同的类型,每种类型的小波都有不同的形状、平滑度和紧凑度。处理信号时,我们可以根据具体的需求选取特定的小波基函数。),其他所有窗口都是母小波的扩张(或压缩)和移位版本。
初始时刻选定母小波后,s的第一个值对应于小波最为压缩的状态(高频),在后续的分析中s逐渐增加,小波将逐渐膨胀,从而分析低频。
小波首先被放置在对应于t=0的信号开始处。尺度“1”的小波函数(母小波)乘以信号,然后对所有时间进行积分。然后将积分结果乘以常数。这种乘法用于能量归一化目的,以便转换后的信号在每个尺度上都具有相同的能量,最后得到t=0,s=“1”处的分量值。
再将小波在时间轴上逐渐向右移动,重复上述过程,从而获得s=“1”处不同时间尺度上的分量值。最后增加s的值(扩张窗口),并重复上述过程。这里的s和τ都是连续的,将产生大量的冗余计算,为引入DWT打下基础。实际上计算机不能计算上述过程,只能将其离散化。
下面的视频有助于理解上述过程。
CWT演示视频
DWT-离散小波变换
从数学上看,DWT对CWT的系数进行了离散化处理,这里指数部分的底数选取为2,又被称为二元缩放和移位。这种采样消除了系数中的冗余。但是这其中的概念太多了,看不懂,幸好我不用学数学,哈哈~
在具体的实现上,DWT使用特殊的高通和低通滤波器将信号分解为高频(detail/细节)系数和低频(approximation/近似)系数。
上图是使用haar小波基函数将数字信号分解为近似空间和细节空间的例子,强烈大家去看原视频,会对DWT有更为直观的了解。
最初的信号是一个时间长度为8的数字信号,使用haar小波基对其进行第一级分解。第一级分解中红色的部分代表着变换后的近似系数(这里用y1举例),它是由每两个时间长度的信号强度(这里用x1,x2举例)取均值得到的。但如果只有近似系数,那我们就会丢失很多信息,不能完美的还原原始信号,这时候就需要细节系数了(图中右边的部分)。细节系数代表的是近似系数和对应信号强度的差值(x1-y1)。再对第一层得到的近似系数进行递归的分解,可以得到下面的第二次和第三次变换。
最后可以利用图中的尺度函数和小波函数进行逆变换,还原出原始信号。算是将DWT和高通/低通滤波器联系上了吧。其他再深入的话就涉及到很多数学了,看得头疼,小波变换就告一段落了吧。