LinearSystems.RationalSubstitution Method

Overload List

#SignatureDescription
1procedure RationalSubstitution(const Num: TVec; const Den: TVec; const nz: TVec; const Dz: TVec);Replace the variable of a rational polynomial with another rational polyniomial.
2procedure RationalSubstitution(const z: TVec; const p: TVec; var k: Double; const nz: TVec; const Dz: TVec);Zeroes of the original polynomial are stored in z and poles in p vector.

Overload 1: procedure RationalSubstitution(const Num: TVec; const Den: TVec; const nz: TVec; const Dz: TVec);

Replace the variable of a rational polynomial with another rational polyniomial.

#NameTypeDescription
1NumTVec
2DenTVec
3nzTVec
4DzTVec

Result: stored in self (calling object)

Remarks:

Num is the nominator and den is the denominator of the original polynomial. Nz is the nominator and Dz is the denominator of the polynom to substitude the variable with in the original polynomial. The function returns modified num and den. Num and den must have the same length. Nz and Dz must have the same length. The advantage of this method is that rooting of the polynomials is not required. The resulting polynomial is normalized to have the coefficient for the highest power in the polynomial equal to 1.

Examples
uses MtxExpr, Math387, MtxVec, MtxVecTee, MtxVecEdit,
LinearSystems, IirFilters, SignalUtils;

procedure TForm.Button1Click(Sender: TObject);
var num,den,den1,num1: Vector;
begin
    num.SetIt(false,[1,-2, 1]);
    den.SetIt(false,[1,-4, 1]);

    num1.SetIt(false,[1,-1]);
    den1.SetIt(false,[1,-2]);

    RationalSubstitution(num,den,num1,den1);
    ViewValues(num,'Num',true);
    ViewValues(den,'Den',true);

    //          num = [ 0, 0, -0.5]
    //          den = [ 1,-3,  1.5]
end;

Overload 2: procedure RationalSubstitution(const z: TVec; const p: TVec; var k: Double; const nz: TVec; const Dz: TVec);

Zeroes of the original polynomial are stored in z and poles in p vector.

#NameTypeDescription
1zTVec
2pTVec
3kDouble
4nzTVec
5DzTVec

Result: stored in self (calling object)

Remarks:

Nz is the nominator and Dz is the denominator of the polynom to substitude the variable with in the original polynomial. The function returns modified z and p. Nz and Dz must have the same length. k is the gain factor (not modified).