本篇博文意在用例子的形式解释图信号处理基础,目的是记录总结自己的学习过程,有兴趣的读者也可也一起交流。
前言
图是一种包含多种数据属性的不规则结构。然而,传统的图论处理方法都注重分析底层的图结构而不是图上的信号。随着多传感器测量技术的快速发展,数据结构的复杂性相应增加,利用图结构可以很好地分析这类数据。图信号处理是一个信号处理框架,它不仅仅包含图的“顶点、边缘、结构特性”等属性。
相关
在传统信号处理中,信号域是由等时间间隔或由均匀网格上的一组空间测量点确定的。但是,实际的数据可能与时间或空间维无关,它展现出各种形式的的不规则性,例如社交网或互联网。值得注意的是,即使信号是基于定义好的时间/空间域获得的,新的信号关系的引入也可能会产生新的见解,从而增强信号处理。图已经自然全面地分析了问题定义中不规则数据的关系,以及数据分析中相关的数据连通性。
图信号处理例子
所有传感器位置信息和信号信息均存在MNE_Graph.mat和MNE_Signal.mat中。
文件网盘链接:https://pan.baidu.com/s/1oeauTiUpI9gVy6nZCWmv1A
提取码:q1ec
1. 传感器数据
上图一共放置了64个温度传感器,分别用1~64的数字编号,每个传感器收集到的带噪温度信号可以由以下公式表示:
x
(
n
)
=
s
(
n
)
+
ε
(
n
)
(1.1)
x(n)=s(n)+\varepsilon(n)\tag{1.1}
x(n)=s(n)+ε(n)(1.1)其中,
x
(
n
)
x(n)
x(n)是真实的温度,
ε
(
n
)
\varepsilon(n)
ε(n)是噪声信号,服从
N
(
0
,
16
)
N(0,16)
N(0,16)高斯分布。
S
N
R
i
n
=
14.2
d
B
(1.2)
{SNR}_{in}=14.2 {dB}\tag{1.2}
SNRin=14.2dB(1.2)
Matlab代码
clc; clear all; close all;
load MNE_Graph % Graph structure
load MNE_Signal % Signal on graph, x = x0 + noise
SNRin = 10*log10(sum(x0.^2)/sum((x-x0).^2)) % Calculate the SNRin
%% Output
% 输出 SNRin = 14.2272dB
2. 降低噪声
在经典信号处理中,通过移动平均算子对相邻结点进行平均可以达到降噪的效果。从物理上来说,相邻结点的邻接关系应该考虑距离、高度差及其他地形特性等。
- 图移算子为A时
对于每个结点,积累的温度场(自身和相邻点温度)可以由以下式子表示:
y
(
n
)
=
∑
m
at and around
n
x
(
m
)
(2.1)
y(n)=\sum_{m \text { at and around } n} x(m)\tag{2.1}
y(n)=m at and around n∑x(m)(2.1)举个图(a)的例子,
y
(
20
)
=
x
(
20
)
+
x
(
19
)
+
x
(
22
)
+
x
(
23
)
(2.2)
y(20)=x(20)+x(19)+x(22)+x(23)\tag{2.2}
y(20)=x(20)+x(19)+x(22)+x(23)(2.2)
为了简便,将公式(2.1)简化:
y
=
x
+
A
x
(2.3)
y=x+Ax\tag{2.3}
y=x+Ax(2.3)
其中,A是无向图的邻接矩阵或毗邻矩阵。
- 图移算子为W时
如果不仅仅考虑结点之间的邻接性,而且考虑它们之间的其他关系时,加权矩阵W更适合。
式(2.1)可以写成以下形式:
y
(
n
)
=
x
(
n
)
+
∑
m
≠
n
W
n
m
x
(
m
)
(2.4)
y(n)=x(n)+\sum_{m \neq n} W_{n m} x(m)\tag{2.4}
y(n)=x(n)+m=n∑Wnmx(m)(2.4)
W
n
m
W_{n m}
Wnm表示两结点之间的耦合程度,其值越大,表示两结点耦合程度越大。
同理,将公式(2.4)简化:
y
=
x
+
W
x
(2.5)
y=x+Wx\tag{2.5}
y=x+Wx(2.5)注:
y
(
n
)
y(n)
y(n)除以局部图点的个数才是n点的平均温度。
- 随机游走加权矩阵 D − 1 W D^{-1}W D−1W
为了得到无偏估计,每一个
y
(
n
)
y(n)
y(n)估计中的加权系数加起来应该为1。
y
=
1
2
(
x
+
D
−
1
W
x
)
(2.6)
y=\frac{1}{2}(x+D^{-1}Wx)\tag{2.6}
y=21(x+D−1Wx)(2.6)用这个简单的归一化一阶系统对加噪信号进行滤波,可以使得
S
N
R
i
n
=
14.2
d
B
→
S
N
R
o
u
t
=
20.2
d
B
SNR_{in}=14.2dB\rightarrow SNR_{out}=20.2dB
SNRin=14.2dB→SNRout=20.2dB,获得
6
d
B
6dB
6dB的信噪比改进。
Matlab代码
clc; clear all; close all;
load MNE_Graph
load MNE_Signal
D = diag(sum(W));
xf = 0.5*(x+inv(D)*W*x);
SNRin = 10*log10(sum(x0.^2)/sum((x-x0).^2))
SNRout = 10*log10(sum(x0.^2)/sum((xf-x0).^2))
3. 图信号处理系统
在传统信号处理中,系统是一个将输入信号转换为另一个(输出)信号的算子。图信号处理系统是信号处理系统的一个子集。我们这里考虑图移不变系统,也可称为图滤波器。
图上的信号移可以看作是顶点上的信号沿着该顶点的所有边缘移动的过程。移信号
x
s
h
i
f
t
e
d
x_{shifted}
xshifted可以由以下定义:
X
shifted
=
A
x
(3.1)
\mathbf{X}_{\text {shifted }}=\mathbf{A} \mathbf{x}\tag{3.1}
Xshifted =Ax(3.1)
如图(
c
c
c),可以将时域信号画成该图结构,当前信号只与下一时刻信号连接。
举个例子,假设当前信号
x
(
n
)
=
δ
(
n
−
29
)
x(n)=\delta(n-29)
x(n)=δ(n−29),则在传统信号处理范畴,移信号
x
s
h
i
f
t
=
δ
(
n
−
28
)
x_{shift}=\delta(n-28)
xshift=δ(n−28),是一对一的关系。而在图信号处理范畴,移信号
x
s
h
i
f
t
=
δ
(
n
−
27
)
+
δ
(
n
−
28
)
+
δ
(
n
−
51
)
+
δ
(
n
−
59
)
x_{shift}=\delta(n-27)+\delta(n-28)+\delta(n-51)+\delta(n-59)
xshift=δ(n−27)+δ(n−28)+δ(n−51)+δ(n−59),是一对多的关系。
注:在DSP中, A A A指的是入邻接矩阵。
用符号S表示图上的一般移位算子,则 x s h i f t e d = S x x_{shifted}=Sx xshifted=Sx,其中 S S S可以为 A A A、 W W W、 L L L。
但是要注意以上的图移算子不满足等距特性,因为移位信号的能量和原始信号的能量不等。
与DSP中的线性时不变系统相似,图信号处理也可以构成线性图移不变系统,它将一个输入图信号变换为另一个(输出)图信号,输出图信号可以写为:
y
=
h
0
S
0
x
+
h
1
S
1
x
+
…
+
h
M
−
1
S
M
−
1
x
=
∑
m
=
0
M
−
1
h
m
S
m
x
(3.2)
\mathbf{y}=h_{0} \mathbf{S}^{0} \mathbf{x}+h_{1} \mathbf{S}^{1} \mathbf{x}+\ldots+h_{M-1} \mathbf{S}^{M-1} \mathbf{x}=\sum_{m=0}^{M-1} h_{m} S^{m} \mathbf{x}\tag{3.2}
y=h0S0x+h1S1x+…+hM−1SM−1x=m=0∑M−1hmSmx(3.2)其中,
S
0
=
I
S^0=I
S0=I,
h
0
,
h
1
,
.
.
.
,
h
M
−
1
h_0,h_1,...,h_{M-1}
h0,h1,...,hM−1是系统系数。
关于图移算子S的选择
- 邻接矩阵 A A A
- 加权矩阵 W W W
- 拉普拉斯矩阵 L L L
- 对称归一化拉普拉斯矩阵 D − 1 / 2 L D − 1 / 2 D^{-1/2}LD^{-1/2} D−1/2LD−1/2
- 随机游走加权矩阵 D − 1 W D^{-1}W D−1W
在标准的有向非加权DSP路径图情况下,图移算子退化为时移算子,也就是图信号系统的
y
=
∑
m
=
0
M
−
1
h
m
S
m
x
\mathbf{y}=\sum_{m=0}^{M-1} h_{m} \mathbf{S}^{m} \mathbf{x}
y=m=0∑M−1hmSmx退化为标准的有限长脉冲响应滤波器:
y
(
n
)
=
h
0
x
(
n
)
+
h
1
x
(
n
−
1
)
+
⋯
+
h
M
−
1
x
(
n
−
M
+
1
)
(3.3)
y(n)=h_{0} x(n)+h_{1} x(n-1)+\cdots+h_{M-1} x(n-M+1)\tag{3.3}
y(n)=h0x(n)+h1x(n−1)+⋯+hM−1x(n−M+1)(3.3)举个例子,M=3,DSP中的路径图为
A
=
[
0
0
1
1
0
0
0
1
0
]
,
x
=
[
x
1
x
2
x
3
]
(3.4)
A=\left[\begin{matrix} 0 & 0 & 1\\ 1 & 0 & 0\\ 0 & 1 & 0 \end{matrix} \right], x=\left[ \begin{matrix} x1\\ x2\\ x3 \end{matrix} \right]\tag{3.4}
A=⎣
⎡010001100⎦
⎤,x=⎣
⎡x1x2x3⎦
⎤(3.4)
因此有:
A
x
=
[
x
3
x
1
x
2
]
,
A
2
x
=
[
x
2
x
3
x
1
]
(3.5)
Ax= \left[ \begin{matrix} x3\\ x1\\ x2 \end{matrix} \right], A^2x= \left[ \begin{matrix} x2\\ x3\\ x1 \end{matrix} \right]\tag{3.5}
Ax=⎣
⎡x3x1x2⎦
⎤,A2x=⎣
⎡x2x3x1⎦
⎤(3.5)
带入
y
=
∑
m
=
0
M
−
1
h
m
A
m
x
\mathbf{y}=\sum_{m=0}^{M-1} h_{m} \mathbf{A}^{m} \mathbf{x}
y=m=0∑M−1hmAmx可得:
y
(
3
)
=
h
0
x
(
3
)
+
h
1
x
(
2
)
+
h
2
x
(
1
)
(3.6)
y(3)=h_0x(3)+h_1x(2)+h_2x(1)\tag{3.6}
y(3)=h0x(3)+h1x(2)+h2x(1)(3.6)
推广可得:
y
(
n
)
=
h
0
x
(
n
)
+
h
1
x
(
n
−
1
)
+
h
2
(
n
−
2
)
(3.7)
y(n)=h_0x(n)+h_1x(n-1)+h_2(n-2)\tag{3.7}
y(n)=h0x(n)+h1x(n−1)+h2(n−2)(3.7)
即式(3.3)。
一个图信号系统可以方便地由图传递函数
H
(
S
)
H(S)
H(S)定义:
y
=
H
(
S
)
x
(3.8)
\mathbf{y}=H(\mathbf{S}) \mathbf{x}\tag{3.8}
y=H(S)x(3.8)图信号系统特性:
如果满足以下公式,则图信号系统是线性的:
H
(
S
)
(
a
1
x
1
+
a
2
x
2
)
=
a
1
y
1
+
a
2
y
2
(3.9)
H(S)(a_1x_1+a_2x_2)=a_1y_1+a_2y_2\tag{3.9}
H(S)(a1x1+a2x2)=a1y1+a2y2(3.9)
如果满足以下公式,则图信号系统是移不变的:
H
(
S
)
(
S
x
)
=
S
(
H
(
S
)
x
)
(3.10)
H(S)(Sx)=S(H(S)x)\tag{3.10}
H(S)(Sx)=S(H(S)x)(3.10)由(3.3)定义的图信号系统:
H
(
S
)
=
h
0
S
0
+
h
1
S
1
+
⋯
+
h
M
−
1
S
M
−
1
(3.11)
H(\mathbf{S})=h_{0} \mathbf{S}^{0}+h_{1} \mathbf{S}^{1}+\cdots+h_{M-1} \mathbf{S}^{M-1}\tag{3.11}
H(S)=h0S0+h1S1+⋯+hM−1SM−1(3.11)这个系统是线性移不变的,因为方移矩阵满足
S
S
m
=
S
m
S
SS^m=S^mS
SSm=SmS。
4. 图傅里叶变换
经典的谱分析是在傅里叶域完成的,图信号的谱分析利用了图移算子
S
S
S的特征谱。
S
=
U
Λ
U
−
1
(4.1)
\mathbf{S}=\mathbf{U} \mathbf{\Lambda} \mathbf{U}^{-1}\tag{4.1}
S=UΛU−1(4.1)其中,
U
U
U是特征矩阵,
U
U
U的每一列特征向量
u
k
u_k
uk相互正交,
Λ
\mathbf{\Lambda}
Λ是特征值
λ
k
\lambda_k
λk的对角矩阵。
应用:
S
=
A
S=A
S=A通常用作传统信号处理,而
S
=
L
S=L
S=L可用作谱聚类分析。
图信号
x
x
x的图傅里叶变换结果
X
X
X定义如下:
X
=
U
T
x
(4.2)
X=U^{T}x\tag{4.2}
X=UTx(4.2)
X
(
k
)
X(k)
X(k)是图的谱(也可叫做图频率含量),
λ
k
\lambda _k
λk是图频率,
λ
k
\lambda _k
λk对应的特征向量
u
k
u _k
uk是图频率分量。而
X
(
k
)
X(k)
X(k)可以看作是信号
x
x
x在
u
k
u _k
uk上的投影,即:
X
(
k
)
=
∑
n
=
1
N
x
(
n
)
u
k
(
n
)
(4.3)
X(k)=\sum_{n=1}^{N} x(n) u_{k}(n)\tag{4.3}
X(k)=n=1∑Nx(n)uk(n)(4.3)逆图傅里叶变换可得到:
x
=
U
X
(4.4)
x=UX\tag{4.4}
x=UX(4.4)或者:
x
(
n
)
=
∑
k
=
1
N
X
(
k
)
u
k
(
n
)
(4.5)
x(n)=\sum_{k=1}^{N} X(k) u_{k}(n)\tag{4.5}
x(n)=k=1∑NX(k)uk(n)(4.5)类比传统傅里叶变换,信号被投影至一组谐波正交基上,
X
=
U
−
1
x
\mathbf{X}=\mathbf{U}^{-1} \mathbf{x}
X=U−1x
U
U
U是谐波基矩阵,其中
u
k
=
[
1
,
e
j
2
π
(
k
−
1
)
/
N
,
…
,
e
j
2
π
(
N
−
1
)
(
k
−
1
)
/
N
]
T
/
N
(4.6)
\mathbf{u}_{k}=\left[1, e^{j 2 \pi(k-1) / N}, \ldots, e^{j 2 \pi(N-1)(k-1) / N}\right]^{T}/\sqrt{N}\tag{4.6}
uk=[1,ej2π(k−1)/N,…,ej2π(N−1)(k−1)/N]T/N(4.6)它对应的特征值
λ
k
\lambda_k
λk很容易得到:
λ
k
=
e
−
j
2
π
(
k
−
1
)
/
N
(4.7)
\lambda_{k}=e^{-j 2 \pi(k-1) / N}\tag{4.7}
λk=e−j2π(k−1)/N(4.7)因此,图傅里叶变换可以理解为一个图信号在图拉普拉斯矩阵的一组正交特征向量基上的分解。
在有向无权圆环图的情况下,图傅里叶变换GFT退化为标准离散傅里叶变换DFT。
还是举个例子:
如上图:
A
=
[
0
1
0
0
0
1
1
0
0
]
,
U
=
1
3
[
1
1
1
1
e
x
p
(
j
2
π
3
)
e
x
p
(
j
4
π
3
)
1
e
x
p
(
j
4
π
3
)
e
x
p
(
j
8
π
3
)
]
,
Λ
=
[
1
0
0
0
e
x
p
(
j
2
π
3
)
0
0
0
e
x
p
(
j
4
π
3
)
]
(4.8)
A=\left[ \begin{matrix} 0&1&0\\ 0&0&1\\ 1&0&0 \end{matrix} \right], U={1 \over \sqrt3}\left[ \begin{matrix} 1&1&1\\ 1&exp(j{2\pi\over3})&exp(j{4\pi\over3})\\ 1&exp(j{4\pi\over3})&exp(j{8\pi\over3}) \end{matrix} \right], \mathbf{\Lambda}=\left[ \begin{matrix} 1&0&0\\ 0&exp(j{2\pi\over3})&0\\ 0&0&exp(j{4\pi\over3}) \end{matrix} \right]\tag{4.8}
A=⎣
⎡001100010⎦
⎤,U=31⎣
⎡1111exp(j32π)exp(j34π)1exp(j34π)exp(j38π)⎦
⎤,Λ=⎣
⎡1000exp(j32π)000exp(j34π)⎦
⎤(4.8)
很容易可以得到
A
=
U
Λ
U
−
1
A=U{\Lambda} U^{-1}
A=UΛU−1。
5. 图信号系统的谱域
仍然考虑式(3.2)
y
=
∑
m
=
0
M
−
1
h
m
S
m
x
(5.1)
\mathbf{y}=\sum_{m=0}^{M-1} h_{m} \mathbf{S}^{m} \mathbf{x}\tag{5.1}
y=m=0∑M−1hmSmx(5.1)结合
S
=
U
Λ
U
−
1
S=U\mathbf{\Lambda} U^{-1}
S=UΛU−1可得:
y
=
∑
m
=
0
M
−
1
h
m
U
Λ
m
U
−
1
x
=
U
H
(
Λ
)
U
−
1
x
(5.2)
\mathbf{y}=\sum_{m=0}^{M-1} h_{m} \mathbf{U} \mathbf{\Lambda}^{m} \mathbf{U}^{-1} \mathbf{x}=\mathbf{U} H(\mathbf{\Lambda}) \mathbf{U}^{-1} \mathbf{x}\tag{5.2}
y=m=0∑M−1hmUΛmU−1x=UH(Λ)U−1x(5.2)其中,
H
(
Λ
)
=
∑
m
=
0
M
−
1
h
m
Λ
m
(5.3)
H(\boldsymbol{\Lambda})=\sum_{m=0}^{M-1} h_{m} \boldsymbol{\Lambda}^{m}\tag{5.3}
H(Λ)=m=0∑M−1hmΛm(5.3)是图信号系统的传递函数。
又因为
U
−
1
y
=
H
(
Λ
)
U
−
1
x
U^{-1}y=H(\mathbf {\Lambda}) \mathbf{U}^{-1} \mathbf{x}
U−1y=H(Λ)U−1x,所以:
Y
=
H
(
Λ
)
X
(5.4)
Y=H(\mathbf{\Lambda})X\tag{5.4}
Y=H(Λ)X(5.4)
6. 谱域图滤波器设计
图滤波器就是一个为了改变图信号谱分量而设计的图信号系统。
考虑一个理想的图滤波器传递函数,
G
(
Λ
)
G(\mathbf {\Lambda})
G(Λ)。和传统信号处理一样,可以在顶点域或频谱域设计具有此转换函数的图滤波器。
- 频谱域实现
频谱域实现很简单,只需要按照以下几步就行。
- 计算图信号 x x x的图频率含量 X X X, X = U − 1 x X=U^{-1}x X=U−1x。
- 乘以图滤波器传递函数 G ( Λ ) G(\mathbf {\Lambda}) G(Λ), Y = G ( Λ ) X Y=G(\mathbf {\Lambda})X Y=G(Λ)X。
- 对 Y Y Y进行逆图傅里叶变换,得到输出图信号 y = U Y y=UY y=UY。
由于这个程序在规模大的图信号上对计算要求很高,考虑在顶点域实现图滤波器设计。
- 顶点域实现
类似经典信号处理的时间域,顶点域实现需要找到系数
h
0
,
h
1
,
.
.
.
,
h
M
−
1
h_0,h_1,...,h_{M-1}
h0,h1,...,hM−1,使得
H
(
Λ
)
H(\mathbf {\Lambda})
H(Λ)尽可能接近期望的图滤波器
G
(
Λ
)
G(\mathbf {\Lambda})
G(Λ)。
H
(
Λ
)
=
∑
m
=
0
M
−
1
h
m
Λ
m
(5.5)
H(\boldsymbol{\Lambda})=\sum_{m=0}^{M-1} h_{m} \boldsymbol{\Lambda}^{m}\tag{5.5}
H(Λ)=m=0∑M−1hmΛm(5.5)则
H
(
λ
k
)
=
h
0
+
h
1
λ
k
1
+
⋯
+
h
M
−
1
λ
k
M
−
1
(5.6)
H\left(\lambda_{k}\right)=h_{0}+h_{1} \lambda_{k}^{1}+\cdots+h_{M-1} \lambda_{k}^{M-1}\tag{5.6}
H(λk)=h0+h1λk1+⋯+hM−1λkM−1(5.6)这就可得到以下的线性方程:
h
0
+
h
1
λ
1
1
+
⋯
+
h
M
−
1
λ
1
M
−
1
=
G
(
λ
1
)
h
0
+
h
1
λ
2
1
+
⋯
+
h
M
−
1
λ
2
M
−
1
=
G
(
λ
2
)
⋮
h
0
+
h
1
λ
N
1
+
⋯
+
h
M
−
1
λ
N
M
−
1
=
G
(
λ
N
)
(5.7)
\begin{aligned} h_{0}+h_{1} \lambda_{1}^{1}+\cdots+h_{M-1} \lambda_{1}^{M-1} &=G\left(\lambda_{1}\right) \\ h_{0}+h_{1} \lambda_{2}^{1}+\cdots+h_{M-1} \lambda_{2}^{M-1} &=G\left(\lambda_{2}\right) \\ \vdots & \\ h_{0}+h_{1} \lambda_{N}^{1}+\cdots+h_{M-1} \lambda_{N}^{M-1} &=G\left(\lambda_{N}\right) \end{aligned}\tag{5.7}
h0+h1λ11+⋯+hM−1λ1M−1h0+h1λ21+⋯+hM−1λ2M−1⋮h0+h1λN1+⋯+hM−1λNM−1=G(λ1)=G(λ2)=G(λN)(5.7)简化可得:
V
λ
h
=
g
(5.8)
\mathbf{V}_{\lambda} \mathbf{h}=\mathbf{g}\tag{5.8}
Vλh=g(5.8)其中,
V
λ
V_\lambda
Vλ是由特征值
λ
k
\lambda_ k
λk构成的范德蒙德矩阵。
实际上,系统阶数M远远小于N,这是一个过定方程,
h
h
h可以通过最小二乘法得到。
h
^
=
(
V
λ
T
V
λ
)
−
1
V
λ
T
g
(5.9)
\hat{\mathbf{h}}=\left(\mathbf{V}_{\lambda}^{T} \mathbf{V}_{\lambda}\right)^{-1} \mathbf{V}_{\lambda}^{T} \mathbf{g}\tag{5.9}
h^=(VλTVλ)−1VλTg(5.9)所获得解
h
^
\hat{\mathbf {h}}
h^使得方程的均方误差最小。
考虑一个例子:
假设一个图信号来自前面的64传感器测量,图移算子采用拉普拉斯矩阵。设计一个图滤波器,它的频率响应为
g
(
λ
k
)
=
exp
(
−
λ
k
)
g\left(\lambda_{k}\right)=\exp \left(-\lambda_{k}\right)
g(λk)=exp(−λk),利用这个图滤波器滤波图信号。当M=4时,利用matlab程序求得
h
0
=
0.9606
,
h
1
=
−
0.7453
,
h
2
=
0.1936
,
and
h
3
=
−
0.0162
h_{0}=0.9606, h_ {1}=-0.7453,h_{2}=0.1936, \text { and } h_{3}=-0.0162
h0=0.9606,h1=−0.7453,h2=0.1936, and h3=−0.0162
Matlab代码
clc; clear all; close all; fclose('all');
load 'MNE_Graph';
load 'MNE_Signal';
N = 64;
M = 4;
D = diag(sum(W));
L = D-W;
[u, v] = eig(L);
lambda = diag(v);
exp_lambda = exp(-lambda);
for i = 1:M
V(:, i) = lambda.^(i-1);
end
h = inv(V'*V)*V'*exp_lambda
7. 最佳解噪
考虑之前的信号测量,测量的信号
x
x
x由变换缓慢的期望信号
s
s
s和快速变化的干扰
ε
\varepsilon
ε组成。
x
=
s
+
ε
(7.1)
\mathbf{x}=\mathbf{s}+\varepsilon\tag{7.1}
x=s+ε(7.1)接下来的目的是设计一个图滤波器以抑制信号,假设滤波器输出为
y
y
y。最佳解噪任务可以通过最小化以下代价函数来定义:
J
(
y
∣
x
)
=
1
2
∥
y
−
x
∥
2
2
+
α
y
T
L
y
(7.2)
J(\mathbf{y} \mid \mathbf{x})=\frac{1}{2}\|\mathbf{y}-\mathbf{x}\|_{2}^{2}+\alpha \mathbf{y}^{T} \mathbf{L} \mathbf{y}\tag{7.2}
J(y∣x)=21∥y−x∥22+αyTLy(7.2)其中,第一项约束使得输出信号尽可能接近输入信号,第二项约束表示输出信号的平滑度,变量
α
\alpha
α用于平衡这两项约束。
通过对代价函数求导来获得最佳解:
∂
J
(
y
∣
x
)
∂
y
T
=
y
−
x
+
2
α
L
y
=
0
(7.3)
\frac{\partial J(\mathbf{y} \mid \mathbf{x})}{\partial \mathbf{y}^{T}}=\mathbf{y}-\mathbf{x}+2 \alpha \mathbf{L} \mathbf{y}=\mathbf{0}\tag{7.3}
∂yT∂J(y∣x)=y−x+2αLy=0(7.3)求得一个最佳平滑解噪器:
y
=
(
I
+
2
α
L
)
−
1
x
(7.4)
\mathbf{y}=(\mathbf{I}+2 \alpha \mathbf{L})^{-1} \mathbf{x}\tag{7.4}
y=(I+2αL)−1x(7.4)对应的拉普拉斯谱域形式为:
Y
=
(
I
+
2
α
Λ
)
−
1
X
(7.5)
\mathbf{Y}=(\mathbf{I}+2 \alpha \mathbf{\Lambda})^{-1} \mathbf{X}\tag{7.5}
Y=(I+2αΛ)−1X(7.5)响应的图滤波器传递函数为:
H
(
λ
k
)
=
1
1
+
2
α
λ
k
(7.6)
H\left(\lambda_{k}\right)=\frac{1}{1+2 \alpha \lambda_{k}}\tag{7.6}
H(λk)=1+2αλk1(7.6)由上式可以看到,对于一个小的
α
,
H
(
λ
k
)
≈
1
,
y
≈
x
\alpha, H\left(\lambda_{k}\right) \approx 1, \mathbf{y} \approx \mathbf{x}
α,H(λk)≈1,y≈x ,而对于一个大的
α
,
H
(
λ
k
)
≈
δ
(
k
)
\alpha, H\left(\lambda_{k}\right) \approx \delta(k)
α,H(λk)≈δ(k) ,
y
≈
\mathbf{y} \approx
y≈ 常数,迫使输出信号
y
y
y最大限度平滑。
α
\alpha
α=4时,可以使得
S
N
R
i
n
=
14.2
d
B
→
S
N
R
o
u
t
=
26
d
B
S N R_{i n}=14.2 d B \rightarrow S N R_{o u t}=26 d B
SNRin=14.2dB→SNRout=26dB,获得11.8dB的信噪比改进。
Matlab代码
clc; clear all; close all;
load MNE_Graph % Graph data
load MNE_Signal % Signal on a graph
D = diag(sum(W)); % Degree Matrix
L = D-W; % Laplacian Matrix
[U,Lambda] = eig(L); % Eigen Decomposition
alpha = 4;
XX = U'*x;
YY = inv(eye(N)+2*alpha*Lambda)*XX;
xf = U*YY;
SNRin = 10*log10(sum(x0.^2)/sum((x-x0).^2))
SNRout = 10*log10(sum(x0.^2)/sum((xf-x0).^2))
参考论文:《Understanding the basis of graph signal processing via an intuitive example-driven approach》,Ljubiša Stankovic .
欢迎转载,表明出处。