信号与系统这门课,真正开始“劝退”的地方就是第三章。很多同学前两章还能靠看课本例题撑过去,一到傅里叶变换就开始犯晕:e^{-j\omega t} 到底是从哪里冒出来的?积分区间为什么是负无穷到正无穷?频谱为什么画出来是连续曲线?题目稍微一变,公式就套不上了。这篇文章打算换一种方式,把第三章的考点、公式、题型和解法全部拆开讲,按“知识框架 -> 公式性质 -> 典型例题 -> 计算验证 -> 易错排查”的顺序来,目标是让零基础同学在考前也能快速建立一套能做题的框架,冲击 90+。
如果你的教材第三章不是傅里叶变换,而是拉普拉斯变换或者 Z 变换,下面很多思想依然通用:用复指数分解信号、用性质化简积分、用变换对加卷积定理做题,这些方法论可以原样迁移。本文以最常见的“连续时间傅里叶变换”为主线展开,离散傅里叶分析会在后面单独说明。
先说结论:第三章的高分重点不是背公式,而是建立“性质优先、定义兜底、画图验证”的做题习惯。下面直接进入正文。
1. 第三章核心能力速览
先把这章要掌握的东西摆成一张表。你不需要一次看懂所有内容,但第一轮复习结束后,应该能对照这张表检查自己的漏洞。
| 知识模块 | 考试常见要求 | 典型题型 | 常见失分点 |
|---|---|---|---|
| 傅里叶变换定义 | 会用定义求简单信号频谱 | 求矩形脉冲、指数信号的频谱 | 积分区间写错、漏掉负号、漏掉归一化系数 |
| 傅里叶变换性质 | 熟练使用性质推导频谱 | 时移、频移、尺度、卷积定理 | 尺度变换系数写错、时移相位符号搞反 |
| 常见变换对 | 能写出核心信号的变换结果 | 冲激、常数、阶跃、符号函数、矩形脉冲 | 常数和冲激的对偶关系记反 |
| 周期信号的傅里叶变换 | 理解谱线到冲激串的转换 | 求周期信号频谱 | 忘记乘 2π 或 π 系数 |
| 帕斯瓦尔定理 | 会用频域计算信号能量 | 求信号能量、功率谱 | 积分区间和系数出错 |
| 频谱图绘制 | 会画幅度谱和相位谱 | 判断信号通过滤波器后的频谱 | 幅度谱出现负值、相位谱不连续时不知道怎么处理 |
不同学校考纲侧重不同,有的重点考性质推导,有的重点考系统响应求解。第一遍复习时,先把上表“常见失分点”这一列过一遍,后面的性质表、变换对表、例题逐项补上即可。
2. 适用场景与学习边界
第三章的学习者可以分成三类:
第一类是期末速成,离考试还有一周到十天,需要快速拿到 75 到 90 分。这类同学的核心任务是抓住题型套路,优先掌握性质表、常用变换对、卷积定理和系统响应求解,证明题可以先放一放。
第二类是考研第一轮复习,需要把公式来源和性质推导理解扎实。考研题比期末题更看重概念辨析,比如“周期信号的傅里叶变换是否存在”“吉布斯现象是什么”“抽样定理为什么要求带限信号”。这类同学不要跳过推导,尤其要搞清楚尺度变换和对偶性。
第三类是重修或零基础,最需要的是先建立整体框架,再逐个击破。此时不要直接扑到题目上,先把“分解信号”这个直觉建立起来。
学习边界也要说清楚:这门课不是数学分析课,傅里叶变换的严格数学基础需要泛函分析,但课程考试不会要求你证明 L1 空间里的收敛性。你只需要掌握工程视角的计算方法即可。另外,有些学校允许带公式纸,有些闭卷。如果不确定,按最严格的情况准备:所有公式都自己推导一遍。
3. 前置知识与环境准备
第三章的数学门槛比前两章高,但并不可怕。真正卡住你的通常是高数里的积分能力,而不是信号系统的概念本身。
3.1 数学基础
需要熟练掌握的知识点清单:
- 欧拉公式:e^{j\theta}=\cos\theta+j\sin\theta,以及 \cos\theta=\frac{1}{2}(e^{j\theta}+e^{-j\theta})、\sin\theta=\frac{1}{2j}(e^{j\theta}-e^{-j\theta})。
- 分部积分法:例如 \int u,dv=uv-\int v,du。
- 广义积分:形如 \int_0^{+\infty} e^{-at},dt=\frac{1}{a}(a>0)。
- 三角恒等式:积化和差、倍角公式。
- 复数的模和相位:|a+jb|=\sqrt{a^2+b^2},\angle(a+jb)=\arctan\frac{b}{a}。
如果分部积分不熟练,这一章很多题会卡在积分那一步。建议先找三道高数分部积分题练手,再开始信号与系统。
3.2 验证工具环境
做题时经常会出现“我算出来的频谱是 \frac{\tau}{2} Sa(\omega\tau/2),但课本写的是 \tau Sa(\omega\tau/2),到底谁对”的问题。这时候最好用计算工具验证一下。最小配置是 Python:
pip install numpy matplotlib如果你已经装了 Anaconda,直接使用 Jupyter Notebook 即可。MATLAB 也行,但 Python 更轻量,也方便后面做信号处理实验。下面第 7 节会给两个验证例子。
4. 知识框架搭建:从“分解信号”角度理解傅里叶变换
很多同学学第三章觉得公式又多又杂,是因为没有理解傅里叶变换到底在做什么。先把这个核心逻辑搞清楚,后面所有公式都是它的展开。
4.1 傅里叶变换要解决什么问题
任何满足条件的非周期信号 x(t),都可以看成无穷多个不同频率的复指数信号 e^{j\omega t} 的加权叠加。每个频率对应的加权系数就是 X(j\omega)。
换句话说,傅里叶变换把“时间上的信号”换成了“频率上的分布”。时域里一条波形,频域里变成一条连续曲线。X(j\omega) 越大,说明这个频率成分在原始信号里占的比重越大。
这个概念理解了,就能自然地接受为什么矩形脉冲的频谱是一条 Sa 函数曲线:矩形脉冲在开关切换时产生高频分量,所以频谱不会只集中在零频附近,而是向两侧衰减延伸。
4.2 正变换与逆变换
连续时间傅里叶变换的正变换公式:
X(j\omega)=\int_{-\infty}^{+\infty}x(t)e^{-j\omega t},dt
逆变换公式:
x(t)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}X(j\omega)e^{j\omega t},d\omega
注意两个细节:
- 正变换的指数是 e^{-j\omega t},逆变换是 e^{j\omega t},符号别搞反。
- 逆变换前面有因子 \frac{1}{2\pi},正变换没有。很多题目的答案相差一个 2\pi,就是这里漏了。
4.3 傅里叶变换存在的条件
严格说法是信号需要满足狄利克雷条件,并且绝对可积:
\int_{-\infty}^{+\infty}|x(t)|,dt<\infty
但是引入冲激函数 \delta(t) 之后,很多不满足绝对可积的信号(比如常数、阶跃、正弦)也有广义傅里叶变换。所以考试里一般不需要你死抠收敛条件,只要会用冲激处理特殊信号即可。
4.4 常见信号的傅里叶变换对
这张表是刷题的基础,建议考前默写一遍。
| 时域 x(t) | 频域 X(j\omega) | 备注 |
|---|---|---|
| \delta(t) | 1 | 冲激函数频谱均匀覆盖所有频率 |
| 1 | 2\pi\delta(\omega) | 对偶关系,注意带 2\pi |
| u(t) | \pi\delta(\omega)+\frac{1}{j\omega} | 阶跃信号,广义函数 |
| \text{sgn}(t) | \frac{2}{j\omega} | 符号函数 |
| 矩形脉冲 \text{rect}(t/\tau) | \tau,\text{Sa}\left(\frac{\omega\tau}{2}\right) | \text{Sa}(x)=\frac{\sin x}{x} |
| 单边指数 e^{-at}u(t),a>0 | \frac{1}{a+j\omega} | 常用 |
| 双边指数 e^{-a | t | },a>0 |
| 冲激串 \sum_{n=-\infty}^{\infty}\delta(t-nT) | \frac{2\pi}{T}\sum_{k=-\infty}^{\infty}\delta(\omega-k\omega_0) | 周期信号对应冲激串 |
其中“常数 1 的傅里叶变换是 2\pi\delta(\omega)”是高频考点。很多同学只记住“冲激的变换是 1”,忘记对偶过来还有一个 2\pi。考试时这道题一旦出现,就是送分题,别丢。
5. 核心性质与解题套路
性质表是第三章最重要的工具。拿到一道频谱题,先看能不能用性质化简,再用定义硬算。
5.1 傅里叶变换性质表
| 性质 | 时域表示 | 频域表示 | 说明 |
|---|---|---|---|
| 线性 | ax(t)+by(t) | aX(j\omega)+bY(j\omega) | 最基础 |
| 时移 | x(t-t_0) | e^{-j\omega t_0}X(j\omega) | 只改变相位,不改变幅度谱 |
| 频移 | x(t)e^{j\omega_0 t} | X(j(\omega-\omega_0)) | 调制理论基础 |
| 尺度变换 | x(at),a\ne 0 | \frac{1}{ | a |
| 对偶性 | X(t) | 2\pi x(-\omega) | 常用来由正变换推逆变换 |
| 时域微分 | \frac{dx(t)}{dt} | j\omega X(j\omega) | 系统微分方程求解常用 |
| 频域微分 | tx(t) | j\frac{dX(j\omega)}{d\omega} | 用于求 \int 类变换 |
| 卷积定理 | x(t)*h(t) | X(j\omega)H(j\omega) | 系统零状态响应核心 |
| 帕斯瓦尔定理 | \int_{-\infty}^{+\infty} | x(t) | ^2dt |
5.2 解题套路一:性质优先,定义兜底
考试里最考人的题,往往不是让你直接积分,而是给一个组合信号,比如 x(t)=\text{rect}(t/\tau)\cos(\omega_0 t)。如果直接套定义,要算一个包含三角函数的无穷积分,很麻烦。
正确路子是:
- 先把信号拆成基本信号的和、积、卷积。
- 查表写基本变换对。
- 用性质组合出最终频谱。
比如乘法在时域对应频域的卷积,但更常用的是先用欧拉公式把 \cos 拆成两个复指数,再用频移性质,避免直接卷积分段函数。
5.3 解题套路二:阶跃与符号函数要会拆
遇到 e^{-at}u(t) 这类单边指数,直接查表。遇到分段信号,先考虑能不能用 u(t) 或 \text{sgn}(t) 表达。
例如双边指数 e^{-a|t|} 可以拆成:
e^{-a|t|}=e^{-at}u(t)+e^{at}u(-t)
利用单边指数变换对和对称性,可以快速得到 \frac{2a}{a^2+\omega^2}。如果你只靠背记,很容易忘记这是一个实偶函数,从而漏掉“频谱是实数”这个验证条件。
5.4 解题套路三:卷积定理用于系统响应
给定系统冲激响应 h(t) 和输入 x(t),零状态响应是:
y(t)=x(t)*h(t)
时域做卷积很麻烦,频域变成乘法:
Y(j\omega)=X(j\omega)H(j\omega)
算出 Y(j\omega) 之后,再用部分分式展开和逆变换表得到 y(t)。这是第三章和第四章系统分析部分的衔接点,也是期末和考研的必考方向。
6. 典型题型分步演示
下面用四道经典题,演示完整的做题流程。
6.1 矩形脉冲的傅里叶变换
题目:求 x(t)=\begin{cases}1, & |t|\le \frac{\tau}{2}\0, & \text{otherwise}\end{cases} 的频谱。
解题思路:
直接代入正变换公式:
X(j\omega)=\int_{-\frac{\tau}{2}}^{\frac{\tau}{2}}1\cdot e^{-j\omega t},dt
先算积分:
X(j\omega)=\left.\frac{e^{-j\omega t}}{-j\omega}\right|_{-\tau/2}^{\tau/2}
代入上下限:
X(j\omega)=\frac{e^{-j\omega\tau/2}-e^{j\omega\tau/2}}{-j\omega}=\frac{2\sin(\omega\tau/2)}{\omega}
用 \text{Sa} 函数整理:
X(j\omega)=\tau\frac{\sin(\omega\tau/2)}{\omega\tau/2}=\tau,\text{Sa}\left(\frac{\omega\tau}{2}\right)
验证方法:当 \omega=0 时,X(j0)=\tau,正好等于矩形面积。这个“零频值等于时域曲线下面积”的规律,可以用来检查很多题。
6.2 单边指数信号的傅里叶变换
题目:求 x(t)=e^{-at}u(t),其中 a>0 的频谱。
代入定义:
X(j\omega)=\int_0^{+\infty}e^{-at}e^{-j\omega t},dt=\int_0^{+\infty}e^{-(a+j\omega)t},dt
计算:
X(j\omega)=\frac{1}{a+j\omega}
幅度谱:
|X(j\omega)|=\frac{1}{\sqrt{a^2+\omega^2}}
相位谱:
\angle X(j\omega)=-\arctan\frac{\omega}{a}
这道题要注意:积分下限是 0,不是负无穷,因为 u(t) 把 t<0 的部分截掉了。
6.3 调制信号的频谱:矩形脉冲乘以余弦
题目:求 x(t)=\text{rect}(t/\tau)\cos(\omega_0 t) 的频谱。
思路:
用欧拉公式展开:
\cos(\omega_0 t)=\frac{1}{2}\left(e^{j\omega_0 t}+e^{-j\omega_0 t}\right)
所以:
x(t)=\frac{1}{2}\text{rect}(t/\tau)e^{j\omega_0 t}+\frac{1}{2}\text{rect}(t/\tau)e^{-j\omega_0 t}
对第一项用频移性质:
\text{rect}(t/\tau)e^{j\omega_0 t}\leftrightarrow \tau,\text{Sa}\left(\frac{(\omega-\omega_0)\tau}{2}\right)
对第二项同理,最后合并:
X(j\omega)=\frac{\tau}{2}\left[\text{Sa}\left(\frac{(\omega-\omega_0)\tau}{2}\right)+\text{Sa}\left(\frac{(\omega+\omega_0)\tau}{2}\right)\right]
这就是幅度调制信号在频域的结果:原矩形脉冲频谱被搬移到 \pm\omega_0 两侧。这个结论在通信原理里会反复出现。
6.4 用卷积定理求系统零状态响应
题目:已知 h(t)=e^{-2t}u(t),x(t)=e^{-t}u(t),求 y(t)=x(t)*h(t)。
先求两个信号的频谱:
X(j\omega)=\frac{1}{1+j\omega},\quad H(j\omega)=\frac{1}{2+j\omega}
由卷积定理:
Y(j\omega)=X(j\omega)H(j\omega)=\frac{1}{(1+j\omega)(2+j\omega)}
部分分式展开:
\frac{1}{(1+j\omega)(2+j\omega)}=\frac{1}{1+j\omega}-\frac{1}{2+j\omega}
查表得到逆变换:
y(t)=\left(e^{-t}-e^{-2t}\right)u(t)
验证方法:当 t=0 时,y(0)=0,符合两个因果信号卷积后仍因果的性质。当 t\rightarrow+\infty 时,y(t)\rightarrow 0,也符合直觉。
7. 使用 Python 验证频谱结果
背十遍公式,不如用代码算一遍。下面用两个方式验证矩形脉冲的频谱。
7.1 方法一:直接数值积分近似正变换
思路:用足够密的采样点近似连续积分,在感兴趣的频率点逐一计算 X(j\omega) 的近似值。
import numpy as np import matplotlib.pyplot as plt fs = 20000 tau = 0.004 t = np.arange(-0.01, 0.01, 1 / fs) x = np.where(np.abs(t) <= tau / 2, 1, 0) f = np.linspace(-2000, 2000, 1001) X = np.array([ np.sum(x * np.exp(-1j * 2 * np.pi * fi * t)) / fs for fi in f ]) plt.figure(figsize=(9, 4)) plt.plot(f, np.abs(X)) plt.xlabel('f / Hz') plt.ylabel('|X(j2πf)|') plt.title('矩形脉冲频谱(数值积分近似)') plt.grid(True) plt.show()这里用 \frac{1}{fs} 近似 dt。采样率越高,结果越接近理论值。理论频谱中心值应该等于矩形面积 \tau=0.004,也就是 4ms,运行后看纵轴峰值是否在 0.004 附近。
7.2 方法二:用 FFT 快速验证
如果想用更快的算法,直接用 numpy.fft:
N = 2048 t = np.linspace(-0.01, 0.01, N) x = np.where(np.abs(t) <= tau / 2, 1, 0) X = np.fft.fftshift(np.fft.fft(x)) freq = np.fft.fftshift(np.fft.fftfreq(N, d=t[1] - t[0])) plt.figure(figsize=(9, 4)) plt.plot(freq, np.abs(X) / N) plt.xlabel('f / Hz') plt.ylabel('|X(j2πf)| / N') plt.title('矩形脉冲频谱(FFT)') plt.grid(True) plt.show()FFT 的结果需要除以 N 做归一化,因为 FFT 本身带一个求和因子。做验证时,重点看波形形状是否接近 Sa 函数,以及主瓣位置和宽度是否合理。
这两段代码对计算资源要求极低,普通笔记本跑起来不到一秒,不用担心性能问题。如果后续要验证更复杂的信号,例如调制信号、卷积结果,都可以用同样思路扩展。
8. 常见错误与排查方法
做题时最怕的不是不会做,而是算错之后不知道错在哪里。下面这张表整理了第三章最常见的错误。
| 问题表现 | 可能原因 | 排查思路 | 解决方案 |
|---|---|---|---|
| 频谱结果和课本差一个系数 | 逆变换漏了 \frac{1}{2\pi} 或变换对系数记错 | 检查用的是正变换还是逆变换 | 把常见变换对表再默写一遍 |
| 尺度变换题算错 | 忘记除以 |a| 或者忘记对 \omega 缩放 | 代入 a=1 检查是否还原原式 | 用 x(2t) 和 x(t/2) 各算一次,对比 |
| 时移后相位符号搞反 | e^{-j\omega t_0} 和 e^{+j\omega t_0} 混淆 | 用 t_0>0 的简单信号代入验证 | 记住“时域右移,频域乘负相位” |
| 调制信号频谱分布不对 | 把矩形脉冲频谱和余弦频谱混用 | 分别画出 cos 频谱和矩形频谱再合并 | 先拆复指数,再用频移性质 |
| 分段函数积分区间写错 | 没有结合 u(t) 或 rect 的窗口范围 | 先写清楚 x(t) 非零区间,再积分 | 每道定义题第一步先画信号波形 |
| 周期信号频谱漏冲激 | 直接用非周期信号公式去算 | 思考信号是否满足绝对可积 | 周期信号频谱必须用傅里叶级数系数转冲激串 |
| 幅度谱出现负值 | 求模时直接取了负实部 | 用 |X(j\omega)|=\sqrt{\text{Re}^2+\text{Im}^2} | 所有幅度谱都画成非负值 |
| 卷积定理求完频域不会逆变换 | 部分分式展开不熟练 | 先检查分母能否因式分解 | 练习一次部分分式逆变换套路 |
自查时还有一个通用技巧:对结果做极限检查。比如 \omega=0 时,非周期信号频谱应该等于信号时域积分;t=0 时,逆变换结果应该等于频域积分除以 2\pi。这些边界条件能快速暴露大部分计算错误。
9. 刷题路线与高分策略
最后聊聊考前怎么落地。不同基础的同学可以采用不同的刷题路线。
9.1 零基础快速入门路线(约 5 到 7 天)
第一阶段(第 1 天):背熟欧拉公式和 5 个核心变换对:冲激、常数、阶跃、矩形脉冲、单边指数。每天默写一遍。
第二阶段(第 2 到 3 天):理解并推导性质表,至少手工推导时移、频移、尺度、卷积定理。这一阶段不要追求刷题数量,而是把每个性质的“输入输出关系”搞懂。
第三阶段(第 4 到 5 天):做 10 道综合题,覆盖:用定义求频谱、用性质求频谱、周期信号傅里叶级数转频谱、卷积定理求系统响应。每道题做完后用 Python 验证频谱形状。
第四阶段(第 6 到 7 天):限时做一套真题,重点检查失分点。把错题归类到本文第 8 节的表格里,逐一排查。
9.2 常规复习策略
如果你的基础还可以,建议把重心放在综合题上,尤其是“调制信号频谱”和“系统零状态响应”这两类。因为它们直接承接后面的滤波、采样、通信系统分析,考察频率很高。
做题时的检查顺序建议是:
- 先检查信号的因果性和时限性。
- 再检查是否能用性质代替定义。
- 算完后用 \omega=0 或 t=0 做边界验证。
- 有条件就画频谱图,看幅度谱是否关于 \omega=0 偶对称(实信号的一般规律)。
9.3 计算工具与时间效率
考试不用计算软件,但复习阶段非常建议用。遇到复杂信号,先手算,再用 Python 验证。验证代码保持在 30 行以内,不要花费太多时间调参。重点是验证“形状对不对、峰值位置对不对”,不是画一张完美的论文级插图。
10. 总结与下一步
这一章真正难的不是傅里叶变换的数学定义,而是“性质优先”的做题习惯。把常用变换对和 9 个核心性质写在同一张纸上,拿到题目先判断能不能用性质化简,再决定是否硬算定义,大部分题目都能在三到五步内解决。最容易踩的坑有两个:一个是时移和频移的相位、频率符号搞反,另一个是卷积定理做完频域乘法后不会逆变换回时域。这两个坑结合前面典型例题多练一遍,基本就能避开。
下一步建议按你的教材章节继续推进,优先看“周期信号的傅里叶级数与频谱关系”和“系统频率响应 H(j\omega)”。这两块内容直接建立在第三章的基础上,学好了,后面第四章系统分析会轻松很多。把本文的公式表、性质表、易错表保存一份,考前复盘时直接看表格即可。