【问题标题】:How to find impulse response using residue MATLAB如何使用残差 MATLAB 找到脉冲响应
【发布时间】:2015-03-26 18:34:33
【问题描述】:

我有一个传递函数 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)

【问题讨论】:

    标签: matlab


    【解决方案1】:

    使用符号计算:

    >> 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])
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-17
        • 2013-06-06
        • 1970-01-01
        相关资源
        最近更新 更多