卷积
维基百科,自由的百科全书
跳转至: 导航、搜索
图示两个方形脉冲波的卷积。其中函数 "g" 首先对 反射,接着平移 "t" ,成为 。那么重叠部份的面积就相当于 "t"处的卷积,其中横坐标代表待积变量 以及新函数 的自变量 "t" 。
图示方形脉冲波和指数衰退的脉冲波的卷积(后者可能出现于 RC电路中),同样地重叠部份面积就相当于"t" 处的卷积。注意到因为"g"是对称的,所以在这两张图中,反射并不会改变它的形状。
在泛函分析中,卷积(捲積)、旋積或摺積,是通过两个函数f和g 生成第三个函数的一种数学算子,表征函数f与经过翻转和平移的g 的重叠部分的累积。如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是“滑动平均”的推广。
目录
简单介绍
卷积是分析数学中一种重要的运算。设: ,是上的两个可积函数,作积分:
可以证明,关于几乎所有的 ,上述积分是存在的。这样,随着 的不同取值,这个积分就定义了一个新函数,称为函数与的卷积,记为。我们可以轻易验证:,并且仍为可积函数。这就是说,把卷————积代替乘法,空间是一个代数,甚至是巴拿赫代数。
卷积与傅里叶变换有着密切的关系。例如两函数的傅里叶变换的乘积等于它们卷积后的傅里叶变换,利用此一性质,能简化傅里叶分析中的许多问题。
由卷积得到的函数 一般要比 和 都光滑。特别当 为具有紧支集的光滑函数,为局部可积时,它们的卷积 也是光滑函数。利用这一性质,对于任意的可积函数 ,都可以简单地构造出一列逼近于 的光滑函数列 ,这种方法称为函数的光滑化或正则化。
卷积的概念还可以推广到数列、测度以及广义函数上去。
定义
函数f与g 的卷积记作,它是其中一个函数翻转并平移后与另一个函数的乘积的积分,是一个对平移量的函数。
积分区间取决于f 与g 的定义域。
对于定义在离散域的函数,卷积定义为
图解卷积
- 首先将两个函数都用来表示。
- 对其中一个函数做水平翻转: →
- 加上一个时间偏移量,让 能沿着 轴滑动。
- 让t从-∞滑动到+∞。两函数交会时,计算交会范围中两函数乘积的积分值。换句话说,我们是在计算一个滑动的的加权平均值。也就是使用当做加权函数,来对取加权平均值。
- 最后得到的波形(未包含在此图中)就是f和g的卷积。
如果f(t)是一个单位脉冲,我们得到的乘积就是g(t)本身,称为冲激响应。
计算卷积的方法
当 为有限长度 , 为有限长度 的信号,计算卷积 有三种主要的方法,分别为 1.直接计算(Direct Method) 2.快速傅里叶转换(FFT) 和 3.分段卷积(sectionedconvolution)。方法1是直接利用定义来计算卷积,而方法2和3都是用到了FFT来快速计算卷积。也有不需要用到FFT的作法,如使用数论转换。
方法1 直接计算
- 因此,使用定义直接计算卷积的复杂度为 。
方法2 快速傅里叶转换(FFT)
- ,可以看出在频域的计算较简单。
- ,于是
- ,最后再将频域信号转回时域,就完成了卷积的计算:
- 总共做了 2 次 DFT 和 1 次 IDFT。
方法3 分段卷积(sectioned convolution)
- Section 1:
- Section 2:
- Section r:
- Section S:
- ,为各个section的和
。
- 因此,
,
- 每一小段作卷积则是采用方法2,先将时域信号转到频域相乘,再转回时域:
。
应用时机
以上三种方法皆可用来计算卷积,其差别在于所需总体乘法量不同。基于运算量以及效率的考量,在计算卷积时,通常会选择所需总体乘法量较少的方法。
以下根据 和 的长度( )分成5类,并列出适合使用的方法:
- 为一非常小的整数 - 直接计算
- - 快速傅里叶转换
- - 分段卷积
- - 快速傅里叶转换
- 为一非常小的整数 - 直接计算
基本上,以上只是粗略的分类。在实际应用时,最好还是算出三种方法所需的总乘法量,再选择其中最有效率的方法来计算卷积。
例子
Q1: 当 ,适合用哪种方法计算卷积?
Ans:
- 方法1: 所需乘法量为
- 方法2: ,而2016点的DFT最少乘法数 ,所以总乘法量为
- 方法3:
- 若切成 8 块(),则。选,则总乘法量为,比方法1和2少了很多。
- 但是若要找到最少的乘法量,必须依照以下步骤
- (1)先找出 : 解 :
- (2)由算出点数在 附近的DFT所需最少的乘法量,选择DFT的点数
- (3)最后由算出
- 因此,
- (1)由运算量对 的偏微分为0而求出
- (2),所以选择101点DFT 附近点数乘法量最少的点数 或 。
- (3-1)当 ,总乘法量为 。
- (3-2)当 ,总乘法量为 。
- 由此可知,切成 20 块会有较好的效率,而所需总乘法量为 21480。
Q2: 当 ,适合用哪种方法计算卷积?
Ans:
- 方法1: 所需乘法量为
- 方法2: ,选择1026点 DFT 附近点数乘法量最少的点数,。
- 因此,所需乘法量为
- 方法3:
- (1)由运算量对 的偏微分为0而求出
- (2),所以选择7点DFT 附近点数乘法量最少的点数 或 或 。
- (3-1)当 ,总乘法量为 。
- (3-2)当 ,总乘法量为 。
- (3-3)当 ,总乘法量为 。
- 由此可知,切成 171 块会有较好的效率,而所需总乘法量为 5476。
Q3: 当 ,适合用哪种方法计算卷积?
Ans:
- 方法1: 所需乘法量为
- 方法2: ,选择1026点 DFT 附近点数乘法量最少的点数,。
- 因此,所需乘法量为
- 方法3:
- (1)由运算量对 的偏微分为0而求出
- (2),所以选择1623点DFT 附近点数乘法量最少的点数 。
- (3)当 ,总乘法量为 。
- 由此可知,此时切成一段,就跟方法2一样,所需总乘法量为 44232。
多元函数卷积
按照翻转、平移、积分的定义,还可以类似的定义多元函数上的积分:
性质
各种卷积算子都满足下列性质:
- 交换律
- 结合律
- 分配律
- 数乘结合律
其中为任意实数(或复数)。
- 微分定理
其中Df 表示f的微分,如果在离散域中则是指差分算子,包括前向差分与后向差分两种:
卷积定理
卷积定理指出,函数卷积的傅里叶变换是函数傅里叶变换的乘积。即,一个域中的卷积相当于另一个域中的乘积,例如时域中的卷积就对应于频域中的乘积。
其中表示f的傅里叶变换。
这一定理对拉普拉斯变换、双边拉普拉斯变换、Z变换、Mellin变换和Hartley变换(参见Mellininversion theorem)等各种傅里叶变换的变体同样成立。在调和分析中还可以推广到在局部紧致的阿贝尔群上定义的傅里叶变换。
利用卷积定理可以简化卷积的运算量。对于长度为的序列,按照卷积的定义进行计算,需要做组对位乘法,其计算复杂度为;而利用傅里叶变换将序列变换到频域上后,只需要一组对位乘法,利用傅里叶变换的快速算法之后,总的计算复杂度为。这一结果可以在快速乘法计算中得到应用。
在群上的卷积
若 G 是有某 m 测度的群(例如豪斯多夫空间上哈尔测度下局部紧致的拓扑群),对于G上 m-勒贝格可积的实数或复数函数f和g,可定义它们的卷积:
对于这些群上定义的卷积同样可以给出诸如卷积定理等性质,但是这需要对这些群的表示理论以及调和分析的彼得-外尔定理。
应用
卷积在工程和数学上都有很多应用: