☰
傅里叶变换从入门到工程应用:公式推导、核心性质与常见坑点全解析
2026/10/1 4:01:11 网站建设 项目流程

1. 傅里叶变换到底在干什么

做信号处理这些年,我见过太多人一上来就背公式,背完就忘,忘了再背,最后碰到实际问题还是不知道怎么用。傅里叶变换这个工具其实没那么玄乎,它做的事情用一句话就能说清楚:把一个信号从时间维度掰开,看看它里面到底由哪些频率成分组成。

打个比方,你面前有一碗汤,你喝一口能尝出里面有盐、有胡椒、有葱花的味道,但很难说清楚每种调料各放了多少克。傅里叶变换干的事情,就是把这碗汤里的每种调料单独提取出来,告诉你每种成分的含量。放在信号里,就是把一段波形拆成一个个不同频率的正弦波,再告诉你每个频率的幅度有多大、相位是什么。

这个概念之所以重要,是因为绝大多数实际信号在时间轴上看起来杂乱无章,但变换到频率域之后,特征一下就清晰了。比如音频信号,时域波形密密麻麻看不出门道,但一进频域,哪个频率是主音、哪个频率是噪声、哪个频率是共振峰,一目了然。这也是为什么语音识别、音乐分析、振动检测、图像处理这些领域全都建立在傅里叶变换的基础上。

这篇文章面向的读者,是正在学信号与系统、数字信号处理、通信原理的在校学生,或者是工作中需要用到频谱分析、滤波器设计但基础不牢的工程师。我尽量把公式、定义、推导和记忆方法串成一条线来讲,让那些"背了又忘"的公式真正变成你自己的东西。

提示:这篇文章会涉及一些数学推导,但我尽量把每一步为什么这么做讲清楚,而不是只摆一堆公式让你自己看。数学工具只是手段,理解背后的物理含义才是目的。

2. 从傅里叶级数到傅里叶变换:概念的完整梳理

2.1 傅里叶级数:周期信号的频率拆解

要理解傅里叶变换,先从傅里叶级数说起。傅里叶级数解决的是周期信号的问题:任何一个满足狄利克雷条件的周期信号,都可以分解成一系列谐波关系的正弦信号的叠加。

数学表达是这样的,对于一个周期为 T 的周期信号 f(t),可以写成:

[ f(t) = a_0 + \sum_{n=1}^{\infty} [a_n \cos(n\omega_0 t) + b_n \sin(n\omega_0 t)] ]

其中 \(\omega_0 = 2\pi / T\) 是基波角频率,\(a_0\) 是直流分量,\(a_n\) 和 \(b_n\) 是各次谐波的系数。用欧拉公式把三角函数换成复指数形式,可以写得更简洁:

[ f(t) = \sum_{n=-\infty}^{\infty} F_n e^{jn\omega_0 t} ]

这里的 \(F_n\) 是复数形式的傅里叶系数,它同时包含幅度和相位信息。求 \(F_n\) 的公式是:

[ F_n = \frac{1}{T} \int_{T} f(t) e^{-jn\omega_0 t} dt ]

注意这里积分区间是任意一个周期长度 T,从 0 到 T 或者从 -T/2 到 T/2 都可以,结果一样。

这里有个关键点:周期信号的频谱是离散的。也就是说,周期信号只包含基波频率 \(\omega_0\) 的整数倍频率分量,频谱图上是一根根离散的谱线,相邻谱线之间的间隔就是 \(\omega_0\)。这个离散性很重要,后面理解傅里叶变换的连续频谱时,就是从这个离散谱"极限化"来的。

2.2 从周期到非周期:傅里叶变换的引入思路

现实世界里,真正严格意义上的周期信号其实是很少的。一段语音、一张照片、一次地震波,都是非周期信号。那非周期信号能不能做频率分析?傅里叶变换回答的就是这个问题。

