(个人笔记)傅里叶变换

【参考资料】
1.知乎:王小龙:如何直观形象、生动有趣地给文科学生介绍傅里叶变换?
2.马同学:如何通俗理解傅里叶变换?
3.马同学:如何理解傅里叶级数公式?

作者初涉傅里叶变换不久,看了很多优秀博主的作答,可以说是受益匪浅
为了便于自身的理解,作者斗胆想对此做个整合,但最终目的是使读者看过本文之后就不再需要阅读参考资料中的一切内容
如有不足,欢迎指正

1 通俗定义

1.1 傅里叶变换的通俗理解

假设任何一个连续函数都可以被唯一的表示为一组加权系数不同的三角函数的叠加(具体为什么详见 Section 2.1)。那么对一个函数的傅里叶变换,就等同于找到组成它的三角函数以及对应的加权系数(这组三角函数也被称之为原函数的

1.2 傅里叶变换的作用

把一个函数或者信号在三角函数基下转换为一组系数,根据这些系数做出一些操作(比如丢弃系数过小的基),然后再通过逆傅里叶变换得到处理后的函数或者信号(例如 jpg 压缩的原理就是傅里叶变换)

我们生活中无时不刻正在发生傅里叶变换

  1. 拍照片 = 做傅里叶变换:假设一张有 600*800 = 48 万像素,那么拍照的过程就相当于从现实世界的无限组基中选取了 48 万组
  2. 讲故事 = 做傅里叶变换:故事能够将一个由无限组基组成的事件,描绘成短短几句话。而之后我们的想象力将这些听到的故事转换成脑海中的画面的过程,其实就一个逆傅里叶变换

可见,不管是拍照片还是讲故事,这些无形中进行的傅里叶变换都有着极其重要的作用(可以想象,如果没有语言这一重要傅里叶变换的诞生发明,人类必将一直处于原始时代)

2 数学定义

假设, f ( x ) f(x) f(x) 为周期为 T T T 的函数,并且满足傅立叶级数的收敛条件,那么可以写作傅立叶级数
f ( x ) = a 0 2 + ∑ n = 1 ∞ ( a n cos ⁡ ( 2 π n x T ) + b n sin ⁡ ( 2 π n x T ) ) (1) \tag{1}f(x)=\frac{a_0}{2}+\sum_{n=1}^\infty(a_n\cos(\frac{2\pi nx}{T})+b_n\sin(\frac{2\pi nx}{T})) f(x)=2a0+n=1(ancos(T2πnx)+bnsin(T2πnx))(1)

where,

  1. a n = 2 T ∫ x 0 x 0 + T f ( x ) cos ⁡ ( 2 π n x T ) d x a_n=\frac{2}{T}\int_{x_0}^{x_0+T}f(x)\cos(\frac{2\pi nx}{T})dx an=T2x0x0+Tf(x)cos(T2πnx)dx
  2. b n = 2 T ∫ x 0 x 0 + T f ( x ) sin ⁡ ( 2 π n x T ) d x b_n=\frac{2}{T}\int_{x_0}^{x_0+T}f(x)\sin(\frac{2\pi nx}{T})dx bn=T2x0x0+Tf(x)sin(T2πnx)dx

2.1 公式的由来(1):分解思路

2.1.1 常数项

y 1 = C y_1=C y1=C

常数函数是一个周期任意的周期函数

2.1.2 通过 sin ⁡ ( x ) , cos ⁡ ( x ) \sin(x), \cos(x) sin(x),cos(x) 进行分解

使用 sin ⁡ ( x ) , cos ⁡ ( x ) \sin(x), \cos(x) sin(x),cos(x) 的组合来表示 f ( x ) f(x) f(x) 的部分特征
原因如下:

  1. 三角函数是周期函数,周期函数的组合依旧是周期函数
  2. 三角函数的微分和积分很简单
  3. sin ⁡ ( x ) \sin(x) sin(x) 为奇函数, cos ⁡ ( x ) \cos(x) cos(x) 为偶函数,而任意函数都能够写成奇函数 + 偶函数的形式:
    f ( x ) = f ( x ) + f ( − x ) 2 + f ( x ) − f ( − x ) 2 = f e v e n + f o d d f(x)=\frac{f(x)+f(-x)}{2}+\frac{f(x)-f(-x)}{2}=f_{even}+f_{odd} f(x)=2f(x)+f(x)+2f(x)f(x)=feven+fodd

因此,
y 2 = ∑ cos ⁡ ( . . . ) ,    y 3 = ∑ sin ⁡ ( . . . ) y_2=\sum\cos(...),\;y_3=\sum\sin(...) y2=cos(...),y3=sin(...)

2.1.3 保证 sin ⁡ ( . . . ) , cos ⁡ ( . . . ) \sin(...), \cos(...) sin(...),cos(...) 的周期为 T T T

sin ⁡ ( n x ) , cos ⁡ ( n x ) \sin(nx), \cos(nx) sin(nx),cos(nx) 的周期均可以为 2 π 2\pi 2π (此处的周期不一定是最小周期)
那么相对应的,如果 f ( x ) f(x) f(x) 的周期为 T T T
sin ⁡ ( . . . ) = sin ⁡ ( 2 π n T x ) ,    cos ⁡ ( . . . ) = cos ⁡ ( 2 π n T x ) \sin(...)=\sin(\frac{2\pi n}{T}x),\;\cos(...)=\cos(\frac{2\pi n}{T}x) sin(...)=sin(T2πnx),cos(...)=cos(T2πnx)
的周期也可以为 T T T

2.1.4 调整振幅以拟合 f ( x ) f(x) f(x)

加入系数 a n , b n a_n,b_n an,bn,可得
f ( x ) = C + ∑ n = 1 ∞ ( a n cos ⁡ ( 2 π n x T ) + b n sin ⁡ ( 2 π n x T ) ) (2) \tag{2}f(x)=C+\sum_{n=1}^\infty(a_n\cos(\frac{2\pi nx}{T})+b_n\sin(\frac{2\pi nx}{T})) f(x)=C+n=1(ancos(T2πnx)+bnsin(T2πnx))(2)

(个人笔记)傅里叶变换(个人笔记)傅里叶变换(个人笔记)傅里叶变换

(个人笔记)傅里叶变换

2.2 公式的由来(2):求系数

Eq.2 与 Eq.1 的差距在于 Eq.2 中的 C , a n , b n C, a_n, b_n C,an,bn 未知,为了求解这些参数,首先需要引入欧拉公式 e i θ = cos ⁡ θ + i sin ⁡ ( θ ) e^{i\theta}=\cos{\theta}+i\sin(\theta) eiθ=cosθ+isin(θ)

2.2.1 用 e i t e^{it} eit 表示 sin ⁡ ( t ) \sin(t) sin(t)

e i t e^{it} eit 在复平面内可以表示为一个向量,
(个人笔记)傅里叶变换

随着 t t t 的流逝,这个向量会在复平面内旋转起来,每 2 π 2\pi 2π 时间转一圈
而把该向量的虚部(纵坐标)记录下来,就得到了 sin ⁡ ( t ) \sin(t) sin(t)
(个人笔记)傅里叶变换
以上两角度,一个可以观察到旋转的频率,所以称为频域;一个可以看到流逝的时间,所以称为时域

2.2.2 通过频域来求系数

假设有这么一个周期 T = 2 π T=2\pi T=2π 的函数
g ( x ) = sin ⁡ ( x ) + sin ⁡ ( 2 x ) g(x)=\sin(x)+\sin(2x) g(x)=sin(x)+sin(2x)

将其由时域转换到频域,可得
G ( x ) = e i x + e i 2 x G(x)=e^{ix}+e^{i2x} G(x)=eix+ei2x

G ( x ) G(x) G(x) 在复平面内就是两个向量的线性组合,而 e i x , e i 2 x e^{ix}, e^{i2x} eix,ei2x 前的系数就是 G ( x ) G(x) G(x) 在这组基下的坐标
(个人笔记)傅里叶变换
类似的,由于 g ( x ) g(x) g(x) G ( x ) G(x) G(x) 的虚部,我们可以得到 g ( x ) g(x) g(x) 就是基函数 sin ⁡ ( x ) , sin ⁡ ( 2 x ) \sin(x), \sin(2x) sin(x),sin(2x) 的线性组合,而 sin ⁡ ( x ) , sin ⁡ ( 2 x ) \sin(x), \sin(2x) sin(x),sin(2x) 前的系数为 g ( x ) g(x) g(x) 在这组基下的坐标

2.2.3 求坐标(求系数)

对于一组正交基 u ⃗ = ( − 1 , 1 ) , v ⃗ = ( 1 , 1 ) \vec{u}=(-1,1),\vec{v}=(1,1) u =(1,1),v =(1,1)
以及 w ⃗ = ( 1 , 5 ) = a u ⃗ + b v ⃗ \vec{w}=(1,5)=a\vec{u}+b\vec{v} w =(1,5)=au +bv

可以用以下公式求 a , b a,b a,b(只有正交基才能这么做)
a = w ⃗ ⋅ u ⃗ u ⃗ ⋅ u ⃗ = 2 ,    b = w ⃗ ⋅ v ⃗ v ⃗ ⋅ v ⃗ = 3 a = \frac{\vec{w}\cdot\vec{u}}{\vec{u}\cdot\vec{u}}=2,\;b = \frac{\vec{w}\cdot\vec{v}}{\vec{v}\cdot\vec{v}}=3 a=u u w u =2,b=v v w v =3

那么对于基函数 sin ⁡ ( x ) , sin ⁡ ( 2 x ) \sin(x),\sin(2x) sin(x),sin(2x) 呢?
根据函数内积的定义
f ( x ) ⋅ g ( x ) = ∫ 0 T f ( x ) g ( x ) d x f(x)\cdot g(x)=\int_0^Tf(x)g(x)dx f(x)g(x)=0Tf(x)g(x)dx

where, T T T f ( x ) , g ( x ) f(x),g(x) f(x),g(x) 共同的周期

可得 sin ⁡ ( x ) ⋅ sin ⁡ ( 2 x ) = ∫ 0 2 π sin ⁡ ( x ) sin ⁡ ( 2 x ) d x = 0 \sin(x)\cdot\sin(2x)=\int_0^{2\pi}\sin(x)\sin(2x)dx=0 sin(x)sin(2x)=02πsin(x)sin(2x)dx=0
因此, sin ⁡ ( x ) , sin ⁡ ( 2 x ) \sin(x),\sin(2x) sin(x),sin(2x) 是一组正交基
再根据正交基求坐标的公式,可得
g ( x ) ⋅ sin ⁡ ( x ) sin ⁡ ( x ) ⋅ sin ⁡ ( x ) = ∫ 0 2 π g ( x ) sin ⁡ ( x ) d x ∫ 0 2 π sin ⁡ 2 ( x ) d x = 1 \frac{g(x)\cdot\sin(x)}{\sin(x)\cdot\sin(x)}=\frac{\int_0^{2\pi}g(x)\sin(x)dx}{\int_0^{2\pi}\sin^2(x)dx}=1 sin(x)sin(x)g(x)sin(x)=02πsin2(x)dx02πg(x)sin(x)dx=1

2.2.4 更一般的形式(回到原函数)

回顾 Eq.2
f ( x ) = C ⋅ 1 + ∑ n = 1 ∞ ( a n cos ⁡ ( 2 π n x T ) + b n sin ⁡ ( 2 π n x T ) ) f(x)=C\cdot 1+\sum_{n=1}^\infty(a_n\cos(\frac{2\pi nx}{T})+b_n\sin(\frac{2\pi nx}{T})) f(x)=C1+n=1(ancos(T2πnx)+bnsin(T2πnx))

可得 f ( x ) f(x) f(x) 的三个正交基
< 1 , cos ⁡ ( 2 π n T x ) , sin ⁡ ( 2 π n T x ) > <1,\cos(\frac{2\pi n}{T}x),\sin(\frac{2\pi n}{T}x)> <1,cos(T2πnx),sin(T2πnx)>

由此,

  1. a n = ∫ 0 T f ( x ) cos ⁡ ( 2 π n x T ) d x ∫ 0 T cos ⁡ 2 ( 2 π n x T ) d x = 2 T ∫ 0 T f ( x ) cos ⁡ ( 2 π n x T ) d x a_n=\frac{\int_0^T{f(x)\cos(\frac{2\pi nx}{T})dx}}{\int_0^T\cos^2(\frac{2\pi nx}{T})dx}=\frac{2}{T}\int_{0}^{T}f(x)\cos(\frac{2\pi nx}{T})dx an=0Tcos2(T2πnx)dx0Tf(x)cos(T2πnx)dx=T20Tf(x)cos(T2πnx)dx
  2. b n = . . . = 2 T ∫ 0 T f ( x ) sin ⁡ ( 2 π n x T ) d x b_n=...=\frac{2}{T}\int_{0}^{T}f(x)\sin(\frac{2\pi nx}{T})dx bn=...=T20Tf(x)sin(T2πnx)dx
  3. C = . . . = a 0 2 C=...=\frac{a_0}{2} C=...=2a0

至此,Eq.2 的推导就完成了