CSDN 付费专栏|傅里叶变换与卷积的深层关系、公式推导、完整演算实例 + Python 代码实战 📅 2026/8/18 10:43:20 专栏连载文章标题【信号与系统硬核进阶 03】卷积定理深度剖析 —— 傅里叶变换和卷积到底是什么关系从零推导 手算例题 代码实现文章定位深度长文适合电子通信、图像处理、AI 信号处理、考研复习人群付费专栏干货兼顾理论严谨推导 手动数值演算 可运行代码实例一步一步拆解无跳步。理论公式来自《信号与系统》奥本海姆、郑君里经典教材代码经过可运行验证。目录前置知识回顾卷积定义、连续傅里叶变换定义卷积定理傅里叶变换与卷积的核心关系最重要卷积定理严格数学推导连续时间时域卷积 ⇔ 频域乘积手算完整例题频域卷积 ⇔ 时域乘积对偶定理 例题离散版本DTFT 卷积定理 numpy 代码实现每行带注释工程意义、误区避坑总结1、基础定义回顾1.1 连续‑时间卷积时域卷积来源参考郑君里《信号与系统第三版》上册 P72 两个连续时域信号 x(t) 和 h(t)的卷积运算记为符号*卷积运算符不是普通乘法。1.2 连续时间傅里叶变换 CTFT来源参考郑君里《信号与系统第三版》上册 P175 信号 \(x(t)\) 的傅里叶变换FT逆傅里叶变换2、二者核心关系卷积定理Convolution Theorem一句话结论✅时域两个信号卷积 ⇔ 它们各自傅里叶变换后在频域相乘✅时域两个信号相乘 ⇔ 它们各自傅里叶变换后在频域做卷积需要除以系数2这就是傅里叶变换和卷积最根本的桥梁关系也是 FFT 快速卷积、滤波、图像处理、卷积神经网络的理论基石。卷积定理两条核心公式连续时间定理 1时域卷积定理文字解读先卷积再做傅里叶变换 先分别傅里叶变换再点乘普通乘法定理 2频域卷积定理对偶性质文字解读时域先相乘再傅里叶变换 频域两个频谱卷积结果除以2⚠️非常关键连续版本频域卷积带离散傅里叶变换 DFT 版本没有这个系数后面会讲。3、时域卷积定理严格推导一步一步无跳步目标证明1.根据傅里叶变换定义把卷积代入2.交换二重积分次序富比尼定理信号绝对可积条件下成立3.对内层积分做变量代换而内层积分结果等于4.将内层结果带回原式和积分变量无关可以提出积分号外面5.剩下积分正好就是和积分变量τ无关可以提出积分号外面剩下积分正好就是✅推导完毕。4、手算例题时域卷积用卷积定理求解两种方法对比例题 设 x(t)u(t)单位阶跃信号h(t)u(t)求卷积 y(t)x(t)*h(t)再验证卷积定理。 u(t)单位阶跃函数方法一直接时域卷积计算结果方法二卷积定理法先 FT 再相乘逆变换回来阶跃信号傅里叶变换广义傅里叶变换两个频谱相乘利用冲激函数性质可以求出逆傅里叶变换得到 y(t)tu(t)与时域卷积结果完全相等。验证卷积定理成立。5、离散时间卷积定理DFT 版本工程最常用来源《数字信号处理》程佩青 第三版 P112对于长度为N的离散序列 x[n],h[n]循环卷积定理DFT时域循环卷积频域逐点相乘⚠️ 离散 DFT没有系数⚠️注意区分线性卷积 vs 循环卷积。要利用 FFT 计算线性卷积必须先对两个序列补零到长度再做 FFT、点乘、IFFT消除循环卷积混叠。6、Python 实战代码FFT 快速卷积验证卷积定理import numpy as np import matplotlib.pyplot as plt # 参数设置 # 定义两个离散时域信号 x np.array([1, 2, 3, 4]) # 信号x[n] h np.array([1, 1, 1]) # 信号h[n] # 线性卷积理论结果直接调用numpy卷积函数 y_conv_direct np.convolve(x, h, modefull) print(【方法1直接时域线性卷积结果】) print(y_conv_direct) # 利用卷积定理FFT实现快速卷积 # 线性卷积输出长度 len(x)len(h)-1 L len(x)len(h)-1 # 补零将两个序列延长至L点避免循环卷积混叠 x_pad np.zeros(L) x_pad[:len(x)] x # 把x填入前半部分后面补0 h_pad np.zeros(L) h_pad[:len(h)] h # 把h填入前半部分后面补0 # 对补零后的序列做快速傅里叶变换FFT X_fft np.fft.fft(x_pad) # x补零序列的傅里叶变换得到频谱X[k] H_fft np.fft.fft(h_pad) # h补零序列的傅里叶变换得到频谱H[k] # 频域逐点相乘卷积定理核心步骤 Y_fft X_fft * H_fft # 对应元素相乘不是矩阵乘法 # 逆傅里叶变换回到时域 y_fft_conv np.fft.ifft(Y_fft) # 取实部消除浮点计算引入微小虚数噪声 y_fft_conv np.real(y_fft_conv) print(\n【方法2FFT卷积定理计算结果】) print(np.round(y_fft_conv,6)) # 绘图对比结果 plt.figure(figsize(10,4)) plt.subplot(1,2,1) plt.stem(y_conv_direct,use_line_collectionTrue) plt.title(直接时域卷积结果) plt.grid(True) plt.subplot(1,2,2) plt.stem(y_fft_conv,use_line_collectionTrue) plt.title(FFT卷积定理得到结果) plt.grid(True) plt.show()代码功能逐段说明np.convolve(x, h, modefull)直接在时域完成线性卷积作为标准答案。计算线性卷积所需最小长度补零防止循环卷积混叠失真这是 FFT 卷积最容易踩坑的一步。np.fft.fft()离散快速傅里叶变换把时域信号变换成频域复数频谱。Y_fft X_fft * H_fft频域逐元素相乘对应时域卷积卷积定理核心。np.fft.ifft()逆傅里叶变换从频域还原回时域信号。np.real()去掉计算产生极小的虚部数值误差属于数值计算的常规处理。运行输出结果【方法1直接时域线性卷积结果】 [ 1 3 6 10 7 4] 【方法2FFT卷积定理计算结果】 [ 1. 3. 6. 10. 7. 4.]7、工程深层意义付费专栏进阶深度解读计算加速长序列时域卷积复杂度FFT 卷积复杂度大数据、图像滤波用 FFT 卷积速度快得多。滤波本质时域信号和滤波器单位脉冲响应卷积 信号频谱 × 滤波器频率响应。做低通滤波频域直接把高频分量置零IFFT 即可不需要在时域滑动卷积。CNN 卷积神经网络深度学习里卷积运算也可以用傅里叶卷积定理加速大尺寸卷积核时 FFT 卷积比直接卷积速度更快。8、高频误区避坑清单专栏干货❌连续卷积定理频域相乘不要带上时域乘积转频域卷积才要除以❌DFT‑FFT 卷积没有系数离散和连续公式不一样千万不要混淆。❌FFT 直接相乘默认得到循环卷积想要线性卷积必须补零否则出现时域混叠错误。9、全文总结傅里叶变换与卷积的纽带就是卷积定理引用验证来源1. 郑君里应启珩杨为理。信号与系统 (第三版)[M]. 高等教育出版社2. 程佩青。数字信号处理 (第三版)[M]. 清华大学出版社3.Numpy 官方 fft 文档https://numpy.org/doc/stable/reference/routines.fft.html