不要再问我卷积了!看不懂找我要红包

卷积的困惑

卷积这个概念,在复变函数与积分变换里面提到过,而在处理信号的时候应用广泛,在书里给出了定义与各种性质,也给出了实例与图解法求卷积,但是为什么要这么设计,这么计算背后的意义是什么,往往语焉不详。

教科书中一般定义函数f,gf,g的卷积fg(t)f*g(t)如下:

连续形式:
f(t)g(t)=f(τ)g(tτ)dτ f(t)*g(t)=\int_{-\infty}^\infty f(\tau)g(t-\tau)d\tau
离散形式:
f(t)g(t)=τ=f(τ)g(tτ) f(t)*g(t)=\sum_{\tau=-\infty}^{\infty}f(\tau)g(t-\tau)

并且也说明了,现将g(t)g(t)进行翻转,相当于在数轴上把gg以纵轴为轴翻转180度,然后再把gg右移tt,再把ggff相乘,然后相加或者求下围面积。

但是这个样子,只是从计算上解释了卷积的公式。从数学上讲没有bug,但是这个样子能看懂,但是理解不了啊。那么该怎么理解它呢?

吃饭与消化中的卷积

正常吃饭

我们就拿吃饭与人体的消化作为例子,来讲解一下。
首先假设一个人名为甲,一日食三餐,早上6点,中午12点和下午六点各食一餐,如下图所示,并将此定义为f(t)f(t)
不要再问我卷积了!看不懂找我要红包
再次假设人吃进去东西,过了时间t剩下的量的函数如下图所示,并将此定义为g(t)g(t)
不要再问我卷积了!看不懂找我要红包
现在问题来了,甲到了该日的24点整的时候,肚子里还剩多少东西?

我们来慢慢分析一下,甲在6点吃了东西,吃了多少东西?f(6)=8f(6)=8
吃完后开始消化,到了24点过去了24-6个小时,六点吃的还剩多少?不就是吃的量与消化后剩下的相乘吗?
那剩下的多少不就是在g上取值吗?f(6)g(246)f(6)g(24-6)
同理,12点吃的东西和18点吃的东西到了24点分别剩下
{f(12)g(2412)f(18)g(2418) \begin{cases} f(12)g(24-12) \\ f(18)g(24-18) \end{cases}

那么到了24点,6点吃的东西会消失吗?不会。
所以每个都加起来,就是
t=6,12,18f(t)g(24t)\sum_{t=6,12,18} f(t)g(24-t)
诶诶诶,你看这个形式,是不是跟我们的卷积长得很像啊?
是咯,卷积就是这样。

那么我们来把问题深入一下,我想知道他一整天每个时间段,肚子里有多少东西,怎么办?
简单
我们把这个公式t=6,12,18f(t)g(24t)\sum_{t=6,12,18} f(t)g(24-t)改一下不就好了吗?
公式里的24不是想要求的时间吗?那么把它改成一个自变量t不就好了,这个初中生都知道。
咦,那不就有两个 t 了吗?那好吧,我们再改一下,把原来的 t 改成τ\tau,初中生都知道,变量名只是一个代称罢了,怎么改都一样。

τf(τ)g(tτ)\sum_{\tau} f(\tau)g(t-\tau)

不间断吃零食

那么我们再来假设,乙这个人,是个胖子,而且还是个很能吃的胖子,他一天24小时吃东西不间断,注意了,不间断的吃!
那么就是一个连续的函数,根据上面所算的,我们取一个无穷小量dτd\tau,经过与上面相似的一系列操作,我们可以发现在t时刻肚子里的东西有这么多:
f(τ)g(tτ)dτ\int f(\tau)g(t-\tau)d\tau
不要再问我卷积了!看不懂找我要红包
就这?哈哈哈兄弟们,就这,是不是跟卷积一毛一样?
对,这就是卷积。
因为这个公式比较常用,我们把它用一个符号*来表示两个函数之间的卷积。

信号中的卷积

根据上面的理解,我们可以很容易的理解信号到底是咋卷积的。
输入的信号就像吃进去的食物,而系统的单位冲激响应就像消化系统的函数。
t=0时输入一个信号值,过一段时间t,他变了,咋变的?随着系统变的。
此时输出的就是f(0)g(t0)f(0)g(t-0)
当t=1时,继续输入,第一个输入的值继续变,没有动,而第二个值又出现了,他们只能相加,此时输出的就是f(0)g(t0)+f(1)g(t1)f(0)g(t-0)+f(1)g(t-1)
同理,一直输入,不断求和,连续输入,不停积分。
仅此而已。

本文仅写了如何理解卷积。如有不懂,可以回复一起讨论一下。