【通信原理 入坑之路】——深入、详细地理解通信里面“卷积”概念

一、多项式乘法和“卷积”

首先,我们来看一个多项式乘法的计算: ( x + 1 ) ( x 2 + 2 x + 5 ) (x + 1)(x^2 + 2x + 5)
一般地,我们有: ( x + 1 ) ( x 2 + 2 x + 5 ) = x 3 + 2 x 2 + 5 x + x 2 + 2 x + 5 = x 3 + 3 x 2 + 7 x + 5 \begin{aligned} &(x + 1)(x^2 + 2x + 5)\\ &=x^3 + 2x^2 + 5x + x^2 + 2x + 5\\ &=x^3 + 3x^2 + 7x + 5 \end{aligned}
因此,该多项式乘法结果中各项的系数就是:1 3 7 5
总结起来,上面这种方法获得各项系数需要两个步骤:各项相乘同类项相加

然而,书中却给出了另外一种各加直观简单的办法:

从上图我们可以看出,两个多项式中,下面的多项式按照升幂排列、上面的多项式按照降幂排列。
接着,下面的这一个多项式 5 + 2 x + x 2 5 + 2x + x^2 从左到右滑过 x + 1 x+1 ,在滑动过程中, ( 5 + 2 x + x 2 ) (5 + 2x + x^2) ( x + 1 ) (x+1) 重叠的地方,对应重叠的部分相乘,再相加。

用下面这个图再感受一下:

到这里,我们先对“卷积”有了一个大概的印象。下面我们推导卷积的公式:

二、“卷积”的计算公式

在上面的例子里面, x + 1 x+1 的系数是(a[1],a[0]) = (1,1); 5 + 2 x + x 2 5+2x+x^2 的系数是(a[0],a[1],a[2]) = (5,2,1)
那么计算结果: x 3 + 3 x 2 + 7 x + 5 x^3 + 3x^2 + 7x + 5 中各项系数表示为:
常数项的系数为: c [ 0 ] = a [ 0 ] b [ 0 ] c[0] = a[0]b[0]
x x 的系数为: c [ 1 ] = a [ 0 ] b [ 1 ] + a [ 1 ] b [ 0 ] c[1] = a[0]b[1] + a[1]b[0]
x 2 x^2 的系数: c [ 2 ] = a [ 0 ] b [ 2 ] + a [ 1 ] b [ 1 ] + a [ 2 ] b [ 0 ] c[2] = a[0]b[2] + a[1]b[1] + a[2]b[0]
x 3 x^3 的系数: c [ 3 ] = a [ 0 ] b [ 3 ] + a [ 1 ] b [ 2 ] + a [ 2 ] b [ 1 ] + a [ 3 ] b [ 0 ] c[3] = a[0]b[3] + a[1]b[2] + a[2]b[1] + a[3]b[0]

大家注意到了吗:若我们相乘的两个多项式a,b的最高次分别为: n 1 , n 2 n_1, n_2 ,那么我们计算各项系数的式子都可以归纳为: c [ n ] = k = 0 n a [ j ] b [ n k ] 0 n n 1 + n 2 ) c[n] = \sum_{k=0}^na[j]b[n-k] (0 ≤ n ≤ n_1+n_2)

【思考】:我们这时就会想:如果信号可以分解成类似 x 2 + 2 x + 5 x^2 + 2x + 5 这样的多项式,同时,还能够保证: x n = f ( n ω 0 ) x^n = f(nω_0) ,那么两个信号相乘就可以通过卷积计算求出来

书中解释了为何要强调满足 x n = f ( n ω 0 ) x^n = f(nω_0) 条件:因为我们知道,任何一个周期信号都可以表示成多个频率分量之和:基波分量( ω 0 = 2 Π f ω_0 = 2Πf ),二次谐波分量( 2 ω 0 2ω_0 ),三次谐波分量( 3 ω 0 3ω_0 )、、、因此,我们希望信号相乘得到的结果也能够是这样的形式,即是 n ω 0 nω_0 的函数
【那么,这样的条件是否能够满足呢?】

\quad
我们看看这样的表示: x = f ( ω 0 ) = e j ω 0 t = c o s ω 0 t + j s i n ω 0 t x = f(ω_0) = e^{jω_0t} = cosω_0t + jsinω_0t

