如何使用残差MATLAB找到脉冲响应

时间:2015-03-26 18:34:34

标签: matlab

我有一个传递函数H(s),它看起来像这样:1 /(s。^ 2 + s + 1),它没有任何真正的根,只有复杂的根。如何找到t = 0:0.001:10的脉冲响应?我知道我需要将H表示为两个一阶多项式的乘积,然后使用部分分数的方法将H表示为两个项的和(使用残差函数)。在这里我被卡住了,我使用了残留物,但它没有多大帮助,这是我的代码:

t=[0:0.001:10];
f = 0:0.001:2;
j = sqrt(-1);

num = [0 0 1];
den = [1 1 1];
[r,p,k] = residue(num,den)

2 个答案:

答案 0 :(得分:0)

分子和分母的系数是相应ODE问题的系数。

eq = @(t,z) [z(2); 1-z(1)-z(2)];
[t,y] = ode45(eq,[0,10],[0,0])
plot(t,y)

enter image description here

答案 1 :(得分:0)

使用符号计算:

>> syms s;
>> H = 1/(s.^2+s+1);
>> h = ilaplace(H)
h =
(2*3^(1/2)*exp(-t/2)*sin((3^(1/2)*t)/2))/3

如果要在[0 10]上绘制符号函数h

>> ezplot(h, [0 10])

enter image description here