Revised
17 July 2002
A topic
which frequently proves difficult for undergraduate electrical engineering
students is the relationship between the poles and zeros of the transfer function
H(s)
and the sinusoidal steady-state response.
A generalized transfer function (written as a ratio of polynomials in
the Laplace-transform variable s) is:
![]()
where z1…zm
are the zeros of H(s) and p1…pn
are the poles of H(s).
The magnitude and phase of the sinusoidal steady-state frequency
response may be determined from H(s) by substituting jw for s. The magnitude and phase
of the sinusoidal steady-state response may be found by:

Texts
often depict a graphical means of computing H(jw) from the magnitudes and phases of the individual phasors and
give a few static examples. Bode_plot_73 is a Matlab script which illustrates
dynamically the derivation of the Bode plot from a transfer function. Numerator and
denominator polynomials coefficients are entered into a graphical user
interface. Coefficients of zero for
powers less than the highest power of s
must not be omitted. (Example: the
coefficients of s2 + 1000
would be entered as 1 0 1000).
Expressions are also permitted (for example, denominator coefficients 1
2*0.5*2*pi*1000 (2*pi*1000)^2 would
represent a second-order transfer function with a natural frequency of 1000 Hz
and a damping ratio of 0.5). The user
interface permits selection of the frequency range, the number of frequency
steps, linear or logarithmic frequency sweep, and whether to sweep throughout
the entire frequency range or to run in a “freeze-frame” mode. The user clicks a button on the user
interface to continue once all data have been entered.
The
program checks that the transfer function is valid (n is greater than or equal to m)
and that the order of the denominator is at least 1. Pole and zero locations
are displayed in rectangular form on the command window. A graphics window appears which is updated
at each frequency step. An example
window from an all-pass (phase-shift) network is shown below. This particular network has a transfer
function:
. ![]()

The
upper-left hand window shows phasors jw, z1, and jw – z1
plotted on the complex s-plane at 100 Hz. The lower-left hand window shows phasors jw, p1, and jw – p1
plotted on the complex s-plane.
The right-hand displays show the Bode magnitude and phase plots for the
sweep frequencies from the start frequency to the current frequency.
The Bode plot demonstrator is available in .zip format. Download the archive and extract it to any directory (this directory must be on the Matlab search path or be added to the search path before the program can be run). Type “bode_demo” to run the program.
Send comments or questions about the Bode plot demonstration program to dbeams@uttyler.edu.