卷积的理解、卷积公式的推导以及计算
卷积的理解、卷积公式的推导以及计算
卷积是一种重要的数学运算,广泛应用于信号处理、图像处理和深度学习等领域。本文将从卷积的定义出发,通过LTI系统的性质,详细推导卷积公式,并通过具体的计算例子和图形解释,帮助读者深入理解卷积的概念和计算方法。
一、卷积的定义
卷积(Convolution)是通过两个函数f和g生成第三个函数的一种数学运算,其本质是一种特殊的积分变换,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。
在信号与系统中,卷积公式分为连续和离散两种形式:
连续LTI系统下的卷积公式为:
离散LTI系统下的卷积公式为:
接下来,我们将通过LTI系统的性质,逐步推导出卷积公式。
二、LTI系统的性质
2.1 线性系统
线性系统满足齐次性和叠加性:
齐次性:如果输入x1(t)经过系统后输出y1(t),则输入αx1(t)经过此系统后输出αy1(t)。
叠加性:如果输入x1(t)经过系统输出y1(t),输入x2(t)经过此系统输出y2(t),则输入x1(t)+x2(t)经过此系统后输出y1(t)+y2(t)。
同时满足齐次性和叠加性的系统称为线性系统。
2.2 时不变系统
如果输入x(t)经过系统后输出y(t),则输入x(t-t0)经过此系统后输出y(t-t0),称此系统为时不变系统。
同时满足线性和时不变性的系统称为线性时不变系统(LTI系统)。
三、单位脉冲响应
- 连续时间单位脉冲信号:信号在0时刻为1,其它时刻信号为0的信号。
- 离散时间单位脉冲信号:信号在n=0这个序列点为1,其它序列点为0的信号。单位脉冲信号δ作用于一个系统,系统产生的输出(响应)就叫单位脉冲响应h。
四、卷积公式的推导
4.1 通过计算题理解卷积
已知输入x0[n]经过LTI系统得到输出y0[n],求输入x[n]经过此LTI系统的输出y[n]。
解:由LTI系统的性质可知,输入信号产生的线性变换、时移、反转、信号叠加,在输出系统上会产生同样的变化。
所以,x[n]可以分解为2x0[n] + x0[n-1],如下图所示:
则y[n]也应该是2x0[n]产生的输出2y[0] + x0[n-1]产生的输出y0[n-1],如下图所示:
总结:对于一个离散LTI系统,如果我们知道单位脉冲函数δ[n]对应的单位脉冲响应h[n],那么我们就知道了所有x[n]通过这个LTI系统后的输出y[n]。
4.2 列表法求卷积
还是上述这个题目:
- 首先确定y[n]的取值范围:
- y[n]左边的取值范围 = x[n]左边的取值范围 + h[n]左边取值范围 = 0 + (-1) = -1
- y[n]右边的取值范围 = x[n]右边的取值范围 + h[n]右边取值范围 = 1 + 1 = 2
所以y[n]的取值范围为 -1、0、1、2
列表法求卷积一定要确定好0点的位置,然后顺序画出输出的图形。
4.3 卷积公式的推导
上面已经说明了什么是卷积,以及怎样一步一步计算卷积。接下来推导卷积公式:
- x[n]表示为δ[n-i]求和的形式:
以此类推,所有的x[n]都能这样表示出来,就有:
因此,由LTI系统的性质可以得到:
所以一开始看到这云里雾里的卷积公式就按照线性时不变系统的性质推导完成了。
4.4 卷积公式的计算步骤
卷积就是一个反转、平移、相乘、叠加的过程。计算步骤为:
- 确定y[n]的取值范围
- 反转h[n]
- 平移h[n]
- x[n]与h[n]相乘
- 再次平移h[n]
- x[n]与h[n]对应相乘,结果再相加
- 重复步骤5和6,直到完成所有可能的平移和相乘
绘制图形如下:
4.5 MATLAB实现卷积运算
MATLAB提供了conv函数可以直接计算两个序列的卷积。例如:
x = [1 2 3];
h = [4 5 6];
y = conv(x, h);
disp(y);
结果依然与其它计算方法一致。
五、卷积的理解
现在我们知道了卷积公式的是怎样来的,以及如何计算。但是卷积到底是啥意思?我们用着公式计算出的结果有啥意义?
参考了一个生动的故事来解释卷积:
假如你被别人打了一拳,这一拳导致的疼痛感会在1小时后消失。设最轻的一拳在一小时内的疼痛感觉函数为h(t),每秒钟记录的疼痛感觉序列为h[n]。当别人在一小时内在第一秒,第二秒,第三秒……第六十秒……打你的时,这就是说在0到2小时内你会感觉疼,那么在这0到2小时的任意一个时刻的疼痛程度Y(t)怎么表示呢?就是每拳的疼痛效果叠加,0到n的f(n)h(t-n)相加,如f(1)h(t-1)+f(2)h(t-2)……,当n很小时,为0.00000001时,就用积分符号啦。n次抽象为τ就是我们平时的f(t)与h(t)的卷积啦!
专业一点的说法就是:系统的响应(输出)不仅与当前时刻系统的输入有关,也跟之前若干时刻的输入有关,因为我们可以理解为这是之前时刻的输入信号经过一种过程(这种过程可以是递减,削弱,或其他)对现在时刻系统输出的影响,那么显然,我们计算系统输出时就必须考虑现在时刻的信号输入的响应以及之前若干时刻信号输入的响应之“残留”影响的一个叠加效果。
参考文献:
- B站胡浩基老师《信号与系统》
- 卷积的理解
- 如何通俗易懂地理解卷积?