思路是这样的:把一个非周期信号当成周期 T 趋向无穷大的周期信号来看。T 变大,基波频率 \(\omega_0 = 2\pi / T\) 变小,谱线间距变小,谱线越来越密。当 T 趋向无穷大时,离散的谱线就变成了连续的频谱。

这个极限过程在数学上这么操作:令 \(F_n\) 乘以 T,得到 \(F_n T\),当 T 趋向无穷大时,\(F_n T\) 趋向一个有限值,记为 \(F(j\omega)\)。把 \(n\omega_0\) 替换为连续变量 \(\omega\),离散求和 \(\sum\) 变成连续积分 \(\int\)。这样,原有周期信号的傅里叶级数就演化成了非周期信号的傅里叶变换对:

[ F(j\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} dt ]

[ f(t) = \frac{1}{2\pi} \int_{-\infty}^{\infty} F(j\omega) e^{j\omega t} d\omega ]

第一个式子叫傅里叶正变换,把时域信号 \(f(t)\) 变到频域,得到的就是频谱密度函数 \(F(j\omega)\);第二个式子叫傅里叶逆变换,把频域函数变回时域信号。

这里有个细节值得注意:为什么正变换没有系数,逆变换却有 \(1/2\pi\)?因为变量替换时 \(d\omega = 2\pi / T\) 引入了这个因子。这个系数分配不是唯一的,有的教材习惯在正逆变换各放 \(1/\sqrt{2\pi}\),这样形式更对称。不同教材定义不同,但不管怎么分配,正逆变换的乘积必须是 \(1/2\pi\)。这是最容易踩坑的地方,后面我会专门讲。

2.3 傅里叶变换存在的条件

不是所有信号都能做傅里叶变换,数学上要求信号满足狄利克雷条件,简单说有三个要求:

  • 信号绝对可积,也就是 \(\int_{-\infty}^{\infty} |f(t)| dt\) 是有限值
  • 在任何有限区间内,极值点数量有限
  • 在任何有限区间内,间断点数量有限,且间断点处函数值有限

实际工程中,大部分物理上能产生的信号都满足这些条件。但有几个特殊信号并不绝对可积,比如常数信号、阶跃信号、符号函数,它们仍然有傅里叶变换,只不过要用到冲激函数 \(\delta(t)\) 来表示。比如常数 1 的傅里叶变换是 \(2\pi \delta(\omega)\),含义是这个信号只包含 0 频率分量,直流分量无限集中。这类广义傅里叶变换在工程上非常有用,尤其是分析系统频响和调制信号的时候。

傅里叶变换的本质是一个线性积分变换,它把信号分解成无数个频率连续变化、幅度无穷小的复指数信号的叠加。严格来说。傅里叶变换的结果是"频谱密度",单位是信号单位/赫兹。这个过程要求信号绝对可积,但对于包含冲激或常数的信号,我们可以通过引入广义函数来扩展定义域。

2.4 傅里叶变换的物理意义

问一个很多初学者都会问的问题:变换到频域之后,那个 \(F(j\omega)\) 到底是个什么东西?

首先,\(F(j\omega)\) 是复数,所以它有实部和虚部,也可以写成模和相角的形式:

[ F(j\omega) = |F(j\omega)| e^{j\varphi(\omega)} ]

\(|F(j\omega)|\) 叫幅度谱,表示频率 \(\omega\) 处的分量大小;\(\varphi(\omega)\) 叫相位谱,表示该频率分量的相位偏移。幅度谱告诉我们"哪些频率成分占比大",相位谱告诉我们"这些频率成分在时间上怎么对齐"。很多场景下,幅度谱的信息更直观,所以经常只画幅度谱。但相位信息同样关键,比如图像里相位谱包含大量结构信息,只保留幅度谱反变换回去,图像基本看不出原貌。

用不用 \(1/2\pi\) 其实是习惯问题,但一定要保持一致,否则正逆变换不配套,还原信号就会差一个倍数。这个我在实际帮人排查代码的时候遇到过很多次,后面问题排查部分会专门说。

