【机器学习笔记33】小波变换

【参考资料】
【1】《小波与傅里叶分析基础》
【2】http://www.pybytes.com/pywavelets/

一、内积空间
内积空间

定义(这里 R n R^n 空间和 C n C^n 空间是类似的): 一个在复矢量空间V上的内积是一个函数 < . , . > : V × V C <.,.> : V \times V \to C ,它满足如下性质:

  1. 正性: v , v > 0 \langle v,v \rangle > 0 ,对于任意非零的 v V v \in V
  2. 共轭对称性: w , v = v , w \overline{\langle w,v \rangle} = \langle v,w \rangle ,对于所有的 v , w V v, w \in V
  3. 均匀性: c v , w = c v , w \langle cv,w \rangle = c\langle v,w \rangle ,这里对于所有的 v , w V v, w \in V c C c \in C 属于比例因子
  4. 加性: u + v , w = u , w + v , w \langle u + v,w \rangle = \langle u,w \rangle + \langle v,w \rangle ,这里对于所有的 u , v , w V u, v, w \in V
L 2 L^2 空间和 l 2 l^2 空间

定义: 对于 a t b a \le t \le b ,空间 L 2 ( [ a , b ] ) L^2([a, b]) 表示所有的平方可积函数所组成的空间,即:
L 2 ( [ a , b ] ) = { f : [ a , b ] C ; a b f ( t ) 2 d t < } L^2([a, b]) = \{f:[a, b] \to C; \int_a^b|f(t)|^2dt < \infty \}

定义: l 2 l^2 空间是由所有序列 . . . , x 1 , x 0 , x 1 , . . . . ..., x_{-1}, x_0, x_1, .... ,其中 x i C x_i \in C + x n 2 < \sum\limits_{-\infty}^{+\infty}|x_n|^2 < \infty 。该空间的内积定义为 + x n y n ˉ \sum\limits_{-\infty}^{+\infty} x_n \bar{y_n}

备注:对于信号系统而言,其物理意义表示为信号的能量有限

正交

设V是内积空间,则有下面三类正交

  1. V中的两个矢量X和Y,若 X , Y = 0 \langle X, Y \rangle = 0 ,则称X和Y正交
  2. 矢量集 e i , i = 1 , . . . , N e_i, i = 1, ..., N 称为正交,对于每一个 e i e_i 具有单位长度 e i = 1 \Vert e_i \Vert = 1 ,并且彼此正交,即 i j i \ne j e j e_j e i e_i 正交
  3. 两个子空间 V 1 V 2 V V1 \quad V2 \subset V 称为正交,是指 V 1 V_1 中的每个矢量同 V 2 V_2 中的每个矢量正交

正交基是指空间V的一个矢量基,它是正交的。

举例:
函数f(t)=sint和g(t)=cost在 L 2 ( [ π , π ] ) L^2([-\pi, \pi]) 上正交,因为:
f , g = π π sin ( t ) cos ( t ) d t \langle f, g \rangle = \int\limits_{-\pi}^{\pi} \sin (t) \cos (t) dt
= 1 2 π π sin ( 2 t ) d t = 0 =\dfrac{1}{2} \int\limits_{-\pi}^{\pi} \sin (2t) dt = 0

正交投影

假设 V 0 V_0 是内积空间V的一个有限维子空间。对于任意 v V v \in V ,v在 V 0 V_0 上的正交投影是唯一的矢量 v 0 V 0 v_0 \in V_0 ,它最接近v。或者说 v v 0 v - v_0 这个矢量与 V 0 V_0 正交。

备注:这个定理在二维平面上非常好理解,如下:
在这里插入图片描述

正交补定义: 设 V 0 V_0 是内积空间V的空间, V 0 V_0 的正交补,记作 V 0 V_0^{\perp} ,是V上所有与 V 0 V_0 正交的矢量的集合: V 0 = { v V ; v , w = 0 , w V 0 } V_0^{\perp} = \{ v \in V; \langle v, w \rangle = 0, w \in V_0 \}

对于上面图中二维的例子,向量 v v 0 v - v_0 就是 v 0 v_0 的正交补,而两者的直和就是v。详见定理如下:

V 0 V_0 是内积空间V的有限维子空间。对于每个矢量 v V v \in V ,可以唯一地表示为 v = v 0 + v 1 v = v_0 + v_1 ,其中 v 0 V 0 v_0 \in V_0 v 1 V 0 v_1 \in V_0^{\perp} ;即 V = V 0 V 0 V = V_0 \oplus V_0^{\perp}

备注:这部分是小波分析在整个泛函知识领域里最重要的一点,是小波分析的基础!!

二、Haar小波分析
Haar尺度函数(父小波)

Haar尺度函数定义如下:

