您的位置:首页 > 其它

卷积的物理意义是什么?

2015-04-30 17:46 169 查看

有一个挺有意思的例子,我以前在万门大学童哲校长的公开课上看到的:

我们在研究一个人一天24小时肚子里还剩多少东西,记为函数

(小时)

我们有如下信息:

此人吃下去的东西在肚里按指数衰减,即如果他肚子里现在有食物量 1,剩余量按消化时间的变化便是

,其中

为衰减常数;

此人今天吃饭的量是:在早上7点、中午12点和晚上18点各进餐

,并假设在其他时间没有吃东西。要写作函数的话,应该是

,其中

是Dirac脉冲函数。如果不熟悉的话,可以认为此人在饭点儿瞬间往肚子里塞那么多食物。

请看图:


图:“消化规律”

可以看到:大概五个小时肚子里的东西就差不多消化完了。



图:“今儿的吃法”

好了,我们现在看考察一下,比如说下午15点,这人肚子里还剩多少东西:

早饭吃的

,经过15-7 =8小时的消化(按指数衰减),还剩

;

中饭吃的

,经过15-12 = 3小时的消化,还剩


晚饭还没吃呢,自然不算。

加起来就是:


考察任意时间

,就有卷积


你可以仔细看一下,上面t=15的情况可以从这个式子里面导出。

也请看图:


图:(上)吃法儿; (下)肚里食物量

其实在前面的讨论里面,我们把“吃饭的量”看作输入,“肚子里还剩的食物”看作输出。

并且我们假设

消化系统是线性的,即:如果(1)按吃法

产生肚子里食物量变化

;并且(2)按吃法

产生肚子里食物量变化

那么对任意常数a,b,按吃法

会产生肚子里食物量变化

.
消化系统是时不变的,即:对任意时间间隔

,若按吃法

产生肚子里食物量变化

,则按吃法

将产生肚子里食物量变化

.

在这样线性时不变(Linear and Time-Invariant, LTI)系统里,上面的函数:

此人肚子的”消化规律“

系统冲激响应

此人今天”吃饭的量“

激励输入);

我们考察的肚子里”还剩的食物量“

响应输出)。

任何一个线性时不变系统都可以由冲激响应完全描述

它的输入输出关系正是卷积



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

上面有几个参数可以变化,我们来玩一玩:

比如说
:这兄弟最近消化不大好,也就是冲激响应里面的衰减系数

比较小,那么会怎么样呢?


(最近消化不大好)上:吃法儿; 下:肚里食物量

你可以看到前一顿儿还没消化完,就到吃下一顿了。如果按原计划吃,实在要把肚子撑坏。。(峰值大概12,比上面的结果大了很多)

再来:其实咱吃饭不用那么急,一下子就揣肚子里。比如:这兄弟花了半小时吃饭,像这样:



(花半小时吃饭,而且在正常消化状态)上:吃法儿; 下:肚里食物量

你可以看到,峰值(大概8)进一步减小了,细嚼慢咽就是好

再吃慢一点呢?


(花一个小时吃饭,而且在正常消化状态)上:吃法儿; 下:肚里食物量

嗯,对肚子压力更小一点了。

那么过年的时候是咋样呢?


(过年的时候,每顿花三个小时,吃得多而且肠胃状态不那么好)上:吃法儿; 下:肚里食物量

可以看到,这个峰值和最前面那种瞬间吃好饭的状况差不多了,而且过了半夜还没消化完。

所以,不要暴饮暴食噢!

最后这一部分有点娱乐性质,主要是画图的时候玩儿上了。。哈哈

并且用线性时不变的模型来模拟人吃饭消化,可能有不妥,比如:人的胃不是线性的,因为有总容量的限制,而且估计也不是时不变,因为吃的太多时肚子消化能力大概会变弱。拿这个仅仅用于举例子咯。

物理意义…不知楼主问的是不是卷积在信号系统中输入输出计算的意义。我觉得要想理解好卷积首先要理解好一个和线性代数相关的概念:线性映射。