在工程上,\(F(j\omega)\) 的物理意义可以理解为:这个信号通过一个中心频率为 \(\omega\) 的理想窄带滤波器之后的输出强度。这样理解的话,傅里叶变换本质上就是"用一堆窄带滤波器去扫频,测每个频率点的能量"。

3. 傅里叶变换公式体系整理:常用变换对与性质

3.1 八大基本性质

傅里叶变换有八个基本性质,做题和推导变换对基本全靠它们。这里列一张表,把每个性质的时域表达式和频域结果放在一起,方便对照记忆。

性质时域表示频域结果典型应用场景
线性\(af(t) + bg(t)\)\(aF(j\omega) + bG(j\omega)\)叠加信号分析
时移\(f(t - t_0)\)\(F(j\omega) e^{-j\omega t_0}\)信号延迟分析
频移\(f(t) e^{j\omega_0 t}\)\(F(j(\omega - \omega_0))\)调制解调基础
尺度变换\(f(at)\)\(\frac{1}{a
对偶性\(F(t)\)\(2\pi f(-\omega)\)推导新变换对
时域卷积\(f(t) * g(t)\)\(F(j\omega) G(j\omega)\)线性系统分析
频域卷积\(f(t) g(t)\)\(\frac{1}{2\pi} F(j\omega) * G(j\omega)\)乘法调制分析
时域微分\(d^n f / dt^n\)\((j\omega)^n F(j\omega)\)微分方程求解

这几个性质里,时域卷积对应频域乘积是最重要的一条,也是我平时用得最多的。线性时不变系统的输出等于输入和单位冲激响应的卷积,变换到频域就变成了乘法,这就是为什么频域分析方法在系统分析里如此高效——卷积运算复杂度高,乘法则简单得多。

时移和频移是一对对偶关系:时域延迟导致频域乘上一个相位因子,频域搬移导致时域乘上一个复指数。这个对应关系记住一边,另一边就很好推。

尺度变换性质值得多说两句,它反映了一个"时频对偶"的直觉:信号在时域压缩(a > 1),频域就展宽;时域展宽(0 < a < 1),频域就压缩。这和我们日常听声音的经验一致:一个短促的"啪"声(时域窄),频率成分丰富,听起来很"宽";一个持续的长音(时域宽),频率成分单一,听起来很"尖"。所谓"短促即宽带,绵长即窄带",这个直觉在信号处理里非常有用。

3.2 常见信号的傅里叶变换对

下面这些变换对是基本功,建议能默写出来。不用死记硬背,理解推导过程之后自然就记住了。

时域信号傅里叶变换说明
\(\delta(t)\)1冲激函数的频谱是平坦的
1\(2\pi \delta(\omega)\)直流信号的频谱只在零频处
\(\delta(t - t_0)\)\(e^{-j\omega t_0}\)相移特性
\(e^{j\omega_0 t}\)\(2\pi \delta(\omega - \omega_0)\)单频复指数信号
\(\cos(\omega_0 t)\)\(\pi[\delta(\omega - \omega_0) + \delta(\omega + \omega_0)]\)余弦信号两根谱线
\(\sin(\omega_0 t)\)\(j\pi[\delta(\omega + \omega_0) - \delta(\omega - \omega_0)]\)正弦信号带相位移除
\(\operatorname{sgn}(t)\)\(2/(j\omega)\)符号函数
\(u(t)\)\(\pi \delta(\omega) + 1/(j\omega)\)阶跃函数
\(e^{-at}u(t), a>0\)\(1/(a + j\omega)\)单边指数衰减
\(e^{-a|t|}, a>0\)\(2a/(a^2 + \omega^2)\)双边指数衰减
矩形脉冲(门函数)\(A\tau \operatorname{Sa}(\omega \tau / 2)\)Sa函数形式
三角脉冲\(A\tau \operatorname{Sa}^2(\omega \tau / 2)\)Sa函数的平方
\(\operatorname{Sa}(\omega_c t)\)\(\frac{\pi}{\omega_c} \cdot \text{门函数}\)时频对偶的体现

3.3 重要公式和符号的解释

表格里出现的 \(\operatorname{Sa}(x) = \sin(x)/x\),也叫抽样函数或辛格函数,是傅里叶变换里出现频率最高的函数。当 \(x = 0\) 时,\(\operatorname{Sa}(0) = 1\);当 \(x = n\pi\)(n 为非零整数)时,\(\operatorname{Sa}(x) = 0\)。这个函数在 \(x = 0\) 处取最大值,然后以衰减振荡的形式向两边扩散,过零点等间隔分布。

矩形脉冲和三角脉冲的变换对必须重点掌握,因为后面学采样定理、匹配滤波器、数字通信里的升余弦脉冲都用得到。而且这两个变换对之间存在一个非常巧妙的联系,这个联系就是记忆三角脉冲变换的最佳方法,我放到第 5 节专门讲。

还有一个容易混淆的地方:\(\operatorname{Sa}(x)\) 和 \(\operatorname{sinc}(x)\) 的区别。有的教材定义 \(\operatorname{sinc}(x) = \sin(\pi x) / (\pi x)\),有的定义 \(\operatorname{sinc}(x) = \sin(x) / x\)。不同教材定义不同,做题前先看清楚是哪个约定。不过这不影响原理,就是差一个 \(\pi\) 的尺度因子。

4. 傅里叶变换的核心推导:从定义式到常用变换

4.1 矩形脉冲的傅里叶变换推导全过程

拿矩形脉冲(门函数)练手是最直观的,因为它直接套定义式就能算出来,步骤短,而且结果是后面很多复杂信号的基础。

矩形脉冲定义为:在 \(|t| \leq \tau/2\) 区间内幅度为 A,其他位置为 0。代入傅里叶正变换定义:

[ F(j\omega) = \int_{-\tau/2}^{\tau/2} A e^{-j\omega t} dt ]

这个积分是复指数函数在一个对称区间上的积分,直接把上下限代进去:

[ F(j\omega) = A \cdot \frac{e^{-j\omega t}}{-j\omega} \bigg|_{-\tau/2}^{\tau/2} = A \cdot \frac{e^{-j\omega \tau/2} - e^{j\omega \tau/2}}{-j\omega} ]

用欧拉公式 \(\sin(x) = (e^{jx} - e^{-jx}) / (2j)\) 化简:

[ e^{-j\omega \tau/2} - e^{j\omega \tau/2} = -2j \sin(\omega \tau / 2) ]

代回去:

[ F(j\omega) = A \cdot \frac{-2j \sin(\omega \tau / 2)}{-j\omega} = A \cdot \frac{2 \sin(\omega \tau / 2)}{\omega} = A \tau \cdot \frac{\sin(\omega \tau / 2)}{\omega \tau / 2} = A \tau \operatorname{Sa}(\omega \tau / 2) ]

推导的关键在于最后一步:分子分母同时配一个 \(\tau/2\),凑出 \(\operatorname{Sa}\) 函数的形式。这个配凑技巧值得记一下,因为后面几乎所有含 \(\sin\) 的变换结果,最后都要走这一步。

4.2 从定义推导三角脉冲的变换

三角脉冲定义为在 \(|t| \leq \tau\) 区间内,幅度从 0 线性升到 A 再线性降回 0。直接套定义式要分段积分,稍微繁琐,但能算。用定义式来推,三角脉冲的表达式是:

[ f(t) = \begin{cases} A(1 - \frac{|t|}{\tau}) & |t| \leq \tau \ 0 & |t| > \tau \end{cases} ]

因为函数是偶函数,\(e^{-j\omega t} = \cos(\omega t) - j\sin(\omega t)\),其中 \(\sin\) 部分是奇函数在对称区间积分为零,所以只剩下余弦部分:

[ F(j\omega) = \int_{-\tau}^{\tau} A(1 - \frac{|t|}{\tau}) \cos(\omega t) dt = 2A \int_{0}^{\tau} (1 - \frac{t}{\tau}) \cos(\omega t) dt ]

这个积分用分部积分能算出来,过程比较长,中间要用两次分部积分。最终结果是:

[ F(j\omega) = A\tau \operatorname{Sa}^2(\omega \tau / 2) ]

也就是说,三角脉冲的频谱是矩形脉冲频谱的平方。这个"平方"关系不是巧合的,而是因为三角脉冲可以看成两个矩形脉冲的卷积——时域卷积对应频域乘积,两个矩形卷积得到三角波,所以频谱就是矩形频谱乘矩形频谱,也就是 \(\operatorname{Sa}^2\)。这个关系就是记忆三角脉冲变换的关键线索。

4.3 为什么 1/(a + jω) 是单边指数衰减信号的频谱

单边指数衰减信号 \(e^{-at}u(t)\)(a > 0)的傅里叶变换是 \(1/(a + j\omega)\),这个式子很多人背了,但不理解为什么出来一个复数分母。

直接代入定义:

[ F(j\omega) = \int_{0}^{\infty} e^{-at} e^{-j\omega t} dt = \int_{0}^{\infty} e^{-(a + j\omega)t} dt ]

因为 a > 0,\(e^{-(a+j\omega)t}\) 在 t 趋向无穷时趋向 0,所以:

[ F(j\omega) = \frac{e^{-(a + j\omega)t}}{-(a + j\omega)} \bigg|_{0}^{\infty} = \frac{1}{a + j\omega} ]

结果的实部 \(a / (a^2 + \omega^2)\) 是偶函数,虚部 \(-\omega / (a^2 + \omega^2)\) 是奇函数。这个结构在幅频曲线上表现为一个低通特性:频率越高,幅度越小。a 越大,信号衰减越快,频谱越宽。这里又体现了"时域越窄,频域越宽"的规律。

有意思的是,当 a 趋向 0 时,\(e^{-at}u(t)\) 趋向 \(u(t)\),而 \(1/(a + j\omega)\) 在极限下并不简单等于 \(1/(j\omega)\),因为在 \(\omega = 0\) 处会积出一个冲激。这正是为什么阶跃信号的频谱是 \(\pi\delta(\omega) + 1/(j\omega)\),而不是单独的 \(1/(j\omega)\)。理解这个极限过程,才能看懂教材里为什么阶跃函数的频谱带了一个冲激项。

4.4 傅里叶变换与傅里叶级数的关系总结

把整个概念链条串起来看,傅里叶级数和傅里叶变换的关系可以总结成三句话:

  • 傅里叶级数适用于周期信号,频谱是离散的谱线
  • 傅里叶变换适用于非周期信号,频谱是连续的曲线
  • 周期信号同样可以做傅里叶变换,结果是一串冲激函数,冲激的位置在谐波频率处,强度正比于对应傅里叶级数系数的 \(2\pi\) 倍

周期信号和非周期信号的频谱关系,本质是从离散到连续的极限过渡。掌握了这条线,很多琐碎的公式就不再是孤立的散点,而是一棵有主干有枝叶的知识树。

5. 信号与系统视角:用对偶性和卷积理解"频谱平方"

5.1 三角脉冲变换的记忆方法:用自卷积建立直观

前面提到,三角脉冲可以看成两个矩形脉冲的卷积。这个结论是怎么来的?直接看图就知道:一个宽度为 \(\tau\) 的矩形脉冲和自己做卷积,卷积结果就是一个底边宽度为 \(2\tau\)、顶点幅度为原来的宽度乘以高度(A·τ)的三角形。如果你在草稿纸上画一遍两个矩形的卷积过程——把一个矩形翻转、平移、和另一个矩形逐点相乘再积分——你会发现重叠面积随位移量先线性增大再线性减小,画出来就是三角形。

这个几何直觉比记公式持久得多。而且有了这个关系,三角脉冲的傅里叶变换不用做积分,直接用两个已知结果相乘:

  • 矩形脉冲 \(g(t)\) 的傅里叶变换:\(G(j\omega) = A\tau \operatorname{Sa}(\omega \tau / 2)\)
  • 三角脉冲 \(f(t) = g(t) * g(t)\)
  • 时域卷积 → 频域乘积,所以 \(F(j\omega) = G(j\omega) \cdot G(j\omega) = A\tau \operatorname{Sa}^2(\omega \tau / 2)\)

一次乘法就出来了,完全不用算那个繁琐的分部积分。

实操心得:遇到需要记忆的傅里叶变换对,优先找它和已知变换对之间的卷积、微分、积分关系,比死记硬背快得多,也不容易忘。这是我给学生讲课时反复强调的思路。

5.2 利用对偶性从一个变换对得到另一个

对偶性是傅里叶变换里最容易被忽略却非常好用的性质。它的数学表述是:

如果 \(f(t)\) 的傅里叶变换是 \(F(j\omega)\),那么 \(F(t)\) 的傅里叶变换是 \(2\pi f(-\omega)\)。

这句话看着抽象,用起来是真方便。比如已经知道矩形脉冲的变换是 \(\operatorname{Sa}\) 函数,利用对偶性,立刻可以得到 \(\operatorname{Sa}\) 函数的变换是矩形脉冲。这就不需要再单独算一遍积分了。

工程上有个经典例子:理想低通滤波器的频响是一个矩形函数(门函数),利用对偶性,它的单位冲激响应就是 \(\operatorname{Sa}\) 函数形式。反过来,时域里一个 \(\operatorname{Sa}\) 形状的脉冲,它的频谱就是矩形。这正是"频域有限"和"时域无限"之间的不可调和矛盾——理想低通滤波器在时域是非因果的,物理上无法实现,只能近似。理解这个对偶关系之后,你就明白为什么实际滤波器设计都是在"频域陡峭度"和"时域拖尾长度"之间做折中了。

5.3 帕塞瓦尔定理:时域能量等于频域能量

帕塞瓦尔定理说的是信号在时域的总能量等于频域的总能量,数学形式是:

[ \int_{-\infty}^{\infty} |f(t)|^2 dt = \frac{1}{2\pi} \int_{-\infty}^{\infty} |F(j\omega)|^2 d\omega ]

这个公式工程意义很直接:你可以在时域算信号能量,也可以在频域算,哪个方便用哪个。比如算一个带通信号的能量,时域积分可能很复杂,但在频域只在通带范围内对 \(|F(j\omega)|^2\) 积分就行。

\(|F(j\omega)|^2\) 还有个专门名字叫能量谱密度,表示单位频率上的能量分布。在通信系统里,计算信号经过滤波器后的残余能量、评估带外辐射等场景,靠的就是这个定理。

6. 常见问题与排查技巧:傅里叶变换的坑我都替你踩过了

6.1 频域图形画不对:忽略了负频率

初学的时候画频谱图,很容易只画正频率部分,把负频率忽略掉。但傅里叶变换的频谱定义在整个实频率轴上,负频率不是"没有意义",而是实信号频谱必须满足共轭对称性的直接结果。

对于实信号,\(F(-j\omega) = F^*(j\omega)\),意思是幅度谱是偶函数,相位谱是奇函数。所以画幅度谱时,负频率部分只是正频率部分的镜像。很多人觉得负频率是数学上的虚构,但实际上在分析调制信号、希尔伯特变换、采样混叠等问题时,负频率部分是不能丢的。比如实信号 \(\cos(\omega_0 t)\) 的频谱在 \(\omega_0\) 和 \(-\omega_0\) 处各有一根谱线,丢掉负频率部分,信息的完整性就破坏了。

6.2 正逆变换系数配错了

不同教材里傅里叶变换的系数有不同约定。有的正逆都是 \(1/\sqrt{2\pi}\),有的正变换是 1、逆变换是 \(1/2\pi\),还有的按频率 f 而不是角频率 \(\omega\) 来定义。这个没有对错,但混用就容易出问题。

我之前帮人调试过一段频谱分析代码,波形重建之后幅度整体小了一半,查了半天发现是代码里的逆变换少乘了 \(1/2\pi\)。这种错误特别隐蔽,因为图形形状都正常,只是幅度不对。排查方法是拿一个已知信号做正反变换,比如一个幅度为 1 的直流信号(或者一个冲激),看恢复出来是否还是原来的幅度。这个自检步骤一定要养成习惯。

6.3 信号频率和角频率搞混

工程上习惯用频率 f(单位 Hz),数学推导里常用角频率 \(\omega = 2\pi f\)(单位 rad/s)。这两者之间差一个 \(2\pi\),很容易在写程序的时候搞混。

举个实际例子:一个 100 Hz 的正弦信号,用角频率表示是 \(\omega = 200\pi\)。如果在代码里直接用 \(2\pi \times 100\) 去生成信号,但变换公式里用的是 \(e^{-j\omega t}\),那么 \(\omega\) 必须是弧度制。很多人出错是因为混用了 MATLAB 或 Python 库里的不同函数:有的库用 Hz 为频率单位,有的用 rad/s。解决办法是写代码时统一在文件开头注释清楚"本文件所有频率变量均使用角频率单位"或者"均使用 Hz",然后在调用库函数时按文档要求换算。

6.4 数值计算的离散化问题

用计算机做傅里叶变换,用的不是连续傅里叶变换,而是离散傅里叶变换(DFT),以及它的快速算法 FFT。这两者之间有本质区别:连续 FT 的积分区间是无穷区间,DFT 的求和区间是有限长度;连续 FT 的频谱是连续函数,DFT 的输出是离散采样点。

这就带来两个典型问题:

一是频谱泄漏。对一段有限长信号做 DFT,等效于先把无限长信号乘以一个矩形窗,时域相乘对应频域卷积,矩形窗的 \(\operatorname{Sa}\) 频谱会和原始频谱卷积,于是本应集中在某根谱线上的能量泄漏到了旁边的频率点。解决思路是改用窗函数(汉宁窗、海明窗等),减小主瓣宽度和旁瓣泄漏的权衡。

二是混叠。采样率不够高时,高频分量会折叠到低频区,频谱形状被污染。根据奈奎斯特采样定理,采样率必须大于信号最高频率的两倍。实际工程中,前端要加抗混叠滤波器,把高于采样率一半的频率成分先滤掉。

这两个问题是数字信号处理里的核心问题,任何用 FFT 做频谱分析的人都会遇到。如果你在做实际工程,建议深入学一下窗函数的选择和采样率的设计——这些细节决定了你的分析结果是否可靠。

6.5 理想的频域理解 vs. 实际可观测的频谱

很多初学的人总觉得傅里叶变换的结果是"精确的",但实际工程中,你永远不会直接看到连续傅里叶变换的完整结果。你看到的是:

  • 有限长采样序列的 DFT
  • 加窗后的频谱
  • 量化噪声叠加后的频谱

所以我在实际工作中,拿到一个频谱图,第一反应不是看它长什么样,而是先问:采样率多少?采样点数多少?用了什么窗?这几件事直接决定了频谱图的可信度。忽略这些前提直接解读频谱,很容易得出错误结论。

7. 傅里叶变换有什么用:应用场景梳理

7.1 信号滤波与系统分析

线性时不变系统的核心分析方法就是傅里叶变换。系统的频率响应 \(H(j\omega)\) 是单位冲激响应 \(h(t)\) 的傅里叶变换,输入信号的频谱 \(F(j\omega)\) 乘以 \(H(j\omega)\) 就是输出信号的频谱。这个熟悉的流程能起作用,靠的正是时域卷积定理。

设计滤波器时,你直接在频域角度看问题:要保留哪些频率、滤掉哪些频率、过渡带多宽、阻带衰减多少。这些指标天然是频域概念,只有在频域才能直观地讨论和优化。

7.2 通信调制解调

调制解调的本质就是频率搬移。基带信号频谱搬移到高频载波附近传输,接收端再搬回来。这个过程在频域用频移性质看就是频谱的左右平移。为什么各种调制方式(AM、FM、QPSK、OFDM)可以用统一的框架分析?因为核心都是傅里叶变换的频移性质在起作用。

OFDM(正交频分复用)更是直接利用了 DFT/IDFT 来实现多载波调制,发送端把数据映射成频域符号,用 IFFT 变回时域发送,接收端用 FFT 解调回来。没有快速傅里叶变换的高效实现,OFDM 根本无法工程化。

7.3 图像处理与压缩

二维傅里叶变换把图像从空间域变换到频率域。图像中平缓变化的区域对应低频分量,边缘和细节对应高频分量。JPEG 压缩就是利用了这个特点:变换到频域后,对高频分量进行更粗糙的量化,对低频分量保留更精细的精度,实现高压缩比的同时让视觉失真尽量小。

图像滤波同样在频域做更直观:高通滤波保留边缘、锐化图像;低通滤波平滑图像、去噪;带通滤波提取特定纹理。这些操作在频域就是一乘一除的事情,回到空间域就是各种卷积模板。

7.4 音频处理与机器学习特征

音频信号处理里,短时傅里叶变换(STFT)是最常用的工具。语音、音乐这类信号是时变的,直接对整个信号做一次傅里叶变换只能得到全局频率成分,丢失了时间信息。STFT 的做法是把信号分帧,对每一帧做傅里叶变换,得到频率随时间变化的二维图谱——也就是频谱图。语音识别和音乐信息检索里的梅尔频谱特征,就是在 STFT 基础上进一步变换得到的。

从这个角度看,傅里叶变换不只是数学工具,它是整个现代信号处理体系的底层基础设施。不管你是做通信、音频、图像还是控制,最终都会碰到它。

8. 给初学者的几个学习建议

先抓主线,再补细节。傅里叶变换的主线是"周期信号的傅里叶级数 → 周期趋于无穷 → 非周期信号的傅里叶变换 → 性质与常见变换对"。把这根主线理清楚,其他内容都是这根线上的分支。

性质表不用死记,用多了自然记住。我第一次教学生的时候,让他们把每个性质用时域和频域的对照画出来,然后自己推一遍常见变换对。推过三遍之后,这些公式就变成了直觉反应,比看十遍书都管用。

配套做仿真实验。用 Python 或者 MATLAB 写几个简单实验:生成一个正弦波加噪声,做 FFT 看频谱;设计一个低通滤波器,看滤波前后的时域和频域变化。书本上抽象的概念,放到实际信号上观察一次,印象会非常深刻。

遇到公式推导卡住了,先放一放,回头把微积分里分部积分和欧拉公式复习一遍。傅里叶变换的推导用到的高等数学基础其实不多,主要就是复变函数里的欧拉公式 \(e^{jx} = \cos x + j\sin x\)、分部积分、以及极限运算。把这些工具练熟了,推导过程基本就没有障碍。

最后再分享一个我自己的习惯:每次算完一个傅里叶变换的题目,我都会顺手画一下幅度谱的草图,标注主瓣宽度、过零点位置和旁瓣衰减趋势。这个习惯帮我建立了很多直观感觉,后期做工程时很多判断都是靠这些草图瞬间完成的。你也试试,会有收获的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询