基本原理:
离散小波变换:对连续小波变换的尺度因子和时移动因子采用不同的离散条件进行离散,得到Discrete Wavelet Transform(DWT)。降低计算量的同时,保持连续小波变换的光滑性、紧支性、对称性。
离散小波函数:
ψ
j
,
k
(
t
)
=
1
a
0
i
ψ
(
t
−
k
a
0
i
b
0
a
0
i
)
=
a
0
−
j
/
2
ψ
[
a
0
−
j
(
t
−
k
a
0
j
b
0
)
]
=
a
0
−
j
/
2
ψ
(
a
0
−
j
t
−
k
b
0
)
\begin{aligned} \psi_{j,k}(t)=& \frac{1}{\sqrt{a_{0}^{i}}}\psi\Bigl(\frac{t-k a_{0}^{i}b_{0}}{a_{0}^{i}}\Bigr) \\ =& a_{0}^{-j/2}\psi\bigl[a_{0}^{-j}\left(t{-}k a_{0}^{j}b_{0}\right)\bigr] \\ =& a_{0}^{-j/2}\psi(a_{0}^{-j}t-k b_{0}) \end{aligned}
ψj,k(t)===a0i1ψ(a0it−ka0ib0)a0−j/2ψ[a0−j(t−ka0jb0)]a0−j/2ψ(a0−jt−kb0)
离散小波变换:
W
T
f
(
j
,
k
)
=
⟨
f
(
t
)
,
ψ
i
.
t
(
t
)
⟩
=
∫
−
∞
∞
f
(
t
)
ψ
j
,
k
(
t
)
‾
d
t
=
a
0
−
j
/
2
∫
−
∞
∞
f
(
t
)
ψ
(
a
0
−
j
t
−
k
b
0
)
d
t
\begin{aligned} \mathbf{W T}_{f}(j,k)& =\langle f(t),\psi_{i.t}(t)\rangle \\ &=\int_{-\infty}^{\infty}f(t)\overline{\psi_{j,k}(t)}\mathrm{d}t \\ &=a_{0}^{-j/2}\int_{-\infty}^{\infty}f(t)\psi(a_{0}^{-j}t-k b_{0})\mathrm{d}t \end{aligned}
WTf(j,k)=⟨f(t),ψi.t(t)⟩=∫−∞∞f(t)ψj,k(t)dt=a0−j/2∫−∞∞f(t)ψ(a0−jt−kb0)dt
Mallat算法:
Mallat算法对信号进行多分辨率分解,将原函数划分为近似(approximation)部分和细节(detail)部分。
使用高通滤波器和低通滤波器进行滤波(可以看做卷积操作),再进行二抽取。,不断进行下去。
代码实现
PyWavelets/pywt: PyWavelets - Wavelet Transforms in Python (github.com)
参考:
1、《小波变换及其工程应用》
2、PyWavelets/pywt: PyWavelets - Wavelet Transforms in Python (github.com)
3、Python 离散小波变换(DWT) pywt库_import pywt_SongpingWang的博客-CSDN博客