为什么需要卷积,或者卷积背后的原理是什么?


15

我在数字图像恢复领域工作。我已经阅读了有关卷积的所有内容,对于LTI系统,如果我们知道它的冲激响应,那么我们只需使用输入和冲激响应之间的卷积就可以找到其输出。

谁能告诉我它背后的主要数学哲学是什么?您的经验不仅可以让我在网上冲浪,还可以告诉我更多的信息。



3
我对此问题不满意,因为在该网站上已反复询问并回答了该问题(或它的一些细微变化)。您应该在该站点上进行“互联网冲浪”。
Dilip Sarwate 2013年

Answers:


14

卷积的思想

我最喜欢的主题演讲是布拉德·奥斯古德(Brad Osgood)关于傅立叶变换演讲之一。卷积的讨论在36:00左右开始,但是整个演讲还有其他值得关注的背景。

基本思想是,当您定义诸如傅立叶变换之类的内容时,与其一直使用该定义而不是一直直接使用该定义,而是派生出简化计算的高级属性很有用。例如,一种这样的性质是两个函数之和的变换等于变换的和,即

F{f+g}=F{f}+F{g}.

这意味着,如果您有一个具有未知转换的函数,并且可以将其分解为具有已知转换的函数之和,则基本上可以免费获得答案。

现在,由于我们具有两个变换之和的标识,所以自然要问两个变换的乘积的标识是什么,即

F{f}F{g}= ?.

事实证明,当您计算答案时,就会出现卷积。整个推导过程在视频中给出,由于您的问题主要是概念性的,因此在这里我不做总结。

以这种方式接近卷积的含义是它是拉普拉斯变换(傅立叶变换是一种特殊情况)将线性常系数常微分方程(LCCODE)转换为代数方程的方法的内在部分。可以使用这种转换使LCCODE的分析易于处理的事实是在信号处理中研究它们的很大一部分原因。例如,引用Oppenheim和Schafer

由于它们在数学上相对容易表征,并且由于可以被设计为执行有用的信号处理功能,因此将广泛研究线性不变式系统的类别。

因此,这个问题的一个答案是,如果您使用转换方法来分析和/或合成LTI系统,迟早会出现卷积(隐式或显式)。注意,这种在微分方程中引入卷积的方法是非常标准的。例如,请参阅Arthur Mattuck的MIT讲座。大多数演示文稿要么不加注释地展示卷积积分,然后导出其特性(即将其从帽子中取出),要么下摆和摆弄积分的奇怪形式,谈论翻转和拖动,时间反转等,等等。 。

我之所以喜欢Osgood教授的方法,是因为它避免了所有的琐事,而且在我看来,它提供了对数学家如何首先想到这个想法的深刻见解。我引用:

我说:“有没有一种在时域中组合F和G的方法,以便在频域中频谱相乘,傅立叶变换相乘?” 答案是肯定的。这不是很明显。您不会在早上起床写下来,并希望这将解决该问题。我们如何得到它?您说过,假设问题已解决,请查看将要发生的情况,然后我们必须识别何时该宣布胜利。现在该宣布胜利了。

现在,作为一个令人讨厌的数学家,您会掩盖自己的足迹,并说:“嗯,我只是要通过此公式定义两个函数的卷积。”

LTI系统

在大多数DSP文本中,卷积通常以不同的方式引入(避免了对转换方法的任何引用)。通过将任意输入信号表示为按比例缩放和位移后的单位脉冲之和,x(n)

(1)x(n)=k=x(k)δ(nk),

哪里

