Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

Bilinear transformation method for analog-to-digital filter conversion

collapse all in page

Syntax
[zd,pd,kd] = bilinear(z,p,k,fs)
[zd,pd,kd] = bilinear(z,p,k,fs,fp)
[numd,dend] = bilinear(num,den,fs)
[numd,dend] = bilinear(num,den,fs,fp)
[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs)
[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs,fp)

Description
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

H(z)=H(s)s=2f

zz1z+1

This transformation maps the j axis (from = to +) repeatedly around the unit circle (e , from =
to ) by
jw

=2tan1(

2fs

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

H(z)=H(s)s=2f tan(
p

fpfz (z1)(z+1)

With the prewarping option, bilinear maps the j axis (from = to +) repeatedly around the unit circle
(e , from = to ) by
jw

=2tan1

tan fpfs 2fp

In prewarped mode, bilinear matches the frequency 2fp (in radians per second) in the s-plane to the
normalized frequency 2fp/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.

Zero-Pole-Gain
[zd,pd,kd] = bilinear(z,p,k,fs) and
[zd,pd,kd] = bilinear(z,p,k,fs,fp) convert the s-domain transfer function specified by z, p, and k to a
discrete equivalent. Inputs z and p are column vectors containing the zeros and poles, k is a scalar gain,
and fs is the sampling frequency in hertz. bilinear returns the discrete equivalent in column
vectors zd and pd and scalar kd. The optional match frequency,fp is in hertz and is used for prewarping.
Transfer Function
[numd,dend] = bilinear(num,den,fs) and

[numd,dend] = bilinear(num,den,fs,fp) convert 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:
n

B(s)A(s)

=B(1)s ++B(n)s+B(n+1)A(1)s ++A(m)s+A(m+1)

fs is the sampling frequency in hertz. bilinear returns the discrete equivalent in row
vectors numd and dend in descending powers of z (ascending powers of z ). fp is the optional match
1

frequency, in hertz, for prewarping.

State-Space
[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs) and
[Ad,Bd,Cd,Dd] = bilinear(A,B,C,D,fs,fp) convert the continuous-time state-space system in
matrices A, B, C, D
x=Ax+Buy=Cx+Du
to the discrete-time system:

You might also like