news 2026/4/15 20:08:04

数字信号处理篇---循环卷积和线性卷积的关系

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数字信号处理篇---循环卷积和线性卷积的关系

我们来讲讲“循环卷积”和“线性卷积”这对“双胞胎兄弟”。它们很像,但性格和出身完全不同。

让我用一个最经典的食堂打饭比喻,保证你一听就懂。


场景设定

假设你有一个饭盒(代表系统,比如一个滤波器),和一个一长条食物(代表输入信号,比如一段音频)。

  • 饭盒长度M个格子。

  • 食物长度L个格子。

你想知道食物完全通过饭盒后,最终打出来的饭(输出信号)是什么。


第一幕:线性卷积——现实世界的打饭过程

这是最符合我们直觉的、真实物理世界的过程。

  1. 过程

    • 你把那长条食物,从饭盒的第一个格子开始,一点一点地推进去

    • 一开始,只有食物头进去了,饭盒没满,打出来的饭很少(初始 transient)。

    • 接着推,食物完全进入饭盒,饭盒满了,打出来的饭量稳定(稳态)。

    • 最后,食物开始离开饭盒,饭盒又慢慢变空,打出来的饭越来越少,直到为零(结尾 transient)。

  2. 结果特点

    • 输出长度变长了!因为有一个“进”和“出”的过程。

    • 输出长度公式N = L + M - 1

    • 物理意义:它完美模拟了信号完全通过一个系统的整个过程。

  3. 记忆口诀“有头有尾,真实过程”


第二幕:循环卷积——DFT/FFT世界的“圆形魔力”打饭

这不是真实过程,而是DFT/FFT(我们上节课讲的“翻译机”)眼中的世界。DFT认为所有东西都是首尾相连、无限循环的。

  1. 过程(魔幻版)

    • 你把饭盒和食物都弯成一个圆圈

    • 食物不再是“推进去”,而是在圆圈上旋转对齐

    • 对齐后,对应位置相乘再相加,得到输出的一个点。

    • 食物旋转一格,再算下一个点...如此循环一周。

  2. 核心问题

    • 因为首尾相连,当食物很长时,食物的“尾巴”会从圆圈的另一边伸过来,和头部混在一起

    • 这导致一个严重后果:混叠污染。输出的结果里,开头部分被不该出现的“尾巴”干扰了,结尾部分也干扰了开头。

  3. 记忆口诀“头尾相连,圆形魔法”


第三幕:关键关系——如何让“魔幻”服务于“现实”?

既然循环卷积(魔幻版)有混叠问题,那它有什么用?关键在于:FFT计算循环卷积的速度极快!我们想利用它的速度,来算线性卷积(真实版)。

解决方案:零填充!

定理:要使循环卷积的结果等于线性卷积的结果,必须满足一个条件:
做循环卷积的点数NL + M - 1

如何做到?给食物和饭盒都加零,让它们变长!

  • 把长度为L的食物,后面补零,补到长度N

  • 把长度为M的饭盒,后面也补零,补到长度N

  • 这样,当它们在圆圈上旋转时,中间有足够的零作为缓冲区,食物的“尾巴”在旋转时,只会碰到饭盒的“零”部分,而不会污染到头部。

这时,在这个加长了的、首尾相连的圆圈上做的循环卷积,其结果就完全等于线性卷积了!


用一个极简例子可视化

假设:

  • 饭盒 h = [1, 2](M=2)

  • 食物 x = [1, 3, 1](L=3)

1. 线性卷积(真实过程)
y_linear = [1, 5, 7, 2]
长度 N = 3+2-1 = 4。
(计算过程:1*1=1,1*2+3*1=5,3*2+1*1=7,1*2=2)

2. 直接做3点循环卷积(有混叠,错误)
把它们当成N=3的圆圈:
y_circular_N3 = [1+2, 5, 7] = [3, 5, 7]
(这里,输出最后一个点2,因为圆圈循环,跑到了开头,和1加在一起变成了3,污染了开头!)

3. 做4点循环卷积(正确,等于线性卷积)
先补零:h = [1, 2, 0, 0],x = [1, 3, 1, 0]
在N=4的圆圈上做循环卷积:
y_circular_N4 = [1, 5, 7, 2]
和线性卷积结果一模一样!


最终总结

特性线性卷积循环卷积
世界观直线世界,有明确的开始和结束。圆形世界(DFT世界观),首尾相连,无限循环。
物理意义真实物理过程(信号通过系统)。DFT/FFT的数学固有属性,是计算工具的内禀特性。
长度L + M - 1等于做运算时设定的点数N
核心问题计算慢。当N < L+M-1时,会产生“混叠”,头和尾相互干扰。
关系桥梁可以通过补零(零填充)到N ≥ L+M-1,然后做循环卷积来精确计算线性卷积。
工程价值是我们想得到的目标结果。FFT算法能极快地计算它,所以“用补零后的循环卷积(通过FFT)来计算线性卷积”是现代DSP的标准高速算法

一句话记住

循环卷积是DFT/FFT“圆形世界”里的乘法。想用它得到真实世界(线性)的结果,就必须先“用零填满空隙”,防止头尾相撞。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 0:37:04

Java虚拟机面试题:JVM调优

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

作者头像 李华
网站建设 2026/4/10 20:23:17

Springboot剧本杀预约管理系统97383(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能&#xff1a;用户,员工,剧本类型,剧本信息,剧本预约,取消剧本,房间信息,拼车信息,上车信息开题报告内容一、研究背景与意义1.1 行业背景剧本杀作为一种新兴的文化娱乐形式&#xff0c;近年来在中国迅速崛起&#xff0c;成为年轻人社交娱乐的重要选择。…

作者头像 李华
网站建设 2026/4/15 19:21:37

吐血推荐专科生必用9款AI论文软件

吐血推荐专科生必用9款AI论文软件 2025年专科生必备的AI论文工具测评 在当前高等教育不断普及的背景下&#xff0c;专科生群体在学术写作上的需求日益增长。然而&#xff0c;面对繁重的课程任务与有限的写作经验&#xff0c;许多学生在撰写论文时常常感到力不从心。为此&…

作者头像 李华
网站建设 2026/4/15 19:20:47

科研写作智能化:9款AI工具深度解析,高效生成开题报告与论文初稿

在毕业论文撰写阶段&#xff0c;高效完成开题报告和正文是学生普遍面临的挑战&#xff0c;传统人工写作方式灵活性高但效率较低&#xff0c;而AI工具能快速生成内容并优化文本重复率与机器痕迹。通过对9款平台的横向评测&#xff0c;可筛选出最适合学术场景的智能辅助工具&…

作者头像 李华
网站建设 2026/4/15 19:17:12

blender 开放exec接口的插件

插件&#xff1a; https://wwamf.lanzouu.com/iOGce3f47nra https://www.bilibili.com/video/BV1ZwiwBxELf/ 有了这个插件&#xff0c;就可以在ide里面为所欲为地调用blender方法了 正在连接到Blender服务器...--- 使用 exec 端点 --- 执行成功! 返回结果: obj: Cube obj: …

作者头像 李华
网站建设 2026/4/15 19:20:44

老年人脸生成效果测试:Sonic对皱纹细节还原能力评估

老年人脸生成效果测试&#xff1a;Sonic对皱纹细节还原能力评估 在数字人技术加速落地的今天&#xff0c;我们越来越难接受“塑料感”十足的虚拟形象。尤其是在面向老年人的服务场景中——比如远程医疗问诊、智慧养老播报或老年教育视频——用户对真实性的要求反而更高&#xf…

作者头像 李华