那么, x 2 = ( c o s ω 0 t + j s i n ω 0 t ) 2 = c o s 2 ω 0 t + 2 j c o s ω 0 t s i n ω 0 t s i n 2 ω 0 t = c o s 2 ω 0 t + j s i n 2 ω 0 t = f ( 2 ω 0 ) \begin{aligned} x^2 &= (cosω_0t + jsinω_0t)^2\\ &=cos^2ω_0t + 2jcosω_0t sinω_0t -sin^2ω_0t \\ &=cos2ω_0t + jsin2ω_0t \\ &=f(2ω_0) \end{aligned}

2.1 实例:利用卷积计算两个信号相乘

比如,我们有两个信号 f ( t ) , g ( t ) f(t), g(t) ,它们分别为: f ( t ) = ( c o s 2 ω 0 t + 5 c o s ω 0 t + 6 ) + j ( s i n 2 ω 0 t + 5 s i n ω 0 t ) f(t) = (cos2ω_0t + 5cosω_0t + 6) + j(sin2ω_0t + 5sinω_0t)
g ( t ) = ( 3 c o s ω 0 t + 2 ) + j 3 s i n ω 0 t g(t) = (3cosω_0t + 2) + j3sinω_0t

f ( t ) f(t) g ( t ) g(t) 相乘,是肉眼可见的麻烦。那么如果用卷积运算的思想能不能简化一些呢?
首先,我们先对信号的表达式进行一些处理: f ( t ) = ( c o s 2 ω 0 t + 5 c o s ω 0 t + 6 ) + j ( s i n 2 ω 0 t + 5 s i n ω 0 t ) = ( c o s 2 ω 0 t + j s i n 2 ω 0 t ) + 5 ( c o s ω 0 t + j s i n ω 0 t ) + 6 = e j 2 ω 0 t + 5 e j ω 0 t + 6 \begin{aligned} f(t) &= (cos2ω_0t + 5cosω_0t + 6) + j(sin2ω_0t + 5sinω_0t)\\ &=(cos2ω_0t + jsin2ω_0t ) + 5(cosω_0t + jsinω_0t ) + 6\\ &=e^{j2ω_0t } + 5e^{jω_0t } + 6 \end{aligned}
g ( t ) = ( 3 c o s ω 0 t + 2 ) + j 3 s i n ω 0 t = 3 ( c o s ω 0 t + j s i n ω 0 t ) + 2 = 3 e j ω 0 t + 2 \begin{aligned} g(t) &= (3cosω_0t + 2) + j3sinω_0t\\ &=3(cosω_0t + jsinω_0t) + 2\\ &=3e^{jω_0t} + 2\\ \end{aligned}
我们令: e j ω 0 t = x e^{jω_0t} = x ,那么, f ( t ) , g ( t ) f(t), g(t) 就可以表示为:
f ( t ) = x 2 + 5 x + 6 = 6 + 5 x + x 2 f(t) = x^2 + 5x + 6 = 6+5x + x^2 g ( t ) = 3 x + 2 g(t) = 3x + 2

这样,我们知道,卷积之和信号最高项次数为3,那么,由卷积运算公式,得:
c [ 0 ] = a [ 0 ] b [ 0 ] = 12 c[0] = a[0]b[0] = 12
c [ 1 ] = a [ 0 ] b [ 1 ] + a [ 1 ] b [ 0 ] = 10 + 18 = 28 c[1] = a[0]b[1] + a[1]b[0] = 10+18 =28
c [ 2 ] = a [ 0 ] b [ 2 ] + a [ 1 ] b [ 1 ] + a [ 2 ] b [ 0 ] = 2 + 15 + 0 = 17 c[2] = a[0]b[2] + a[1]b[1] + a[2]b[0] = 2 + 15 +0 = 17
c [ 3 ] = a [ 0 ] b [ 3 ] + a [ 1 ] b [ 2 ] + a [ 2 ] b [ 1 ] + a [ 3 ] b [ 0 ] = 0 + 3 + 0 + 0 = 3 c[3] = a[0]b[3] + a[1]b[2] + a[2]b[1] + a[3]b[0] = 0 + 3 + 0 + 0 = 3
因此,我们得到:卷积之后得到的信号按照降幂排列,各项的系数为:3、17、28、12

因此,输出信号可以表示为: c ( t ) = 3 x 3 + 17 x 2 + 28 x + 12 = 3 e j 3 ω 0 t + 17 e j 2 ω 0 t + 28 e j ω 0 t + 12 \begin{aligned} c(t) &= 3x^3 + 17x^2 + 28x + 12 \\ &= 3e^{j3ω_0t} + 17e^{j2ω_0t} + 28e^{jω_0t} + 12 \end{aligned}
怎么样,卷积运算是不是比普通的强算简单?

三、卷积的生动理解

