Overload List
| # | Signature | Description |
|---|---|---|
| 1 | void Bilinear(TVec *z, TVec *p, double &k, double FS = 2, bool AddZeros = true); | Compute bilinear transformation. |
| 2 | void Bilinear(TMtx *A, TVec *B, TVec *C, double &D, double FS = 2); | Apply bilinear transform to a linear system represented in state-space form. |
Overload 1: void Bilinear(TVec *z, TVec *p, double &k, double FS = 2, bool AddZeros = true);
Compute bilinear transformation.
Apply bilinear transform to transfer function represented in zero-pole form. FS defines the sampling frequency. If z.Length < p.Length the routine will not add zeroes at -1 to match the number of poles unless AddZeros is True.
Bilinear transformation is defined with the mapping: s -> 2/T (1 - z^(-1))/(1 + z^(-1)), T = 1/FS Bilinear transform requires that the amplitude response of a continuous system is piecewise constant and can not be used to transform an analog differentiator to a digital filter (for example). Bilinear transform also does not preserve the impulse or the phase response [1].
References:
[1] Theory and application of digital signal processing, Lawrence R. Rabiner and Bernard Gold. Prentice-Hall, 1975
Overload 2: void Bilinear(TMtx *A, TVec *B, TVec *C, double &D, double FS = 2);
Apply bilinear transform to a linear system represented in state-space form.