The bilinear transform (also known as Tustin's method, after Arnold Tustin) is used in digital signal processing and discrete-time control theory to transform continuous-time system representations to discrete-time and vice versa.
Ha(s)
Hd(z)
j\omega
Re[s]=0
|z|=1
\left(z-1\right)
The transform preserves stability and maps every point of the frequency response of the continuous-time filter,
Ha(j\omegaa)
j\omegadT | |
H | |
d(e |
)
The bilinear transform is a first-order Padé approximant 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
\begin{align} z&=esT\\ &=
esT/2 | |
e-sT/2 |
\\ & ≈
1+sT/2 | |
1-sT/2 |
\end{align}
where
T
s
s=(1/T)ln(z)
The inverse of this mapping (and its first-order bilinear approximation) is
\begin{align} s&=
1 | |
T |
ln(z)\\ &=
2 | \left[ | |
T |
z-1 | |
z+1 |
+
1 | |
3 |
\left(
z-1 | |
z+1 |
\right)3+
1 | |
5 |
\left(
z-1 | |
z+1 |
\right)5+
1 | |
7 |
\left(
z-1 | |
z+1 |
\right)7+ … \right]\\ & ≈
2 | |
T |
z-1 | |
z+1 |
\\ &=
2 | |
T |
1-z-1 | |
1+z-1 |
\end{align}
The bilinear transform essentially uses this first order approximation and substitutes into the continuous-time transfer function,
Ha(s)
s\leftarrow
2 | |
T |
z-1 | |
z+1 |
.
That is
Hd(z)=Ha(s)
| | |||||||||
|
=Ha\left(
2 | |
T |
z-1 | |
z+1 |
\right).
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.
A general LTI system has the transfer functionThe order of the transfer function is the greater of and (in practice this is most likely as the transfer function must be proper for the system to be stable). Applying the bilinear transformwhere is defined as either or otherwise if using frequency warping, givesMultiplying the numerator and denominator by the largest power of present,, givesIt can be seen here that after the transformation, the degree of the numerator and denominator are both .
Consider then the pole-zero form of the continuous-time transfer functionThe roots of the numerator and denominator polynomials, and, are the zeros and poles of the system. The bilinear transform is a one-to-one mapping, hence these can be transformed to the z-domain usingyielding some of the discretized transfer function's zeros and poles and As described above, the degree of the numerator and denominator are now both, in other words there is now an equal number of zeros and poles. The multiplication by means the additional zeros or poles are[2] Given the full set of zeros and poles, the z-domain transfer function is then
As an example take a simple low-pass RC filter. This continuous-time filter has a transfer function
\begin{align} Ha(s)&=
1/sC | |
R+1/sC |
\\ &=
1 | |
1+RCs |
. \end{align}
If we wish to implement this filter as a digital filter, we can apply the bilinear transform by substituting for
s
Hd(z) | =Ha\left(
\right) | |||||||||||
=
| ||||||||||||
=
| ||||||||||||
=
. |
The coefficients of the denominator are the 'feed-backward' coefficients and the coefficients of the numerator are the 'feed-forward' coefficients used for implementing 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, first-order continuous-time filter with the given transfer function
Ha(s)=
b0s+b1 | |
a0s+a1 |
=
b0+b1s-1 | |
a0+a1s-1 |
using the bilinear transform (without prewarping any frequency specification) requires the substitution of
s\leftarrowK
1-z-1 | |
1+z-1 |
where
K\triangleq
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
\omega0
K\triangleq
\omega0 | ||||
|
This results in a discrete-time digital filter with coefficients expressed in terms of the coefficients of the original continuous time filter:
H | ||||||||||||||||||||||||||||
|
Normally the constant term in the denominator must be normalized to 1 before deriving the corresponding difference equation. This results in
H | ||||||||||||||||
|
.
The difference equation (using the Direct form I) is
y[n]=
b0K+b1 | |
a0K+a1 |
⋅ x[n]+
-b0K+b1 | |
a0K+a1 |
⋅ x[n-1]-
-a0K+a1 | |
a0K+a1 |
⋅ y[n-1] .
A similar process can be used for a general second-order filter with the given transfer function
Ha(s)=
b0s2+b1s+b2 | |
a0s2+a1s+a2 |
=
b0+b1s-1+b2s-2 | |
a0+a1s-1+a2s-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 | ||||||||||||||||||||||||||||
|
Again, the constant term in the denominator is generally normalized to 1 before deriving the corresponding difference equation. This results in
H | ||||||||||||||||||||||
|
.
The difference equation (using the Direct form I) is
y[n]=
b0K2+b1K+b2 | |
a0K2+a1K+a2 |
⋅ x[n]+
2b2-2b0K2 | |
a0K2+a1K+a2 |
⋅ x[n-1]+
b0K2-b1K+b2 | |
a0K2+a1K+a2 |
⋅ x[n-2]-
2a2-2a0K2 | |
a0K2+a1K+a2 |
⋅ y[n-1]-
a0K2-a1K+a2 | |
a0K2+a1K+a2 |
⋅ y[n-2] .
Ha(s)
s=j\omegaa
j\omega
Hd(z)
z=
j\omegadT | |
e |
|z|=1
j\omega
Ha(s)
|z|=1
Hd(z)
z=esT
j\omega
\omegad
\omegaa
\omegad
Hd(z)=Ha\left(
2 | |
T |
z-1 | |
z+1 |
\right)
) | =Ha\left(
\right) | ||||||||||||||||||||||||||||||||||
=Ha\left(
⋅
\right) | |||||||||||||||||||||||||||||||||||
=Ha\left(
⋅
\right) | |||||||||||||||||||||||||||||||||||
=Ha\left(j
⋅
\right) | |||||||||||||||||||||||||||||||||||
=Ha\left(j
⋅
\right) | |||||||||||||||||||||||||||||||||||
=Ha\left(j
⋅ \tan\left(\omegadT/2\right)\right) |
This shows that every point on the unit circle in the discrete-time filter z-plane,
z=
j\omegadT | |
e |
j\omega
s=j\omegaa
\omegaa=
2 | |
T |
\tan\left(\omegad
T | |
2 |
\right)
and the inverse mapping is
\omegad=
2 | |
T |
\arctan\left(\omegaa
T | |
2 |
\right).
The discrete-time filter behaves at frequency
\omegad
(2/T)\tan(\omegadT/2)
\omegad
(2/T)\tan(\omegadT/2)
\omegad\ll2/T
\omegaa\ll2/T
\omegad ≈ \omegaa
One can see that the entire continuous frequency range
-infty<\omegaa<+infty
is mapped onto the fundamental frequency interval
- | \pi |
T |
<\omegad<+
\pi | |
T |
.
The continuous-time filter frequency
\omegaa=0
\omegad=0
\omegaa=\pminfty
\omegad=\pm\pi/T.
One can also see that there is a nonlinear relationship between
\omegaa
\omegad.
\omegaa=
2 | |
T |
\tan\left(\omegad
T | |
2 |
\right)
It is possible, however, to compensate for the frequency warping by pre-warping a frequency specification
\omega0
\omega0
s\leftarrow
\omega0 | ||||
|
z-1 | |
z+1 |
.
However, note that this transform becomes the original transform
s\leftarrow
2 | |
T |
z-1 | |
z+1 |
as
\omega0\to0
The main advantage of the warping phenomenon is the absence of aliasing distortion of the frequency response characteristic, such as observed with Impulse invariance.