图神经网络(GNN)入门笔记(1)——图信号处理与图傅里叶变换

一、信号处理:时域与频域

时域(Time Domain)是我们生活中常见的信号表示方式,以横轴为时间,纵轴为信号该时刻的强度(幅度),就可以得到一张时域图。打个比方,通过每时每刻的震动强度可以得到音频的时域图,或者画一张每小时的车流量,或者每日的降水量的图,也是时域图。
频域(Frequency Domain)则是一种数学上描述信号的方式。在频域中,唯一存在的波形是正弦波(Sine Wave,此处指代余弦和正弦这样的简谐波总称),通过不断叠加不同周期的正弦波,我们认为我们可以拟合所有的时域信号。画成图的话,频域是横轴为频率,纵轴为幅度的一个图形。
经典的时域与频域示意图,出处见水印
那么我们为什么需要频域呢?一方面,将复杂信号拆分为不同频率的正弦波,可以更简洁地对其进行表示。另一方面,通过频率分离,我们可以做到一些滤波操作。例如,一段音频里既有男生在说话,也有女生在说话,我们想把男女生的声音分开,而女生的声音频率要比男生的高,于是就可以根据频率来划分。保留男生的低频声音的滤波叫做低通滤波,而保留女生的高频声音的滤波叫做高通滤波

二、傅里叶变换

2.1 傅里叶变换的本质

傅里叶变换的总公式如下:
F ( ω ) = ∫ − ∞ + ∞ f ( t ) e − i ω t d t F(\omega) =\int_{-\infty}^{+\infty} f(t)e^{-i\omega t}dt F(ω)=+f(t)etdt
其中 ω \omega ω表示频率,而 t t t表示时间,这个操作就是把信号从时域转到频域上。
这个可怕的式子到底是什么意思呢?在这里非常推荐3Blue1Brown的图解
让我们回到高中学过,或者高中的你正在学的复数概念。复数是二维的数,在横轴的实数轴上,又添加了一条纵轴的虚数轴。而单位虚数 i = − 1 i=\sqrt{-1} i=1
著名欧拉公式就是 e i x = cos ⁡ x + i sin ⁡ x e^{ix}=\cos x + i \sin x eix=cosx+isinx,这个公式有一个重要的几何意义,那就是 e i x e^{ix} eix代表着在复平面上,从(1,0)出发,沿着圆心为原点,半径为1的单位圆逆时针走 x x x个单位的圆周,所落到的点代表的复数。
由此可知:

  • h ( t ) = e i t h(t)=e^{it} h(t)=eit 代表一个每秒走1个单位的圆周的,在圆周上逆时针运动的点的轨迹函数。
  • h ( t ) = e − i t h(t)=e^{-it} h(t)=eit是顺时针运动的轨迹函数。
  • h ( t ) = e − i ω t h(t)=e^{-i\omega t} h(t)=et是每 1 ω \frac{1}{\omega} ω1秒走1单位圆周(或者说每秒走 ω \omega ω单位圆周),在圆周上逆时针运动的点的轨迹函数。
  • h ( t ) = f ( t ) e − i ω t h(t)=f(t)e^{-i\omega t} h(t)=f(t)et,则相当于我们将时域图上,横轴为时间,纵轴为幅度的 f ( t ) f(t) f(t),画到了圆上。时间从轴变成了角度,幅度从轴变成了幅长(到原点的距离)。圆上的一圈,我们能画原时域图 1 ω \frac{1}{\omega} ω1秒的内容。
    图解
    对于一个正弦波,大部分情况下只要你无限地画下去,它在圆周上都会分布得比较均匀,除了……当 1 ω \frac{1}{\omega} ω1秒恰好是原正弦波的一个周期时。此时,时域图上波峰的位置会在圆的一侧,而波谷的位置会在另一侧,就像这样:
    图解2
    那么这时,我们将这个图形上所有的点都加起来,也就是,找它们二维上的几何平均点(质心),就可以近似得到原函数在 ω \omega ω这个频率下的正弦波有多大的强度。而这种正弦波在原函数中持续时间越长(画了越多圈上图的图案),得到的 F ( ω ) = ∫ − ∞ + ∞ f ( t ) e − i ω t d t F(\omega) =\int_{-\infty}^{+\infty} f(t)e^{-i\omega t}dt F(ω)=+f(t)etdt也会越大。由此,我们就得到了原时域信号在不同频率下的强度。
    同样,也存在频域到时域上的傅里叶逆变换:
    f ( t ) = 1 2 π ∫ − ∞ ∞ F ( ω ) e i ω t d ω f(t) = \frac{1}{2\pi} \int_{-\infty}^{\infty} F(\omega) e^{i\omega t} d\omega f(t)=2π1F(ω)etdω

2.2 从线性代数角度看离散傅里叶变换

能够被存储下来的信号,往往没有真正的连续形式,故实际中用得更多的,是离散傅里叶变换。既然离散了,我们显然也没办法把所有频率都做一遍了,此时可以近似地用 2 k π n ( k ∈ { 0 , . . . , n − 1 } \frac{2k\pi}{n}(k \in \{0,...,n-1\} n2(k{ 0,...,n1}这一套频率来近似地拟合,下面我们记记 W n = e 2 π n i W_n=e^{\frac{2\pi}{n}i} Wn=en2πi
假设我们在时域上有一组采样点 f ( t 0 ) , . . . , f ( t n − 1 ) f(t_0),...,f(t_{n-1}) f(t0),...,f(tn1),离散傅里叶变换的公式为:
F ( W n k ) = ∑ j = 0 n − 1 f ( t j ) W n − k j F(W_n^k)=\sum_{j=0}^{n-1} f(t_j) W_n^{-kj} F(Wnk)=j=0n1f(tj)Wnkj
相应地,逆傅里叶变换的公式为:
f ( t j ) = 1 n ∑ k = 0 n − 1 F ( W n k ) W n k j f(t_j) = \frac{1}{n}\sum_{k=0}^{n-1} F(W_n^k)W_n^{kj} f(tj)=n1k=0n1F(Wnk)Wnkj
如果把傅里叶变换写成矩阵形式,就是这样:
( F ( 0 ) ⋮ F ( n − 1 ) ) = ( W n − 0 ⋯ W n − ( n − 1 ) ⋮ ⋱ ⋮ W n − ( n − 1 ) ⋯ W n − ( n − 1 ) 2 ) ( f ( t 0 ) ⋮ f ( t n − 1 ) ) \begin{pmatrix} F(0) \\ \vdots \\ F(n-1) \end{pmatrix}= \begin{pmatrix} W_n^{-0} & \cdots & W_n^{-(n-1)} \\ \vdots & \ddots & \vdots \\ W_n^{-(n-1)} & \cdots & W_n^{-(n-1)^2} \end{pmatrix} \begin{pmatrix} f(t_0) \\ \vdots \\ f(t_{n-1}) \end{pmatrix} F(0)F(n1) = Wn0Wn(n1)Wn(n1)Wn(n1)2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值