深入浅出理解卷积运算

深入浅出理解卷积运算提起卷积运算相信大家都不陌生 这是一种很常见的运算 我们在学习 信号与系统 时就一直在和卷积打交道 在后来的一些课程中也有卷积运算的身影 比如 自动控制原理现代部分 中的卷积定理等 在学习 信号与系统 时我们知道了卷积的定义 对于两个函数 f x f x f x 和 g x g x g x 他们的卷积 f g n f g n f g n 的公式如下 连续形式 f nbsp g n f g n d mathrm f mathrm g n int infty

因此,输入信号f通过与g函数进行某种运算后可以得到输出 F ( n ) F(n) F(n) 。而这之间的运算关系是怎样的呢?通过上述分析我们假设要求取 F ( 5 ) F(5) F(5),即 t = 5 t=5 t=5时刻及之前所有采集到的信号的一个加权求和。按照分析: F ( 5 ) = f ( 0 ) ∗ e − 5 + f ( 1 ) ∗ e − 4 + f ( 2 ) ∗ e − 3 + f ( 3 ) ∗ e − 2 + f ( 4 ) ∗ e − 1 + f ( 5 ) \begin{array}{l} F(5)=\\f(0) * e^{-5}+f(1) * e^{-4}+f(2) * e^{-3}+f(3) * e^{-2}+f(4) * e^{-1}+f(5) \end{array} F(5)=f(0)e5+f(1)e4+f(2)e3+f(3)e2+f(4)e1+f(5)因为 f ( 0 ) f(0) f(0)是最早采集到的信号,故其衰减的最为厉害,权值也最小。将其中的权值用响应函数 g g g来表示,则 F ( 5 ) = f ( 0 ) ∗ g ( 5 ) + f ( 1 ) ∗ g ( 4 ) + f ( 2 ) ∗ g ( 3 ) + f ( 3 ) ∗ g ( 2 ) + f ( 4 ) ∗ g ( 1 ) + f ( 5 ) ∗ g ( 0 ) = f ( 0 ) ∗ g ( 5 − 0 ) + f ( 1 ) ∗ g ( 5 − 1 ) + f ( 2 ) ∗ g ( 5 − 2 ) + f ( 3 ) ∗ g ( 5 − 3 ) + f ( 4 ) ∗ g ( 5 − 4 ) + f ( 5 ) ∗ g ( 5 − 5 ) = ∑ τ = 0 5 f ( τ ) ∗ g ( 5 − τ ) \begin{array}{l} F(5)=\\f(0) * g(5)+f(1) * g(4)+f(2) * g(3)+f(3) * g(2)+ f(4) * g(1)+f(5) * g(0)\\=\\ f(0) * g(5-0)+f(1) * g(5-1)+f(2) * g(5-2)+ f(3) * g(5-3)+f(4) * g(5-4)+f(5) * g(5-5) \\=\\\sum_{\tau=0}^{5} f(\tau) * g(5-\tau) \end{array} F(5)=f(0)g(5)+f(1)g(4)+f(2)g(3)+f(3)g(2)+f(4)g(1)+f(5)g(0)=f(0)g(50)+f(1)g(51)+f(2)g(52)+f(3)g(53)+f(4)g(54)+f(5)g(55)=τ=05f(τ)g(5τ)看到这个公式大家有没有一点熟悉的感觉,没错这个式子 F ( 5 ) = s u m τ = 0 5 f ( τ ) ∗ g ( 5 − τ ) F(5)=sum_{\tau=0}^{5} f(\tau) * g(5-\tau) F(5)=sumτ=05f(τ)g(5τ)和卷积运算的离散形式 ∑ τ = − ∞ + ∞ f ( τ ) ∗ g ( n − τ ) \sum_{\tau=-\infty}^{+\infty} f(\tau) * g(n-\tau) τ=+f(τ)g(nτ)几乎一模一样,只是把 n n n取了整数5。
看到这里可能大家已经隐约知道了卷积运算中对g进行翻转和平移的作用,为了让大家更直观的看到翻转和平移作用,引用知乎博主palet的解释:
在这里插入图片描述
首先这是给定的输入信号 f f f和指数衰减响应函数 g g g 。为了达到上文提到的加权求和的效果,当取T(也就是上文的 n n n)=10时, f ( t ) f(t) f(t) g ( t ) g(t) g(t)的累积对应关系如下图所示:
在这里插入图片描述
如上图所示,对于 t = 10 t=10 t=10时刻最新的信号采集值 f ( 10 ) f(10) f(10)是完全没有衰减的,因此与 g ( 0 ) = 1 g(0)=1 g(0)=1相乘,对于其它时刻的对应也如上分析,最终得到最近10个输入信号的采集值加权叠加的结果,具体请参看第二个问题的第二段。
这样的对应关系看起来十分复杂,因此我们对 g ( t ) g(t) g(t)进行一些处理,首先进行翻转,翻转后 f ( t ) f(t) f(t)与$g(-t) $的乘积对应关系如下图:
在这里插入图片描述






