LinearSystems.TransferFunToZeroPole Method

void TransferFunToZeroPole(TVec z, TVec p, ref Double k, TVec Num, TVec Den)

Convert transfer function from numerator-denominator to zero-pole form.

#NameTypeDescription
1zTVecsource TVec
2pTVecsource TVec
3kDouble (ref)output
4NumTVecsource TVec
5DenTVecsource TVec

Result: stored in self (calling object)

Remarks:

Convert a transfer function defined with numerator Num and denominator Den in to its zero-pole form with zeros Z, poles P and gain K. The routine calls PolyRoots routine from the Polynoms unit. Numerator and denominator can be real or complex.

A rational polynomial can be converted to zero pole form by finding the roots of the numerator and denominator: (x^2 - 7x + 12)/(x^2 - 3x + 2) Zero pole form:
((x-3)(x-4))/((y-2)(y-1))

Examples
using Dew.Math;
using Dew.Math.Editors;
using Dew.Math.Units;
using Dew.Signal;
using Dew.Signal.Units;
using Dew.Math.Tee;
using Dew.Signal.Tee;

private void button1_Click(object sender, EventArgs e)
{
    Vector z = new Vector(0);
    Vector p = new Vector(0);
    Vector num = new Vector(3);
    Vector den = new Vector(3);
    double k;

    num.Values[0] = 1;
    num.Values[1] = -7;
    num.Values[2] = 12;
    den.Values[0] = 1;
    den.Values[1] = -3;
    den.Values[2] = 2;
    k = 1;
    LinearSystems.TransferFunToZeroPole(z, p, out k, num, den);
    MtxVecEdit.ViewValues(z,"Zeros",true);
    MtxVecEdit.ViewValues(p,"Poles",true);
    //        z = [4 , 3]
    //        p = [2 , 1]
    //        k = num[0]/den[0] =  1;
}
See Also: LinearSystems.ZeroPoleToStateSpace, LinearSystems.StateSpaceToTransferFun, LinearSystems.StateSpaceToZeroPole, LinearSystems.ZeroPoleToTransferFun