根据信号与系统答疑过程中,学生对于三角形信号卷积结果的疑惑,给出了相应的数值、理论、以及频谱分析的解答。特别是后面频谱分析部分也是由另外参加答疑的同学提出的。之所以这个题目会产生疑问,主要原因来自于卷积计算“图解法”所带来的误导。图解方法只能帮助确定卷积的阶段和积分上下限,求解卷积结果还是需要根据实际信号函数进行计算。

 

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)能够满足二阶导数连续的要求,其它三个信号波形对应的一阶导数都不连续。