跳至内容
返回

傅里叶变换,不过就是换了一个坐标系

发布于:

为什么一个看起来极其复杂的信号,可以被拆成一堆正弦波?为什么傅里叶变换能把“时域”变成“频域”?

如果从线性代数的角度来看,这件事情其实没有那么神秘:傅里叶变换,本质上就是一次坐标分解。

第一次学习傅里叶变换时,我们通常会遇到一个非常恐怖的公式:

F(ω)=+f(t)eiωtdtF(\omega) = \int_{-\infty}^{+\infty} f(t)e^{-i\omega t}\,dt

然后老师告诉你“这就是傅里叶变换”。于是很多人开始:背公式 → 套公式 → 做积分 → 考试结束 → 忘了。但真正的问题其实一直没有解决:这个积分到底在干什么?

理解傅里叶变换最好的入口之一,不是积分,而是我们非常熟悉的东西:坐标系。


1. 核心思想:坐标,就是一个对象在不同基底上的分量

假设二维空间里有一个向量 v=[3,2]\mathbf v = [3, 2]^\top。为什么我们说它的坐标是 (3,2)(3,2)?因为我们默认使用了两个基向量 e1=[1,0]\mathbf e_1 = [1,0]^\tope2=[0,1]\mathbf e_2 = [0,1]^\top,于是:

v=3e1+2e2\mathbf v = 3\mathbf e_1 + 2\mathbf e_2

所谓坐标 (3,2)(3,2),真正的意思是“这个向量包含 3 份 e1\mathbf e_1,以及 2 份 e2\mathbf e_2”。也就是说:

坐标,本质上就是一个对象在不同基底上的分量。

二维平面并不只有 e1,e2\mathbf e_1, \mathbf e_2 这一套基。我们完全可以选新的基 u1,u2\mathbf u_1, \mathbf u_2,把同一个向量写成 v=au1+bu2\mathbf v = a\mathbf u_1 + b\mathbf u_2——向量没有改变,改变的只是我们描述它的方式。这就是换基(Change of Basis)

**怎么知道一个向量在某个方向上有多少分量?**如果基底是标准正交基,那么坐标系数 = 与基底做内积(也就是投影):

坐标系数=与基底做内积\boxed{\text{坐标系数} = \text{与基底做内积}}

记住这一句话——因为傅里叶变换的那个“大积分”,其实就是在干这个。


2. 从向量到函数:函数也是无限维空间中的向量

我们平时认为 v=(x,y,z)\mathbf v = (x,y,z) 是向量。但函数其实也可以看成向量:如果在很多位置 t1,t2,...,tnt_1, t_2, ..., t_n 采样 f(t)f(t),就可以写成 [f(t1),f(t2),...,f(tn)][f(t_1), f(t_2), ..., f(t_n)]——这不就是一个高维向量吗?如果采样越来越密(nn \to \infty),函数就可以理解成无限维空间中的一个向量,这个空间通常称为函数空间(Function Space)

函数空间同样需要“坐标系”——也就是一组基函数。傅里叶的想法就是:用不同频率的正弦波和余弦波作为基:

1,cosx, sinx,cos2x, sin2x,cos3x, sin3x,1, \quad \cos x,\ \sin x, \quad \cos 2x,\ \sin 2x, \quad \cos 3x,\ \sin 3x, \ldots

于是复杂函数 f(x)f(x) 就可以写成:

f(x)=a0+a1cosx+b1sinx+a2cos2x+b2sin2x+f(x) = a_0 + a_1\cos x + b_1\sin x + a_2\cos 2x + b_2\sin 2x + \cdots

这就是傅里叶级数。把它和 v=ae1+be2\mathbf v = a\mathbf e_1 + b\mathbf e_2 放在一起,你会发现它们几乎是一回事:

线性代数                傅里叶分析
向量                    函数
  ↓                       ↓
选择基底                选择正弦/余弦基底
  ↓                       ↓
求坐标                  求傅里叶系数

傅里叶级数,就是函数空间中的坐标展开\boxed{\text{傅里叶级数,就是函数空间中的坐标展开}}


3. 为什么偏偏是 sin 和 cos?正交性

因为我们希望基底之间尽量互不干扰。在线性代数中,最舒服的情况是正交基e1e2=0\mathbf e_1 \cdot \mathbf e_2 = 0),这样求坐标特别简单。而不同频率的三角函数也具有类似性质——在 [π,π][-\pi, \pi] 上:

ππsin(mx)sin(nx)dx=0 (mn),ππsin(mx)cos(nx)dx=0\int_{-\pi}^{\pi} \sin(mx)\sin(nx)\,dx = 0 \ (m \neq n), \quad \int_{-\pi}^{\pi} \sin(mx)\cos(nx)\,dx = 0

