FFT(快速傅里叶变换)是信号处理领域最重要的算法之一。从 MP3 压缩到 5G 通信,从医学 MRI 成像到地震数据分析,FFT 无处不在。

但提到傅里叶变换,很多人第一反应是积分公式和复数运算。这篇文章换个角度,从直觉出发理解 FFT 到底在做什么。

一个简单的例子:听出音乐的”颜色”

想象你听到一段音乐。你的耳朵实际上在同时接收多个频率的声音——鼓的节奏是低频,人声是中频,镲片是高频。

傅里叶变换做的就是:把一个混合信号,分解成不同频率成分的集合

就像白光是所有颜色的混合,棱镜能把白光分解成彩虹。FFT 就是信号处理里的”棱镜”,把时域信号分解成频谱。

时域 vs 频域

横轴纵轴你能看到什么
时域时间幅度信号随时间如何变化
频域频率幅度信号包含哪些频率成分

同一个信号,两种视角,同等重要。

比如一段 Chirp 信号(频率从低到高变化):

  • 在时域上看,波形越来越密
  • 在频域上看,能量从低频到高频扫过

本站的 Chirp 信号发生器 可以实时生成 Chirp 信号并显示频谱图,在页面上调节参数就能直观看到时域和频域的关系。

FFT 是怎么工作的(不要怕)

FFT 的数学原理可以简单理解为:

  1. 取一段信号(比如 1024 个采样点)
  2. 用一组不同频率的标准正弦波和这段信号做”比对”
  3. 如果某个频率匹配,就会得到一个较大的”响应值”
  4. 所有频率的响应值组合起来就是频谱

FFT 的巧妙之处在于,它用分治策略把传统 DFT 的 O(N²) 计算量降到了 O(N log N),让实时频谱分析成为可能。

频谱图怎么看

频谱图通常长这样:

  • 横轴:频率(Hz),从左到右逐渐升高
  • 纵轴:幅度(dB 或线性值),越高表示该频率的能量越强

常见模式:

  • 单根竖线:单一频率的正弦波(纯净音调)
  • 多个尖峰:多个频率成分(和弦/谐波)
  • 宽而平滑的峰:噪声或非周期信号
  • 从低到高的扫频:Chirp 信号

几个重要的频谱概念

采样定理(Nyquist):采样率必须至少是信号最高频率的两倍。比如 44.1kHz 的音频可以表示最高 22.05kHz 的声音。

频率分辨率:Δf = 采样率 / FFT 点数。点数越多,频率分辨率越高,但计算量也越大。

频谱泄露:当信号频率不是 FFT 分辨率的整数倍时,能量会”泄露”到相邻频率。加窗函数(如汉宁窗、布莱克曼窗)可以减弱这种效应。

和本站工具的联动

本站的 Chirp 信号发生器 是理解 FFT 最好的入门工具:

  • 选择线性调频模式,观察频谱如何随时间变化
  • 切换指数调频模式,对比两种调频方式的频谱差异
  • 调节起始频率和终止频率,看频谱范围如何变化
  • 使用方波/三角波/锯齿波,观察谐波结构

实际操作五分钟,比读十篇文章都管用。打开工具,生成一段 Chirp 信号,看看频谱上发生了什么。