数学中的卷积
卷积的wiki:Convolution。
卷积和(convolution sum)的公式是:
写成积分形式是:
要理解这个东西,比较难,一种是公式推导,不过是从傅里叶变换得到的;一种是用狄拉克δ函数来辅助理解(我自认为的);最后一种是通过线性时不变系统理论LTI system theory。
先讲第一种吧。
第一种思路:傅里叶变换与卷积
首先要搬出傅里叶变换的一个推论:
这个公式意思是,一个时域下的复杂信号函数可以分解成多个简单信号函数的和,然后对各个子信号函数做傅里叶变换并再次求和,就求出了原信号的傅里叶变换。这个事实显然很有用处。
但除了加法之外,还有乘法。这时候有一个问题:是否存在某种新的f(t)和g(t)的结合方式,使得f(t)和g(t)结合后的函数的傅里叶变换结果是F(s)G(s)?
要求这个问题的解,要用倒推法。
首先,设有信号函数f(x)和g(t)(注意,x、t都是指横轴变量,只是用来区分开f和g),G(s)、F(s)分别是f(x)和g(t)的傅里叶变换,于是有:
接着做一些变换:
现在设u = t + x,所以t = u - x,du = dt(这是把x看做常数项了)。则有:
接着调整下积分顺序:
括号内那个积分是一个关于u的函数,所以可以设成h(u):
于是上面的式子就变成:
这个结论,可以简化成:
再来看下h(u)。如果把h(u)的u换成t(这是可以的,只是一个符号而已),就有:
2个终极公式都出来了。
最后,我们还要定义一个特殊的二元运算符号 ∗ 来替代h(t)(也叫卷积运算符,注意,这个不是乘法的乘号哦):
于是有:
最后的公式,也被叫做卷积定理(Convolution Theorem)。
这个定理说明,信号f和信号g的卷积的傅里叶变换,等于f、g各自的傅里叶变换的积。
第二种思路:狄拉克δ函数与卷积
第二种思路的关键在于狄拉克δ函数。
狄拉克δ函数 dirac delta function
狄拉克δ函数的wiki:dirac delta function。
狄拉克δ函数在坐标系上的长相:
(图片来自wiki)
在信号处理科学中狄拉克δ函数被称为单位脉冲信号(unit impulse symbol)。上面这个图也很形象地说明了这一点。
狄拉克δ函数有这样的性质:
狄拉克δ函数在t等于0时值为正无穷,t不等于0时则为0,且在整个定义域的积分等于1。
狄拉克δ函数与卷积
考虑卷积公式的一个特殊情况:当h(t)是狄拉克δ函数时。现在试一下把h(t)代入卷积公式,得到:
(最后一步跳跃得比较厉害,后文会有说明)
这个结果说明,x(t)和狄拉克δ函数卷积的结果还是x(t),为什么会这样呢?
再看下前面给出的卷积和标准公式:
把其中的 h(t−τ) 换成 δ(t−τ) ,那么里面的 t−τ ,其实就是让那个脉冲信号在横轴上移动(偏移) τ 距离。根据狄拉克δ函数的定义,可以知道,当 t=τ 时, x(τ)h(t−τ) 才非0,且等于 x(τ) 。所以卷积和也就等于 x(τ) 。(这也算是上面的公式的证明吧)
将这个特殊情况一般化,即不限制h = δ时,就是所谓的卷积公式了。
第三种思路:线性时不变系统·理论 LTI system theory
这个还没搞懂,搞懂了再来填坑
二维卷积以及图像中的卷积
上面讨论的仅仅是一维的卷积。幸运的是,高维卷积可以简单地根据一维卷积得到,比如说二维的卷积:
积分形式是:
如果给定一个范围r,则有:
现在想象一下,把一幅图片(位图)当做是一个函数:
先让自己对这个式子有一个几何空间上的想象:带有2个变量的函数,它的几何表示是三维的,三个坐标轴分别是:x、y、f(x,y),所以f(x,y)表示的是三维空间里的一个连续表面(surface)。
然后,我们再来回顾下线性代数——矩阵。假设我们有一个128X128的bmp图像,可以用一个矩阵A(应该说是方阵)来表示它,A的每一个元素是一个rgb值。 有了这个图像->矩阵的转换关系后,我们就可以用线性代数的知识对这个图像做处理。
比如说,我们用矩阵乘法吧。假设有另一个和A同阶的方阵S,很显然,下面的等式成立:
这个式子意味着,图像处理可以抽象成矩阵的线性运算。比如当S是单位矩阵I时,显然有 AI=A ,即A保持不变,什么都没做。
好了,明确了图像可以用线性代数的方法来加工处理后,要理解图像卷积就简单了。
上面说的‘转换’方阵S,是和A同阶的方阵。这个‘同阶’性质,是不是必要的?其实不是。只要你有办法使得A变成A',就可以了。中间的S,代表的是一个转换过程。
卷积转换,是一个特殊的转换,首先,它有一个叫做窗口的东西(或者叫卷积子),一般情况下这个窗口是一个比A的阶数小得多的方阵。
如果拿这个小方阵R去和A的局部区域做线性变换(更具体地说,是点积运算),则有:
把得到的这个RGB值赋给A[x,y],就有:
简单地说就是,A[x,y]的值被R刷新了。如果对整幅图像的每一个像素都和R做一次点积运算,整幅图像就被刷新了。
这就是图像的卷积变换的本质。
找到的相关资料
The Convolution Sum for Discrete-Time LTI Systems. Andrew W. H. House