The bilinear transform (also known as Tustin's method or Mobius Transformation) is used in digital signal processing and discrete-time control theory to transform continuous-time system representations to discrete-time and vice versa.
The bilinear transform is a special case of a conformal mapping (namely, the Möbius transformation), often used to convert a transfer function
H
a
(
s
)
of a linear, time-invariant (LTI) filter in the continuous-time domain (often called an analog filter) to a transfer function
H
d
(
z
)
of a linear, shift-invariant filter in the discrete-time domain (often called a digital filter although there are analog filters constructed with switched capacitors that are discrete-time filters). It maps positions on the
j
ω
axis,
R
e
[
s
]
=
0
, in the s-plane to the unit circle,
|
z
|
=
1
, in the z-plane. Other bilinear transforms can be used to warp the frequency response of any discrete-time linear system (for example to approximate the non-linear frequency resolution of the human auditory system) and are implementable in the discrete domain by replacing a system's unit delays
(
z
−
1
)
with first order all-pass filters.
The transform preserves stability and maps every point of the frequency response of the continuous-time filter,
H
a
(
j
ω
a
)
to a corresponding point in the frequency response of the discrete-time filter,
H
d
(
e
j
ω
d
T
)
although to a somewhat different frequency, as shown in the Frequency warping section below. This means that for every feature that one sees in the frequency response of the analog filter, there is a corresponding feature, with identical gain and phase shift, in the frequency response of the digital filter but, perhaps, at a somewhat different frequency. This is barely noticeable at low frequencies but is quite evident at frequencies close to the Nyquist frequency.
The bilinear transform is a first-order approximation of the natural logarithm function that is an exact mapping of the z-plane to the s-plane. When the Laplace transform is performed on a discrete-time signal (with each element of the discrete-time sequence attached to a correspondingly delayed unit impulse), the result is precisely the Z transform of the discrete-time sequence with the substitution of
z
=
e
s
T
=
e
s
T
/
2
e
−
s
T
/
2
≈
1
+
s
T
/
2
1
−
s
T
/
2
where
T
is the numerical integration step size of the trapezoidal rule used in the bilinear transform derivation; or, in other words, the sampling period. The above bilinear approximation can be solved for
s
or a similar approximation for
s
=
(
1
/
T
)
ln
(
z
)
can be performed.
The inverse of this mapping (and its first-order bilinear approximation) is
s
=
1
T
ln
(
z
)
=
2
T
[
z
−
1
z
+
1
+
1
3
(
z
−
1
z
+
1
)
3
+
1
5
(
z
−
1
z
+
1
)
5
+
1
7
(
z
−
1
z
+
1
)
7
+
⋯
]
≈
2
T
z
−
1
z
+
1
=
2
T
1
−
z
−
1
1
+
z
−
1
The bilinear transform essentially uses this first order approximation and substitutes into the continuous-time transfer function,
H
a
(
s
)
s
←
2
T
z
−
1
z
+
1
.
That is
H
d
(
z
)
=
H
a
(
s
)
|
s
=
2
T
z
−
1
z
+
1
=
H
a
(
2
T
z
−
1
z
+
1
)
.
Stability and minimum-phase property preserved
A continuous-time causal filter is stable if the poles of its transfer function fall in the left half of the complex s-plane. A discrete-time causal filter is stable if the poles of its transfer function fall inside the unit circle in the complex z-plane. The bilinear transform maps the left half of the complex s-plane to the interior of the unit circle in the z-plane. Thus filters designed in the continuous-time domain that are stable are converted to filters in the discrete-time domain that preserve that stability.
Likewise, a continuous-time filter is minimum-phase if the zeros of its transfer function fall in the left half of the complex s-plane. A discrete-time filter is minimum-phase if the zeros of its transfer function fall inside the unit circle in the complex z-plane. Then the same mapping property assures that continuous-time filters that are minimum-phase are converted to discrete-time filters that preserve that property of being minimum-phase.
As an example take a simple low-pass RC filter. This continuous-time filter has a transfer function
H
a
(
s
)
=
1
/
s
C
R
+
1
/
s
C
=
1
1
+
R
C
s
.
If we wish to implement this filter as a digital filter, we can apply the bilinear transform by substituting for
s
the formula above; after some reworking, we get the following filter representation:
The coefficients of the denominator are the 'feed-backward' coefficients and the coefficients of the numerator are the 'feed-forward' coefficients used to implement a real-time digital filter.
It is possible to relate the coefficients of a continuous-time, analog filter with those of a similar discrete-time digital filter created through the bilinear transform process. Transforming a general, second-order continuous-time filter with the given transfer function
H
a
(
s
)
=
b
0
s
2
+
b
1
s
+
b
2
a
0
s
2
+
a
1
s
+
a
2
=
b
0
+
b
1
s
−
1
+
b
2
s
−
2
a
0
+
a
1
s
−
1
+
a
2
s
−
2
using the bilinear transform (without prewarping any frequency specification) requires the substitution of
s
←
K
1
−
z
−
1
1
+
z
−
1
where
K
≜
2
T
.
However, if the frequency warping compensation as described below is used in the bilinear transform, so that both analog and digital filter gain and phase agree at frequency
ω
0
, then
K
≜
ω
0
tan
(
ω
0
T
2
)
.
This results in a discrete-time digital biquad filter with coefficients expressed in terms of the coefficients of the original continuous time filter:
H
d
(
z
)
=
(
b
0
K
2
+
b
1
K
+
b
2
)
+
(
2
b
2
−
2
b
0
K
2
)
z
−
1
+
(
b
0
K
2
−
b
1
K
+
b
2
)
z
−
2
(
a
0
K
2
+
a
1
K
+
a
2
)
+
(
2
a
2
−
2
a
0
K
2
)
z
−
1
+
(
a
0
K
2
−
a
1
K
+
a
2
)
z
−
2
Normally the constant term in the denominator must be normalized to 1 before deriving the corresponding difference equation. This results in
H
d
(
z
)
=
b
0
K
2
+
b
1
K
+
b
2
a
0
K
2
+
a
1
K
+
a
2
+
2
b
2
−
2
b
0
K
2
a
0
K
2
+
a
1
K
+
a
2
z
−
1
+
b
0
K
2
−
b
1
K
+
b
2
a
0
K
2
+
a
1
K
+
a
2
z
−
2
1
+
2
a
2
−
2
a
0
K
2
a
0
K
2
+
a
1
K
+
a
2
z
−
1
+
a
0
K
2
−
a
1
K
+
a
2
a
0
K
2
+
a
1
K
+
a
2
z
−
2
.
The difference equation (using the Direct Form I) is
y
[
n
]
=
b
0
K
2
+
b
1
K
+
b
2
a
0
K
2
+
a
1
K
+
a
2
⋅
x
[
n
]
+
2
b
2
−
2
b
0
K
2
a
0
K
2
+
a
1
K
+
a
2
⋅
x
[
n
−
1
]
+
b
0
K
2
−
b
1
K
+
b
2
a
0
K
2
+
a
1
K
+
a
2
⋅
x
[
n
−
2
]
−
2
a
2
−
2
a
0
K
2
a
0
K
2
+
a
1
K
+
a
2
⋅
y
[
n
−
1
]
−
a
0
K
2
−
a
1
K
+
a
2
a
0
K
2
+
a
1
K
+
a
2
⋅
y
[
n
−
2
]
.
To determine the frequency response of a continuous-time filter, the transfer function
H
a
(
s
)
is evaluated at
s
=
j
ω
a
which is on the
j
ω
axis. Likewise, to determine the frequency response of a discrete-time filter, the transfer function
H
d
(
z
)
is evaluated at
z
=
e
j
ω
d
T
which is on the unit circle,
|
z
|
=
1
. The bilinear transform maps the
j
ω
axis of the s-plane (of which is the domain of
H
a
(
s
)
) to the unit circle of the z-plane,
|
z
|
=
1
(which is the domain of
H
d
(
z
)
), but it is not the same mapping
z
=
e
s
T
which also maps the
j
ω
axis to the unit circle. When the actual frequency of
ω
d
is input to the discrete-time filter designed by use of the bilinear transform, then it is desired to know at what frequency,
ω
a
, for the continuous-time filter that this
ω
d
is mapped to.
H
d
(
z
)
=
H
a
(
2
T
z
−
1
z
+
1
)
This shows that every point on the unit circle in the discrete-time filter z-plane,
z
=
e
j
ω
d
T
is mapped to a point on the
j
ω
axis on the continuous-time filter s-plane,
s
=
j
ω
a
. That is, the discrete-time to continuous-time frequency mapping of the bilinear transform is
ω
a
=
2
T
tan
(
ω
d
T
2
)
and the inverse mapping is
ω
d
=
2
T
arctan
(
ω
a
T
2
)
.
The discrete-time filter behaves at frequency
ω
d
the same way that the continuous-time filter behaves at frequency
(
2
/
T
)
tan
(
ω
d
T
/
2
)
. Specifically, the gain and phase shift that the discrete-time filter has at frequency
ω
d
is the same gain and phase shift that the continuous-time filter has at frequency
(
2
/
T
)
tan
(
ω
d
T
/
2
)
. This means that every feature, every "bump" that is visible in the frequency response of the continuous-time filter is also visible in the discrete-time filter, but at a different frequency. For low frequencies (that is, when
ω
d
≪
2
/
T
or
ω
a
≪
2
/
T
), then the features are mapped to a slightly different frequency;
ω
d
≈
ω
a
.
One can see that the entire continuous frequency range
−
∞
<
ω
a
<
+
∞
is mapped onto the fundamental frequency interval
−
π
T
<
ω
d
<
+
π
T
.
The continuous-time filter frequency
ω
a
=
0
corresponds to the discrete-time filter frequency
ω
d
=
0
and the continuous-time filter frequency
ω
a
=
±
∞
correspond to the discrete-time filter frequency
ω
d
=
±
π
/
T
.
One can also see that there is a nonlinear relationship between
ω
a
and
ω
d
.
This effect of the bilinear transform is called frequency warping. The continuous-time filter can be designed to compensate for this frequency warping by setting
ω
a
=
2
T
tan
(
ω
d
T
2
)
for every frequency specification that the designer has control over (such as corner frequency or center frequency). This is called pre-warping the filter design.
It is possible, however, to compensate for the frequency warping by pre-warping a frequency specification
ω
0
(usually a resonant frequency or the frequency of the most significant feature of the frequency response) of the continuous-time system. These pre-warped specifications may then be used in the bilinear transform to obtain the desired discrete-time system. When designing a digital filter as an approximation of a continuous time filter, the frequency response (both amplitude and phase) of the digital filter can be made to match the frequency response of the continuous filter at a specified frequency
ω
0
, as well as matching at DC, if the following transform is substituted into the continuous filter transfer function. This is a modified version of Tustin's transform shown above.
s
←
ω
0
tan
(
ω
0
T
2
)
z
−
1
z
+
1
.
However, note that this transform becomes the original transform
s
←
2
T
z
−
1
z
+
1
as
ω
0
→
0
.
The main advantage of the warping phenomenon is the absence of aliasing distortion of the frequency response characteristic, such as observed with Impulse invariance.