ϕ ( x ) = { 1 , 0 x < 1 0 , o t h e r \phi(x) = \begin{cases} 1, & 0 \le x < 1 \\ 0, & other \end{cases}
V 0 V_0 k Z a k ϕ ( x k ) \sum\limits_{k \in Z} a_k \phi(x - k) 函数所组成的空间,则 V 0 V_0 所显示的函数图形如下:
在这里插入图片描述

同时我们有更细粒度的 V 1 V_1 k Z a k ϕ ( 2 x k ) \sum\limits_{k \in Z} a_k \phi(2x - k) 函数所组成的空间,以及更进一步的 V j V_j

上述空间具备了包含关系 V 0 V 1 V 2 , . . . , V j 1 V j V_0 \supset V_1 \supset V_2, ..., V_{j-1} \supset V_j

同时由于:

  1. ϕ ( x k ) 2 = + ϕ ( x k ) 2 d x = 1 \Vert \phi(x - k) \Vert ^ 2 = \int_{-\infty}^{+\infty} \phi(x - k)^2 dx = 1
  2. ϕ ( x j ) , ϕ ( x k ) = + ϕ ( x k ) ϕ ( x j ) d x = 0 \langle \phi(x - j), \phi(x - k)\rangle = \int_{-\infty}^{+\infty} \phi(x - k) \phi(x - j) dx = 0

(重要)可知 ϕ ( x k ) \phi(x - k) 是空间 V 0 V_0 的一组正交基,同理可知 2 j / 2 ϕ ( 2 j x k ) 2^{j/2}\phi(2^j x - k) V j V_j 的一组正交基

Haar小波函数(母小波)

Haar小波函数即其尺度函数的正交补。例如:
ψ ( x ) = ϕ ( 2 x ) ϕ ( 2 x 1 ) \psi(x) = \phi(2x) - \phi(2x - 1) ,有 + ϕ ( x ) ψ ( x ) d x = 0 \int\limits_{-\infty}^{+\infty}\phi(x)\psi(x)dx =0

定理: 令 W j W_j 是由形如
k Z a k ψ ( 2 j x k ) a k R \sum\limits_{k \in Z} a_k \psi(2^j x - k) \quad a_k \in R 的函数所组成的空间。 W j W_j V j V_j 的正交补,即 V j + 1 = V j W j V_{j+1} = V_j \oplus W_j

Haar小波的分解与重构

所谓的小波分解就是把 L 2 ( R ) L^2(R) 分解成其子空间的直积和: L 2 ( R ) = V 0 W 0 W 1 . . . . L^2(R)=V_0 \oplus W_0 \oplus W_1 .... 。也就是说对于特别的 f L 2 ( R ) f \in L^2(R) 我们有 f = f 0 + j = 0 w j f = f_0 + \sum\limits_{j=0}^{\infty}w_j

小波信号处理的流程如下:

第一步取样:对于连续信号y=f(t)取适当的J进行采样,令 a k J = f ( k / 2 J ) a_k^J = f(k/2^J) ,存在f(t)的一个近似 f J ( t ) = k Z a k J ϕ ( 2 J x k ) f_J(t) = \sum\limits_{k \in Z}a_k^J \phi(2^J x - k)

第二步分解:由上述知识可知 f J = W j 1 + W j 2 + . . . + W 0 + f 0 f_J = W_{j-1} + W_{j-2} + ... + W_0 + f_0 ,即
f J ( x ) = j = 0 J 1 w j + f 0 f_J(x) = \sum\limits_{j=0}^{J-1}w_j + f_0
= j = 0 J 1 ( k Z b l j ψ ( 2 j x k ) ) + k Z a k 0 ϕ ( x k ) =\sum\limits_{j=0}^{J-1}(\sum_{k \in Z}b_l^j \psi(2^jx -k)) + \sum_{k \in Z}a_k^0 \phi(x - k)

第三步处理:修改小波系数 b k j b_k^j 进行信号处理,若处理高频滤波,则将大于某一阈值的 b k j b_k^j 置零;若是压缩数据,则将小于某一阈值的 b k j b_k^j 置零。

第四步重构:利用修改后的小波系数重构

三、程序实现(基于pyWavelet)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pywt import wavedec



df = pd.read_csv('./data/test.csv', sep=',')

data = df['std_value'].astype(float)

coeffs= wavedec(data, 'haar', level=2)

titles = ["original","cA2","cD2","cD1"]

cA2, cD2, cD1 = coeffs

fig = plt.figure(figsize=(14, 4))
for i, a in enumerate([data, cA2, cD2, cD1]):
    ax = fig.add_subplot(1, 4, i + 1)
    plt.plot(a,'r')
    ax.set_title(titles[i], fontsize=12)

plt.show()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Fredric_2014/article/details/84204357
今日推荐