我正在尝试使用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?
答案 0 :(得分:2)
卷积的t
范围应该是原始范围的最小值的两倍到原始范围的最大值的两倍,在相同的间隔。因此,卷积t
的值的数量为2*n - 1
,其中n
是t
的原始值。总而言之,我认为你可以说t = -20 : 0.1 : 20
然后你应该有t
的正确范围和正确数量的值。编辑:纠正步长;应与原始范围相同(即0.1)。
更一般地说,如果要对两个具有不同范围的系列进行卷积,则结果范围的最小值是原始范围的最小值之和,最大值是原始范围的总和。 ;最大值。