算法与数据结构 / 傅里叶变换 · 从入门到精通 / 旋转的向量:复指数 e^(iθ) 待审核 3 / 7
e^(iθ) · 几何心脏

旋转的向量:复指数 e^(iθ)

换一个视角。正弦和余弦实为同一件事的两个影子——一个匀速旋转的向量。欧拉公式把它写成一行:

eiθ=cosθ+isinθe^{i\theta} = \cos\theta + i \sin\theta

eiθe^{i\theta} 是复平面单位圆上的一个点,θ 增大它就逆时针转。它的实部(水平影子)= cos,虚部(竖直影子)= sin。让它以频率 f 旋转 (θ = 2πf·t),竖直影子随时间画出的,正是一条正弦波。这就是为什么傅里叶用 eiθe^{i\theta} 而不是 sin\sincos\cos——一个旋转向量,同时装下了振幅(长度)、频率(转速)、相位(起始角)。

左边是旋转向量(圈),右边是它的竖直影子随时间扫出的波。切到「本轮叠加」模式:把好几个不同转速的向量首尾相接(像行星的本轮 epicycle),笔尖画出的就是复杂波形——这正是傅里叶级数中方波展开的几何版本。

图 1-1 · 旋转向量与它的竖直影子。可切到本轮叠加模式,把若干不同转速的向量首尾相接,笔尖画出的即复杂波形。

为什么这是「心脏」?傅里叶级数的复数形式 f(t)=kckeikωtf(t) = \sum_k c_k e^{i k \omega t},现在有了画面:每一项是一个转速为 k 倍、长度为 ck\lvert c_k \rvert、起始角为 ck\angle c_k 的旋转向量;把它们首尾相接,笔尖就描出 f(t)。求傅里叶系数 = 反过来问「该用哪些转速、各多长、从哪个角度起转」。DFT 做的就是这个「反求」。

一个关键直觉(在 DFT 一页展开)。想知道信号里有没有「频率 f」的成分?把信号缠绕在一个以 f 转动的圆上,看缠出来的图形质心有没有偏离原点——偏得越远,说明该频率的能量越强。DFT 就是把这件事对每个频率算一遍。