线性时不变系统(LTI)很好理解,即同时满足线性和时不变的系统,包括连续时间和离散时间,对线性时不变系统的卷积计算是信号与系统中非常重要的知识,两种时间卷积的公式都是需要背诵的
1. LTI离散时间卷积
卷积在数学上的表达式为:
整个式子并不好理解,我们试着一步一步解构它
本质上,卷积是一个输入信号和一个脉冲响应(impulse response)的加权叠加,得到一个输出信号
在这个式子中,y()是输出信号的表达式,x()是输入信号的表达式,h()是输入信号和单位响应之间关系的表达式
知道y(), x(), h()分别是代表什么函数后,我们来看函数内部的变量,我们注意到,n只出现在y和h中,k只出现在x和h中
n实际上是离散时间意义上的单位时间,如果说离散时间系统是每隔一段固定时间采样,那么第n次采样得到的输出信号就是y(n)
知道n后,我们就发现一个问题,输入信号x与采样时间无关,这是因为我们每一次考虑的都是完整的输入信号,而不是只考虑采样时的输入信号。观察卷积的公式,x()的参数是k,k指代的就是单位输入信号(个人觉得也可以理解为与n区别开的单位时间),而对k做积分,指代的就是所有的单位输入信号相加,也就是完整的输入信号
我们再来看h,我个人的理解中,h就是这个线性时不变系统的内部处理逻辑,它的输入是x,输出是y。
每一个单位的x()会产生对应的单位响应,把所有产生的单位响应加起来,我们就得到了完整的输出。但是这里要注意,一个单位响应可能同时影响好几个单位时间的输出,而他们影响的程度又是不一样的,因此,我们就必须给h()引入时间变量n,h[n-k]指的就是一个单位响应在时间n处的影响,这就解释了为什么x的函数不需要时间变量,因为h[n-k]会自动筛选出对当前有影响的输入信号,如果某个单位信号是在时间点n之后才被输入的,那么它对n的影响就是0,在求和中就不被考虑了
上面的话终究还是有些晦涩,大家可以看看这篇文章中所举的例子
这里面的例子个人觉得都比较好理解,但要将其与我们的数学公式联系在一起却还是不太对劲
比如最后面那个血腥的例子,在计算中,输入信号必须是已知的,所以在开始前,老板会先告诉员工,我要打你多少个巴掌,每个巴掌会用多大力,这样我们才能推算出每个单位时间中肿起来的包的大小,接着我们试着将例子与数学公式联系起来
- 所有巴掌加起来是输入信号x,每一个单独的巴掌是一个单位输入信号,第k个巴掌是x[k]
- 第k个巴掌与时间n处的包的关系是h(n-k)
- 包的大小是输出信号y,包在时间n处的大小是y[n]
- 第k个巴掌在时间n处对包的影响是x[k]h[n-k]
- 每一个巴掌在时间n处对包的影响之和是 ∑ k = − ∞ ∞ x [ k ] h [ n − k ] \sum_{k=-\infty}^\infty x[k]h[n-k] ∑k=−∞∞x[k]h[n−k]
- 所有影响之和在时间n处的和就是此时的输出y[n]
我也不知道这么写自己以后还能不能看懂,但我尽力了。。。
这里再给出一道例题,计算下图中的卷积:
第一步:
这里先分别找到了卷积的两个图像对应的表达式x(n)和h(n),他们在本体中是相同的
接下来,将x(n)中的n替换为k,h(n)中的n替换为(n-k),再代入卷积公式中,得到右边的表达式
第二步:
第一步中得到的两个表达式都含有u(t),也就确定了输出信号只在
0
<
k
<
n
0< k < n
0<k<n时有可能不为0,从而将求和中的范围从无穷削减到了[0, n]
最后,我们就能计算出y(n)的表达式及每单位时间的值为:
2. LTI连续时间卷积
前面我们提到了离散时间卷积的方式是求和
∑
\sum
∑,在连续时间卷积中,我们需要进行无限的求和,这就变成了积分
∫
\int
∫
因此,连续时间卷积的公式与离散时间最大的不同就是加权变为了积分而非求和:
虽然这里的输出信号变为了x(),但我个人觉得依旧按照y()来理解也是没有问题的
我们再举出一个计算连续时间卷积的例子:
连续时间卷积的过程和离散时间卷积几乎一摸一样,除了最后的求和变为积分,求和的上下限变成了积分的上下限,过程如下:
最后,我们列出一些卷积满足的计算律:
这里最需要注意的是第四个定律:shift property
x和y向前或向后的时移,最后都会体现在输出上
3. 一些注意事项
- 任何信号 f ( t ) f(t) f(t)与单位冲激信号 δ ( t ) \delta(t) δ(t)的卷积都是这个信号本身
- 任何信号
f
(
t
)
f(t)
f(t)延迟为
τ
\tau
τ的单位冲激信号
δ
(
t
−
τ
)
\delta(t-\tau)
δ(t−τ)的卷积等于这个信号延迟
τ
\tau
τ
即 f ( t ) ∗ δ ( t − τ ) = f ( t − τ ) f(t)*\delta(t-\tau)=f(t-\tau) f(t)∗δ(t−τ)=f(t−τ)