Matlab代码中conv卷积结果乘以tpas的作用是什么
卷积结果乘以tpas的作用
核心逻辑:Matlab内置的conv函数计算的是离散序列的卷积和,而你这段代码要实现的是连续时间信号的卷积积分,乘以tpas就是为了将离散求和的结果修正为连续卷积积分的近似数值解。
具体原理
连续时间信号的卷积积分定义为:
$y(t) = \int_{-\infty}^{+\infty} x(\tau)h(t-\tau)d\tau$
你代码里的x和h是对连续信号按时间步长tpas采样得到的离散序列,相当于把积分运算拆成了间隔为tpas的黎曼求和:
- 每个乘积项 $x(\tau_i)h(t-\tau_i)$ 对应的积分区间长度就是
tpas - 离散求和的结果相当于把所有乘积项加总,但没有乘每个区间的长度
dτ = tpas - 最后整体乘以
tpas就能得到和连续卷积积分物理意义、数值大小匹配的结果
代码验证
你可以尝试注释掉乘tpas的逻辑再运行代码,会发现第三个子图绘制的卷积结果幅值会达到100左右,和前两个子图的0-1幅值范围完全不匹配,就是因为缺少了这步积分修正。
内容的提问来源于stack exchange,提问作者mihai orasanu
相关产品推荐
相关产品推荐

