跳转到内容

英文维基 | 中文维基 | 日文维基 | 草榴社区

卷积

本页使用了标题或全文手工转换
维基百科,自由的百科全书
卷积、互相关自相关的图示比较。运算涉及函数,并假定的高度是1.0,在5个不同点上的值,用在每个点下面的阴影面积来指示。的对称性是卷积和互相关在这个例子中相同的原因。

泛函分析中,卷积(convolution),或译为叠积褶积旋积,是透过两个函数生成第三个函数的一种数学算子,表征函数与经过翻转和平移的的乘积函数所围成的曲边梯形的面积。如果将参加卷积的一个函数看作区间指示函数,卷积还可以被看作是“移动平均”的推广。

定义

[编辑]

卷积是数学分析中一种重要的运算。设:实数上的两个可积函数,定义二者的卷积为如下特定形式的积分变换

仍为可积函数,并且有着:

函数,如果只支撑之上,则积分界限可以截断为:

对于

对于两个得出复数值的多元实变函数英语Function of several real variables,可以定义二者的卷积为如下形式的多重积分

卷积有一个通用的工程上的符号约定[1]

它必须被谨慎解释以避免混淆。例如:等价于,而却实际上等价于[2]

历史

[编辑]

卷积运算的最早使用出现在达朗贝尔于1754年出版的《宇宙体系的几个要点研究》中对泰勒定理的推导之中[3]。还有西尔维斯特·拉克鲁瓦英语Sylvestre François Lacroix,将类型的表达式,用在他的1797年–1800年出版的著作《微分与级数论文》中[4]。此后不久,卷积运算出现在皮埃尔-西蒙·拉普拉斯约瑟夫·傅里叶西梅翁·泊松等人的著作中。这个运算以前有时叫做“Faltung”(德语中的折叠)、合成乘积、叠加积分或卡森积分[5]

“卷积”这个术语早在1903年就出现了,然而其定义在早期使用中是相当生僻的[6][7],直到1950年代或1960年代之前都未曾广泛使用。

简介

[编辑]

如果都是在Lp 空间内的勒贝格可积函数,则二者的卷积存在,并且在这种情况下也是可积的[8]。这是托内利定理的结论。对于在中的函数在离散卷积下,或更一般的对于在任何群的上的卷积,这也是成立的。同样的,如果,这里的,则,并且其Lp 范数间有着不等式

的特殊情况下,这显示出是在卷积下的巴拿赫代数(并且如果几乎处处非负则两边间等式成立)。

卷积与傅里叶变换有着密切的关系。例如两函数的傅里叶变换的乘积等于它们卷积后的傅里叶变换,利用此一性质,能简化傅里叶分析中的许多问题。

由卷积得到的函数,一般要比都光滑。特别当为具有紧支集的光滑函数为局部可积时,它们的卷积也是光滑函数。利用这一性质,对于任意的可积函数,都可以简单地构造出一列逼近于的光滑函数列,这种方法称为函数的光滑化或正则化

函数互相关,等价于共轭复数的卷积:

这里的叫做移位(displacement)或滞后(lag)。

对于单位脉冲函数和某个函数,二者得到的卷积就是本身,此被称为冲激响应

在连续时间线性非时变系统中,输出信号被描述为输入信号冲激响应的卷积[9]

两个独立随机变量,每个都有一个概率密度函数,二者之和的概率密度,是它们单独的密度函数的卷积:

图解

[编辑]
  1. 已知右侧第一行图中两个函数
  2. 首先将两个函数都用约束变量来表示,并将翻转至纵轴另一侧,从而得到右侧第二行图中
  3. 向函数增加一个时间偏移量,得到函数不是常数而是自由变量,当取不同值时,能沿着轴“滑动”。如果是正值,则等于沿着轴向右(朝向)滑动数量。如果是负值,则等价于向左(朝向)滑动数量
  4. 变化至,当两个函数交会时,计算交会范围中两个函数乘积的积分值。换句话说,在时间,计算函数经过权重函数施以权重后其下的面积。右侧第三、第四和第五行图中,分别是时的情况,从时开始有交会,例如在第四行图中,,对于有着