什么是线性映射呢?

设想有个向量v

通过某种映射可以从v得到w,记为

w
=T(v)

如果对于任意vT都满足线性代数里两条巨基本的性质:

1) T(u+v)=T(u)+T(v)

2) aT(v)=T(av)

那么就称T是一个线性映射,其实就是简单的线性代数嘛

所以如果我们把输入信号和输出信号分别和vw对应起来的话,似乎就是个线性映射系统啊。当然实际上没有这么简单,还多了那么一点东西,所以在信号与系统里,叫做线性时不变(Linear Time-Invariant, LTI)系统。

什么叫时不变呢?以冲击函数为例子说明一下,假设在t=0的位置上有个单位冲击,在某个LTI system中,造成的响应是在t=1到t=2区间上的某种曲线。

<img data-rawheight="229" data-rawwidth="824" src="http://pic3.zhimg.com/f37d8c10d31732bb0624a27e83212406_b.jpg" class="origin_image zh-lightbox-thumb" width="824" data-original="http://pic3.zhimg.com/f37d8c10d31732bb0624a27e83212406_r.jpg">


时不变的意思就是如果把这个t=0上的单位冲击移动到任意时间点,比如t0去,那么响应的曲线也会响应地移动到t=t0+1到t=t0+2的位置上去。

<img data-rawheight="238" data-rawwidth="818" src="http://pic4.zhimg.com/66a6b7cc50819c2302d329cfa5830c3f_b.jpg" class="origin_image zh-lightbox-thumb" width="818" data-original="http://pic4.zhimg.com/66a6b7cc50819c2302d329cfa5830c3f_r.jpg">


结合之前线性系统的定义,整个系统是线性的,所以是线性+时不变

<img data-rawheight="531" data-rawwidth="822" src="http://pic1.zhimg.com/3a49e7f3003a3d3177165c03e2cf0ce0_b.jpg" class="origin_image zh-lightbox-thumb" width="822" data-original="http://pic1.zhimg.com/3a49e7f3003a3d3177165c03e2cf0ce0_r.jpg">


其实从不太严谨的线性代数角度也可以理解线性时不变系统,本质还是线性映射。比如考虑对如下对一个向量的变换:



矩阵的特点是紧贴着对角线下的元素是1,其他的元素都是0,得到的结果是x“向下移”了一个位置。如果我们在输入信号离散的时间轴上取一段,想象每个离散的时间点就是向量的一维,那么可以把这段信号看做一个向量,用一个同样大的具有如上特点的矩阵与这个向量相乘,得到的结果就是这个输入信号在时间轴上向后“移动了”一位,那么如果变换矩阵是如下的形式呢?



可以看到,x移动了两个单位,这似乎就是时间轴上的移动操作啊。那如果变换矩阵再换换样子呢?



是不是觉得眼熟,其实这种斜边元素相等形式的矩阵就是一个不严谨的简单的线性时不变系统。更不严谨地说,如果我们把每个时间点都理解成一个向量中的一维的话,矩阵乘法操作的本质就是将这个向量投射到对应的维上,并且矩阵中的每个向量的Norm就是投影之后的系数。

总之,这就是线性时不变,说白了还是线性两个字最重要,于是,卷积求响应就很清晰了,就是简简单单的加法而已:已知冲激信号在输出中的响应的情况下,给定一个输入信号,只要把输入信号看成一个个时间点上的冲激信号的叠加,直接在输出的t时间点上把这所有冲激信号的响应简单加起来,就可以了。

写出来的话就是:



(注意这里t和τ∈N)

对应前面解释来看,其中f(τ)是输入信号在τ位置的值,也就是和单位冲激信号的比值,作为系数,而h(t-τ)则是距离t时刻τ那么多时间点上的一个冲激信号在t时刻所对应的响应。我这里说的都是离散情况举例,连续情况可以脑补推广。总之,不严谨地说,都是线性代数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: