LinearSystems::Bilinear Function

Overload List

#SignatureDescription
1void Bilinear(TVec *z, TVec *p, double &k, double FS = 2, bool AddZeros = true);Compute bilinear transformation.
2void 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.

#NameTypeDescription
1zTVec *
2pTVec *
3kdouble &
4FS = 2double
5AddZeros = truebool
Remarks:

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

Declared in Dew::Signal::Units::LinearSystems · Dew.Signal/Units.LinearSystems.h · Cross-compiler

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.

#NameTypeDescription
1ATMtx *
2BTVec *
3CTVec *
4Ddouble &
5FS = 2double
See Also: LinearSystems::MatchedZTransform, LinearSystems::LowpassToLowpass, LinearSystems::LowpassToLowpassZ, LinearSystems::BilinearUnwarp, LinearSystems::BilinearPrewarp
Declared in Dew::Signal::Units::LinearSystems · Dew.Signal/Units.LinearSystems.h · Cross-compiler