最后得到的波形(未包含在此图中)就是的卷积。
两个矩形脉冲波的卷积。其中函数首先对反射,接着平移,成为。那么重叠部分的面积就相当于处的卷积,其中横坐标代表待变量以及新函数的自变量
矩形脉冲波指数衰减脉冲波的卷积(后者可能出现于RC电路中),同样地重叠部分面积就相当于处的卷积。注意到因为是对称的,所以在这两张图中,反射并不会改变它的形状。

周期卷积

[编辑]

两个周期的函数的“周期卷积”定义为[10][11]

这里的是任意参数。

任何可积分函数英语Absolutely integrable function,都可以通过求函数的所有整数倍平移总和,从而制作出具有周期周期函数 ,这叫做周期求和英语Periodic summation

对于无周期函数,其周期的周期求和分别是的周期卷积,可以定义为的常规卷积,或的常规卷积,二者都等价于的周期积分:

圆周卷积是周期卷积的特殊情况[11][12],其中函数二者的非零部分,都限定在区间之内,此时的周期求和称为“周期延拓”。中函数可以通过取非负余数模除运算表达为“圆周函数”:

而积分的界限可以缩简至函数的长度范围

离散卷积

[编辑]
离散卷积示意图

对于定义在整数上且得出复数值的函数,离散卷积定义为[13]

这里一样把函数定义域以外的值当成零,所以可以扩展函数到所有整数上(如果本来不是的话)。两个有限序列的卷积的定义,是将这些序列扩展成在整数集合上有限支撑的函数。在这些序列是两个多项式的系数之时,这两个多项式的普通乘积的系数,就是这两个序列的卷积。这叫做序列系数的柯西乘积

支撑集为有限长度的之时,上式会变成有限求和

多维离散卷积

[编辑]
用离散二维卷积对图像进行锐化英语Kernel (image processing)处理的动画

类似于一维情况,使用星号表示卷积,而维度体现在星号的数量上,维卷积就写为个星号。下面是维信号的卷积的表示法:

对于离散值的信号,这个卷积可以直接如下这样计算:

结果的离散多维卷积所支撑的输出区域,基于两个输入信号所支撑的大小和区域来决定。

在两个二维信号之间的卷积的可视化

离散周期卷积

[编辑]
对比离散无周期卷积(左列)与离散圆周卷积(右列)

对于离散序列和一个参数,无周期函数的“周期卷积”是为:

这个函数有周期,它有最多个唯一性的值。的非零范围都是的特殊情况叫做圆周卷积

离散圆周卷积可简约为矩阵乘法,这里的积分变换的核函数是循环矩阵:

圆周卷积最经常出现的快速傅里叶变换的实现算法比如雷德算法之中。

性质

[编辑]

代数

[编辑]

各种卷积算子都满足下列性质:

交换律
结合律
分配律
数乘结合律

其中为任意实数(或复数)。

复数共轭
微分有关
积分有关
如果,并且,则有:

积分

[编辑]

如果是可积分函数,则它们在整个空间上的卷积的积分,简单的就是它们积分的乘积[14]

这是富比尼定理的结果。如果只被假定为非负可测度函数,根据托内利定理,这也是成立的。

微分

[编辑]

在一元函数情况下,的卷积的导数有着:

这里的微分算子。更一般的说,在多元函数的情况下,对偏导数也有类似的公式:

这就有了一个特殊结论,卷积可以看作“光滑”运算:的卷积可微分的次数,是的总数。

这些恒等式成立的严格条件,为是绝对可积分的,并且至少二者之一有绝对可积分()弱导数,这是Young卷积不等式英语Young's convolution inequality的结论。

在离散情况下,差分算子满足类似的关系:

卷积定理

[编辑]

