卷积
卷积
在泛函分析中,卷积(convolution),或译为叠积、-{褶积或旋积,是透过两个函数formula_1和formula_2生成第三个函数的一种数学算子,表征函数formula_1与经过翻转和平移的formula_2的乘积函数所围成的曲边梯形的面积。如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是“滑动平均”的推广。
定义.
卷积是数学分析中一种重要的运算。设:formula_5和formula_6是实数formula_7上的两个可积函数,定义二者的卷积formula_8为如下特定形式的积分变换:
formula_9
formula_8仍为可积函数,并且有着:
formula_11
函数formula_1和formula_2,如果只支撑在formula_14之上,则积分界限可以截断为:
formula_15对于formula_16
对于两个得出复数值的,可以定义二者的卷积为如下形式的多重积分:
formula_17
卷积有一个通用的工程上的符号约定:
formula_18
它必须被谨慎解释以避免混淆。例如:formula_19等价于formula_20,而formula_21却实际上等价于formula_22。
历史.
卷积运算的最早使用出现在达朗贝尔于1754年出版的《宇宙体系的几个要点研究》中对泰勒定理的推导之中。还有,将formula_23类型的表达式,用在他的1797年–1800年出版的著作《微分与级数论文》中。此后不久,卷积运算出现在皮埃尔-西蒙·拉普拉斯、约瑟夫·傅里叶和西梅翁·泊松等人的著作中。这个运算以前有时叫做“Faltung”(德语中的折叠)、合成乘积、叠加积分或卡森积分。
“卷积”这个术语早在1903年就出现了,然而其定义在早期使用中是相当生僻的,直到1950年代或1960年代之前都未曾广泛使用。
简介.
如果formula_1和formula_2都是在"Lp" 空间formula_26内的勒贝格可积函数,则二者的卷积存在,并且在这种情况下formula_27也是可积的。这是托内利定理的结论。对于在formula_28中的函数在离散卷积下,或更一般的对于在任何群的上的卷积,这也是成立的。同样的,如果formula_29而formula_30,这里的formula_31,则formula_32,并且其"Lp"范数间有着不等式:
formula_33
在formula_34的特殊情况下,这显示出formula_28是在卷积下的巴拿赫代数(并且如果formula_1和formula_2几乎处处非负则两边间等式成立)。
卷积与傅里叶变换有着密切的关系。例如两函数的傅里叶变换的乘积等于它们卷积后的傅里叶变换,利用此一性质,能简化傅里叶分析中的许多问题。
由卷积得到的函数formula_38,一般要比formula_1和formula_2都光滑。特别当formula_2为具有紧支集的光滑函数,formula_1为局部可积时,它们的卷积formula_27也是光滑函数。利用这一性质,对于任意的可积函数formula_1,都可以简单地构造出一列逼近于formula_1的光滑函数列formula_46,这种方法称为函数的光滑化或正则化。
函数formula_47和formula_6的互相关formula_49,等价于formula_50的共轭复数formula_51与formula_52的卷积:
formula_53
这里的formula_54叫做移位(displacement)或滞后(lag)。
对于单位脉冲函数formula_55和某个函数formula_56,二者得到的卷积就是formula_56本身,此formula_56被称为冲激响应:
formula_59
在连续时间线性非时变系统中,输出信号formula_60被描述为输入信号formula_61与冲激响应formula_56的卷积:
formula_63
两个独立的随机变量formula_64和formula_65,每个都有一个概率密度函数,二者之和的概率密度,是它们单独的密度函数的卷积:
formula_66
周期卷积.
重定向;重新导向;字符;字元;文件; 档案;快捷方式; 捷径;项目;专案;计划;计划;计划;计算机; 电脑; 电脑;
两个formula_67周期的函数formula_68和formula_69的“周期卷积”定义为:
formula_70
这里的formula_71是任意参数。
任何formula_72,都可以通过求函数formula_72的所有整数倍formula_74的平移的总和,从而制作出具有周期formula_74的周期函数 formula_76,这叫做:
formula_77
对于无周期函数formula_78与formula_79,其周期formula_67的周期求和分别是formula_68与formula_69,formula_78与formula_79的周期卷积,可以定义为formula_56与formula_69的常规卷积,或formula_61与formula_68的常规卷积,二者都等价于formula_68与formula_69的周期积分:
formula_91
formula_92
圆周卷积是周期卷积的特殊情况,其中函数formula_78和formula_79二者的非零部份,都限定在区间formula_95之内,此时的周期求和称为“周期延拓”。formula_96中函数formula_97可以通过取非负余数的模除运算表达为“圆周函数”:
formula_98
而积分的界限可以缩简至函数formula_78的长度范围formula_95:
formula_101
离散卷积.
对于定义在整数formula_102上且得出复数值的函数formula_103和formula_104,离散卷积定义为:
formula_105
这里一样把函数定义域以外的值当成零,所以可以扩展函数到所有整数上(如果本来不是的话)。两个有限序列的卷积的定义,是将这些序列扩展成在整数集合上有限支撑的函数。在这些序列是两个多项式的系数之时,这两个多项式的普通乘积的系数,就是这两个序列的卷积。这叫做序列系数的柯西乘积。
当formula_106的支撑集为有限长度的formula_107之时,上式会变成有限求和:
formula_108
多维离散卷积.
类似于一维情况,使用星号表示卷积,而维度体现在星号的数量上,formula_109维卷积就写为formula_109个星号。下面是formula_109维信号的卷积的表示法:
formula_112
对于离散值的信号,这个卷积可以直接如下这样计算:
formula_113
结果的离散多维卷积所支撑的输出区域,基于两个输入信号所支撑的大小和区域来决定。
离散周期卷积.
对于离散序列和一个参数formula_114,无周期函数formula_78和formula_79的“周期卷积”是为:
formula_117
这个函数有周期formula_114,它有最多formula_114个唯一性的值。formula_78和formula_79的非零范围都是formula_122的特殊情况叫做圆周卷积:
formula_123
离散圆周卷积可简约为矩阵乘法,这里的积分变换的核函数是循环矩阵:
formula_124
圆周卷积最经常出现的快速傅里叶变换的实现算法比如雷德演算法之中。
性质.
代数.
各种卷积算子都满足下列性质:
formula_125
formula_126
formula_127
formula_128
其中formula_129为任意实数(或复数)。
formula_130
formula_131
如果formula_132,并且formula_133,则有:
formula_134
积分.
如果formula_1和formula_2是可积分函数,则它们在整个空间上的卷积的积分,简单的就是它们积分的乘积:
formula_137
这是富比尼定理的结果。如果formula_1和formula_2只被假定为非负可测度函数,根据托内利定理,这也是成立的。
微分.
在一元函数情况下,formula_1和formula_2的卷积的导数有着:
formula_142
这里的formula_143是微分算子。更一般的说,在多元函数的情况下,对偏导数也有类似的公式:
formula_144
这就有了一个特殊结论,卷积可以看作“光滑”运算:formula_1和formula_2的卷积可微分的次数,是formula_1和formula_2的总数。
这些恒等式成立的严格条件,为formula_1和formula_2是绝对可积分的,并且至少二者之一有绝对可积分(formula_28)弱导数,这是的结论。
在离散情况下,差分算子formula_152满足类似的关系:
formula_153
卷积定理.
卷积定理指出,在适当的条件下,两个函数(或信号)的卷积的傅里叶变换,是它们的傅里叶变换的逐点乘积。更一般的说,在一个域(比如时域)中的卷积等于在其他域(比如频域)逐点乘法。
设两个函数formula_154和formula_155,分别具有傅里叶变换formula_156和formula_157:
formula_158
这里的formula_159算子指示傅里叶变换。
卷积定理声称:
formula_160
formula_161
应用逆傅里叶变换formula_162产生推论:
formula_163
formula_164
这里的算符formula_165指示逐点乘法。
这一定理对拉普拉斯变换、双边拉普拉斯变换、Z变换、梅林变换和等各种傅里叶变换的变体同样成立。在调和分析中还可以推广到在局部紧致的阿贝尔群上定义的傅里叶变换。
周期卷积.
对于周期为formula_74的函数formula_167和formula_168,可以被表达为二者的:
formula_169
它们的傅里叶级数系数为:
formula_170
这里的formula_159算子指示傅里叶级数积分。
逐点乘积formula_172的周期也是formula_74,它的傅里叶级数系数为:
formula_174
周期卷积formula_175的周期也是formula_74,周期卷积的卷积定理为:
formula_177
离散卷积.
对于作为两个连续函数采样的序列formula_104和formula_179,它们具有离散时间傅里叶变换formula_156和formula_157:
formula_182
这里的formula_183算子指示离散时间傅里叶变换(DTFT)。
离散卷积的卷积定理为:
formula_184
离散周期卷积.
对于周期为formula_114的序列formula_186和formula_187:
formula_188
相较于离散时间傅里叶变换formula_156和formula_157的周期是formula_191,它们是按间隔formula_192采样formula_156和formula_157,并在formula_114个采样上进行了逆离散傅里叶变换(DFT-1或IDFT)的结果。
离散周期卷积formula_196的周期也是formula_114。离散周期卷积定理为:
formula_198
这里的formula_159算子指示长度formula_114的离散傅里叶变换(DFT)。
它有着推论:
formula_201
对于其非零时段小于等于formula_114的formula_2和formula_78,离散圆周卷积的卷积定理为:
formula_205
推广.
卷积的概念还可以推广到数列、测度以及广义函数上去。函数formula_206是定义在formula_207上的可测函数(measurable function),formula_1与formula_2存在卷积并记作formula_27。如果函数不是定义在formula_207上,可以把函数定义域以外的值都规定成零,这样就变成一个定义在formula_207上的函数。
若"G"是有某"m" 测度的群(例如豪斯多夫空间上哈尔测度下局部紧致的拓扑群),对于"G"上"m"-勒贝格可积的实数或复数函数"f"和"g",可定义它们的卷积:
formula_213
对于这些群上定义的卷积同样可以给出诸如卷积定理等性质,但是这需要对这些群的表示理论以及调和分析的彼得-外尔定理。
离散卷积的计算方法.
计算卷积formula_214有三种主要的方法,分别为
方法1是直接利用定义来计算卷积,而方法2和3都是用到了FFT来快速计算卷积。也有不需要用到FFT的作法,如使用数论转换。
formula_215
因此,使用定义直接计算卷积的复杂度为formula_223。
formula_224
,可以看出在频域的计算较简单。
formula_225
,于是
formula_226
,最后再将频域信号转回时域,就完成了卷积的计算:
formula_227
总共做了2次DFT和1次IDFT。
formula_241
Section 1: formula_242
Section 2: formula_243
formula_244
Section r: formula_245
formula_244
Section S: formula_247
,formula_216为各个section的和
formula_249。
因此,
formula_250,
每一小段作卷积则是采用方法2,先将时域信号转到频域相乘,再转回时域:
formula_251。
方法3:分段卷积.
分段卷积: Overlap-Add
欲做formula_263的分段卷积分,formula_264 长度为 formula_265,formula_266 长度为 formula_267,
Step 1: 将formula_264每 formula_239 分成一段
Step 2: 再每段 formula_239 点后面添加 formula_271 个零,变成长度 formula_272
Step 3: 把 formula_266 添加 formula_274个零,变成长度 formula_272的 formula_276
Step 4: 把每个 formula_264 的小段和 formula_276 做快速卷积,也就是formula_279,每小段会得到长度 formula_272 的时域讯号
Step 5: 放置第 formula_281 个小段的起点在位置 formula_282 上, formula_283
Step 6: 会发现在每一段的后面 formula_271 点有重叠,将所有点都相加起来,顾名思义 Overlap-Add,最后得到结果
举例来说:
formula_285, 长度 formula_286
formula_287, 长度 formula_288
令 formula_289
令 formula_289 切成三段,分别为 formula_291, 每段填 formula_271 个零,并将 formula_266 填零至长度 formula_272将每一段做formula_279若将每小段摆在一起,可以注意到第一段的范围是 formula_296 ,第二段的范围是 formula_297,第三段的范围是 formula_298,三段的范围是有重叠的最后将三小段加在一起,并将结果和未分段的卷积做比较,上图是分段的结果,下图是没有分段并利用快速卷积所算出的结果,验证两者运算结果相同。分段卷积: Overlap-Save
欲做formula_263的分段卷积分,formula_264 长度为 formula_265,formula_266 长度为 formula_267,
Step 1: 将 formula_264 前面填 formula_271 个零
Step 2: 第一段 formula_306, 从新的 formula_264 中 formula_308 取到 formula_309 总共 formula_239 点当做一段,因此每小段会重复取到前一小段的 formula_271 点,取到新的一段全为零为止
Step 3: 把 formula_266 添加 formula_313 个零,变成长度 formula_239 的 formula_276
Step 4: 把每个 formula_264 的小段和 formula_276 做快速卷积,也就是formula_318,每小段会得到长度 formula_239 的时域讯号
Step 5: 对于每个 formula_281 小段,只会保留末端的 formula_321 点,因此得名 Overlap-Save
Step 6: 将所有保留的点合再一起,得到最后结果
举例来说:
formula_322, 长度 formula_286
formula_287, 长度 formula_288
令 formula_326 将 formula_264 前面填 formula_271 个零以后,按照 Step 2 的方式分段,可以看到每一段都重复上一段的 formula_271 点再将每一段做 formula_318以后可以得到保留每一段末端的 formula_321 点,摆在一起以后,可以注意到第一段的范围是 formula_332 ,第二段的范围是 formula_333,第三段的范围是 formula_334,第四段的范围是 formula_335,四段的范围是没有重叠的将结果和未分段的卷积做比较,下图是分段的结果,上图是没有分段并利用快速卷积所算出的结果,验证两者运算结果相同。至于为什么要把前面 formula_271 丢掉?
以下以一例子来阐述:
formula_337, 长度 formula_338,
formula_339, 长度 formula_340,
第一条蓝线代表 formula_341 轴,而两条蓝线之间代表长度 formula_239,是在做快速折积时的周期当在做快速折积时formula_318,是把讯号视为周期 formula_239,在时域上为循环折积分,
而在一开始前 formula_271 点所得到的值,是 formula_346 和 formula_347 内积的值,
然而 formula_348 这 formula_271 个值应该要为零,以往在做快速折积时长度为 formula_272 时不会遇到这些问题,
而今天因为在做快速折积时长度为 formula_239 才会把这 formula_271 点算进来,因此我们要丢弃这 formula_271 点内积的结果为了要丢弃这 formula_271 点内积的结果,位移 formula_355 formula_271 点,并把位移以后内积合的值才算有效。
应用时机.
以上三种方法皆可用来计算卷积,其差别在于所需总体乘法量不同。基于运算量以及效率的考量,在计算卷积时,通常会选择所需总体乘法量较少的方法。
以下根据formula_216和formula_106的长度(formula_359)分成5类,并列出适合使用的方法:
基本上,以上只是粗略的分类。在实际应用时,最好还是算出三种方法所需的总乘法量,再选择其中最有效率的方法来计算卷积。
例子.
Q1:当formula_365,适合用哪种方法计算卷积?
Ans:
方法1:所需乘法量为formula_366
方法2:formula_367,而2016点的DFT最少乘法数formula_368,所以总乘法量为formula_369
方法3:
若切成8块(formula_370),则formula_371。选formula_372,则总乘法量为formula_373,比方法1和2少了很多。
但是若要找到最少的乘法量,必须依照以下步骤
(1)先找出formula_239:解formula_375 : formula_376
(2)由formula_377算出点数在formula_231附近的DFT所需最少的乘法量,选择DFT的点数
(3)最后由formula_379算出formula_380
因此,
(1)由运算量对formula_239的偏微分为0而求出formula_382
(2)formula_383,所以选择101点DFT附近点数乘法量最少的点数formula_384或formula_385。
(3-1)当formula_386,总乘法量为formula_387。
(3-2)当formula_388,总乘法量为formula_389。
由此可知,切成20块会有较好的效率,而所需总乘法量为21480。
Q2:当formula_391,适合用哪种方法计算卷积?
Ans:
方法1:所需乘法量为formula_392
方法2:formula_393,选择1026点DFT附近点数乘法量最少的点数,formula_394。
因此,所需乘法量为formula_395
方法3:
(1)由运算量对formula_239的偏微分为0而求出formula_397
(2)formula_398,所以选择7点DFT附近点数乘法量最少的点数formula_399或formula_400或formula_401。
(3-1)当formula_402,总乘法量为formula_403。
(3-2)当formula_404,总乘法量为formula_405。
(3-3)当formula_406,总乘法量为formula_407。
由此可知,切成171块会有较好的效率,而所需总乘法量为5476。
Q3:当formula_410,适合用哪种方法计算卷积?
Ans:
方法1:所需乘法量为formula_411
方法2:formula_412,选择1026点DFT附近点数乘法量最少的点数,formula_413。
因此,所需乘法量为formula_369
方法3:
(1)由运算量对formula_239的偏微分为0而求出formula_416
(2)formula_417,所以选择1623点DFT附近点数乘法量最少的点数formula_418。
(3)当formula_419,总乘法量为formula_420。
由此可知,此时切成一段,就跟方法2一样,所需总乘法量为44232。
应用.
卷积在科学、工程和数学上都有很多应用:
延伸阅读.
publisher=McGraw–Hill | year=1986 | isbn=0-07-116043-4}}.
|ref=Oppenheim
|last1=Oppenheim
|first1=Alan V.
|authorlink=Alan V. Oppenheim
|last2=Schafer
|first2=Ronald W.
|author2-link=Ronald W. Schafer
|last3=Buck
|first3=John R.
|title=Discrete-time signal processing
|pages=548, 571
|year=1999
|publisher=Prentice Hall
|location=Upper Saddle River,N.J.
|isbn=0-13-754920-2
|edition=2nd
|url-access=registration
|url=https://archive.org/details/discretetimesign00alan
|ref=McGillem
|last1=McGillem
|first1=Clare D.
|last2=Cooper
|first2=George R.
|title=Continuous and Discrete Signal and System Analysis
|url=https://archive.org/details/continuousdiscre0000mcgi
|publisher=Holt, Rinehart and Winston
|edition=2
|date=1984
|isbn=0-03-061703-0
图片快照过大,请您耐心等候,如果加载失败请稍后再试!