免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

信号与系统公式记忆:三大变换与卷积核心技巧

信号与系统公式记忆:三大变换与卷积核心技巧 1. 背景与核心概念为什么信号公式总是记不住信号与系统Signals and Systems是通信、电子、控制、人工智能等方向的必修课也是考研专业课中的“硬骨头”。很多同学反馈公式太多、太杂傅里叶变换、拉普拉斯变换、Z变换、卷积、冲激响应……每个都有一堆性质和变换对死记硬背不仅效率低还容易混淆。其实信号公式的“难”不是因为它本身复杂而是因为缺乏系统性理解。公式之间是有内在联系的傅里叶变换是拉普拉斯变换在虚轴上的特例Z变换是离散域下的拉普拉斯变换卷积可以借助变换域简化。一旦你理解了这些关系很多公式就不再需要死记而是可以“推导出来”。本文的目标是帮你建立信号公式的“知识树”用最少的记忆量覆盖最常用的变换对和性质同时给出实战中的记忆技巧和典型例题。无论你是考研冲刺还是做项目开发需要回顾信号基础读完这篇文章你都会对信号公式有一个更清晰、更牢固的掌握。2. 环境准备与版本说明本文以信号与系统考研大纲中的经典内容为基础不依赖特定编程环境。但为了方便读者验证公式和计算部分示例会使用 Python 的numpy和matplotlib进行数值模拟。如果你的目标是考研可以跳过代码部分直接看公式推导和记忆方法。操作系统不限Windows / macOS / Linux 均可编程语言Python 3.8核心库numpy, matplotlib, scipy可选用于傅里叶变换验证推荐 IDEJupyter Notebook 或 VS Code如果读者没有安装 Python也可以直接看公式和图不影响理解。3. 核心公式体系拆解从三大变换到卷积3.1 连续时间傅里叶变换CTFT最核心的变换对傅里叶变换将时域信号映射到频域是所有信号分析的基础。考研中需要记住的变换对并不多关键是理解其对称性、线性、时移、频移等性质。标准变换对表必背时域信号 (x(t))频域信号 (X(j\omega))备注冲激函数 (\delta(t))1最基础直流 (1)(2\pi \delta(\omega))注意系数复指数 (e^{j\omega_0 t})(2\pi \delta(\omega - \omega_0))频率搬移矩形脉冲 (\text{rect}(t/\tau))(\tau \text{sinc}(\omega\tau/2))常用(\text{sinc}(x)\sin(x)/x)三角脉冲 (\Lambda(t/\tau))(\frac{\tau}{2} \text{sinc}^2(\omega\tau/4))卷积性质单边指数 (e^{-at}u(t), a0)(\frac{1}{aj\omega})常用双边指数 (e^{-at})高斯函数 (e^{-t^2})(\sqrt{\pi} e^{-\omega^2/4})自相似阶跃函数 (u(t))(\frac{1}{j\omega}\pi\delta(\omega))注意冲激项记忆技巧不要把每个变换对分离记忆。例如冲激函数和直流是“对偶”的矩形脉冲的频域是 sinc 函数而 sinc 函数的时域又是矩形脉冲对称性。利用这种对称性记住一个另一个自然得出。性质记忆口诀“线性时移频移对称只能记一半时域卷积频域乘尺度反转要小心。”3.2 拉普拉斯变换引入收敛域解决不收敛问题傅里叶变换要求信号绝对可积很多工程信号如增长指数、阶跃函数不满足这一条件。拉普拉斯变换通过引入衰减因子 (e^{-\sigma t})把信号变成可积形式从而将频域扩展为复频域 (s\sigmaj\omega)。考研必背的拉普拉斯变换对时域信号 (x(t))拉普拉斯变换 (X(s))收敛域 (ROC)(\delta(t))1全 (s) 平面(u(t))(1/s)(\text{Re}(s)0)(e^{-at}u(t))(1/(sa))(\text{Re}(s)-a)(t e^{-at}u(t))(1/(sa)^2)(\text{Re}(s)-a)(\sin(\omega_0 t)u(t))(\omega_0/(s^2\omega_0^2))(\text{Re}(s)0)(\cos(\omega_0 t)u(t))(s/(s^2\omega_0^2))(\text{Re}(s)0)(e^{-at}\sin(\omega_0 t)u(t))(\omega_0/[(sa)^2\omega_0^2])(\text{Re}(s)-a)重点收敛域ROC是拉普拉斯变换与傅里叶变换最大的区别。如果没有ROC反变换可能不唯一。例如(1/s) 对应的时域可能是 (u(t)) 也可能是 (-u(-t))取决于 ROC 是右半平面还是左半平面。考研中通常只考虑因果信号右半平面。实用技巧记住几个基本变换对其余可以通过 s 域微分、积分、时移等性质推导。例如(t e^{-at}u(t)) 可以通过对 (1/(sa)) 求导得到。3.3 Z变换离散域的拉普拉斯推广Z变换是离散时间信号与系统的数学工具与拉普拉斯变换在形式上高度相似。把连续域的 (s) 换成 (z)(e^{-at}) 换成 (a^n)就可以得到大部分变换对。考研必背的Z变换对时域序列 (x[n])Z变换 (X(z))收敛域 (ROC)单位冲激 (\delta[n])1全 (z) 平面单位阶跃 (u[n])(z/(z-1))((a^n u[n])(z/(z-a))((n a^n u[n])(a z/(z-a)^2)((\sin(\omega_0 n)u[n])(\frac{z\sin\omega_0}{z^2-2z\cos\omega_01})((\cos(\omega_0 n)u[n])(\frac{z(z-\cos\omega_0)}{z^2-2z\cos\omega_01})(记忆技巧对比拉普拉斯变换中的 (1/(sa)) 对应 (e^{-at}u(t))在Z变换中 (z/(z-a)) 对应 (a^n u[n])。注意形式上 (s) 和 (z) 不是直接替换但结构类似。另外Z变换的时移性质需要特别注意右移一位乘以 (z^{-1})左移一位乘以 (z)需要考虑初始条件。3.4 卷积时域与变换域的核心运算卷积是信号与系统中最重要的运算之一它描述了系统对输入信号的响应。时域卷积对应频域或 s 域、z 域的乘积这一性质大大简化了计算。连续卷积公式[ y(t) x(t) * h(t) \int_{-\infty}^{\infty} x(\tau) h(t-\tau) d\tau ]离散卷积公式[ y[n] x[n] * h[n] \sum_{k-\infty}^{\infty} x[k] h[n-k] ]记忆与计算技巧卷积的物理意义系统输出的每一点都是输入信号加权累加的结果权重就是系统的冲激响应。计算时建议先用图解法翻转、平移、相乘、积分理解熟练后可以用公式直接计算。对于有限长序列卷积结果的长度 输入长度 系统长度 - 1。4. 完整实战案例用Python验证傅里叶变换的性质仅仅记住公式是不够的能动手验证才能真正理解。下面我们通过 Python 来演示傅里叶变换的时移性质、频移性质以及卷积定理帮助你把公式“活”起来。4.1 创建项目结构我们创建一个简单的 Python 脚本signal_fourier_demo.py或者使用 Jupyter Notebook。目录结构如下signal_formula_demo/ ├── signal_fourier_demo.py └── requirements.txtrequirements.txt内容numpy1.20 matplotlib3.4 scipy1.74.2 添加依赖与配置在 Python 环境中安装依赖pip install numpy matplotlib scipy4.3 编写核心代码我们以矩形脉冲为例计算其傅里叶变换并验证时移性质和频移性质。# signal_fourier_demo.py import numpy as np import matplotlib.pyplot as plt from scipy import signal # 1. 定义矩形脉冲函数 def rect(t, tau1.0): 宽度为 tau 的矩形脉冲以 t0 为中心 return np.where(np.abs(t) tau/2, 1.0, 0.0) # 2. 参数设置 fs 1000 # 采样频率 (Hz) T 4 # 总时长 (s) t np.linspace(-T/2, T/2, int(fs*T), endpointFalse) tau 1.0 # 矩形宽度 # 原始信号 x rect(t, tau) # 计算傅里叶变换数值近似 # 使用 scipy 的 fft注意频率轴 X np.fft.fft(x) / len(x) # 归一化 freq np.fft.fftfreq(len(t), d1/fs) # 只保留正频率 half len(freq)//2 X_mag np.abs(X[:half]) freq_pos freq[:half] # 理论频谱tau * sinc(omega * tau / 2) - tau * sinc(pi * f * tau) omega 2 * np.pi * freq_pos X_theory tau * np.sinc(omega * tau / (2 * np.pi)) # numpy.sinc 是 sin(pi x)/(pi x) # 绘图 plt.figure(figsize(12, 5)) plt.subplot(1,2,1) plt.plot(t, x, b, linewidth2) plt.title(矩形脉冲时域 (tau1s)) plt.xlabel(t (s)) plt.grid(True) plt.subplot(1,2,2) plt.plot(freq_pos, X_mag, r, label数值FFT) plt.plot(freq_pos, np.abs(X_theory), k--, label理论公式, linewidth2) plt.title(频谱幅度) plt.xlabel(f (Hz)) plt.legend() plt.grid(True) plt.tight_layout() plt.show()4.4 运行与验证运行上述脚本你会看到数值FFT的结果与理论 sinc 曲线几乎完全重合。这验证了矩形脉冲的傅里叶变换公式的正确性。预期输出两个子图左边是时域矩形脉冲右边是频域幅度谱数值结果与理论曲线高度吻合。4.5 实验结果说明通过这个简单的例子我们不仅验证了公式还直观地看到了“时域有限频域无限”的特点矩形脉冲时域是有限长的但频域是无穷宽的 sinc 函数能量主要集中在主瓣内。这一性质在通信系统带宽分析中非常重要。你可以进一步修改代码测试时移特性把矩形脉冲向右平移频谱会乘以一个线性相位因子 (e^{-j\omega t_0})或者测试频移特性将频谱搬移时域乘以复指数。这些练习可以帮助你从“死记公式”变成“活学活用”。5. 常见问题与排查思路5.1 傅里叶变换与拉普拉斯变换的系数混淆问题现象常见原因解决思路傅里叶变换中 (1 \leftrightarrow 2\pi\delta(\omega)) 的系数记不清没有区分角频率 (\omega) 与赫兹频率 (f)记住若用 (f)(1 \leftrightarrow \delta(f))若用 (\omega)(1 \leftrightarrow 2\pi\delta(\omega))。拉普拉斯变换中 (u(t)) 的变换写成 (1/s) 但忘记ROC忽略了收敛域的重要性因果信号 ROC 是 (\text{Re}(s)0)非因果信号可能不同。拉普拉斯变换与傅里叶变换关系混淆傅里叶是拉普拉斯在虚轴上的特例若信号拉普拉斯变换的收敛域包含虚轴则令 (sj\omega) 得到傅里叶变换。5.2 Z变换中时移性质容易出错问题现象常见原因解决思路右移序列的Z变换少了初始条件忽略了双边Z变换与单边Z变换的差异单边Z变换右移后需要减去初始值公式(x[n-k] \leftrightarrow z^{-k}X(z) \sum_{m0}^{k-1} x[m-k]z^{-(m)}) 。考研中通常只考虑因果序列此时 (x[n]0) 对于 (n0)公式简化为 (z^{-k}X(z))。5.3 卷积计算时积分限和求和限搞错问题现象常见原因解决思路连续卷积计算时积分上下限取错对信号的定义域不清晰先画出两个信号翻转后平移确定重叠区域。离散卷积结果长度算错忘记公式有限长序列 (x) 长度 (N)(h) 长度 (M)卷积结果长度 (NM-1)。6. 最佳实践与工程建议6.1 建立“公式关系网”而非“公式库”不要试图孤立地记住每一个变换对。你可以在一张纸上画出关系图傅里叶变换 - 拉普拉斯变换通过引入衰减因子拉普拉斯变换 - Z变换通过双线性变换或冲激响应不变法卷积 - 变换域乘法三大变换都满足这一性质当你需要推导一个不熟悉的变换对时先从已知的变换对出发利用性质微分、积分、时移、频移、尺度变换等推导。例如要计算 (t e^{-at}u(t)) 的拉普拉斯变换你只需要记住 (e^{-at}u(t)) 的变换然后对 (s) 求导或使用 s 域微分性质。6.2 利用对称性减少记忆量傅里叶变换具有对偶性若 (x(t) \leftrightarrow X(j\omega))则 (X(t) \leftrightarrow 2\pi x(-j\omega))。利用这一性质可以成对记住公式。例如已知矩形脉冲的频谱是 sinc 函数则 sinc 脉冲时域为 sinc 函数的频谱是矩形函数。对称性在考研中经常被用来出题掌握它事半功倍。6.3 注意工程中的归一化与采样频率在实际工程中如使用 Python 的 FFT采样频率 (f_s) 和采样点数 (N) 决定了频率分辨率 (\Delta f f_s / N)。FFT 的结果需要归一化除以 (N)才能得到正确的幅度谱。另外频谱的横轴需要从 FFT 的索引转换为实际频率否则会与理论公式对应不上。这一点在代码中已经体现。6.4 安全边界不要随意修改系统参数在编写代码验证信号公式时注意时域信号的采样率要满足奈奎斯特采样定理否则会出现混叠。例如矩形脉冲的频谱理论上无限宽但实际采样时只能截取有限带宽可能产生微小误差。对于考研笔试不需要考虑这些细节但在实际项目如数字信号处理、通信系统设计中必须引起重视。6.5 可维护性将常用变换对封装成函数如果你经常需要计算信号变换可以将常用变换对封装成函数方便调用。例如def laplace_exp(a, t_domaincontinuous): 返回 e^{-at}u(t) 的拉普拉斯变换表达式 (字符串形式) return f1/(s{a}), fRe(s) {-a} def z_transform_an(a): 返回 a^n u[n] 的 Z 变换 return fz/(z-{a}), f|z| |{a}|当然考试中不能带代码但编写这样的函数可以加深你对公式的记忆。7. 总结与学习路线本文从信号与系统考研的核心公式入手系统讲解了傅里叶变换、拉普拉斯变换、Z变换以及卷积的基本概念、变换对和性质。通过一个 Python 实战案例验证了矩形脉冲的傅里叶变换公式帮助你从“死记硬背”转向“理解验证”。你从本文学到的关键点三大变换的内在联系傅里叶是拉普拉斯在虚轴上的特例Z变换是离散域的拉普拉斯。每种变换必须关注收敛域ROC否则变换不唯一。卷积是时域与变换域之间的桥梁利用变换域乘法可以简化系统分析。利用对称性、性质推导可以大幅减少公式记忆量。下一步建议如果考研建议找一套真题针对每个公式进行单独练习特别是由变换求原信号的反变换题。如果做项目开发可以继续学习数字信号处理DSP中的离散傅里叶变换DFT和快速傅里叶变换FFT以及滤波器设计。如果想深入理解可以阅读经典教材《信号与系统》奥本海姆或《离散时间信号处理》奥本海姆。最后如果你觉得这份公式手册对你有帮助可以收藏备用或者分享给同样在考研复习的同学。动手验证一遍比单纯看十遍效果更好。希望你在信号与系统上取得好成绩
返回列表