也许到这里,我们可能会计算离散信号的卷积了。可是,我们会有疑问:卷积到底还能来干啥?

下面,我们就来分析“卷积”的意义:

3.1 卷积能够用来解决什么问题?

这里我们需要了解两种概念:
【无记忆系统】

我们看看这个系统,它执行的是对输入信号+2的操作,那么这样的系统:当前的输出仅仅只取决于当前的输入,和之前的输入无关。这样的系统叫做“无记忆系统”

【记忆系统】:这里我们举一个例子就够:“冰冻三尺非一日之寒”。**某一天冰的厚度不仅取决于当天的温度、还取决于之前好几天的温度。**这就叫记忆系统。

那么卷积就是为了计算诸如此类的拥有记忆系统的输出问题

3.2 卷积运算的前提条件 —— 线性时不变系统

所谓“线性系统”,很简单,就是输出与输入成线性关系。(或者说满足叠加定理)

所谓“时不变系统”,就是系统的参数不随时间而变化,即不管输入信号作用的时间先后,输出信号响应的形状均相同,仅是从出现的时间不同。
(我们这里这样理解:先暂时抛开“记忆系统”,我们就考虑一个无记忆时不变系统:假设这个系统输入x,输出y(固定关系)。那么系统在 t 1 t_1 时刻输入x,系统输出y;在 t 2 t_2 时刻输入x,系统依然输出y,这两个y大小形状完全一样,只不过这两次y出现的时间不一样罢了)

如果系统满足线性时不变系统,再把记忆系统的条件加上,那么就可以用卷积的方法,将输入信号进行分解,分解成独立的脉冲序列。系统的输出就等于独立脉冲输出的累加。

3.3 图解卷积的意义

我们假设一个系统,在某一时刻突然收到一个输入信号,但瞬间就又消失了(一个冲击信号),那么系统就会像下图一样缓慢地恢复到原来的状态:

下面我们来看另一种情况:假设这个系统在恢复的过程中(比如说第2s)又收到一个一样的冲击,那么,它就变成这样了:

那么,它的输出会再一次增长(而且会增长到比第一次响应更大的位置),再开始衰减。
如果继续按每隔2s的频率给它冲激响应,就会变成下面这个样子:

那么,某一时刻 t t 系统的输出与什么有关呢?答案是:与每一次的冲击响应都有关,但是每一次冲击响应对 t t 时刻输出的贡献程度都不一样,距离 t t 最近的那一次冲击响应对输出的影响最大。

某一时刻的输出就是之前很多次输入(冲击响应)乘以各自的衰减系数之后的叠加而形成某一点的输出,然后再把不同时刻的输出点放在一起,形成一个函数,这就是卷积,卷积之后的函数就是这个系统的输出大小随时间变化的函数

如果冲击响应再密集一点,就有积分那味儿了:

因此卷积之后得到的结果就是记忆系统输出随时间变化的函数

3.4 卷积公式推导再回顾

还记得我们在3.3中提到的话吗?

如果系统满足线性时不变系统,再把记忆系统的条件加上,那么就可以用卷积的方法,将输入信号进行分解,分解成独立的脉冲序列。系统的输出就等于独立脉冲输出的累加。

那么,也就是说我们现在的工作就是先要把输入信号分解成独立的脉冲:

先引入单位冲击函数:
δ ( n ) = { 1 n = 0 0 n 0 δ(n) = \begin{cases} 1 &n= 0\\ 0 &n≠0 \end{cases}
只有在n = 0时刻,才是单位冲击,其他时刻均为0
下面,我们设输入信号为 x ( n ) x(n) ,某一时刻 k k 的输入为: x ( k ) x(k) ,那么输入信号就可以分解为: x ( k ) δ ( n k ) x(k)δ(n - k)
也就是只有当n = k时,输出信号才有值,其他时候没有值。
于是,整个输入信号x(n)就可以表示为所有时刻输入值对应的脉冲信号的累加 x ( n ) = + x ( k ) δ ( n k ) x(n) = \sum_{-∞}^{+∞}x(k)δ(n - k)

然后,我们还有一个定义:单位脉冲响应:就是单位脉冲信号输入到系统后产生的输出。
如果系统的单位脉冲响应是 h ( n ) h(n) ,那么独立脉冲输出的累加就是: y ( n ) = + x ( k ) h ( n k ) y(n) = \sum_{-∞}^{+∞}x(k)h(n - k)
这就是卷积的公式!!

参考文献

[1][原创连载]深入浅出通信原理
[2] 信号处理-卷积

发布了113 篇原创文章 · 获赞 327 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44586473/article/details/104083572
今日推荐