卷积的理解

来源:互联网 发布:c语言是什么 编辑:程序博客网 时间:2024/05/19 20:22

  • 卷积的定义
  • 卷积的计算
  • 卷积的应用

上学期上过信号处理这门课,整理过一些卷积的资料,放下了,最近在看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中卷积的解释

原创粉丝点击