void ZeroPoleToTransferFun(TVec Num, TVec Den, TVec z, TVec p, Double k)
Convert transfer function from zero-pole to numerator-denominator form.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Num | TVec | source TVec |
| 2 | Den | TVec | source TVec |
| 3 | z | TVec | source TVec |
| 4 | p | TVec | source TVec |
| 5 | k | Double | scalar |
Result: stored in self (calling object)
Remarks:
Convert a rational polynomial defined with zeros Z and poles P and gain K in to its numerator Num and denominator Den form. The numerator will be scaled by K and both polynomials are assumed to have only real coefficents. (Poles and zeros can still be complex, if they have complex conjugated pairs.)
num(s) (s-sz1)*...*(s-szn)
H(s) = -------- = K*-------------------
den(s) (s-sp1)*...*(s-spn)
szn - n'th zero
spn - n'th pole
K - system gainExamples
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(0);
Vector den = new Vector(0);
double k;
z.SetIt(false,new double[2] {3,4});
p.SetIt(false,new double[2] {1,2});
k = 1;
LinearSystems.ZeroPoleToTransferFun(num,den,z,p,k);
MtxVecEdit.ViewValues(num,"Numerator",true);
MtxVecEdit.ViewValues(den,"Denominator",true);
// num = [1, -7, 12]
// den = [1, -3, 2]
}