简 介: 根据信号与系统答疑过程中,学生对于三角形信号卷积结果的疑惑,给出了相应的数值、理论、以及频谱分析的解答。特别是后面频谱分析部分也是由另外参加答疑的同学提出的。之所以这个题目会产生疑问,主要原因来自于卷积计算“图解法”所带来的误导。 图解方法只能帮助确定卷积的阶段和积分上下限,求解卷积结果还是需要根据实际信号函数进行计算。
关键词 : 信号与系统,卷积,三角脉冲信号
三角波卷积
目 录
Contents
答疑碰到的问题
问题分析
数值求解
理论分析
傅里叶变换
总 结
?
§01 三角波卷积
一、答疑碰到的问题
??这两天信号与系统期末考试答疑中,多次碰到学生询问起一个课堂练习的习题。也就是为什么两个等腰三角形的卷积是答案(C):一个类似于升余弦的光滑曲线,而不是答案(B)一个尖顶的脉冲。此时才意识到这个问题的确有和直觉相违背的地方。
▲ 图1.1.1 三角波与自身的卷积波形:选择题
??通过分析,造成判断错误的来源,实际上是误用了求解卷积过程中的“图解法”。 图解方法通过把卷积的数学运算转换成信号波形的变化,帮助确定卷积阶段和积分的上下限。但往往也会对卷积结果产生误导,即部分同学会将两个图像重叠对应的图像面积当做求解的结果,但这种情况只能发生在一个信号是常量的情况。
▲ 图1.1.2 对于简单信号所使用的图解方法
二、问题分析
??这两天答疑过程中,学生也给出了对于这个问题很好的解释。下面给出相应的总结:
1、数值求解
??下面是通过数值求解反映的 一些等腰三角形与其自身卷积的结果,结果说明了两个等腰三角学卷积的确是一个一阶导数光滑的曲线。
▲ 图1 三角波与三角波相互卷积
2、理论分析
??对于这类有限长度的简单信号,在求解它们之间相互卷积的时候,同时使用“图解法”帮助确定积分的区间。由于两个三角波形自身都具有两个变化阶段一个是上升阶段,一个是下降阶段。它们的长度相同,所以通过简单分析可以知道这两个三角波卷积过程,它们重合情况可以分成四个阶段,如下图所示。 当
t
t
t 不在这四个阶段的时候,两个三角形不重合,卷积结果为 0。
▲ 图1.2.2 卷积过程中四个不同的重叠阶段
??由于参与卷积的信号左右对称,所以只需要对于第一、第二阶段进行求解;然后将结果偶对称得到信号在
t
>
0
t > 0
t>0 之后的结果。
(1)第一个阶段
在
t
∈
(
?
2
,
1
)
t \in \left( { - 2,1} \right)
t∈(?2,1) 时,两个三角形的重叠范围是
[
?
1
,
t
+
1
]
\left[ { - 1,t + 1} \right]
[?1,t+1] 。此时对应的卷积运算为
f
(
t
)
?
f
(
t
)
=
∫
?
1
t
+
1
?
(
τ
?
t
?
1
)
?
(
τ
+
1
)
d
τ
f\left( t \right) * f\left( t \right) = \int_{ - 1}^{t + 1} { - \left( {\tau - t - 1} \right) \cdot \left( {\tau + 1} \right)d\tau }
f(t)?f(t)=∫?1t+1??(τ?t?1)?(τ+1)dτ
=
∫
?
1
t
+
1
(
?
τ
2
+
t
?
τ
+
t
+
1
)
d
τ
= \int_{ - 1}^{t + 1} {\left( { - \tau ^2 + t \cdot \tau + t + 1} \right)d\tau }
=∫?1t+1?(?τ2+t?τ+t+1)dτ
=
?
1
3
τ
3
∣
?
1
t
+
1
+
t
2
τ
2
∣
?
1
t
+
1
+
(
t
+
1
)
?
(
t
+
2
)
= \left. { - {1 \over 3}\tau ^3 } \right|_{ - 1}^{t + 1} + \left. {{t \over 2}\tau ^2 } \right|_{ - 1}^{t + 1} + \left( {t + 1} \right) \cdot \left( {t + 2} \right)
=?31?τ3∣∣∣∣??1t+1?+2t?τ2∣∣∣∣??1t+1?+(t+1)?(t+2)
=
?
1
3
[
(
t
+
1
)
3
?
1
]
+
t
2
[
(
t
+
1
)
2
?
1
]
+
(
t
+
1
)
?
(
t
+
2
)
= - {1 \over 3}\left[ {\left( {t + 1} \right)^3 - 1} \right] + {t \over 2}\left[ {\left( {t + 1} \right)^2 - 1} \right] + \left( {t + 1} \right) \cdot \left( {t + 2} \right)
=?31?[(t+1)3?1]+2t?[(t+1)2?1]+(t+1)?(t+2)
=
t
3
6
+
t
2
+
2
t
+
4
3
= {{t^3 } \over 6} + t^2 + 2t + {4 \over 3}
=6t3?+t2+2t+34?
??这个求解化简过于繁琐,使用Python中的符号求积分软件包可以帮助进行求解
t,T = symbols('t,T')
result = integrate(-(T-t-1)*(T+1),(T,-1,t))
(2)第二阶段
??在
t
∈
(
?
1
,
0
)
t \in \left( { - 1,0} \right)
t∈(?1,0) ,参与卷积的信号重叠方式为如下图所示,重叠区域为
(
?
1
,
t
+
1
)
\left( { - 1,t + 1} \right)
(?1,t+1) 。
▲ 图1.2.3 在第二阶段两个三角形重叠以及求解积分过程
??按照信号不同的分段,求解积分需要分成三个区域,它们分别是
(
?
1
,
t
)
,
(
t
,
0
)
,
(
0
,
t
+
1
)
\left( { - 1,t} \right),\left( {t,0} \right),\left( {0,t + 1} \right)
(?1,t),(t,0),(0,t+1) 。
??在区域
(
?
1
,
t
)
\left( { - 1,t} \right)
(?1,t) 中积分表达式为
∫
?
1
t
(
τ
?
t
+
1
)
?
(
τ
+
1
)
d
τ
=
t
3
6
?
t
2
?
1
3
\int_{ - 1}^t {\left( {\tau - t + 1} \right) \cdot \left( {\tau + 1} \right)d\tau } = {{t^3 } \over 6} - {t \over 2} - {1 \over 3}
∫?1t?(τ?t+1)?(τ+1)dτ=6t3??2t??31?
??在区域
(
t
,
0
)
\left( {t,0} \right)
(t,0) 中的积分表达式为
∫
t
0
?
(
τ
?
t
?
1
)
?
(
τ
+
1
)
d
τ
=
?
t
3
6
?
t
2
?
t
\int_t^0 { - \left( {\tau - t - 1} \right) \cdot \left( {\tau + 1} \right)d\tau = - {{t^3 } \over 6} - t^2 - t}
∫t0??(τ?t?1)?(τ+1)dτ=?6t3??t2?t
??在区域
(
0
,
t
+
1
)
\left( {0,t + 1} \right)
(0,t+1) 的积分表达式为
∫
0
t
+
1
?
(
τ
?
t
?
1
)
?
(
?
τ
+
1
)
d
τ
=
(
?
t
+
2
)
(
t
+
1
)
2
6
\int_0^{t + 1} { - \left( {\tau - t - 1} \right) \cdot \left( { - \tau + 1} \right)d\tau } = {{\left( { - t + 2} \right)\left( {t + 1} \right)^2 } \over 6}
∫0t+1??(τ?t?1)?(?τ+1)dτ=6(?t+2)(t+1)2?
??将上面三个积分结果合并在一起,可以得到在此区间内卷积的结果
f
(
t
)
?
f
(
t
)
=
?
t
3
2
?
t
2
+
2
3
f\left( t \right) * f\left( t \right) = - {{t^3 } \over 2} - t^2 + {2 \over 3}
f(t)?f(t)=?2t3??t2+32?
t,T = symbols('t,T')
result = integrate(-(T-t-1)*(-T+1),(T,0,t+1)) +\
integrate(-(T-t-1)*(T+1),(T,t,0)) +\
integrate((T-t+1)*(T+1),(T,-1,t))
result = simplify(result)
(3)卷积完整解
??合并前面求解的第一、第二阶段的公式,将它们进行反褶之后,便可以得到第三、第四阶段的公式。最终三角形卷积的结果为:
(4)数值验证
??下面使用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()
▲ 图1.2.4 绘制出的结果
3、傅里叶变换
??可以利用傅里叶变换卷积定理,分析两个三角脉冲信号的卷积。对于高度为 1,宽度为 2 的对称等腰三角型,对应的频谱为
F
(
ω
)
=
S
a
2
(
ω
2
)
=
sin
?
2
(
ω
2
)
(
ω
2
)
2
=
4
sin
?
2
(
ω
2
)
ω
2
F\left( \omega \right) = Sa^2 \left( {{\omega \over 2}} \right) = {{\sin ^2 \left( {{\omega \over 2}} \right)} \over {\left( {{\omega \over 2}} \right)^2 }} = {{4\sin ^2 \left( {{\omega \over 2}} \right)} \over {\omega ^2 }}
F(ω)=Sa2(2ω?)=(2ω?)2sin2(2ω?)?=ω24sin2(2ω?)? 那么它们卷积对应的傅里叶变换为
F
12
(
ω
)
=
S
a
4
(
ω
2
)
=
sin
?
4
(
ω
2
)
(
ω
2
)
4
=
16
sin
?
4
(
ω
2
)
ω
4
F_{12} \left( \omega \right) = Sa^4 \left( {{\omega \over 2}} \right) = {{\sin ^4 \left( {{\omega \over 2}} \right)} \over {\left( {{\omega \over 2}} \right)^4 }} = {{16\sin ^4 \left( {{\omega \over 2}} \right)} \over {\omega ^4 }}
F12?(ω)=Sa4(2ω?)=(2ω?)4sin4(2ω?)?=ω416sin4(2ω?)?
??当然,直接从上面结果进行傅里叶反变换求解卷积时域表达式也比较麻烦,不过它可以告诉我们,卷积结果的频谱幅度衰减的规律应该是
1
/
ω
4
1/\omega ^4
1/ω4。再由信号波形的光滑性与频谱衰减之间的关系可知,卷积结果应该是满足二阶导数连续。 由此也可以帮助判断在选择题中,只有答案(C)能够满足二阶导数连续的要求,其它三个信号波形对应的一阶导数都不连续。
?
※ 总??结 ※
??根据信号与系统答疑过程中,学生对于三角形信号卷积结果的疑惑,给出了相应的数值、理论、以及频谱分析的解答。特别是后面频谱分析部分也是由另外参加答疑的同学提出的。
??之所以这个题目会产生疑问,主要原因来自于卷积计算“图解法”所带来的误导。 图解方法只能帮助确定卷积的阶段和积分上下限,求解卷积结果还是需要根据实际信号函数进行计算。
??直接求取结果需要较多的积分化简,利用Python符号积分软件可以帮助求解结果的解析表达式。
● 相关图表链接:
|