(2)δ(n)={0,n01,n=0,

线性时不变系统的定义特性直接导致涉及脉冲响应的卷积和h(n)=L[ δ(n) ]。如果由LTI运算符定义的系统表示为,则通过应用相应的属性,即线性Ly(n)=L[ x(n) ]

(3)L[ ax1(n)+bx2(n) ]Transform of the sum of scaled inputs=aL[ x1(n) ]+bL[ x2(n) ]Sum of scaled transforms,

和时间/班次不变性

(4)L[ x(n) ]=y(n) impliesL[ x(nk) ]=y(nk),

该系统可以重写为

y(n)=L[k=x(k)δ(nk)]Tranform of the sum of scaled inputs=k=x(k)L[δ(nk)]Sum of scaled transforms=k=x(k)h(nk).Convolution with the impulse response

这是呈现卷积的一种非常标准的方式,也是一种完美而优雅且有用的方式。在Oppenheim和SchaferProakis和ManolakisRabiner和Gold中可以找到类似的推导,我敢肯定还有很多其他推导。Dilip在此处的出色回答中给出了更深入的见解(比标准介绍要深入得多)。

但是请注意,这种推导有些魔术。再看一下信号如何在分解,我们可以看到它已经是卷积形式了。如果(1)

(fg)(n)f convolved with g=k=f(k)g(nk),

那么只是。因为delta函数是卷积的标识元素,所以说可以以这种形式表示的任何信号都非常类似于说任何数字可以表示为或。现在,选择以这种方式描述信号是很了不起的,因为它直接导致了脉冲响应的想法-只是卷积的想法已经“扎根”在信号的分解中。(1)xδnn+0n×1

从这个角度来看,卷积与增量函数的概念本质上相关(即,以增量函数为标识元素的二进制运算)。即使不考虑其与卷积的关系,信号的描述也主要取决于增量函数的概念。那么问题就变成了,我们首先从何处得到delta函数的想法?据我所知,它至少可以追溯到傅立叶关于热分析理论的论文,它隐含地出现了。进一步信息的来源之一是AlejandroDomínguez撰写的有关卷积起源和历史的论文

现在,这是在线性系统理论的背景下实现该思想的两种主要方法。一个偏爱分析洞察力,另一个偏爱数值解法。我认为两者都有助于全面了解卷积的重要性。但是,在离散情况下,完全忽略线性系统,从某种意义上讲,卷积是一个更古老的想法。

多项式乘法

吉尔伯特·斯特兰(Gilbert Strang)在本讲座中大约5:46开始,很好地介绍了离散卷积只是多项式乘法的想法。从这个角度来看,这个想法一直可以追溯到位置数系统的引入(位置数系统隐式表示为多项式)。因为Z变换将信号表示为z中的多项式,所以在这种情况下也会发生卷积-即使Z变换在形式上被定义为延迟算子,而无需借助复杂的分析和/或作为Laplace的特殊情况转换


先生,感谢您的宝贵指导,您刚刚向我展示了正确的跟踪方法。您的帮助已教会我如何成为别人的好人。...:)
Mayank Tiwari 2013年

这个大巧的巧合如何解释您在他所问的情况下需要进行卷积?我相信,在每个域中,当您将参数还原到时域时,都会有一个卷积运算。我们可能需要在时域中进行多重复制以获得响应吗?为什么我们要乘以频率而不是时间扫描?
2013年

1
考虑到OP已经问了一个问题,即脉冲在LTI系统中的作用,我读了这个问题,他以此为例来激发一个关于卷积从何而来的问题-不一定是卷积在计算脉冲中的作用响应本身。那是你要的吗
datageist

1
如果我们不知道为什么需要傅里叶乘法,那么说我们需要卷积是因为它与傅里叶乘法相同,这对我来说是胡说八道。当我们得到脉冲响应时,这意味着时域和卷积,而不是傅立叶基础上的任何黑魔法。我不认为提及该问题可以澄清这一点。无论如何,对一般的基本问题(即系统问题)给出“局部答案”是不好的。问答必须对未来的访客有用。
2013年

Val的上述评论正确无误。我不知道在发明/发现傅立叶变换之前线性系统是如何工作的。如何在地球上做了一个非众生无生命的物体发现这样一个复杂的公式?
Dilip Sarwate 2013年

6

曾经在Wikipedia卷积讨论页面上给出了答案,该页面基本上提出了相同的问题:为什么要进行时间倒置?。原理是您在时间0向滤波器施加单个脉冲,并在时间0、1、2、3、4,…记录其响应。基本上,响应看起来像一个函数h(t)。您可以绘制它。如果脉冲高/高n倍,则响应脉冲将成比例地高(这是因为始终采用线性滤波器)。现在,所有DSP(不仅是DSP)都涉及将滤波器应用于信号时会发生什么情况?你知道冲动的反应。您的信号(尤其是数字信号)不过是一系列高度为x(t)的脉冲。它在时间t具有高度/值xt。线性系统很酷,您可以将每个这样的输入脉冲的输出求和,以获得输入函数x(t)的响应函数y(t)。您知道输出脉冲y(t = 10)取决于立即输入x(1​​0),这贡献了h(0)* x(10)。但是,前一个脉冲x(9)的输出也有x(9)* h(1)的贡献,甚至更早的输入值也有贡献。您会看到,当您从较早的输入中添加贡献时,一个时间参数会减少,而另一个时间参数会增加。您将所有贡献MAC MAC为y(10)= h(0)* x(10)+ h(1)* x(9)+ h(2)* x(8)+…,这是一个卷积。

您可以将函数y(t),h(t)和x(t)视为向量。矩阵是线性代数中的算子。他们采用输入向量(一系列数字)并产生输出向量(另一系列数字)。在这种情况下,y是卷积矩阵与向量x的乘积,

y=[y0y1y2]=[h000h1h00h2h1h0][x0x1x2]=Hx

现在,由于卷积是Toeplitz矩阵,它具有傅立叶本征基,因此卷积算子(线性算子由矩阵表示,但矩阵也取决于基)在傅里叶域中是一个很好的对角矩阵,

Y=[Y0Y1Y2]=[λ0000λ1000λ2][X0X1X2]=diag(H)X

注意,更多的零,因此计算也更简单。这个结果被称为“卷积定理”,并且作为第一个回答,在傅立叶域中它要简单得多。但是,这是“卷积定理”,傅立叶基和线性算符背后的系统论,而不是普遍存在的卷积需求。

