🤖 原视频: 小波变换:离散小波变换 DWT
🤖 写在前面: 本文主要基于原视频内容,同时又融合了多篇博客的内容。
前言
虽然网络上已经存在了许多介绍小波变换的博客,但是要么讲的太深,偏向于数学和物理,要么讲的太浅,一两段介绍完后就开始了代码实操部分。为了能够在周五的组会上侃侃而谈 (应付组会),同时又不想在公式的苦海中挣扎,因此我试图通过一些浅显易懂的介绍来入门小波变换。
1 小波变换
小波变换是指,输入信号通过和小波函数做卷积,被分解为一系列的信号,对应着不同的时域信息和频域信息。因此,小波变换可以实现时频分析。
以上的表述可能不够专业,但确实很简明易懂😇
小波变换 ( w a v e l e t t r a n s f o r m ) \mathsf{(wavelet\ transform)} (wavelet transform) 分为:
- 连续小波变换 ( c o n t i n u o u s w a v e l e t t r a n s f o r m , C W T ) \mathsf{(continuous\ wavelet\ transform,\ CWT)} (continuous wavelet transform, CWT)
- 离散小波变换 ( d i s c r e t e w a v e l e t t r a n s f o r m , D W T ) \mathsf{(discrete\ wavelet\ transform,\ DWT)} (discrete wavelet transform, DWT)
在默认的情况下,不加前缀词的 “小波变换” 指的是连续小波变换。
2 连续小波变换(CWT)
CWT 是通过一系列的小波函数来实现的。
小波函数写作 ϕ a , b ( t ) \phi_{a,b}(t) ϕa,b(t),由母函数 ϕ ( t ) \phi(t) ϕ(t) 构建而来。具体来说,通过控制参数 a a a 和 b b b 对母函数进行平移和伸缩,从而得到小波函数。再让输入信号和小波函数做卷积,将输入信号分解为一系列的信号。
素材源自:https://blog.csdn.net/l494926429/article/details/51818012
最靠前的黑色线可以理解为一个输入信号,它后面的彩色线可以理解为一系列的信号。黑色线可以由这些彩色线叠加而成,即输入信号可以由一系列的信号叠加而成。小波变换要做的,就是将输入信号重新分解为一系列的信号。
2.1 小波函数
小波函数和母函数的关系如下:
ϕ a , b ( t ) = 1 a ϕ ( t − b a ) \phi_{a,b}(t)=\frac{1}{\sqrt{a}}\phi(\frac{t-b}{a}) ϕa,b(t)=a1ϕ(at−b)
其中, 1 a \frac{1}{\sqrt{a}} a1 是归一化系数, a a a 是影响频域的伸缩参数, b b b 是影响时域的平移参数。母函数 ϕ ( t ) \phi(t) ϕ(t) 有常见的几十种函数形式可供选择。
母函数的选取也是实际应用中需要考虑的问题。
母函数的基本形状如下:
是一个振幅以 0 0 0 开始,又以 0 0 0 为止的短促的波。
参数 a a a 和 b b b 含义如下:
- 伸缩参数 a ( s c a l e p a r a m e t e r ) a\ \mathsf{(scale\ parameter)} a (scale parameter): a a a 越大,周期越大,频率越小。 a a a 用于压缩或拉伸小波函数,从而可以检测信号中的不同频率成分。较小的尺度对应于压缩的小波,用于分析信号的高频部分;较大的尺度对应于拉伸的小波,用于分析信号的低频部分。
- 平移参数 b ( t r a n s l a t i o n p a r a m e t e r ) b\ \mathsf{(translation\ parameter)} b (translation parameter): b b