翻转之后乘积的对应关系似乎看起了有了一些规则,但依旧有些不易观察,之后对 g ( − t ) g(-t) g(t)进行长度为T(上文的 n n n)的右移得到 g ( T − t ) g(T-t) g(Tt),其对应关系变为了下图:
在这里插入图片描述
通过这张图后可以很清晰的看见 f ( t ) f(t) f(t) g ( T − t ) g(T-t) g(Tt)的乘积对应关系。又因为 f ( t ) f(t) f(t)是实际的输入信号,其在 t t t的负半轴是没有数值的,因此 f ( t ) f(t) f(t) g ( t ) g(t) g(t)做卷积运算也就是 f ( t ) f(t) f(t) g ( T − t ) g(T-t) g(Tt)做整个数轴上的累积运算时与作 ( 0 , T ) (0,T) (0,T)的累积运算结果是相同的。因此可以得出卷积运算满足了信号指数衰减求和的结果。大家应该也明白了卷积运算在信号处理上的物理意义。同时大家也能够明白了平移长度 n n n所代表的意义了, n n n代表的就是积分的x轴长度或者累加的次数,在信号上就是当前已采集输入信号值的次数。
本文主要分享的是卷积运算在信号处理上的一些物理意义,希望能够帮助读者更好的理解卷积运算。但实际上卷积运算在很多其他的地方也有很大的作用,比如图像识别中的边缘提取,卷积神经网络等等,有兴趣的话大家可以自行去了解。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232975.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 零拷贝技术_基因单拷贝

    零拷贝技术_基因单拷贝零拷贝技术概述零拷贝技术指在计算机执行操作时,CPU不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及CPU的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除CPU的负载。实现零拷贝用到的主要技术是DMA数据传输技术和内存区域映射技术零拷贝机制可以减少数据在内核缓冲区和用户进程缓冲区之间反复的I/O拷贝操作零拷贝机制可以减少用户进程地址空间之间因为上下文切换而带来的CPU开销物理内存和虚拟

    2026年2月5日
    5
  • MySQL锁详解

    MySQL锁详解根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类一、全局锁全局锁就是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,命令是Flushtableswithreadlock。当需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句全局锁的…

    2022年4月30日
    47
  • oracle错误904解决方法_oracle导出数据库命令

    oracle错误904解决方法_oracle导出数据库命令今天在导数据库遇到了奇怪的问题C:\DocumentsandSettings\noah>expsystem/pd0000@orclfile=d:\data.dmpwner=devlog=d:\log.log.即将导出DEV的表通过常规路径…..正在导出表B_COMMON_BOXEXP-00008:遇到ORACLE错误9…

    2026年2月3日
    6
  • mysql fsync_用一分钟了解: fsync这个系统调用!

    mysql fsync_用一分钟了解: fsync这个系统调用!1前言不要诧异在MySQL专题中突然插入fsync系统调用,因为马上就要和大家分享MySQL的undolog、redolog、binlog了,在分享这些文章的时候会经常说fsync这个名词,所以提前来看下。2缓冲传统的UNIX实现的内核中都设置有缓冲区或者页面高速缓存,大多数磁盘IO都是通过缓冲写的。当你想将数据write进文件时,内核通常会将该数据复制到其中一个缓冲区中,如果该缓冲没被写满…

    2022年5月31日
    46
  • 微信小程序发送消息推送_小程序推送消息设置

    微信小程序发送消息推送_小程序推送消息设置在小程序开发中,如果想实现:用户发给小程序的消息以及开发者需要的事件推送,在小程序项目中,我们想要实现这样一个功能,比如我们小程序中的客服功能,我不想要使用小程序后台的在线客服功能,但我又想实现客服功能,这个时候微信提供了消息推送功能,在小程序后台的设置,开发设置中,消息推送功能:点击开启消息推送功能,认证成功进入到消息推送配置界面:这里配置几个参数注意一下:URL(服务器………

    2022年10月7日
    5
  • 数据库备份一张表

    数据库备份一张表数据库备份表备份方案一:备份createtable[备份名]asselect*from[表名];恢复truncatetableorg_group;insertintoorg_groupselect*from[备份名];说明此种情况适用于,同一个数据库,需要备份某张表。备份方案二:备份oracle用户终端执行:exp[用户名]/[密码]tables=[表一],[表二]file=/home/oracle/table.dmp恢复

    2022年5月14日
    123

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号