根据信号与系统答疑过程中,学生对于三角形信号卷积结果的疑惑,给出了相应的数值、理论、以及频谱分析的解答。特别是后面频谱分析部分也是由另外参加答疑的同学提出的。之所以这个题目会产生疑问,主要原因来自于卷积计算“图解法”所带来的误导。图解方法只能帮助确定卷积的阶段和积分上下限,求解卷积结果还是需要根据实际信号函数进行计算。
01 三角波卷积
一、答疑碰到的问题
这两天信号与系统期末考试答疑中,多次碰到学生询问起一个课堂练习的习题。也就是为什么两个等腰三角形的卷积是答案(C):一个类似于升余弦的光滑曲线,而不是答案(B)一个尖顶的脉冲。此时才意识到这个问题的确有和直觉相违背的地方。
▲ 图1.1.1 三角波与自身的卷积波形:选择题
通过分析,造成判断错误的来源,实际上是误用了求解卷积过程中的“图解法”。图解方法通过把卷积的数学运算转换成信号波形的变化,帮助确定卷积阶段和积分的上下限。但往往也会对卷积结果产生误导,即部分同学会将两个图像重叠对应的图像面积当做求解的结果,但这种情况只能发生在一个信号是常量的情况。
▲ 图1.1.2 对于简单信号所使用的图解方法
二、问题分析
这两天答疑过程中,学生也给出了对于这个问题很好的解释。下面给出相应的总结:
1、数值求解
下面是通过数值求解反映的 一些等腰三角形与其自身卷积的结果,结果说明了两个等腰三角学卷积的确是一个一阶导数光滑的曲线。
▲ 图1 三角波与三角波相互卷积
2、理论分析
对于这类有限长度的简单信号,在求解它们之间相互卷积的时候,同时使用“图解法”帮助确定积分的区间。由于两个三角波形自身都具有两个变化阶段一个是上升阶段,一个是下降阶段。它们的长度相同,所以通过简单分析可以知道这两个三角波卷积过程,它们重合情况可以分成四个阶段,如下图所示。当 不在这四个阶段的时候,两个三角形不重合,卷积结果为 0。
▲ 图1.2.2 卷积过程中四个不同的重叠阶段
由于参与卷积的信号左右对称,所以只需要对于第一、第二阶段进行求解;然后将结果偶对称得到信号在 之后的结果。
(1)第一个阶段
在 时,两个三角形的重叠范围是 。此时对应的卷积运算为
这个求解化简过于繁琐,使用Python中的符号求积分软件包可以帮助进行求解
t,T = symbols('t,T')
result = integrate(-(T-t-1)*(T+1),(T,-1,t))
(2)第二阶段
在 ,参与卷积的信号重叠方式为如下图所示,重叠区域为 。
合并前面求解的第一、第二阶段的公式,将它们进行反褶之后,便可以得到第三、第四阶段的公式。最终三角形卷积的结果为:
(3)数值验证
下面使用Python对上述公式进行绘制,查看卷积结果的信号波形。
def w(t,t1,t2):
return heaviside(t-t1, 0.5)-heaviside(t-t2, 0.5)
def f1(t):
return t**3/6 + t**2 + 2*t + 4/3
def f2(t):
return -t**3/2 - t**2 + 2/3
def f(t):
return f1(t) * w(t, -2, -1) +
f2(t) * w(t, -1, 0) +
f2(-t) * w(t, 0, 1) +
f1(-t) * w(t, 1, 2)
t = linspace(-2, 2, 500)
fdim = f(t)
plt.plot(t, fdim)
plt.xlabel("t")
plt.ylabel("f(t)")
plt.grid(True)
plt.tight_layout()
plt.show()
3、傅里叶变换
可以利用傅里叶变换卷积定理,分析两个三角脉冲信号的卷积。对于高度为 1,宽度为 2 的对称等腰三角型,对应的频谱为
卷积结果对应的频谱为:
当然,直接从上面结果进行傅里叶反变换求解卷积时域表达式也比较麻烦,不过它可以告诉我们,卷积结果的频谱幅度衰减的规律应该是 。再由信号波形的光滑性与频谱衰减之间的关系可知,卷积结果应该是满足二阶导数连续。由此也可以帮助判断在选择题中,只有答案(C)能够满足二阶导数连续的要求,其它三个信号波形对应的一阶导数都不连续。