0

我需要从直接形式 II 实现传递函数。这是对直接形式 II 的描述。我可以选择要包含的系数。

到目前为止,我的代码如下所示:

int main(void)
{
    int l, m;
    l = dirii2(2); // l = -82;
    //m = directii(2);

    return l;
}

int dirii2(int x)
{
    int y = 0; // output    // 3 is constant of array size.
    static int  v[3] = {6,4,0};
    int b[3] = {3,5,2}, a[2] = {3,6};
    int q0, q1, q2;

    for (int i = 0; i < 3 ; i++) {
        q0 = x; // q0 = x = 2
        q1 = a[2-2]*v[2-1]; // q1 = 3 * 6 = 18
        q2 = a[2-1]*v[2-2]; // q2 = 6 * 4 = 24
        v[2] = q0 - q1 - q2;//  v(n) = x(n) - a1*v(n-1) - a2v(n-2);  // v = 2 - 18 - 24 = -40
        y =+ b[i]*v[2-i];// + b[1]*v[2-1]+b[2]*v[2-2];
        v[0] = v[1];
        v[1] = v[2];
    }
    return y;
}

当我运行代码时,结果y会迅速获得或失去值,就像它变得不稳定一样:

  1. 第一次迭代y变为-138.
  2. 第二次迭代y变为230.
  3. 第三次迭代y变为-92.

我写的代码对吗?

4

0 回答 0