为什么卷积要先反转再滑动呢?不翻转为什么不行?

卓晴老师,我一直没想明白一个问题,为什么卷积要先反转再滑动呢?不翻转为什么不行?

为什么卷积要先反转再滑动呢?不翻转为什么不行?

▲ 孔乙己:回字有四种写法|插图来自网络

的确,对于两个信号之间的卷积运算,可以理解为对其中任意个信号进行“反褶”、“平移”、“相乘”、“积分(累加)”,最后得到卷积结果:

x(t)y(t)=+x(τ)y(tτ)dτx\left( t \right) * y\left( t \right) = \int_{ - \infty }^{ + \infty } {x\left( \tau \right) \cdot y\left( {t - \tau } \right)d\tau }x(t)∗y(t)=∫−∞+∞​x(τ)⋅y(t−τ)dτ
相比之下,相关运算就没有其中的“反褶”部分。但是,对于复值信号,需要对后面的信号取共轭1

Rxy(τ)=+x(t)y(tτ)dtR_{xy} \left( \tau \right) = \int_{ - \infty }^{ + \infty } {x\left( t \right) \cdot y^* \left( {t - \tau } \right)dt}Rxy​(τ)=∫−∞+∞​x(t)⋅y∗(t−τ)dt

卷积运算满足一些代数性质,比如交换律、结合律、分配率,但相关运算不满足。

到现在为止,我们只是讨论了这两个运算究竟那里不一样,即卷积需要先反褶,再滑动,而相关运算不需要反褶。但你还在问第二个问题:不反褶不行吗?

首先,如果参与运算两个实数信号中,有一个信号为偶函数,那么它们的卷积运算就和相关运算相同了。即可以不进行反褶。但为什么要引入带有反褶运算的卷积呢?

在应用中,相关运算主要描述的是信号与信号之间的相似关系,而卷积运算描述的是信号与系统之间的关系

相关运算中的核心积分运算是描述了两个信号之间的内积x(t),y(t)=x(t)y(t)dt\left\langle {x\left( t \right),y\left( t \right)} \right\rangle = \int_{ - \infty }^\infty {x\left( t \right) \cdot y^* \left( t \right)dt}⟨x(t),y(t)⟩=∫−∞∞​x(t)⋅y∗(t)dt

在线性空间中也可以引出两个信号之间的相似程度的度量,相关运算的结果反映了两个信号之间在不同的延迟情况下的相似性。因此可以通过寻找相关结果的峰值确定两个信号之间的延迟关系。

卷积则是刻画了一个线性时不变系统的零状态响应y(t)y\left( t \right)y(t)与系统的输入信号x(t)x\left( t \right)x(t)和系统的单位冲激响应信号h(t)h\left( t \right)h(t)之间的关系。利用信号可以分解成冲激信号的叠加:x(t)=+x(τ)δ(tτ)dτx\left( t \right) = \int_{ - \infty }^{ + \infty } {x\left( \tau \right) \cdot \delta \left( {t - \tau } \right)d\tau }x(t)=∫−∞+∞​x(τ)⋅δ(t−τ)dτ

在利用系统的线性+时不变特性,可以得到系统的输出y(t)y\left( t \right)y(t)就等于x(t),h(t)x\left( t \right),h\left( t \right)x(t),h(t)的卷积。y(t)=x(t)h(t)=+x(τ)h(tτ)dτy\left( t \right) = x\left( t \right) * h\left( t \right) = \int_{ - \infty }^{ + \infty } {x\left( \tau \right) \cdot h\left( {t - \tau } \right)d\tau }y(t)=x(t)∗h(t)=∫−∞+∞​x(τ)⋅h(t−τ)dτ

这其中的简单推导在任何一本讲解信号与系统教材中都有。因此引入带有反褶的卷积运算是为了刻画信号与系统之间的关系的。

正是由于引入了卷积运算,所以对于任何一个线性时不变系统,都可以将其与一个信号(系统的单位冲激响应)一一对应起来。信号与系统达到了完美的统一。

由此,你可能还要问:为什么系统的响应中,输入x(t)需要与单位冲激响应h(t)进行卷积运算?,只是进行相关不行吗?

进行相关运算时,参与运算的两个信号是对等的,它们的变量ttt都反映了信号随着时间t+t \to {\rm{ + }}\inftyt→+∞的过程演变的情况。但进行卷积运算时,其中一个信号是系统的单位冲激响应,运算结果中的变量ttt反映了系统输出结果所在的时刻,站在ttt时刻,考察输入信号x(τ)x\left( \tau \right)x(τ)的不同时间τ\tauτ的取值是如何累计出系统的输出y(t)y\left( t \right)y(t)的。因此,对于信号而言,它们的变量是τ\tauτ,而不是ttt。

对于τ\tauτ时刻的信号x(τ)x\left( \tau \right)x(τ)所产生的结果,只需经过延迟tτt - \taut−τ的时间,便到达了时刻ttt了,即h(tτ)h\left( {t - \tau } \right)h(t−τ)。将所有的x(τ)x\left( \tau \right)x(τ)所产生的结果进行积分,便可以得到系统在ttt时刻的取值了。

文字显得枯燥,一图抵千言。下面是郑君里2教授的教材中对此进行的图片描述。还是挺形象的。

为什么卷积要先反转再滑动呢?不翻转为什么不行?

▲ 信号的分解与系统的零状态响应

中国科学网也有很多教授对系统输出的卷积运算中的反褶进行了很好的讨论,比如曹广福老师在我来说卷积中,讨论了连续和离散时间卷积运算,并把离散卷积看成级数运算。许志强卷积是什么?的博文中,将卷积看成加权平均积王一哲卷积的理解及应用中给出了很多图形方面的解释。

所以,你提到的卷积运算中的奇怪的反褶过程,实际上引起过很多人的疑问以及对此的讨论。

可能最后,你还要问:既然,卷积运算和相关运算这么相近,为什么非要定义这个卷积,直接就定义成反褶+相关不就行了吗?

这个话就长了,虽然根据奥卡姆剃刀原理,可以尽可能减少概念、定理的数量来满足数学上的精简需求。但在工程中,人们还是喜欢偷懒。更有甚者,还采用挂羊头,卖狗肉的做法,对一些本质相同的运算,委以不同的名称,虽然还达不到扰乱视听的,但也是一种约定俗称,比如像 离散周期序列傅里叶级数分解(DTFS)离散傅里叶变换(DFT)、 快速傅里叶变换(FFT)**本质上的数学概念是一样的。

这样也没什么不好的,就连孔乙己都知道“”字回字有四种写法呢。

为什么卷积要先反转再滑动呢?不翻转为什么不行?

▲ 康熙字典中的四种回字写法


  1. 共轭:两个复数呈现共轭关系是指它们的实部相同,虚部相反 ↩︎

  2. 郑君里:(1937年至2019年4月14日),1961年毕业于清华大学无线电系。曾任清华大学电子工程系教授、通信与信息系统专业博士生导师。中国电子学会电路与系统学会委员、中国神经网络委员会委员。 ↩︎

上一篇:在使用androidStudio中所遇到的错误


下一篇:MySQL 显示表字段及注释等信息