The bilinear transform is an algebraic transformation between the continuous-time and discrete-time frequency variables s and z, respectively. It is therefore appropriate only when a closed-form filter representation in s exists.
The bilinear transform maps the entire continuous-time frequency space,
onto the discrete-time frequency space
Continuous-time dc () maps to discrete-time dc () and infinite continuous-time frequency (
) to the Nyquist frequency (). Thus, a nonlinear warping of the frequency axes occurs.
Since the -axis in the s plane is mapped exactly once around the unit circle of the z plane, no aliasing occurs.
The constant c is typically given by c = 2/Ts. This parameter provides one degree of freedom for the mapping of a particular finite continuous-time frequency to a particular location on the z-plane unit circle. The warping of frequencies is given for the discrete-time frequency in terms of c and as
If one wishes to map a specific “analog” frequency () to the equivalent “digital” frequency (), the constant c is found as
Because of the nonlinear compression of the frequency axis, use of the bilinear transformation should be limited to filters with a single transition band (lowpass and highpass) or resonance (narrow bandpass and bandstop).
The Matlab example, msd_fdbt.m, compares the results of using both the finite difference and bilinear transform approaches to simulate the motion of a mass-spring-damper system.