1

我想在matlab中为两个heaviside函数解决卷积,问题是matlab不允许我这样做并弹出一个错误说:

??? Undefined function or method 'conv2' for input arguments of type 'sym'.

这是我尝试做的:

syms x;
conv(heaviside(-1-x), heaviside(x+3))

我想我可以用 x 可以具有的值制作一个向量并使用该向量对其进行转换,但我不想预定义范围,所以我想将其保留为符号。

有什么建议么?

4

1 回答 1

3

您可以直接从定义(http://en.wikipedia.org/wiki/Convolution)计算卷积,例如计算积分:

syms x t  
symb_conv = int(heaviside(-1-(t-x)) * heaviside(x+3), x, -inf, inf)

编辑:

真的,在这些条件下,你的卷积似乎总是无穷大。

原始函数的绘图如下:

ezplot(heaviside(-1-x), [-10 10])
ezplot(heaviside(x+3), [-10 10])

重质(-x-1) 重质(x+3)

我们需要反映一个函数来接收卷积。让它成为第二个功能:

在此处输入图像描述

如果我们比较第一个和最后一个图,我们可以看到这两个函数对于 x<-3 有无限的非零交集。这意味着 t=0 的卷积将是无穷大的。

如果我们尝试将最后一个图向任何方向移动,我们也将有无限的非零交点 x<(-3-t)。因此,对于任何 t,最终的卷积函数都是无穷大的。

于 2013-04-25T15:24:49.747 回答