collapse all
The bilinear transformation is a mathematical mapping of variables.
In digital filtering, it is a standard method of mapping the s or analog
plane into the z or digital plane. It transforms analog filters, designed
using classical filter design techniques, into their discrete equivalents.
The bilinear transformation maps the s-plane into the
z-plane by
This transformation maps the jΩ axis (from Ω = –∞
to +∞) repeatedly around the unit circle
(ejw, from ω = –π
to π) by
bilinear can accept an optional parameter Fp that
specifies prewarping. fp, in hertz, indicates a “match”
frequency, that is, a frequency for which the frequency responses before and after mapping
match exactly. In prewarped mode, the bilinear transformation maps the
s-plane into the z-plane with
With the prewarping option, bilinear maps the jΩ
axis (from Ω = –∞ to +∞) repeatedly around the unit circle
(ejω, from
ω = –π to π)
by
In prewarped mode, bilinear matches the frequency
2πfp (in radians per second) in the
s-plane to the normalized frequency
2πfp/fs
(in radians per second) in the z-plane.
The bilinear function works with three different linear system
representations: zero-pole-gain, transfer function, and state-space form.
bilinear uses one of two algorithms depending on the format of the
input linear system you supply. One algorithm works on the zero-pole-gain format and the other
on the state-space format. For transfer function representations, bilinear
converts to state-space form, performs the transformation, and converts the resulting
state-space system back to transfer function form.
Zero-Pole-Gain Algorithm
For a system in zero-pole-gain form, bilinear performs four
steps:
If fp is present, it prewarps:
fp = 2*pi*fp;
fs = fp/tan(fp/fs/2)
otherwise, fs = 2*fs.
It strips any zeros at ±∞ using
It transforms the zeros, poles, and gain using
pd = (1+p/fs)./(1-p/fs); % Do bilinear transformation
zd = (1+z/fs)./(1-z/fs);
kd = real(k*prod(fs-z)./prod(fs-p));
It adds extra zeros at -1 so the resulting system has equivalent numerator and
denominator order.
State-Space Algorithm
An analog system in state space form is given by
. This system is converted to the discrete form using state-space
equations as follows:
To convert an analog system in state-space form,
bilinear performs two steps:
If fp is present, let
If fp is not present, let λ=fs.
Compute Ad, Bd, Cd, and
Dd in terms of A, B,
C, and D using
Transfer Function
For a system in transfer function form, bilinear converts an
s-domain transfer function given by num and
den to a discrete equivalent. Row vectors num and
den specify the coefficients of the numerator and denominator,
respectively, in descending powers of s. Let
B(s) be the numerator polynomial and
A(s) be the denominator polynomial. The transfer
function is:
fs is the sample rate in hertz. bilinear returns
the discrete equivalent in row vectors numd and dend
in descending powers of z (ascending powers
of z–1). fp is the
optional match frequency, in hertz, for prewarping.