这就是函数之间的正交性。所以不同频率 sin(x),sin(2x),sin(3x),...\sin(x), \sin(2x), \sin(3x), ... 就像二维空间中的 x 轴、y 轴——它们是不同的“方向”。

**函数怎么做“点积”?**普通向量内积 ab=iaibi\mathbf a \cdot \mathbf b = \sum_i a_i b_i,维度无限增加时求和就自然变成积分:

f,g=f(x)g(x)dx积分可以理解成无限维向量的内积\langle f, g \rangle = \int f(x)g(x)\,dx \quad \Rightarrow \quad \boxed{\text{积分可以理解成无限维向量的内积}}

这一下,傅里叶系数的公式就不神秘了。


4. 傅里叶系数 = 把函数投影到频率基底上

例如:

an=1πππf(x)cos(nx)dxa_n = \frac{1}{\pi}\int_{-\pi}^{\pi} f(x)\cos(nx)\,dx

它其实就是 anf,cos(nx)a_n \propto \langle f, \cos(nx) \rangle——把函数 ff 投影到 cos(nx)\cos(nx) 这个方向上。所以 ana_n 表示 f(x)f(x) 里面到底含有多少频率为 nn 的 cosine 成分。同理 bn=1πf(x)sin(nx)dxb_n = \frac{1}{\pi}\int f(x)\sin(nx)\,dx 就是 f(x)f(x)sin(nx)\sin(nx) 方向上的坐标。

我们平常看信号 f(t)f(t) 横轴是时间 tt,这叫时域(Time Domain)。但傅里叶告诉我们:可以换一个坐标系——新的坐标轴不是时间,而是频率。于是同一个信号变成频域表示:

时域频域 不是把信号变成另一个东西,而是换了一种坐标表示\boxed{\text{时域} \to \text{频域} \text{ 不是把信号变成另一个东西,而是换了一种坐标表示}}

一个音乐例子:钢琴同时弹 440Hz 和 880Hz,麦克风记录到的时域波形是一条非常复杂的曲线;但傅里叶变换以后,频谱上立刻看到两个尖峰(440 和 880)——傅里叶变换回答的是:“这个复杂信号到底由哪些频率组成?”


5. 从傅里叶级数到傅里叶变换,以及为什么出现复数

傅里叶级数主要处理周期函数,允许出现的频率是离散的(ω0,2ω0,3ω0,...\omega_0, 2\omega_0, 3\omega_0, ...),频谱是一根根离散的线。但如果是非周期函数,可以让周期 TT \to \infty,基本频率 ω0=2π/T0\omega_0 = 2\pi/T \to 0,离散频率点逐渐变密,最终变成连续频率。于是傅里叶级数的“求和” n\sum_n 自然变成“积分” dω\int d\omega——这就是傅里叶变换

那为什么会突然出现复数 eiωte^{-i\omega t}?其实只是为了把 sin\sincos\cos 统一起来。根据欧拉公式 eiθ=cosθ+isinθe^{i\theta} = \cos\theta + i\sin\thetaeiωte^{i\omega t} 本质上同时包含 cos(ωt)\cos(\omega t)sin(ωt)\sin(\omega t)——原本需要写“cos + sin”,现在一个 eiωte^{i\omega t} 就解决了。


6. 重新看公式:变换与逆变换

回到一开始那个公式:

F(ω)=+f(t)eiωtdt\boxed{F(\omega) = \int_{-\infty}^{+\infty} f(t)e^{-i\omega t}\,dt}

现在它已经不神秘了:eiωte^{i\omega t}频率为 ω\omega 的基函数f(t)eiωtdt\int f(t)e^{-i\omega t}dt 就是内积 / 投影。所以 F(ω)F(\omega) 实际上是“函数 f(t)f(t) 在频率 ω\omega 这个基底方向上的坐标”——也就是 f(t)f(t) 中含有多少 ω\omega 频率

傅里叶逆变换呢?既然正变换是“求坐标”,逆变换当然就是“乘回基底、重新组合、恢复原函数”:

f(t)=12π+F(ω)eiωtdωf(t) = \frac{1}{2\pi}\int_{-\infty}^{+\infty} F(\omega)e^{i\omega t}\,d\omega

本质就是 坐标×基向量恢复原向量\text{坐标} \times \text{基向量} \to \text{恢复原向量},和 v=v1e1+v2e2+\mathbf v = v_1\mathbf e_1 + v_2\mathbf e_2 + \cdots 没有本质区别。

**为什么傅里叶变换如此有用?**因为一个问题在某个坐标系里很复杂,换个坐标系可能突然变简单——时域里纠缠不清的复杂信号,到频域里结构突然清晰。