卷积定理指出[15],在适当的条件下,两个函数(或信号)的卷积的傅里叶变换,是它们的傅里叶变换的逐点乘积。更一般的说,在一个域(比如时域)中的卷积等于在其他域(比如频域逐点乘法。

设两个函数,分别具有傅里叶变换

这里的算子指示傅里叶变换

卷积定理声称:

应用逆傅里叶变换产生推论:

这里的算符指示逐点乘法。

这一定理对拉普拉斯变换双边拉普拉斯变换Z变换梅林变换Hartley变换英语Hartley transform等各种傅里叶变换的变体同样成立。在调和分析中还可以推广到在局部紧致的阿贝尔群上定义的傅里叶变换。

周期卷积

[编辑]

对于周期为的函数,可以被表达为二者的周期求和英语Periodic summation

它们的傅里叶级数系数为:

这里的算子指示傅里叶级数积分

逐点乘积的周期也是,它的傅里叶级数系数为:

周期卷积的周期也是,周期卷积的卷积定理为:

离散卷积

[编辑]

对于作为两个连续函数采样序列,它们具有离散时间傅里叶变换

这里的算子指示离散时间傅里叶变换(DTFT)。

离散卷积的卷积定理为:

离散周期卷积

[编辑]

对于周期为序列

相较于离散时间傅里叶变换的周期是,它们是按间隔采样,并在个采样上进行了逆离散傅里叶变换(DFT-1或IDFT)的结果。

离散周期卷积的周期也是。离散周期卷积定理为:

这里的算子指示长度离散傅里叶变换(DFT)。

它有着推论:

对于其非零时段小于等于,离散圆周卷积的卷积定理为:

推广

[编辑]

卷积的概念还可以推广到数列测度以及广义函数上去。函数是定义在上的可测函数(measurable function),存在卷积并记作。如果函数不是定义在上,可以把函数定义域以外的值都规定成零,这样就变成一个定义在上的函数。

G是有某m 测度(例如豪斯多夫空间哈尔测度局部紧致拓扑群),对于Gm-勒贝格可积实数复数函数fg,可定义它们的卷积:

对于这些群上定义的卷积同样可以给出诸如卷积定理等性质,但是这需要对这些群的表示理论以及调和分析的彼得-外尔定理

离散卷积的计算方法

[编辑]

计算卷积有三种主要的方法,分别为

  1. 直接计算(Direct Method)
  2. 快速傅里叶变换(FFT)
  3. 分段卷积(sectioned convolution)

方法1是直接利用定义来计算卷积,而方法2和3都是用到了FFT来快速计算卷积。也有不需要用到FFT的作法,如使用数论变换

方法1:直接计算

[编辑]
  • 作法:利用卷积的定义
  • 皆为实数信号,则需要个乘法。
  • 皆为更一般性的复数信号,不使用复数乘法的快速算法,会需要个乘法;但若使用复数乘法的快速算法,则可简化至个乘法。
因此,使用定义直接计算卷积的复杂度为

方法2:快速傅里叶变换

[编辑]
  • 概念:由于两个离散信号在时域(time domain)做卷积相当于这两个信号的离散傅里叶变换在频域(frequency domain)做相乘:
,可以看出在频域的计算较简单。
  • 作法:因此这个方法即是先将信号从时域转成频域:
,于是
,最后再将频域信号转回时域,就完成了卷积的计算:
总共做了2次DFT和1次IDFT。
  • 特别注意DFT和IDFT的点数要满足
  • 由于DFT有快速算法FFT,所以运算量为
  • 假设点DFT的乘法量为为一般性的复数信号,并使用复数乘法的快速算法,则共需要个乘法。

方法3:分段卷积

[编辑]
  • 概念:将切成好几段(section),每一段分别和做卷积后,再将结果相加。
  • 作法:先将切成每段长度为的区段(),假设共切成S段:
Section 1:
Section 2:
Section r:
Section S:
为各个section的和
因此,
每一小段作卷积则是采用方法2,先将时域信号转到频域相乘,再转回时域:
  • 总共只需要做点FFT 次,因为只需要做一次FFT。
  • 假设点DFT的乘法量为为一般性的复数信号,并使用复数乘法的快速算法,则共需要个乘法。
  • 运算量:
  • 运算复杂度:,和呈线性,较方法2小。
  • 分为 Overlap-Add 和 Overlap-Save 两种方法。

分段卷积: Overlap-Add

欲做的分段卷积分, 长度为 长度为 ,

Step 1: 将 分成一段

Step 2: 再每段 点后面添加 个零,变成长度

Step 3: 把 添加 个零,变成长度

Step 4: 把每个 的小段和 做快速卷积,也就是,每小段会得到长度 的时域信号

Step 5: 放置第 个小段的起点在位置 上,

Step 6: 会发现在每一段的后面 点有重叠,将所有点都相加起来,顾名思义 Overlap-Add,最后得到结果

举例来说:

, 长度

, 长度

切成三段,分别为 , 每段填 个零,并将 填零至长度

将每一段做

若将每小段摆在一起,可以注意到第一段的范围是 ,第二段的范围是 ,第三段的范围是 ,三段的范围是有重叠的

最后将三小段加在一起,并将结果和未分段的卷积做比较,上图是分段的结果,下图是没有分段并利用快速卷积所算出的结果,验证两者运算结果相同。

分段卷积: Overlap-Save

欲做的分段卷积分, 长度为 长度为 ,

Step 1: 将 前面填 个零

Step 2: 第一段 , 从新的 取到 总共 点当做一段,因此每小段会重复取到前一小段的 点,取到新的一段全为零为止

Step 3: 把 添加 个零,变成长度

Step 4: 把每个 的小段和 做快速卷积,也就是,每小段会得到长度 的时域信号

Step 5: 对于每个 小段,只会保留末端的 点,因此得名 Overlap-Save

Step 6: 将所有保留的点合再一起,得到最后结果

举例来说:

, 长度

, 长度

前面填 个零以后,按照 Step 2 的方式分段,可以看到每一段都重复上一段的

再将每一段做 以后可以得到

保留每一段末端的 点,摆在一起以后,可以注意到第一段的范围是 ,第二段的范围是 ,第三段的范围是 ,第四段的范围是 ,四段的范围是没有重叠的

将结果和未分段的卷积做比较,下图是分段的结果,上图是没有分段并利用快速卷积所算出的结果,验证两者运算结果相同。

至于为什么要把前面 丢掉?

以下以一例子来阐述:

, 长度

, 长度 ,

第一条蓝线代表 轴,而两条蓝线之间代表长度 ,是在做快速卷积时的周期

当在做快速卷积时,是把信号视为周期 ,在时域上为循环卷积分,

而在一开始前 点所得到的值,是 内积的值,

然而 个值应该要为零,以往在做快速卷积时长度为 时不会遇到这些问题,

而今天因为在做快速卷积时长度为 才会把这 点算进来,因此我们要丢弃这 点内积的结果

为了要丢弃这 点内积的结果,位移 点,并把位移以后内积合的值才算有效。

应用时机

[编辑]

以上三种方法皆可用来计算卷积,其差别在于所需总体乘法量不同。基于运算量以及效率的考量,在计算卷积时,通常会选择所需总体乘法量较少的方法。

以下根据的长度()分成5类,并列出适合使用的方法:

  1. 为一非常小的整数 - 直接计算
  2. - 分段卷积
  3. - 快速傅里叶变换
  4. - 分段卷积
  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。
  • 因此,当,所需总乘法量:分段卷积<直接计算<快速傅里叶变换。故,此时选择使用分段卷积来计算卷积最适合。
  • 虽然当是个很小的正整数时,大致上适合使用直接计算。但实际上还是将3个方法所需的乘法量都算出来,才能知道用哪种方法可以达到最高的效率。

Q3:当,适合用哪种方法计算卷积?

Ans:

方法1:所需乘法量为
方法2:,选择1026点DFT附近点数乘法量最少的点数,
因此,所需乘法量为
方法3:
(1)由运算量对的偏微分为0而求出
(2),所以选择1623点DFT附近点数乘法量最少的点数
(3)当,总乘法量为
由此可知,此时切成一段,就跟方法2一样,所需总乘法量为44232。
  • 因此,当,所需总乘法量:快速傅里叶变换 = 分段卷积<直接计算。故,此时选择使用分段卷积来计算卷积最适合。

应用

[编辑]
高斯模糊可被用来从半色调印刷品复原出光滑灰度数字图像。

卷积在科学、工程和数学上都有很多应用:

参见

[编辑]

引用

[编辑]
  1. ^ Smith, Stephen W. 13.Convolution. The Scientist and Engineer's Guide to Digital Signal Processing 1. California Technical Publishing. 1997 [22 April 2016]. ISBN 0-9660176-3-3. (原始内容存档于2023-06-26). 
  2. ^ Irwin, J. David. 4.3. The Industrial Electronics Handbook 1. Boca Raton, FL: CRC Press. 1997: 75. ISBN 0-8493-8343-9. 
  3. ^ Dominguez-Torres, p 2
  4. ^ on page 505 of his book entitled Treatise on differences and series, which is the last of 3 volumes of the encyclopedic series: Traité du calcul différentiel et du calcul intégral, Chez Courcier, Paris, 1797–1800. Dominguez-Torres, p 4
  5. ^ R. N. Bracewell, Early work on imaging theory in radio astronomy, W. T. Sullivan (编), The Early Years of Radio Astronomy: Reflections Fifty Years After Jansky's Discovery, Cambridge University Press: 172, 2005, ISBN 978-0-521-61602-7 
  6. ^ John Hilton Grace and Alfred Young, The algebra of invariants, Cambridge University Press: 40, 1903 
  7. ^ Leonard Eugene Dickson, Algebraic invariants, J. Wiley: 85, 1914 
  8. ^ (Stein & Weiss 1971,Theorem 1.3)
  9. ^ Crutchfield, Steve, The Joy of Convolution, Johns Hopkins University, October 12, 2010 [November 21, 2010], (原始内容存档于2013-09-11) 
  10. ^ Jeruchim, Michel C.; Balaban, Philip; Shanmugan, K. Sam. Simulation of Communication Systems: Modeling, Methodology and Techniques 2nd. New York: Kluwer Academic Publishers. October 2000: 73–74. ISBN 0-30-646267-2. 
  11. ^ 11.0 11.1 Udayashankara, V. Real Time Digital Signal Processing. India: Prentice-Hall. June 2010: 189. ISBN 978-8-12-034049-7. 
  12. ^ Priemer, Roland. Introductory Signal Processing. Advanced Series in Electrical and Computer Engineering 6. Teaneck,N.J.: World Scientific Pub Co Inc. July 1991: 286–289 [2023-10-26]. ISBN 9971-50-919-9. (原始内容存档于2023-10-11). 
  13. ^ Damelin & Miller 2011,第219页
  14. ^ Weisstein, Eric W. Convolution. mathworld.wolfram.com. [2021-09-22]. (原始内容存档于2002-01-14) (英语). 
  15. ^ Weisstein, Eric W. From MathWorld--A Wolfram Web Resource. [2023-10-23]. (原始内容存档于2000-07-11). 
  16. ^ Zhang, Yingjie; Soon, Hong Geok; Ye, Dongsen; Fuh, Jerry Ying Hsi; Zhu, Kunpeng. Powder-Bed Fusion Process Monitoring by Machine Vision With Hybrid Convolutional Neural Networks. IEEE Transactions on Industrial Informatics. September 2020, 16 (9): 5769–5779 [2023-10-24]. ISSN 1941-0050. S2CID 213010088. doi:10.1109/TII.2019.2956078. (原始内容存档于2023-07-31). 
  17. ^ Chervyakov, N.I.; Lyakhov, P.A.; Deryabin, M.A.; Nagornov, N.N.; Valueva, M.V.; Valuev, G.V. Residue Number System-Based Solution for Reducing the Hardware Cost of a Convolutional Neural Network. Neurocomputing. September 2020, 407: 439–453 [2023-10-24]. S2CID 219470398. doi:10.1016/j.neucom.2020.04.018. (原始内容存档于2023-06-29) (英语). Convolutional neural networks represent deep learning architectures that are currently used in a wide range of applications, including computer vision, speech recognition, time series analysis in finance, and many others. 
  18. ^ Atlas, Homma, and Marks. An Artificial Neural Network for Spatio-Temporal Bipolar Patterns: Application to Phoneme Classification (PDF). Neural Information Processing Systems (NIPS 1987). (原始内容存档 (PDF)于2021-04-14). 

延伸阅读

[编辑]

外部链接

[编辑]