
简介一份面向信号处理、数学建模及相关专业学生的三大变换手写推导笔记系统梳理傅立叶变换、拉普拉斯变换与小波变换的连续与离散形式定义。内容覆盖连续与离散傅立叶变换、单边与双边拉普拉斯变换、连续与离散小波变换共六大类公式逐条推演核心推导过程并对变量含义、适用条件与典型场景做了注释便于将频谱分析、系统响应求解和信号特征提取等知识对应起来。压缩包内仅有1个PDF文件体积12.85MB排版便于打印或平板阅读也可用于考前集中复习与课题参考。已有2250人浏览学习手写笔记保留了推导的原始思路能帮助读者建立从时域到频域、从全局到局部的完整变换认知适合用来自建知识框架或对照教材查漏补缺也可作为教学参考的提纲式辅助资料。1. 从一张草稿纸开始三种变换是怎么走到一起的傅立叶变换、拉普拉斯变换与小波变换看起来是三门课的东西但在手写推导的视角下它们是同一个操作换了三次基函数把信号分解到复指数上是傅立叶在复指数前面乘一个衰减因子是拉普拉斯把复指数换成一簇能伸缩平移的有限长波形是小波。这个视角一旦在纸面上展开很多背过的公式就不再是孤立条目而是同一套内积运算在不同条件下的特例。这篇笔记按连续傅立叶 → 离散傅立叶 → 拉普拉斯 → 小波的路径写下每一条关键推导并给出对应的数值验证代码适合正在复习信号与系统、数字信号处理或者准备面试时被问到这三种变换到底什么关系的工程师。你不需要先学完任何一门课跟着纸面上的符号一步步走最后会发现整张推导图只围绕一个核心问题用怎样的基函数去度量一个信号。2. 傅立叶变换从连续积分到 DFT 的推导主线2.1 连续傅立叶正反变换的对称性是怎么来的连续傅立叶变换的常见写法有两种一种用角频率一种用频率手写推导时最容易被符号搞混。习惯上我使用角频率版本 [ X(\omega)\int_{-\infty}^{\infty}x(t)e^{-j\omega t}dt,\qquad x(t)\frac{1}{2\pi}\int_{-\infty}^{\infty}X(\omega)e^{j\omega t}d\omega ] 反变换前面的 (1/2\pi) 不是人为规定的而是从正反变换回代过程中核函数积分逼出来的。把 (X(\omega)) 代回 (x(t)) 的表达式交换积分次序后得到 [ x(t)\int_{-\infty}^{\infty}x(\tau)\left[\frac{1}{2\pi}\int_{-\infty}^{\infty}e^{j\omega(t-\tau)}d\omega\right]d\tau ] 中括号里的积分就是狄拉克 (\delta) 函数的傅立叶积分表示 [ \frac{1}{2\pi}\int_{-\infty}^{\infty}e^{j\omega(t-\tau)}d\omega\delta(t-\tau) ] 这一步是整个对称性推导的枢纽。(\delta) 函数的筛选特性把外面的积分压成 (x(t))于是正反变换自洽。手写时最容易出现的错误是把核函数写成 (e^{j\omega t}) 与 (e^{-j\omega t}) 同号那样回代后括号里是 (e^{j\omega(t\tau)})(\delta) 函数就出现在 (t\tau) 处公式直接崩掉。提示用频率变量 (f) 书写时正反变换都没有系数代价是积分核里到处是 (2\pi f)。两套记法建议在笔记左侧固定一套不要混用。2.2 从连续到离散采样和周期延拓的推导链计算机只能处理离散点所以连续傅立叶变换必须改造。推导链上第一环是冲激串采样 [ x_s(t)\sum_{n-\infty}^{\infty}x(nT)\delta(t-nT) ] 对等式两边做连续傅立叶变换。(\delta) 函数的傅立叶变换是 1时移性质给出 (e^{-j\omega nT})于是 [ X_s(\omega)\sum_{n-\infty}^{\infty}x(nT)e^{-j\omega nT} ] 这个式子还不能直接编程。要看出它的频域结构把采样冲激串写成傅立叶级数形式 [ \sum_{n-\infty}^{\infty}\delta(t-nT)\frac{1}{T}\sum_{k-\infty}^{\infty}e^{jk\omega_s t},\quad \omega_s\frac{2\pi}{T} ] 代回采样信号的频域表达式得到教科书里那张频谱搬移图 [ X_s(\omega)\frac{1}{T}\sum_{k-\infty}^{\infty}X(\omega-k\omega_s) ] 这个公式说明采样后频谱按采样率周期化。如果原信号最高频率超过 (\omega_s/2)各周期副本叠在一起就是混叠。对应时域结论是频域采样等价于时域周期化。把有限长 (N) 点序列排在 (\omega) 轴的 (N) 个采样点上再用取主值的方式截断周期序列得到的正是离散傅立叶变换 [ X[k]\sum_{n0}^{N-1}x[n]e^{-j2\pi kn/N} ] DFT 里最容易被忽略的参数是频率分辨率 (\Delta ff_s/N)。(N) 越大(\Delta f) 越小但能覆盖的最高频率 (f_s/2) 完全由采样率决定补零只能让谱线变密不能把频率范围变大。手写推导时把这两句话写在 DFT 公式旁边比记十遍结论都牢。2.3 手推 DFT 时最值得记的 4 个性质性质公式骨架工程用途时移(x[n-m]\leftrightarrow X[k]e^{-j2\pi km/N})相位测量、延迟补偿频移(x[n]e^{j2\pi k_0 n/N}\leftrightarrow X[k-k_0])频谱搬移、调制解调卷积定理(x[n]\ast y[n]\leftrightarrow X[k]Y[k])快速卷积、系统输出Parseval 定理(\sum|x[n]|^2\frac{1}{N}\sum|X[k]|^2)能量校验、结果核对卷积定理是 DFT 性质里最长被用于工程项目的一条因为它把 (O(N^2)) 的卷积变成 (O(N\log N)) 的乘法。注意 (\frac{1}{N}) 的位置时域能量求和等于频域能量求和除以 (N)写在笔记里时很容易把 (1/N) 漏掉验证代码时一算就能发现。2.4 用一次极简 DFT 验证推导结果用 Python 手工实现 DFT 公式再和numpy.fft.fft的结果对比是对照推导是否正确的最直接手段。import numpy as np N 8 n np.arange(N) x np.cos(2 * np.pi * n / N) 1.0 # 单频 直流 X np.zeros(N, dtypecomplex) for k in range(N): X[k] np.sum(x * np.exp(-2j * np.pi * k * n / N)) X_fft np.fft.fft(x) print(np.max(np.abs(X - X_fft))) # 预期在 1e-14 量级 print(np.sum(np.abs(x)**2)) # 时域能量 print(np.sum(np.abs(X)**2) / N) # 频域能量与上一行相等这段代码把 2.3 节表格里的性质全部验证了一遍。np.fft.fft使用的指数方向是 (e^{-2\pi jkn/N})与手写 DFT 正变换一致因此误差只来自浮点舍入。最后两行打印结果验证 Parseval 定理时注意频域能量必须除以 (N)这正是表格里 (1/N) 的来处。测试信号里直流分量放在 (k0) 位置单频分量放在 (k1) 位置这正是 DFT 下标与物理频率的对应关系。3. 拉普拉斯变换收敛域与微分方程的求解骨架3.1 从傅立叶到拉普拉斯(\sigma) 是怎么被加进去的傅立叶变换要求信号绝对可积实际工程里常见的阶跃信号、斜坡信号、指数增长信号都不满足这个条件。拉普拉斯的想法是给信号先乘一个衰减因子 (e^{-\sigma t})让它在无穷远处乖乖收敛再做傅立叶变换。设 (s\sigmaj\omega)变换对写成 [ F(s)\int_{0^-}^{\infty}f(t)e^{-st}dt,\qquad f(t)\frac{1}{2\pi j}\int_{\sigma-j\infty}^{\sigmaj\infty}F(s)e^{st}ds ] 注意积分下限写成 (0^-) 而不是 (0)这个细节保证了 (t0) 处的冲激和初值条件都能被正确吸收。衰减因子的强度由 (\sigma) 决定不同信号要求的最小 (\sigma) 不同这个阈值把 (s) 平面分成可积与不可积两个区域就是收敛域。单边拉普拉斯变换的收敛域通常是一条竖线右边的半平面极点必须落在收敛域左边反变换的围线积分才有效。手写推导时把 (F(s)) 的极点画在 (s) 平面图上再把收敛域用斜线标出来比反复背右边信号对应右边收敛域可靠得多。常见误用是只记住查表结果遇到 (F(s)\frac{1}{s-a}) 时忽略 (a) 的正负对收敛域的影响这在求解微分方程时不会出错但一遇到系统稳定性判断就会踩坑。3.2 微分方程的拉普拉斯解法 5 步二阶线性常系数微分方程是拉普拉斯变换最典型的应用场景。以 [ y(t)3y(t)2y(t)u(t),\quad y(0)1,\ y(0)0 ] 为例完整流程归纳为 5 步两边取拉普拉斯变换把微分变成代数式。用微分性质 (\mathcal{L}{f}sF(s)-f(0^-)) 和 (\mathcal{L}{f}s^2F(s)-sf(0^-)-f(0^-))。代入初值。注意这里的初值必须是 (0^-) 时刻的值(0^) 时刻的值只能在解出来之后验证不能先代入。整理出 (Y(s)) 的表达式通常是有理分式。部分分式展开把每个分式对应到基本变换对。查表反变换对照初值定理验证结果。套到上面这个方程 [ s^2Y(s)-s3sY(s)-32Y(s)\frac{1}{s} ] 整理后 [ Y(s)\frac{s^23s1}{s(s1)(s2)} ] 部分分式展开后逐项反变换就能得到时域解。这 5 步里最容易出错的是第 2 步把 (y(0)) 误写成 (y(0^))导致系统响应中混入由激励直接引起的分量。手写笔记里建议在步骤旁标注先代数化后代入初值。3.3 拉普拉斯变换的常用性质表用查表加速推导性质公式备注线性(af(t)bg(t)\leftrightarrow aF(s)bG(s))叠加原理时移(f(t-t_0)u(t-t_0)\leftrightarrow e^{-st_0}F(s))仅限单边复频移(e^{at}f(t)\leftrightarrow F(s-a))收敛域整体平移微分(f(t)\leftrightarrow sF(s)-f(0^-))初值自动带入积分(\int_0^t f(\tau)d\tau\leftrightarrow F(s)/s)积分器模型卷积(f(t)\ast g(t)\leftrightarrow F(s)G(s))与傅立叶对应初值定理(f(0^)\lim_{s\to\infty}sF(s))要求极限存在终值定理(f(\infty)\lim_{s\to0}sF(s))要求极点位于左半平面微分性质是整个求解过程的基石它的推导用分部积分一次就能得到 [ \int_0^{\infty}f(t)e^{-st}dt\left.f(t)e^{-st}\right|_0^{\infty}s\int_0^{\infty}f(t)e^{-st}dtsF(s)-f(0^-) ] 边界项收敛依赖上一节说的 (\sigma) 足够大。理解这条推导之后高阶微分性质不用背反复使用分部积分即可。3.4 用符号计算校验手写结果手写部分分式展开很容易在系数上出错。用 SymPy 做符号反变换可以快速定位到底是代数整理错还是查表错。import sympy as sp s, t sp.symbols(s t) F (s**2 3*s 1) / (s * (s 1) * (s 2)) f_manual sp.exp(-t) sp.exp(-2*t) / 2 - sp.Rational(1, 2) # 手工结果 f_sympy sp.inverse_laplace_transform(F, s, t) print(sp.simplify(f_sympy - f_manual)) # 0 说明两份结果一致inverse_laplace_transform默认假设 (t0)所以输出里不带 (u(t)) 符号是正常现象。用它验证手写结果的关键技巧是先算出手写答案再让符号计算反变换两者相减化简到 0如果直接打印f_sympy会因为分支函数写法不同而看得眼花。这套对照流程也适用于拉普拉斯性质表中所有公式。4. 小波变换时频分辨率矛盾的破与立4.1 从 STFT 到小波为什么窗要可变加窗傅立叶变换STFT用固定长度的窗函数切信号窗内信号近似平稳再做傅立叶变换。窗宽决定了时间分辨率与频率分辨率之间的矛盾窗越窄时间定位越准但频率分辨率越差窗越宽则相反。海森堡不确定性原理把这种矛盾固定为 (\Delta t\cdot\Delta f\geq) 常数任何固定窗都不可能同时把两个分辨率做到任意小。小波的思路是让窗宽随频率自动伸缩。处理高频分量时把基函数压缩获得精细的时间定位处理低频分量时把基函数拉宽换取更好的频率分辨率。这个可伸缩的窗就是母小波 (\psi(t))。连续小波变换定义为 [ W(a,b)\frac{1}{\sqrt{|a|}}\int_{-\infty}^{\infty}x(t)\psi^*\left(\frac{t-b}{a}\right)dt ] 其中 (a) 是尺度参数控制伸缩(b) 是平移参数控制位置。母小波需要满足两个条件一是零均值 (\int\psi(t)dt0)保证它像波而不是直流二是容许条件 (C_\psi\int_0^{\infty}\frac{|\Psi(\omega)|^2}{\omega}d\omega\infty)保证能从变换结果反变换回原信号。手写推导时记住这两条就能解释为什么用正弦波做母小波不成立——正弦波零均值但不衰减容许条件积分发散。4.2 尺度 (a) 与频率 (f) 的换算关系尺度参数不直接等于频率但工程中经常需要把尺度轴标成频率轴。对中心频率为 (f_c) 的母小波尺度 (a) 对应的伪频率近似为 [ f_p\frac{f_c}{a\cdot T} ] 其中 (T) 是采样周期。这个公式的直观含义尺度越大母小波拉得越宽振荡越慢对应频率越低尺度越小母小波压得越窄对应频率越高。尺度 (a)母小波形态频率范围分辨率侧重(a1)压缩高频时间分辨率优(a1)原始中心频率附近均衡(a1)拉伸低频频率分辨率优用 PyWavelets 或自己写卷积时scales数组的选择会直接决定频率轴分布。常见做法是取对数等间隔的尺度序列这样伪频率轴接近线性。写笔记时把 (f_c/(a\cdot T)) 算一次具体数值放在公式旁边比抽象的字母推导更容易在日后回想起来。4.3 离散小波与滤波抽取结构连续小波变换冗余度很高离散化时通常不直接离散 (a,b)而是取二进网格 (a2^j,\ bk\cdot 2^j)。对应的离散小波变换每做一级就把信号拆成一个近似分量和一个细节分量近似分量保留低频主轮廓细节分量保留高频细节。Mallat 算法把这一步实现成两组滤波器低通滤波器 (h[n]) 和高通滤波器 (g[n])滤波后各抽取一半样本。输入长度 (N) 的序列经过一级分解变成两个长度 (N/2) 的序列下一级只对近似分量继续分解得到 (N/4)。这个半子带滤波加抽取的结构是理解小波包和压缩算法的基础。手写推导时建议画一棵两层分解树把每层的系数长度标在边上一眼就能看出总系数长度不变。4.4 一个最小 CWT 快速复现不借助小波库用卷积也能逼近连续小波变换import numpy as np fs 200.0 t np.linspace(0, 2, int(2 * fs), endpointFalse) x np.sin(2 * np.pi * 5 * t) np.sin(2 * np.pi * 40 * t) def morlet_t(t, fc1.0): return np.exp(-np.abs(t)**2 / 2) * np.cos(2 * np.pi * fc * t) scales np.arange(1, 60, 0.5) W np.zeros((len(scales), len(x))) for i, a in enumerate(scales): w morlet_t(t / a) w w / np.sqrt(np.sum(w**2)) # 简易归一化 W[i, :] np.convolve(x, w, modesame) peak_scale W[:, 1000].argmax() print(scales[peak_scale])这里用实值 Morlet 小波做模板t / a实现尺度伸缩modesame保证输出长度与输入一致。归一化采用能量归一化来替代理论式中的 (1/\sqrt{|a|})工程上够用但与严格定义有差别严格 CWT 的归一化是 (1/\sqrt{|a|})能量归一化适合只关心相对峰值的场景。这段代码跑出的峰值尺度能够反映信号中主频率成分用来校验手写推导中尺度大对应频率低的结论足够直观。5. 用矩阵观点把三类变换收进一份手写笔记5.1 三类变换的同一性坐标变换从线性代数角度重看三类变换会得到一个极其简明的统一表述变换的本质就是求信号在某个基函数集合上的坐标。傅立叶以复指数为基拉普拉斯以带衰减的复指数为基小波以伸缩平移的有限长波形为基。DFT 的基函数数量有限可以显式写成矩阵 [ F_{kn}e^{-j2\pi kn/N},\quad k,n0,1,\dots,N-1 ] 把信号写成列向量 (x)DFT 就是矩阵乘法 (XFx)。拉普拉斯和小波因为基函数连续矩阵概念推广成积分核。这个视角在笔记页边画一个三行的小表即可分别是基函数、参数、正交性。写笔记时把每种变换的定义公式放在同一张纸的同一高度逐项对照基函数形式很快能看出拉普拉斯只是傅立叶的核多乘了 (e^{-\sigma t})而小波则是完全换了一套有限支撑的基。5.2 笔记页结构左推导右验证底部留白手写推导笔记最常见的失败原因是不够结构化公式散落在页面上复习时无法快速定位。一页纸里可以划分三个区域上半部分写定义和推导链右栏留出约四分之一宽度记录物理含义和典型工程对应底部画一条隔离线专门用来写验证结果和错题。物理含义栏里写时移在频域是相位旋转这类一句话结论错题区记录推导过程中出现过的符号错误例如逆变换系数 (1/N) 漏掉、拉普拉斯初值应该用 (0^-)、小波母函数忘了做零均值检验。这样复习时只看右栏和底部就能回忆起整页内容。5.3 五种快速验证推导的方法验证方法操作能抓到的错误逆变换回代把变换结果代回反变换公式化简正反变换系数不一致极限情况让 (x(t)\delta(t))、(x(t)u(t))基函数定义错误能量守恒对 DFT 检查 Parseval 等式(1/N) 位置错误初值终值定理从 (F(s)) 算 (f(0^)) 与 (f(\infty))初值代错、收敛域判断失误查表对照与符号计算或标准表逐项比对部分分式展开系数的符号错误极限情况是成本最低的手段(\delta(t)) 的傅立叶变换应当恒等于 1其拉普拉斯变换也等于 1小波变换则等于母小波在零点附近的行为。任何一步推导做完都能用这三条结果在草稿纸上做秒级自检。把五种方法固定成一套笔记边角上的例行检查清单每次推导完成后按顺序过一遍比单独背性质表更容易发现笔误。手写公式的价值正在于每一次笔尖停顿都会逼你回答这一步为什么成立而验证清单负责在回答完之后确认你没骗自己。本文还有配套的精品资源点击获取