常用小波变换
Haar Wavelet
- 变换特点
- 简单和快速: Haar小波由简单的矩形函数构成,计算仅需要简单的加减操作,没有复杂的数值计算,因此计算速度很快。
- 正交性: Haar小波函数之间正交,可以避免信息冗余。
- 分类识别能力: Haar小波特征具有对图像边缘、线条等视觉信息的编码能力,可用于面部识别等任务。
- 计算过程
- 假设原始图像为f(x,y),其中(x,y)表示图像上的像素坐标。对原始图像进行Haar小波变换,得到LL,LH,HL和HH四个子带图像。Haar小波变换的过程可以表示为
L L ( x , y ) = ( f ∗ h ) ( x , y ) LL(x,y) = (f * h)(x,y) LL(x,y)=(f∗h)(x,y)
L H ( x , y ) = ( f ∗ g ) ( x , y ) LH(x,y) = (f * g)(x,y) LH(x,y)=(f∗g)(x,y)
H L ( x , y ) = ( f ∗ h T ) ( x , y ) HL(x,y) = (f * h^T)(x,y) HL(x,y)=(f∗hT)(x,y)
H H ( x , y ) = ( f ∗ g T ) ( x , y ) HH(x,y) = (f * g^T)(x,y) HH(x,y)=(f∗gT)(x,y)
其中h和g分别是Haar小波的低通和高通滤波器, ∗ * ∗表示卷积操作, T ^T T表示转置操作。 - 将LL,LH,HL和HH四个子带图像组合成一个特征图,可以表示为
F
(
x
,
y
)
=
[
L
L
(
x
,
y
)
,
L
H
(
x
,
y
)
,
H
L
(
x
,
y
)
,
H
H
(
x
,
y
)
]
F(x,y) = [LL(x,y), LH(x,y), HL(x,y), HH(x,y)]
F(x,y)=[LL(x,y),LH(x,y),HL(x,y),HH(x,y)]
其中F(x,y)表示Haar小波变换得到的特征图,它包含了原始图像在不同频率尺度下的特征信息。 - 重复步骤1和2,可以得到多层Haar小波变换,从而获得多尺度的特征表示。
- 代码实现
Daubechies Wavelet(dbN)
- 变换特点
- 正交小波,具有MULT分辨率分析能力。
- 比Haar小波光滑,没有不连续现象。
- 具有紧致的支持域,可以有效地表示信号的局部特征。
- 在信号分析与重建中波形的平移正交性好。
- 计算过程
设原始信号为 x(n),db小波变换的过程为
- 进行多层滤波分解 c A ( n ) = ∑ k h ( k ) ⋅ x ( 2 n − k ) , c D ( n ) = ∑ k g ( k ) ⋅ x ( 2 n − k ) cA(n) = ∑k h(k)·x(2n-k),cD(n) = ∑k g(k)·x(2n-k) cA(n)=∑kh(k)⋅x(2n−k),cD(n)=∑kg(k)⋅x(2n−k)其中h(k)是db小波的低通分析滤波器,g(k)是高通分析滤波器,cA是逼近系数,cD是细节系数。
- 重构信号, x ′ ( n ) = ∑ k h ′ ( k ) ⋅ c A ( n − k ) + ∑ k g ′ ( k ) ⋅ c D ( n − k ) x'(n) = ∑k h'(k)·cA(n-k) + ∑k g'(k)·cD(n-k) x′(n)=∑kh′(k)⋅cA(n−k)+∑kg′(k)⋅cD(n−k), 其中h’(k)和g’(k)分别是db小波的低通和高通合成滤波器。
- 代码实现
Symlet Wavelet(symN)
- 变换特点
- 具有准正交和紧致支持的特性。
- 对称小波函数,具有线性相移不变性。
- 具有与Daubechies小波相似的正则性。
- 相比Daubechies小波,具有更高的对称性。
- 适用于信号补偿和滤波处理。
- 计算过程
设原始信号为x(n)
- 进行多层滤波分解
c
A
(
n
)
=
∑
k
h
(
k
)
⋅
x
(
2
n
−
k
)
,
c
D
(
n
)
=
∑
k
g
(
k
)
⋅
x
(
2
n
−
k
)
cA(n) = ∑k h(k)·x(2n-k),cD(n) = ∑k g(k)·x(2n-k)
cA(n)=∑kh(k)⋅x(2n−k),cD(n)=∑kg(k)⋅x(2n−k)
其中h(k)是sym小波的低通分析滤波器,g(k)是高通分析滤波器,cA是逼近系数,cD是细节系数。 - 重构信号,
x
′
(
n
)
=
∑
k
h
(
k
)
⋅
c
A
(
n
−
k
)
+
∑
k
h
(
k
)
⋅
c
D
(
n
−
k
)
x'(n) = ∑k h(k)·cA(n-k) + ∑k h(k)·cD(n-k)
x′(n)=∑kh(k)⋅cA(n−k)+∑kh(k)⋅cD(n−k)
通过多层迭代滤波分解和重构,可以实现信号在不同频带尺度上的分解与重建。
- 代码实现
Coiflet Wavelet (coifN)
- 变换特点
- 具有更高阶的平滑性和对称性。
- 极近似对称,但严格对称性稍差于Symlet小波。
- 与Daubechies相比,逼近误差小,计算效率高。
- 可以同时提供小的相对误差和对称性两方面的优点。
- 计算过程
设原始信号为x(n)
- 进行多层滤波分解 c A ( n ) = ∑ k h ( k ) ⋅ x ( 2 n − k ) , c D ( n ) = ∑ k h ( k ) ⋅ x ( 2 n − k ) cA(n) = ∑k h(k)·x(2n-k),cD(n) = ∑k h(k)·x(2n-k) cA(n)=∑kh(k)⋅x(2n−k),cD(n)=∑kh(k)⋅x(2n−k),其中h(k)是Coif分析滤波器,cA是逼近系数,cD是细节系数。
- 重构信号,x’(n) = ∑k h(k)·cA(n-k) + ∑k h(k)·cD(n-k)合成滤波器与分析滤波器相同。
Coif小波变换同样通过多次滤波分解与重构实现信号多分辨率分析。其区别在于采用对称滤波器提高重构精度。
Coif分析滤波器: h ( k ) = ( − 1 ) ( 1 − k ) ⋅ c ( k ) h(k) = (-1)^{(1-k)}·c(k) h(k)=(−1)(1−k)⋅c(k),其中,k = 1,2,…,L,L是滤波器的长度。c(k)是定义在[0,L-1]上长度为L的序列,它满足下列条件:
c(0) = c(L-1) = 1,对k = 1,2,…,[(L-1)/2],有:c(k) = c(L-1-k),对k = 0,1,…,L-2,满足下列线性方程:
∑ k = 0 L − 2 c ( k ) ⋅ ( k + 1 / 2 ) n = 0 , n = 0 , 1 , . . . , N , N = ( L − 1 ) / 2 ∑ _{k=0} ^ {L-2} c(k)·(k+1/2)^n = 0, n = 0,1,...,N,N = (L-1)/2 ∑k=0L−2c(k)⋅(k+1/2)n=0,n=0,1,...,N,N=(L−1)/2
上述方程要求序列c(k)的第一项到第N项矩为0。
因此,c(k)序列满足对称性以及moments vanishing条件,最终可构造出具有较高阶平滑性和对称性的Coif分析滤波器。
- 代码实现
Biorthogonal Wavelet(biorNr.Nd)
- 变换特点
- 分析波和合成波使用不同滤波器。
- 非正交,但可以构造出半正交小波。
- 支持反对称波形,可以提供线性相移不变性。
- 可以自由设计析波和合成波的形状。
- 适用于需要波形对称性的应用。
- 计算过程
设原始信号为x(n)
- 分解变换 c A ( n ) = ∑ k h ( k ) ⋅ x ( 2 n − k ) , c D ( n ) = ∑ k g ( k ) ⋅ x ( 2 n − k ) cA(n) = ∑k h(k)·x(2n-k),cD(n) = ∑k g(k)·x(2n-k) cA(n)=∑kh(k)⋅x(2n−k),cD(n)=∑kg(k)⋅x(2n−k),h(k)和g(k) 分别是分析低通和高通滤波器。
- 重构信号 x ′ ( n ) = ∑ k h ′ ( k ) ⋅ c A ( n − k ) + ∑ k g ′ ( k ) ⋅ c D ( n − k ) x'(n) = ∑k h'(k)·cA(n-k) + ∑k g'(k)·cD(n-k) x′(n)=∑kh′(k)⋅cA(n−k)+∑kg′(k)⋅cD(n−k), h’(k)和g’(k) 分别是合成低通和高通滤波器。两组滤波器满足半正交条件: h ′ ⋅ h + g ′ ⋅ g = δ h'·h + g'·g = δ h′⋅h+g′⋅g=δ, h ′ ⋅ g = 0 , g ′ ⋅ h = 0 h'·g = 0, g'·h = 0 h′⋅g=0,g′⋅h=0其中δ为单位冲激序列。
- 代码实现
Morlet Wavelet
- 变换特点
- Morlet小波属于连续小波变换。
- 具有指数衰减的波形,提供良好的时频局部化特性。
- 实部为余弦函数,虚部为高斯函数,组成分析窗。
- 时频分析优良,可获得信号的瞬时频率。
- 可调节时间和频率分辨率,适应不同场景。
-
计算过程
Morlet小波函数的表达式为:
ψ ( t ) = ( 1 / π 1 / 4 ) ∗ e ( j ω 0 t ) ∗ e ( − t 2 / 2 ) ψ(t) = (1/π^{1/4}) * e^{(jω0t)} * e^{(-t2/2)} ψ(t)=(1/π1/4)∗e(jω0t)∗e(−t2/2),其中, ω 0 ω0 ω0为中心频率。对信号x(t)的Morlet小波变换为: W ( a , b ) = ( 1 / √ a ) ∫ x ( t ) ψ ∗ ( t − b / a ) d t W(a, b) = (1/√a)∫x(t)ψ*(t-b/a)dt W(a,b)=(1/√a)∫x(t)ψ∗(t−b/a)dta为尺度因子,b为时间平移因子。通过改变a,b参数,可以得到信号x(t)在时频平面上的值。Morlet小波变换通过窗口函数匹配滤波的方式,实现信号的多分辨率时频分析。 -
代码实现