通常,您进行卷积是因为您具有输入信号,冲激响应并且需要时域输出。您可以转换到傅立叶空间以优化计算。但是,如我在DSPGuide中所见,对于简单的过滤器来说,这是不切实际的。如果过滤器的样子,对傅立叶变换没有意义。您只需进行n次乘法,即可计算每个y。实时也很自然。实时您一次只计算y。如果您记录了信号x并且需要立即计算整个向量y,您可能会想到傅里叶变换。这将需要NxN个MAC运算,并且Fourier可以帮助将其减少为N log(N)。y[currentTime]=k1x[time1]+k2x(time2)+by[time1]


有几点注意事项:对于连续时间情况(显然早于离散时间情况),您将如何扩展此描述?同样,有许多实时应用程序使用基于傅立叶变换的方法进行快速卷积。说对于实时应用程序总是总是一次计算一次输出是不正确的。
詹森·R

话虽如此,不错的工作指出了卷积矩阵的Toeplitz结构暗示它在傅立叶基础上接受对角线表示的事实。
杰森R

是的,可能您是实时使用Fourier Transfrom。我远不是DSP专家。我只是表达了这个主意(我是从我稀少的练习和阅读DSPGuide中学到的)。无论如何,我想强调的是,傅立叶与卷积理论无关。我可能需要删除所有与傅立叶相关的讨论,因为这会分散您的注意力。卷积在时域中是自然的,并且无论傅立叶多么酷,都不需要傅立叶。
2013年

连续时间案例在历史上是先于事实的事实,并不要求我们以相同的顺序学习。我认为从离散情况开始更容易理解包括卷积在内的许多事物的哲学(并且我们在D SP.se中采用这种方法)。在连续情况下,随着我们使脉冲越来越短,一系列的MAC操作变成了积分。顺便说一句,集成本身被理解为限制情况下,离散的总和:˚F X d X = LIM d X 0ΣFXdX。因此,它不可能先于离散求和。FXdX=dX0FXdX
2013年

@JasonR在连续设置中,将Toeplitz矩阵替换为不变移位运算符。然后,您可以证明傅立叶基础函数对角化了该运算符。
lp251

3

尽管先前的回答确实非常好,但我想补充一下关于卷积的观点,在这些观点的帮助下,这些数字将使其更易于可视化。

人们想知道是否有任何方法可以针对给定的输入信号确定系统的输出信号。只要系统是线性且不随时间变化的(LTI),卷积就是该问题的答案。

假设我们有一个任意信号。然后,通过以下推理,可以将s [ n ]分解为移位的单位脉冲的缩放总和。将s [ n ]与单位脉冲相乘m个样本作为δ [ n - m ]。由于δ [ n - m ]n = m之外各处都等于0 ,因此当s [ n ]的所有值乘以0时。s[ñ]s[ñ]s[ñ]δ[ñ-]δ[ñ-]ñ=s[ñ]不等于 m,当 n等于 m时加1。因此,生成的序列将在 n = m处具有值为 s [ m ]的脉冲。下图清楚地说明了此过程。ñññ=s[]

在此处输入图片说明

s[ñ]δ[ñ-]=s[]δ[ñ-]
s[ñ]δ[ñ-]=s[]δ[ñ-]

s[m]<m<s[n]

s[ñ]=+s[-2]δ[ñ+2]+s[-1个]δ[ñ+1个]+s[0]δ[ñ]+s[1个]δ[ñ-1个]+s[2]δ[ñ-2]+==-s[]δ[ñ-]

s[ñ]δ[ñ-]s[]

在此处输入图片说明

H[ñ]

在此处输入图片说明

这导致输入-输出序列为

在此处输入图片说明

[R[ñ]s[ñ]H[ñ]

卷积是一个非常逻辑和简单的过程,但是由于其解释的方式,许多DSP学习者会发现它令人困惑。我们将描述传统方法和另一种更直观的方法。

常规方法


ñ

[R[ñ]==-s[]H[-+ñ]H[]=0H[-]

H[-+ñ]ñH[-]ñññ

s[]H[-+ñ]s[]H[-+ñ]

ñ

ñ

s[ñ]=[2-1个1个]H[ñ]=[-1个1个2][R[ñ]ñ

s[ñ]H[ñ]ññH[-]s[][R[ñ]ñH[-]

在此处输入图片说明

接下来,我们转向更直观的方法,其中不需要翻转信号。

直观的方法


[R[ñ]

[R[ñ] = +s[-2]H[ñ+2] +s[-1个]H[ñ+1个] +s[0]H[ñ] + s[1个]H[ñ-1个] + s[2]H[ñ-2] +
s[ñ]=[2- 1个1个]H[ñ]=[-1个1个2]

在此处输入图片说明

下图说明了这种方法。从实现的角度来看,两种方法之间没有区别。

在此处输入图片说明

综上所述,卷积告诉我们LTI系统如何响应特定输入,并且由于上面的直观方法,我们可以说卷积在时域上也是倍增的(并且不需要翻转信号),除了时域乘法涉及内存。为了更深入地了解翻转的来源以及频域中发生的情况,您可以在此处从我的书中下载示例部分。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.