时域信号分析
时域信号的分析常常是基于相位、能量,甚至跨频率耦合实现的。
常见的时域信号分析方法为ERPS,即多通道脑波均值滤波,该方法需要注意的是需要进行基线标准化,将所有的数据放在同一个尺度上,使得任务相关活动与背景活动分隔开,更加趋向于正态分布。
但时域分析方法存在一定的缺点:
抖动和非相位锁定的活动无法观测;
可做的分析有限
信噪比差且统计功效低
平稳性
平稳性的定义为:时间序列的信号的统计特征是否随着时间推移具有相似特性。EEG信号是一个高度非平稳的信号。
小波变换是这样一个过程:首先将原始信号作为输入信号,通过一组正交的小波基分解成高频部分和低频部分,然后将得到的低频部分作为输入信号,又进行小波分解,得到下一级的高频部分和低频部分,以此类推。随着小波分解的级数增加,其在频域上的分辨率就越高。这就是多分辨率分析
连续小波变换
连续小波变换是一个平方可积函数f(t) 与一个时频域上具有良好局部性质的小波函数ψ(t)的内积:
W f ( a , b ) = < f , ψ a , b > = 1 a ψ ∗ ( t − b a ) d t ψ a , b ( t ) = 1 a ψ ( t − b a ) W_f(a, b)=<f, \psi_{a, b}>=\dfrac{1}{\sqrt a}\psi^*(\dfrac{t-b}{a})dt\\ \psi_{a, b}(t)=\dfrac{1}{\sqrt a}\psi(\dfrac{t-b}{a})Wf(a,b)=<f,ψa,b>=a1ψ∗(at−b)dtψa,b(t)=a1ψ(at−b)
ψ a , b ( t ) \psi_{a, b}(t)ψa,b(t)是母小波ψ ( t ) \psi(t)ψ(t)经位移和伸缩所产生的一族函数,称为小波基函数或简称小波基。
ψ ( t ) \psi(t)ψ(t)的时域波形具有“衰减性”和“波动性”,即其振幅具有正负相间的振荡;从频谱上看集,ψ ( w ) \psi(w)ψ(w)中在一个“小”的频带内,具有“带通性”。
离散小波变换
在实际中对尺度因子a aa和位移因子b bb进行离散化处理,取:
a = a 0 m , b = n b 0 a 0 m a = a_0^m, b=nb_0a_0^ma=a0m,b=nb0a0m
离散小波形式:
ψ m , n ( t ) = 1 a 0 m ψ ( t − n b 0 a 0 m a 0 m ) = 1 a 0 m ψ ( a 0 − m t − n b 0 ) w f ( m , n ) = < f , ψ a , b > = f − ∞ + ∞ f ( t ) ψ m , n ∗ ( t ) d t \psi_{m, n}(t)=\dfrac{1}{a_0^m}\psi(\dfrac{t-nb_0a_0^m}{a_0^m})=\dfrac{1}{a_0^m}\psi(a_0^{-m}t-nb_0)\\ w_f(m, n)=<f, \psi_{a, b}>=f_{-\infty}^{+\infty}f(t)\psi_{m, n}^*(t)dtψm,n(t)=a0m1ψ(a0mt−nb0a0m)=a0m1ψ(a0−mt−nb0)wf(m,n)=<f,ψa,b>=f−∞+∞f(t)ψm,n∗(t)dt
小波分析是把时间序列 S 分解成低频信息a1 和高频信息d1 两部分,在分解中 ,低频a1 中失去的信息由高频d1 捕获。在下一层的分解中,又将a1 分解成低频a2和高频d2 两部分,低频a2中失去的信息由高频d2捕获。依此类推,可以进行更深层的分解。
小波变换后结果的长度等于小波长度+信号长度-1
注意:
- 小波的采样率须与数据采样率保持一致
- 小波须位于中心点,防止造成结果相位移动
小波包变换
小波包分解不仅对低频部分进行分解,而且还对高频部分进行分解。因此,小波包分解是一种更广泛应用的小波分解方法,应用于信号的分解、编码、消噪、压缩等方面。
记小波包变换中的父小波 Φ ( t ) \Phi(t)Φ(t) 为 μ 0 0 ( t ) \mu_0^0(t)μ00(t) ,母小波 Ψ ( t ) \Psi(t)Ψ(t) 为 u 0 1 ( t ) u_0^1(t)u01(t) ,其中的上标表示该小波包所在的分解级数,下标表示该小波包在其级里的位置。
{ μ 2 n L − 1 ( t ) = ∑ k h k μ n L ( t − k ) , μ n L ( t − k ) = μ n L − 1 ( 2 t − k ) μ 2 n + 1 L − 1 ( t ) = ∑ k g k μ n L ( t − k ) , μ n L ( t − k ) = μ n L − 1 ( 2 t − k ) \left\{ \begin{aligned} \mu_{2n}^{L-1}(t)=\sum_kh_k\mu _n^L(t-k), \mu_{n}^{L}(t-k)=\mu_{n}^{L-1}(2t-k)\\ \mu_{2n+1}^{L-1}(t)=\sum_kg_k\mu _n^L(t-k), \mu_{n}^{L}(t-k)=\mu_{n}^{L-1}(2t-k)\\ \end{aligned} \right.⎩⎪⎪⎪⎨⎪⎪⎪⎧μ2nL−1(t)=k∑hkμnL(t−k),μnL(t−k)=μnL−1(2t−k)μ2n+1L−1(t)=k∑gkμnL(t−k),μnL(t−k)=μnL−1(2t−k)
其中, h k h_khk、g k g_kgk为同小波变换,μ \muμ为小波包
应用
由于小波分解的稀疏编码特性,其可用于数据压缩,主要做法为:将信号进行小波分解,并将较小的小波系数置零。相当于将不重要(特征不明显)的信息分量去除,达到数据精简的效果。
小波分解也可用于信号滤波,主要做法为:将信号进行小波分解,并将特定级数以上的小波系数置零。相当于将高分辨率的信息分量去除,达到数据平滑的效果。
小波分解还可用于信号降噪,主要做法为:将信号进行小波分解,并通过设置一个阈值,将其中低于阈值的小波系数置零。相当于将信号中占成分比例较低的噪声部分去除。
后续
喜欢的话可以关注一下我的公众号技术开发小圈,尤其是对深度学习以及计算机视觉有兴趣的朋友,我会把相关的源码以及更多资料发在上面,希望可以帮助到新入门的大家!