卷积的理解

本文详细解析了卷积的概念,包括其定义、计算方法及在图像处理中的应用。通过直观的图形展示,帮助读者理解“反褶、平移、积分”的含义,并提供了MATLAB中的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上学期上过信号处理这门课,整理过一些卷积的资料,放下了,最近在看SIFT,又重新过了一遍。
卷积理解起来还是十分抽象的,看了很多资料才算一知半解吧,以下贴出。


只要接触过卷积的人一定会知道“反褶、平移、积分”这句话,大部分人解释卷积也是靠这句话,但这句话非常空洞,卷积又是一个十分抽象的东西,我也被此困扰好久,别人要是问对卷积的理解,也就只能回答“反褶–平移–积分”,往深处挖就不知道了,实在是尴尬。所以下面我将从卷积的定义、卷积的计算、卷积的应用等几个方面说明。

卷积的定义

补充单位脉冲和单位脉冲响应的定义

单位脉冲:
这里写图片描述
下面是在matlab中的波形图
这里写图片描述

单位脉冲响应:当系统的初始状态为零时,这时给系统输入一个单位脉冲序列  x(t)=δ(t)  ,则系统的输出称为单位脉冲响应,简称脉冲响应,用符号  h(t)  表示。(注意 δ(t)  面积为1)。

正式步入卷积。先给出定义式,再一步步解释(这里只讨论线性时不变系统下连续的定义)

 y(t)=+μ(τ)h(tτ)dτ

下面以图来解释这个式子怎么来的:

图中左边为输入信号,左边为系统的输出。

卷积的定义描述图

(a)中,输入信号  p(t)  经过系统后得到输出信号  h(t) 

(b)中,输入信号较之于(a)延迟了 τ  ,表示为  p(tτ)  ,由于是LTI(线性时不变系统),输出信号也延迟 τ  ,变为  h(tτ) 

(c)、(d)两图阐释了LTI的叠加原理:若以  p(t)+p(tτ)  为输入,则输出为  h(t)+h(tτ) 

假设现在有一个输入信号 μ(t)  ,将其表示为若干个我们刚刚见过的  p(t)  的叠加。
信号的叠加

注意:定义  pΔ(t)   hΔ(t)  ,当 Δ0  时趋近于 δ(t)   h(t)  。(同样注意  pΔ(t)  的高度为 1Δ  ,面积为 1)

所以输入信号 μ(t)  可以拆分成很多  pΔ(t)  的和。

μ(t)μ(0)pΔ(t)Δ+μ(Δ)pΔ(tΔ)Δ+μ(2Δ)pΔ(t2Δ)Δ+...

输出信号:

 y(t)μ(0)hΔ(t)Δ+μ(Δ)hΔ(tΔ)Δ+μ(2Δ)hΔ(t2Δ)Δ+... 

得到  y(t)  的过程就可以看做一个加权叠加的过程。
 y(t)=Δi=0+μ(iΔ)h(tiΔ) 

 p(t)  表示的 μ(t)  并不是精确的 μ(t)  啊,那些小长条的面积比 μ(t)  的面积可少了不少呢。除非 Δ  尽可能的小,长条尽可能的窄。这就是联想到积分了。

下面是由上面的  y(t)  转化为积分的过程。
iΔ=τ  ,作转化 Δ=1iτ  。则上式就可转化如下:

 y(t)=1ii=0+μ(iΔ)h(tiΔ)τ 

因此就有积分式:
 y(t)=+μ(τ)h(tτ)dτ

(取负无穷是考虑到当前时刻前已经有输入了)
以上是卷积的定义,也就是卷积式的由来。


卷积的计算

前面我们说过很多人用“反褶、平移、积分”来描述卷积,前面已经阐述了卷积定义,这里,更倾向于把这句话当做是计算卷积的过程而不是来解释卷积。

首先看一张图:
卷积的计算过程

有俩个输入信号  f(t)   g(t)  。以下卷积具体步骤。

1、改变图中横坐标,由  t  改为  τ  τ  就变成函数的自变量。
2、把其中的一个信号反褶,如图中矩形框框出来的部分。
3、把反褶的信号作位移,位移量为  t  ,如上图。
4、位移,并将俩信号量重叠部分相乘  f(τ)g(tτ) 
5、完成相乘后图形的积分(其实也就是俩信号重叠部分的面积)。

下面再贴出wiki上的动图,更易理解:
黄色区域是重叠面积,新生成的曲线是时间  t  的函数。也就是卷积的这种表述形式:

 (fg)(t)=+f(τ)g(tτ)dτ 

这里写图片描述
这里写图片描述


卷积的应用

卷积的应用非常多,这里拿图像处理中使用卷积为例。
在matlab中,我们常用的卷积计算函数有conv和conv2。下面就分别介绍

conv2
conv2是二维矩阵卷积运算。conv2的具体实现步骤可以参见这篇博文。我们再对输入图像使用卷积时候滤波器的大小最好为奇数,这样它才有一个中心(高斯模糊卷积矩阵一般选用  3×3   7×7  )。

如下图,对图像进行卷积运算和以很清晰的检测出边缘
这里写图片描述

conv

conv是向量间卷积运算。它的参数跟conv2是一样的。
这里写图片描述

一般向量间的卷积计算我们可以这样理解:
 u=[131]   v=[27]  ,我们把向量  u  内元素写成多项式升幂排列  x2+3x+1  ,同理向量  v  内元素也以升幂排列  2x2+7  ,我们将俩个多项式相乘,结果也是按升幂排列  2x3+13x2+23x+7  。所以卷积得到的结果是  [213237]  。在matlab中验证如下:

这里写图片描述

参考:
知乎中卷积的通俗解释
wiki中卷积的解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值