matlab如何用desconv

如题所述

在MATLAB中,conv()函数用于计算向量的卷积以及多项式的乘法。函数的基本用法为:w = conv(u, v),其中u和v是向量,它们的长度不必相同。

例如,若要进行多项式乘法(s^2 + 2s + 2)(s + 4)(s + 1),可以使用以下代码:

w = conv([1, 2, 2], conv([1, 4], [1, 1]))

执行后,w的结果为:

1 7 16 18 8

转换为多项式形式,可以使用poly2str函数,代码如下:

P = poly2str(w, 's')

输出结果为:

s^4 + 7 s^3 + 16 s^2 + 18 s + 8

另一个例子是向量的卷积。假设有一个长度为m的向量序列u和一个长度为n的向量序列v,它们的卷积w的长度为(m+n-1)。卷积定义为:

w(k) = Σu(j)v(k+1-j),其中w向量序列的长度为(m+n-1)。

具体来说:

w(1) = u(1)*v(1)

w(2) = u(1)*v(2) + u(2)*v(1)

w(3) = u(1)*v(3) + u(2)*v(2) + u(3)*v(1)

以此类推,直至:

w(n) = u(1)*v(n) + u(2)*v(n-1) + ... + u(n)*v(1)

最后,w(2*n-1) = u(n)*v(n)

通过这些计算,可以得到卷积w的各个元素值。
温馨提示:答案为网友推荐,仅供参考
相似回答