写在前面
介绍变分模态分解(Variational Mode Decomposition, VMD)。
前几年大家都在做经验模态分解(EMD)的时候,我找到一个极度符合我胃口的变分模型,当时看得一知半解(功力不够),反复看了几遍都有新的认识,这次做个记录,后面会持续跟进。
变分模态分解
基于以下假设构造变分模型
- 通过Hilbert变换得到每个模态的解析信号,从而得到单边频谱
- 通过与调谐到各自估计的中心频率的指数混合,将模态的频谱移至基带
- 通过解调信号的H1高斯光滑性,即梯度的L2范数的平方,来估计带宽
uk,ωkmink∑∥∥∥∥∥∂t[(δ(t)+πtj)∗uk(t)]e−jωkt∥∥∥∥∥22 s.t. k∑uk=f
下面将剖解这一模型
固有模态
调频调幅信号(AM-FM)
uk(t)=Ak(t)cos(ϕk(t))
Hilbert变换
其本质是具有平移不变性的线性算子H,将余弦函数映射至正弦函数。从信号角度看,Hilbert变换是一种全通滤波器(all-pass filter),可由转递函数刻画:
h^(w)=−jsgn(w)=−jww
对应的脉冲相应为
h(t)=πt1
与h(w)做卷积是不可积的,信号f(t)的Hilbert变换Hf(t) 通过卷积积分的柯西主值(Cauchy principal value )得到
Hf(t)=π1p.v.∫Rt−vf(v)dv
Hilbert变换的主要用途是将实信号转化为解析信号。设f(t)是一个纯实信号,复值解析信号定义如下:
fA(t)=f(t)+jHf(t)=A(t)ejϕ(t)
其中ejϕ(t)描述复信号在时间上旋转的相量,ϕ(t)表示相位,振幅A(t)描述了实包络。
uk,A=Ak(t)(cos(ϕ(t))+(jsin(ϕ(t))))=Ak(t)ejϕ(t)
f(t)=ℜ{fA(t)}
u^A(w)=∫−∞∞uA(t)e−jwtdt=(1+sgn(w))u^(w)
混频和外差解调
混合两个实信号会产生两组混合频率
2cos(w1t)cos(w2t)=cos((w1+w2)t)+cos((w1−w2)t)
混合两个解析信号后频率仅由单个频率组成
ejw1tejw2t=ej(w1+w2)t
运用Fourier变换
fA(t)e−jω0t⟷Ff^A(ω)∗δ(ω+ω0)=f^A(ω+ω0)
因此,将解析信号与纯指数相乘会导致简单的频移。
Wiener滤波
原始信号f(t)受加性零均值高斯噪声的观察信号f0(t),即
f0=f+η
信号的去噪是一个典型病态的可逆问题,通常用Tikhonov正则化来处理
fmin∥f−f0∥22+α∥∂tf∥22
求解其Euler-Lagrange方程可得到最优解,在Fourier域上
f^(w)=1+αw2f0^
其中f^是信号f做Fourier变换所得。通常恢复的信号是观察信号在频率w=0附近的低通窄带选择,即Wiener滤波可视为低通滤波器,α表示白噪声的方差,信号具有低通w−2频谱先验。
模型求解
VMD模型包含线性约束条件,通常做法是转化为无约束优化问题。
L(uk,ωk,λ)=αk∑∥∥∥∥∥∂t((δ(t)+πtj)∗uk(t))e−jωkt∥∥∥∥∥22+∥∥∥∥∥∥f(t)−k∑uk(t)∥∥∥∥∥∥22+⟨λ(t),f(t)−k∑uk(t)⟩
下面使用ADMM算法来寻找增广拉格朗日函数的鞍点。
固定$w_k,\lambda $后,对应子问题为
ukminαk∑∥∥∥∥∥∂t[(δ(t)+πtj)∗uk(t)]e−jωkt∥∥∥∥∥22+∥∥∥∥∥∥f(t)−i∑ui(t)+2λ(t)∥∥∥∥∥∥22
利用L2范数意义下的Fourier等距性,该子问题可在谱域求解
u^kukminα∥jw[(1+sgn(w+wk))u^k(w+wk)]∥22+∥∥∥∥∥∥f^(t)−i∑u^i(t)+2λ^(t)∥∥∥∥∥∥22
令w←w−wk
u^kukminα∥j(w−wk))[(1+sgn(w))u^k(w)]∥22+∥∥∥∥∥∥f^(t)−i∑u^i(t)+2λ^(t)∥∥∥∥∥∥22
重构保真项利用实信号的Hermitian对称性,可将两项写为非负频率上的半空间积分:
u^kukmin∫0∞4α(w−wk)2∣u^k(w)∣2+2∣∣∣∣∣∣f^(t)−i∑u^i(t)+2λ^(t)∣∣∣∣∣∣2dw
对于该二次优化问题,在正频率积分下,令一阶导数为零,得到
u^kn+1(ω)=1+2α(ω−ωk)2x^(ω)−∑i=ku^i(ω)+2λ^(ω).
该式是当前残差对应先验(w−wk)−2的Wiener滤波形式。对u^k进行Fourier逆变换可得到解析信号的实部分uk。
中心频率仅出现在带宽先验项,因此固定uk,λ后子问题如下
wkmin∥∥∥∥∥∂t[(δ(t)+πtj)∗uk(t)]e−jωkt∥∥∥∥∥22
同样转换到Fourier域
w^kmin∫0∞(w−wk)2∣u^k(w)∣2dw
对于该二次优化问题,同样令一阶导数为零可得最优解
ωkn+1=∫0∞∣u^k(ω)∣2dω∫0∞ω∣u^k(ω)∣2dω,
该平均载频是模态所观察到的瞬时相位的最小二乘线性回归的频率。
拉格朗日乘子的更新通过对偶上升实现
λ^n+1(w)=λ^n(w)+τ(f^(w)−k∑u^kn+1(w))
其中参数τ权衡了正则项和保真项,若需要精确恢复信号,即不存在高斯噪声情况下,设置τ=0。
算法流程
多元变分模态分析
下面介绍多元模型。对于多元振荡,考虑C个实值AM-FM信号{ui(t)}i=1C,用向量形式表示
u(t)=⎣⎢⎢⎢⎢⎡u1(t)u2(t)⋮uC(t)⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡a1(t)cos(ϕ1(t))a2(t)cos(ϕ2(t))⋮aC(t)cos(ϕC(t))⎦⎥⎥⎥⎥⎤
对该向量信号u(t)进行Hilbert变换,即对各个分量进行Hilbert变换,产生解析信号向量
uA(t)=u(t)+jHu(t)=⎣⎢⎢⎢⎢⎡u1,A(t)u2,A(t)⋮uC,A(t)⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡a1(t)eϕ1(t)a2(t)eϕ2(t)⋮aC(t)eϕC(t)⎦⎥⎥⎥⎥⎤
反之,取解析信号向量的实部即可恢复原信号
u(t)=ℜ{uA(t)}
模型构建
- 目的:从输入信号x(t)=[x1(t),x2(t),…,xC(t)]提取K个多元模态uk(t)=[u1(t),u2(t),…,uC(t)]
- 先验假设:
- 提取模态的带宽之和最小
- 提取模态之和能精确恢复原信号
- 通过采用谐波位移的梯度函数的L2范数来估算模态带宽,对应的目标函数为
k∑∥∥∥∂t[uk,A(t)e−jωkt]∥∥∥22
上式在整个信号向量uk,A(t)的谐波混合中使用单个频率成分wk,多元实信号uk(t)的所有通道均具有频率wk。因此,通过将uk,A(t)所有通道的单边频谱偏移wk并利用Frobenius范数来估算调制多元振荡的带宽。其目标函数按分量表示为
k∑c∑∥∥∥∂t[uk,c,A(t)e−jωkt]∥∥∥22
其中uk,c,A(t)表示通道c模态k的解析信号。
多元变分模态模型
uk,c,wkmink∑c∑∥∥∥∂t[uk,c,A(t)e−jωkt]∥∥∥22 s.t. k∑uk,c(t)=xc,∀c
模型求解
与VMD模型一样,首先转化约束优化问题至无约束优化问题,再使用ADMM算法求解
L(uk,c,ωk,λc)=αk∑c∑∥∥∥∥∥∥∂t[uk,c,A(t)e−jωkt]∥∥∥∥∥∥22+c∑∥∥∥∥∥∥xc(t)−k∑uk,c(t)∥∥∥∥∥∥22+c∑⟨λc(t),xc(t)−k∑uk,c(t)⟩
固定{ωk},λc,可得如下子问题
uk,cminα∥∥∥∥∥∥∂t[uk,c,A(t)e−jωkt]∥∥∥∥∥∥22+∥∥∥∥∥∥xc(t)−i∑ui,c(t)+2λc(t)∥∥∥∥∥∥22
其显示解为
u^k,cn+1(ω)=1+2α(ω−ωk)2x^c(ω)−∑i=ku^i,c(ω)+2λ^c(ω)
固定{uk,c},λc,可得如下子问题
ωkminc∑∥∥∥∥∥∥∂t[uk,c,A(t)e−jωkt]∥∥∥∥∥∥22
利用Fourier变换转为频域上的优化问题为
ωkminc∑∫0∞(ω−ωk)2∣∣∣∣u^k,c(ω)∣∣∣∣2dω
其显示解为
ωkn+1=∑c∫0∞∣u^k,c(ω)∣2dω∑c∫0∞ω∣u^k,c(ω)∣2dω
算法流程
参考文献