Beispiel #1
0
        public IIRFilterBlockReal(RealRationalPolynomial p)
        {
            // 分母の定数項が1.0になるようにスケールする
            p = p.ScaleAllCoeffs(1.0f / p.D(0));

            mH = p;

            mMaxOrder = p.NumerDegree();
            if (mMaxOrder < p.DenomDegree())
            {
                mMaxOrder = p.DenomDegree();
            }

            mB = new double[mMaxOrder + 1];
            for (int i = 0; i <= p.NumerDegree(); ++i)
            {
                mB[i] = p.N(i);
            }

            mA    = new double[mMaxOrder + 1];
            mA[0] = p.D(0);
            for (int i = 1; i < mA.Length; ++i)
            {
                mA[i] = -p.D(i);
            }

            mV = new double[mMaxOrder + 1];
        }