在Matlab中绘制卷积

时间:2014-09-18 00:36:25

标签: matlab math convolution

我正在尝试使用matlab在设定的时间间隔内绘制两个函数的卷积,并且无法使绘图函数起作用。

到目前为止,我的代码是:

>> t = -10:.1:10
>> f = heaviside(t)-heaviside(t-3)
>> g = heaviside(t)-heaviside(t-1)
>> y = conv(f,g)

产生"值"的3个变量。 1x201 double,(t,f,g)和值为1x401的卷积加倍,我相信这意味着它是前一个变量的点数的两倍

当我使用plot命令绘制此图时,我尝试使用此命令绘制相对于t的卷积:

>> plot(t,y)

抛出并且错误说"向量必须是相同的长度"。我如何制作它以便我可以相对于t绘制y?

1 个答案:

答案 0 :(得分:2)

卷积的t范围应该是原始范围的最小值的两倍到原始范围的最大值的两倍,在相同的间隔。因此,卷积t的值的数量为2*n - 1,其中nt的原始值。总而言之,我认为你可以说t = -20 : 0.1 : 20然后你应该有t的正确范围和正确数量的值。编辑:纠正步长;应与原始范围相同(即0.1)。

更一般地说,如果要对两个具有不同范围的系列进行卷积,则结果范围的最小值是原始范围的最小值之和,最大值是原始范围的总和。 ;最大值。