最近在学习图像处理,md,从傅立叶变换,拉普拉斯变换,z变换到小波变换,真的是恶心的我头疼,重点是网上关于小波变换的内容少之又少,根本无从下手学习,这里我看了中国科学技术大学的小波变换与图像处理这一本书,希望自己能够明白小波变换的含义以及这篇博客的内容能够很好的帮助你们理解小波变换,
从傅立叶变换到小波变换
简而言之,傅立叶变换首创的为人们提供了一个观察时(空)域信号的新视角,也就是所说的频域分析法,有些时候,在时(空)域中无法观察或者说是难以处理的问题在频域中就会变得简单易行。信号
f
(
t
)
f(t)
f(t)的Fourier变换与你变换分别为:
F
(
w
)
=
∫
t
∈
R
f
(
t
)
e
−
i
w
t
d
t
F(w) = \int_{t \in R}f(t)e^{-iwt}dt
F(w)=∫t∈Rf(t)e−iwtdt
f
(
t
)
=
1
/
2
∫
t
∈
R
F
(
w
)
e
i
w
t
d
w
f(t) = 1/2\int_{t \in R}F(w)e^{iwt}dw
f(t)=1/2∫t∈RF(w)eiwtdw
在离散的情况下,傅立叶变换可以理解为将时域信号分解为不同频率的等幅振荡的波形,原始信号可以看作是不同相位和振幅的波形的叠加。
但是,Fourier变换只适用于处理平稳的信号,而且无法知道知道信号在时间域的时间特征,这时候就需要小波变换来帮忙。
小波变换
小波变换究竟是什么呢?从物理的角度而言,小波变换就是将信号分解成为不同的空间和尺度分量,从数学的角度而言,小波变换就和Fourier变换一样,就是一种数学变换,之所以难以理解,是因为他特殊的变换核,这中变换核就是小波函数。本质上,小波函数是由一个小波“母函数”经过平移或者伸缩而得到的一簇函数。
墨西哥草帽函数为例:其中
φ
(
t
)
\varphi(t)
φ(t)为小波母函数
其衍生出来的小波函数为
φ
a
,
b
(
t
)
=
∣
a
∣
−
1
/
2
φ
(
(
t
−
b
)
/
a
)
\varphi_{a,b}(t) = |a|^{-1/2} \varphi((t-b)/a)
φa,b(t)=∣a∣−1/2φ((t−b)/a)
并非所有的函数都可以作为小波母函数,可以作为小波母函数的条件:
令
C
φ
=
∫
∣
φ
(
w
)
^
∣
2
∣
w
∣
−
1
d
w
C_{\varphi} = \int |\hat{\varphi(w)}|^2|w|^{-1}dw
Cφ=∫∣φ(w)^∣2∣w∣−1dw
其中,
φ
(
w
)
^
\hat{\varphi(w)}
φ(w)^为函数
φ
(
t
)
\varphi(t)
φ(t)的傅立叶变换,则
φ
(
t
)
\varphi(t)
φ(t)为小波母函数的必要条件为
C
φ
<
+
∞
C_{\varphi} <+\infty
Cφ<+∞,这个条件又叫做可容许条件,说明函数
φ
(
t
)
\varphi(t)
φ(t)必须要有一定的波动性。
连续小波变换
函数
f
(
t
)
f(t)
f(t)的 连续小波变换可以表示为:
W
f
(
a
,
b
)
=
<
f
,
φ
a
,
b
>
=
1
/
∣
a
∣
1
/
2
∫
f
(
t
)
W_f(a,b) = <f,\varphi_{a,b}> = 1/|a|^{1/2} \int f(t)
Wf(a,b)=<f,φa,b>=1/∣a∣1/2∫f(t)
和傅立叶变换相比,采用实函数变换核,因此变换结果中没有虚部。
连续小波变换的结果中有两个参数a和b,其中a被称之为尺度因子,b被称之为平移因子,a的大小决定了小波函数的支撑长度,在实际应用中,往往用短支撑的析取信号的短时高频成分,而用长支撑小波析取信号中的长时低频成分,实际上,小波函数中的尺度类似于Fourier变换中的频率参数,在变换结果中,尺度越大说明频率越低,尺度越小,说明频率越高。参数b是小波窗的时间定位参数,他确定了在小波变换中,小波窗在时间轴上的位置,它使得变换结果中有一定的时间信息。
和Fourier变换类似,小波变换也可以看作是由一些列的小波函数的线形组合而得到的对原始函数的逼近,因此,要求某一个函数的小波变换,实际上就是求该线性组合表达式中,各个小波函数项的系数,每一个系数的大小,反映出对应的小波函数在原始信号中能量的大小。
离散小波变换(DWT)
连续小波变换中的尺度参数和位移参数都是连续变化的,给连续小波变换带来了缺陷,运算量急剧增加,冗余度增大,因而,出现了离散小波变换。
φ
m
,
n
(
t
)
=
a
0
−
m
/
2
φ
(
a
0
−
m
t
−
n
b
0
)
\varphi_{m,n}(t) = a_0^{-m/2}\varphi(a_0^{-m}t-nb_0)
φm,n(t)=a0−m/2φ(a0−mt−nb0)
子带编码subband coding:
塔式编码 pyramidal coding:
多分辨率分析 MRA:
离散小波变换由Mallat算法快速实现,Mallat算法就是采用小波滤波器对离散信号反复的进行低通和高通滤波过程,每一次的滤波得到一个低频分量与高频分量,再对低频分量分别进行高通以及低通滤波,从而得到更大尺度上的高频以及低频分量。
因此,对一离散信号的离散小波变换,其结果应该包含各个尺度上的高频分量和最大尺度上的低频分量。
二维小波变换
W
f
(
a
,
b
x
,
b
y
)
=
∫
∫
f
(
x
,
y
)
ψ
a
,
b
x
,
b
y
(
x
,
y
)
‾
d
x
d
y
W_f(a,b_x,b_y) = \int\int f(x,y)\overline{\psi_{a,b_x,b_y}(x,y)}dxdy
Wf(a,bx,by)=∫∫f(x,y)ψa,bx,by(x,y)dxdy
二维小波逆变换
f
(
x
,
y
)
=
1
c
ψ
∫
∫
∫
W
f
(
a
,
b
x
,
b
y
)
ψ
a
,
b
x
,
b
y
(
x
,
y
)
‾
d
b
x
d
b
y
d
a
a
3
f(x,y) = \frac{1}{c_{\psi}}\int\int\int W_f(a,b_x,b_y) \overline{\psi_{a,b_x,b_y}(x,y)}db_xdb_y\frac{da}{a^3}
f(x,y)=cψ1∫∫∫Wf(a,bx,by)ψa,bx,by(x,y)dbxdbya3da
其中,
ψ
a
,
b
x
,
b
y
(
x
,
y
)
‾
=
1
∣
a
∣
ψ
(
x
−
b
x
a
,
y
−
b
y
a
)
\overline{\psi_{a,b_x,b_y}(x,y)} = \frac{1}{|a|}\psi(\frac{x-b_x}{a},\frac{y-b_y}{a})
ψa,bx,by(x,y)=∣a∣1ψ(ax−bx,ay−by)
二维小波变换实质上就是对图像进行离散二维小波变换,其二维小波变换相当于对二维图像数据在水平方向和垂直方向各自独立的进行一次一维小波变换。
二维小波变换的快速算法:
多分辨率分析MRA
直接构造
L
2
(
R
)
L^2(R)
L2(R)的正交小波基,需要满足完备,正交的要求,似乎是不太容易,但是我们可以对
L
2
(
R
)
L^2(R)
L2(R)进行适当的分解,使得分解的各个子空间满足一定的关系,再构造其中的一个子空间里的正交基,然后将该子空间里的正交基扩展到其他的子空间中,从而得到
L
2
(
R
)
L^2(R)
L2(R)空间里的正交基。
可见,
L
2
(
R
)
L^2(R)
L2(R)的分解方式是构造正交基的关键,多分辨率分析就是为这种小波基的构造提供了适当的
L
2
(
R
)
L^2(R)
L2(R)分解方式。
嵌套的
L
2
(
R
)
L^2(R)
L2(R)的子空间
V
j
{V_j}
Vj满足一定的要求
尺度空间:
V
j
V_j
Vj
小波空间:
W
j
W_j
Wj
记住一个结论,一个多分辨率分析中一系列嵌套子空间是由函数
ϕ
∈
L
2
(
R
)
\phi \in L^2(R)
ϕ∈L2(R)生成的,则称
ϕ
\phi
ϕ为生成
L
2
(
R
)
L^2(R)
L2(R)的多分辨率分析
V
j
{V_j}
Vj的尺度函数。
尺度函数满足的要求:
- 尺度函数对其正数平移是正交的
- 低尺度的尺度函数跨越的子空间嵌套在高尺度的尺度函数跨越的子空间里
- 唯一对所有的 V j V_j Vj通用的函数是 f ( x ) = 0 f(x) = 0 f(x)=0
- 任何函数都可以以任何精度表示
小波包
小波包分解:小波变换 仅对低通滤波的结果进行,从数据压缩的观点来看,通过小波变换得到的值越小越好,但是标准的小波变换,高频段频率分辨率不高,这就提出了小波包分解的概念。
小波包分解(wavelet packet analysis)是一种更加精细的信号分析方法,它将频带进行多层次的划分,对于多分辨率分析没有细分的部分进一步的分解,且能够根据被分析信号的特征,自适应的选择相应的频带,使之与信号频谱相匹配,从而提高了时频分辨率。