7. 推广:图像、DFT 与 FFT

图像本质上是二维函数 f(x,y)f(x,y),同样可以做二维傅里叶变换。频域里低频对应大面积颜色变化、光照、平滑结构;高频对应边缘、纹理、细节、噪声。这就是傅里叶分析在图像压缩、去噪、增强、计算机视觉、信号处理中如此重要的原因。

DFT(离散傅里叶变换):计算机无法处理连续信号,得到的是有限个采样点 x0,x1,...,xN1x_0, x_1, ..., x_{N-1},公式:

Xk=n=0N1xnei2πkn/NX_k = \sum_{n=0}^{N-1} x_n e^{-i2\pi kn/N}

不要被吓到——它仍然是在把离散信号投影到不同频率的基向量上,只是连续积分 \int 变成了离散求和 \sum还是坐标分解。

FFT(快速傅里叶变换):注意 FFT 不是另一种傅里叶变换,而是快速计算 DFT 的算法——DFT 直接计算复杂度 O(N2)O(N^2),FFT 可以降低到 O(NlogN)O(N\log N)。FFT 改变的是计算方式,不是傅里叶变换的数学目标。

Fourier Transform
   ├─ 连续情况:FT
   └─ 离散情况:DFT ──→ 快速计算 ──→ FFT

8. 统一视角:换坐标系,让隐藏的结构显现

现在把所有东西统一起来。普通线性代数:v=iaiei\mathbf v = \sum_i a_i \mathbf e_i,其中 ai=v,eia_i = \langle \mathbf v, \mathbf e_i \rangle;傅里叶分析:f(t)=F(ω)eiωtdωf(t) = \int F(\omega)e^{i\omega t}d\omega,其中 F(ω)=f(t),eiωtF(\omega) = \langle f(t), e^{i\omega t} \rangle——结构完全一致:

线性代数                傅里叶分析
Vector                  Function
选择 Basis             选择 Basis e^(iωt)
Inner Product          Inner Product
Coordinates            Spectrum
(v₁,v₂,v₃...)          F(ω)

所以傅里叶变换真正做的事情只有一句话:

把函数从“时间基底”重新表示到“频率基底”\boxed{\text{把函数从“时间基底”重新表示到“频率基底”}}

更深的理解:傅里叶变换不是“变换信号”——原信号和频谱是同一个对象的两种表示(f(t)f(t)F(ω)F(\omega)),就像三维向量在坐标系 A 是 (1,2,3)(1,2,3)、换到坐标系 B 是 (2.1,0.7,1.4)(2.1,-0.7,1.4),向量本身没有变,只是观察它的方式变了。

为什么“换坐标系”是数学中如此重要的思想?因为很多复杂问题并不是问题本身复杂,而是你选择的坐标系不合适:旋转问题用极坐标突然简单、周期信号用频域突然简单、量子力学用动量空间突然简单、矩阵用特征向量基变成对角矩阵。

复杂问题不一定需要更复杂的方法,有时候只需要换一个坐标系。傅里叶变换正是这个思想最漂亮的例子之一。


总结

如果第一次学习傅里叶变换,不要先记公式,先记住一句话:

傅里叶变换,不过就是坐标分解。

整个傅里叶体系就可以串起来:向量 → 基底 → 投影/内积 → 坐标;函数也是无限维向量 → sin/cos(或 eiωte^{i\omega t})作为新基底 → 与每个频率基底做内积 → 得到每个频率的坐标 → Fourier Transform → Frequency Spectrum。

因此:

  • 傅里叶级数:周期函数在离散频率基底上的坐标分解;
  • 傅里叶变换 FT:非周期函数在连续频率基底上的坐标分解;
  • DFT:有限离散信号的傅里叶坐标分解;
  • FFT:快速计算 DFT 的算法。

最后真正值得记住的不是公式,而是:

傅里叶变换 = 换一套基底重新观察同一个对象\boxed{\text{傅里叶变换 = 换一套基底重新观察同一个对象}}

很多时候数学所谓的“变换”,并不是把一个东西变成另一个东西,而是换一个视角,让原本隐藏的结构显现出来。


参考资料

延伸阅读

本文涉及的知识点与博客对应:

  • TimeDistill 论文笔记(多周期蒸馏:FFT → 频谱 → 冷温度 softmax → KL 对齐):TimeDistill(KDD 2026)
  • Cauvis 论文笔记(傅里叶分支:FFT 高通/相位滤波提取域不变高频结构):Cauvis(NeurIPS 2025)

在以下平台分享此文章:

上一篇
强化学习基础:从 MDP、Bellman 方程到 Monte Carlo、TD 与 Q-Learning
下一篇
知识蒸馏:为什么“小模型”可以向“大模型”学习?