DSP Master VCL
|
Convert transfer function from numerator-denominator to zero-pole form.
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 - 7*x + 12 -------------- x^2 - 3*x + 2
Zero pole form:
(x - 3)*(x - 4) --------------- (y - 2)*(y - 1)
uses MtxExpr, Math387, MtxVec, MtxVecTee, MtxVecEdit, LinearSystems; procedure TForm1.Button1Click(Sender: TObject); var z,p,num,den: Vector; k: Double; begin num.SetIt(false,[1,-7,12]); den.SetIt(false,[1,-3, 2]); TransferFunToZeroPole(z,p,k,num,den); ViewValues(z); ViewValues(p); // z = [4 , 3] // p = [2 , 1] // k = num[0]/den[0] = 1; end;
#include "MtxExpr.hpp" #include "MtxVecEdit.hpp" #include "MtxVecTee.hpp" #include "LinearSystems.hpp" void __fastcall TForm41::BitBtn1Click(TObject *Sender) { sVector z,p,num,den; double k; num.Size(3); num[0] = 1; num[1] = -7; num[2] = 12; den.Size(3); den[0] = 1; den[1] =-3; den[2] = 2; TransferFunToZeroPole(z,p,k,num,den); ViewValues(z); ViewValues(p); // num = [1, -7, 12] // den = [1, -3, 2] }
Copyright (c) 1999-2025 by Dew Research. All rights reserved.
|
What do you think about this topic? Send feedback!
|