图信号处理基础------Foundations in Graph Signal Processing

2023-11-11

本篇博文意在用例子的形式解释图信号处理基础,目的是记录总结自己的学习过程,有兴趣的读者也可也一起交流。

前言

图是一种包含多种数据属性的不规则结构。然而,传统的图论处理方法都注重分析底层的图结构而不是图上的信号。随着多传感器测量技术的快速发展,数据结构的复杂性相应增加,利用图结构可以很好地分析这类数据。图信号处理是一个信号处理框架,它不仅仅包含图的“顶点、边缘、结构特性”等属性。

相关

在传统信号处理中,信号域是由等时间间隔或由均匀网格上的一组空间测量点确定的。但是,实际的数据可能与时间或空间维无关,它展现出各种形式的的不规则性,例如社交网或互联网。值得注意的是,即使信号是基于定义好的时间/空间域获得的,新的信号关系的引入也可能会产生新的见解,从而增强信号处理。图已经自然全面地分析了问题定义中不规则数据的关系,以及数据分析中相关的数据连通性。

图信号处理例子

传感器位置

所有传感器位置信息和信号信息均存在MNE_Graph.matMNE_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 nx(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=nWnmx(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 D1W

为了得到无偏估计,每一个 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+D1Wx)(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.2dBSNRout=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)=δ(n29),则在传统信号处理范畴,移信号 x s h i f t = δ ( n − 28 ) x_{shift}=\delta(n-28) xshift=δ(n28),是一对一的关系。而在图信号处理范畴,移信号 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=δ(n27)+δ(n28)+δ(n51)+δ(n59),是一对多的关系。

注:在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++hM1SM1x=m=0M1hmSmx(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,...,hM1是系统系数。

关于图移算子S的选择

  • 邻接矩阵 A A A
  • 加权矩阵 W W W
  • 拉普拉斯矩阵 L L L
  • 对称归一化拉普拉斯矩阵 D − 1 / 2 L D − 1 / 2 D^{-1/2}LD^{-1/2} D1/2LD1/2
  • 随机游走加权矩阵 D − 1 W D^{-1}W D1W

在标准的有向非加权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=0M1hmSmx退化为标准的有限长脉冲响应滤波器:
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(n1)++hM1x(nM+1)(3.3)举个例子,M=3,DSP中的路径图为
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=0M1hmAmx可得:
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(n1)+h2(n2)(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++hM1SM1(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=U1(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=1Nx(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=1NX(k)uk(n)(4.5)类比传统傅里叶变换,信号被投影至一组谐波正交基上, X = U − 1 x \mathbf{X}=\mathbf{U}^{-1} \mathbf{x} X=U1x 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π(k1)/N,,ej2π(N1)(k1)/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=ej2π(k1)/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=3 1 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ΛU1

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=0M1hmSmx(5.1)结合 S = U Λ U − 1 S=U\mathbf{\Lambda} U^{-1} S=UΛU1可得:
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=0M1hmUΛmU1x=UH(Λ)U1x(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=0M1hmΛm(5.3)是图信号系统的传递函数。
又因为 U − 1 y = H ( Λ ) U − 1 x U^{-1}y=H(\mathbf {\Lambda}) \mathbf{U}^{-1} \mathbf{x} U1y=H(Λ)U1x,所以:
Y = H ( Λ ) X (5.4) Y=H(\mathbf{\Lambda})X\tag{5.4} Y=H(Λ)X(5.4)

6. 谱域图滤波器设计

图滤波器就是一个为了改变图信号谱分量而设计的图信号系统。
考虑一个理想的图滤波器传递函数, G ( Λ ) G(\mathbf {\Lambda}) G(Λ)。和传统信号处理一样,可以在顶点域或频谱域设计具有此转换函数的图滤波器。

  • 频谱域实现

频谱域实现很简单,只需要按照以下几步就行。

  1. 计算图信号 x x x的图频率含量 X X X X = U − 1 x X=U^{-1}x X=U1x
  2. 乘以图滤波器传递函数 G ( Λ ) G(\mathbf {\Lambda}) G(Λ) Y = G ( Λ ) X Y=G(\mathbf {\Lambda})X Y=G(Λ)X
  3. 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,...,hM1,使得 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=0M1hmΛ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++hM1λkM1(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++hM1λ1M1h0+h1λ21++hM1λ2M1h0+h1λN1++hM1λNM1=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(yx)=21yx22+α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} yTJ(yx)=yx+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,yx ,而对于一个大的 α , 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.2dBSNRout=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 .
欢迎转载,表明出处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图信号处理基础------Foundations in Graph Signal Processing 的相关文章

  • 在 MATLAB 中分析 wav 文件

    所以我有这个钢琴录音 wav 格式 我能够做一个FFT整体记录并识别频率 然而 根据我读过的一些文章 最好将 wav 文件分解为多个窗口 其中每个窗口都包含一个特定的音符 为此 我需要首先绘制时域信号的 功率包络 考虑音符平均能量概念 因此
  • Matlab,如何获取imagesc生成的结果?

    我读过一些类似的文章 但它们不是我想要的 得到imagesc之后的矩阵 https stackoverflow com questions 14364239 get the matrix after imagesc 14364434 143
  • MATLAB 黑洞变量

    MATLAB 是否有 黑洞 或丢弃变量 假设我正在做类似的事情 rows cols size A 但我不想存储行 是否有一个 黑洞 变量可以让我发送值去死 所以任务就像 BLACKHOLE cols size A 其中 BLACKHOLE
  • 如何将Matlab命令的输出重定向到文件? [复制]

    这个问题在这里已经有答案了 我想将 Matlab 命令的输出重定向或复制到文件中 我怎样才能做到这一点 就我而言 我想使用 UNIX 工具比较两个大型结构diff 示例 我可以在 Matlab 中执行此操作 gt gt s1 s1 a 32
  • MATLAB:解包函数

    我正在与 Mathworks 的某人讨论 unwrap http www mathworks com access helpdesk help techdoc ref unwrap html函数中对于 以外的跳跃容差有一个 bug 并且希望
  • Google Chrome 的互联网历史记录脚本

    我并不是在寻找 最佳 或最有效的脚本来执行此操作 但我想知道是否存在一个脚本可以从 Google Chrome 中提取一天的互联网历史记录并将其记录到 txt 文件中 我更喜欢用 Python 或 MATLAB 编写 如果你们有不同的方法
  • 如何将向量标准化/非标准化到范围 [-1;1]

    我怎么能够正常化到范围的向量 1 1 我想使用函数norm 因为它会更快 也让我知道我该怎么做非规范化之后的向量正常化 norm对向量进行归一化 使其平方和为 1 如果要对向量进行归一化 使其所有元素都在 0 和 1 之间 则需要使用最小值
  • Matlab 中二维插值的函数形式

    我需要从二维数据数组构造一个插值函数 我需要返回实际函数的东西的原因是 我需要能够将函数作为我需要进行数值积分的表达式的一部分进行计算 因此 interp2 并没有解决这个问题 它不返回函数 我可以使用 TriScatteredInterp
  • 如何打开 matlab p 代码文件

    有谁知道如何查看 matlab p 代码文件的代码 p 代码文件专门存在 以便您可以共享代码 以便其他人无法查看它 换句话说 您看不到 Matlab p 代码文件的代码
  • MATLAB:生成给定三种颜色的颜色图

    我正在尝试在 MATLAB 中生成给定三种颜色 最高值 零值和最低值 的颜色图 我的思维过程是从最高端到中间循环 并将每个步骤存储到一个 3xN 第一列是 R 第二列是 G 第三列是 B 矩阵 所以我正在使用 fade from high
  • 比较元胞数组中的字符串

    我试图在单词列表中找到最常见的单词 到目前为止 这是我的代码 uniWords unique lower words for i 1 length words for j 1 length uniWords if uniWords j lo
  • MATLAB 中元胞数组的左连接

    I ve 2 cellMATLAB 中的数组 例如 A jim 4 paul 5 sean 5 rose 1 第二个 B jim paul george bill sean rose 我想做一个 SQL 左连接 这样我就可以得到 B 中的所
  • 在 Matlab 2014b 中移动等高线图的 z 值

    我正在尝试绘制曲面图 在曲面下方我希望显示轮廓线 但我希望轮廓位于z 1而不是默认值0 我找到了之前关于这个问题的帖子here https stackoverflow com questions 8054966 matlab how to
  • MATLAB 是否已有 YAML 库/解析器?

    我想使用 YAML 跨多种语言交流一些数据 将其视为 与语言无关的序列化 其中一种语言是 MATLAB 但我似乎找不到该语言的 YAML 库 我在 Google 上检查了 matlab yaml 和 matlab yaml parse 似乎
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • 在 matlab/octave 中将数据集分成两个子集 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 将数据集分为两个子集 例如 训练 和 测试 其中 训练集包含 80 的数据 测试集包含剩余的 20 分裂的意思是生成一个长度等于的逻辑索引
  • 如何选择部分密集数据集的均匀分布子集?

    P是一个 n d 矩阵 持有nd 维样本 P某些地区的密度是其他地区的几倍 我想选择一个子集P其中任意样本对之间的距离大于d0 并且我需要将其传播到整个区域 所有样本都具有相同的优先级 无需优化任何内容 例如覆盖面积或成对距离之和 这是执行
  • 使用 java 执行 Matlab 函数

    我正在编写一个应用程序 它使用 matlab 进行图像处理 然后使用 Java 接口显示结果 由于某些原因 我必须同时使用 Java 和 Matlab 如何在java中使用matlab函数 如何创建和访问界面 MATLAB控制 http m
  • 将 3d 矩阵重塑为 2d 矩阵

    我有一个 3d 矩阵 n by m by t 在 MATLAB 中表示n by m一段时间内网格中的测量值 我想要一个二维矩阵 其中空间信息消失了 只有n m随着时间的推移测量t剩下 即 n m by t 我怎样才能做到这一点 你需要命令r
  • 如何获取活动对象 MATLAB GUI 的句柄

    我正在尝试使用 MATLAB GUI 创建日历 我有两个Edit Text对象 edittext1 and edittext2 我想做这个 我把光标放在edittext1然后在日历中选择日期 它会进入文本字段edittext1 同样对于ed

随机推荐

  • sqli-labs/Less-31

    欢迎界面和上一关差不多 所以我们还是使用双参数注入 首先判断第二个参数是否为数字型 输入如下 id 1 id 1 and 1 2 回显如下 所以属于字符型 然后判断是单引还是双引 输入如下 id 1 id 1 回显如下 正确回显了 所以不属
  • ^A在linux的处理

    这是hive的默认分隔符 用脚本awk或python可以把分隔符设置为 x01 在vim中选中时 用ctrl a来表示这个分隔符
  • 工业互联网+5G 发展策略研究

    本文首发于 邮电设计技术 边缘计算社区经过授权转发 摘要 工业互联网发展水平与一个国家的国际竞争力强相关 截至2020 年我国工业互联网发展初见成效 但商业模式还需要持续探索 首先探索工业互联网定义及发展情况 其次理清工业互联网与5G 关系
  • C++ DLUT 上机作业(四)

    文章目录 C DLUT上机作业 四 1 intArray 2 Goods 3 Cpoint 4 Account C DLUT上机作业 四 啥都不说 直接来 1 intArray 设计整型数组类intArray 实现若干数据的相关操作 包括构
  • React-实现循环轮播

    问题 写字体轮播的时候 不使用swiper库 使用top定位 让字体过渡上下移动 发现写成的效果就是每次播到最后一个元素后 只能突然展示第一个元素 失去了那种上下移的动过渡效果 ss 解决 import useRef useEffect u
  • K近邻思想解决字体反爬

    猫眼电影字体反爬 1 解决思路 1 1 获取对照组字体文件 按照不同字形字体的unicode得到文字与其坐标的对应关系形成可遍历的数据结构 然后处理成可计算的数组或者直接遍历出所有的坐标数据 1 2 再提取当前访问页面的自定义字体文件 取出
  • (CNN)卷积神经网络原理详解,大白话讲解卷积

    卷积到底在卷啥 卷积是什么 零基础入门神经网络的小白都会有这样的疑问 其实卷积很简单 卷积神经网络CNN 是一类包含卷积计算且具有深度结构的前馈神经网络 Feedforward Neural Networks 是深度学习 deep lear
  • 香农公式说明了什么_香农公式理解

    1948 年 香农 Shannon 用信息论的理论推导出了带宽受限且有高斯白噪 声干扰的信道的极限信息传输速率 当用此速率进行传输时 可以做到不出差错 用公式表示 则信道的极限信息传输速率 C 可表达为 C B log2 1 S N b s
  • 中小微企业如何选择网络品牌推广公司?

    有人认为品牌推广是大型企业的事情 中小微企业没有必要做品牌推广 口碑侠营销顾问则不以为然 口碑侠认为小微企业之所以还是小微企业就是因为没有做有效的品牌推广 不是他们不需要品牌推广 而是资金和团队还做不了成规模的品牌推广 如果有足够的条件开展
  • PTI:通过枢轴完成人脸投影

    paper PTI Pivotal Tuning for Latent based Editing of Real Images 2022 ACM TOG StyleGan 人脸编辑相关 人脸投影 paper code 在StyleGAN中
  • Qt Qml 多媒体播放视频(MediaPlayer)遇到的问题及解决方法

    文章目录 前言 一 视频无法播放的原因 1 目录结构 2 正确代码 二 绝对路径 相对路径 三 路径中的转义字符 测试版本 前言 Qml 多媒体播放视频开发过程中遇到的问题 记录一下 一 视频无法播放的原因 创建的Qt Quick Ui P
  • 分布式管理和集中式管理的优劣-----项目架构和配置分离

    模块化是不可逆转的趋势 模块化是不可逆转的趋势 面向接口编程的优势 集中式管理的优劣 分布管理的优劣 高内聚和低耦合 高内聚 低耦合 总结 现如今 在整个项目开发的过程中模块化以他独特的优势引领了一股项目架构潮流 灵活 可复用 后期易维护
  • 2023年使用率超高的10个Figma插件

    大家好 我是不知名设计师 l1m0 今天分享内容为 10个使用率超高的Figma插件 文末我还会为大家解答 Figma有汉化版吗 这个问题 埋个伏笔 接着往下看吧 Figma 相信屏幕前的大家都很熟悉了 作为一款功能超强大的设计工具 Fig
  • android 控件之checkbox自定义样式

    1 首先在drawable文件夹中添加drawable文件checkbox style xml
  • Unity人机交互—Input

    文章目录 键盘输入方法 鼠标输入方法 虚拟轴 按键 设置虚拟轴 按键 常用的移动方法 官方组件角色控制器CharacterController 属性 方法 自己写的移动脚本和鼠标控制视角 通过虚拟按键来实现移动 镜头跟随鼠标旋转 键盘输入方
  • 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定 解决方法

    1 关注 公众平台安全助手 2 进入 公众平台安全助手 点击右上角的用户图标 进入公众号信息界面 3 进入 公众号信息 界面后 点击右上角的 图标 打开更多选项 4 打开 更多选项 后 选择设置选项 进入设置 5 进入 设置 后 请关闭消息
  • [网络安全提高篇] 一二二.恶意样本分类之基于API序列和机器学习的恶意家族分类详解

    终于忙完初稿 开心地写一篇博客 网络安全提高班 新的100篇文章即将开启 包括Web渗透 内网渗透 靶场搭建 CVE复现 攻击溯源 实战及CTF总结 它将更加聚焦 更加深入 也是作者的慢慢成长史 换专业确实挺难的 Web渗透也是块硬骨头 但
  • ServletContext介绍和用法

    ServletContext介绍和用法 1 介绍 ServletContext 2 用法 1 getInitParameterNames 和 getInitParameter 2 getMajorVersion 和 getMinorVers
  • STL空间配置器详解-《STL源码剖析第二章学习笔记》

    个人学习笔记 可能有点乱 有理解不对的地方可以给我留言 个人网站www liujianhua xyz STL空间配置器 https www cnblogs com lang5230 p 5556611 html 空间配置器 空间配置器概括
  • 图信号处理基础------Foundations in Graph Signal Processing

    本篇博文意在用例子的形式解释图信号处理基础 目的是记录总结自己的学习过程 有兴趣的读者也可也一起交流 前言 图是一种包含多种数据属性的不规则结构 然而 传统的图论处理方法都注重分析底层的图结构而不是图上的信号 随着多传感器测量技术的快速发展