PEZ: A Pole Zero Editor for MATLAB
[ This Document is maintained at http://www.ece.gatech.edu/users/grimace/pez/Demos/index.html ]
Background
Over the years, several programs have been written to help people design and
examine filters using computers. While these programs were helpful on their
original machines, they generally suffered one large set back: it was difficult
to port their source code from machine to machine. Since thise programs had
to rely on graphical calls, you could almost guarantee that they would have
fatal errors when run on machines that differed in hardware, or required separate
binaries for each architecture that the program could run on. Then along came MATLAB...
MATLAB differs from most computer languages in that it is an interpreted language.
Source code is compiled at run time on the fly (very much like a very elaborate
scripting or macro language). Because of the run time compilation, source code is
very portable from machine to machine with only slight deviations among different
platforms. While not perfect in all of its graphical routines MATLAB serves as a
good host for coding GUI programs that can be run on anything that graphically
uses MATLAB. Enter Georgia Tech..
After taking the standard Signal Processing series at Georgia Tech, I went to
Dr. Schafer to ask if there were any projects I as an undergraduate could help with.
Being that the Electrical and Computer Engineering department here at Tech is
reworking how Signal Processing is taught, he sent me on the task of figuring
out how to use MATLAB's GUI commands can be used for teaching labs. PeZ and
a few other programs are the result of over a year's worth of work.
So what IS PeZ?
PeZ is a program for MATLAB that allows you to experiment with the position of Poles
and Zeros in the complex Z-Plane. Essentially you add Poles and Zeros graphically
with the mouse, then modify their positions to represent different control
systems.
I'm a very visual person, so I believe the best way to explain what PeZ is to
show you the documentation, complete with sample screens. It should be pretty
self-describing, or at least better describing than I am.
Click Here to see the How to Use PeZ tutorial & Documentation!
The Legal Stuff
Permission is granted to anyone to make or distribute verbatum copies of
this software package and documentation in any medium, under the following
conditions:
- You can't sell PeZ or distribute code mutations.
- If you want to include PeZ with your own product distribution, you need
to first get the written permission from the author.
- And most importantly, if you use PeZ as a tool at a school, university, or
institute, you MUST send the author an Extra-Large T-shirt or sweatshirt
depicting your school(!). Seriously!
Thanks To...
I would like to especially thank the following people for their help and
motivation in this and other projects:
- Dr. Schafer -- for organizing the
Matlab projects, explaining the difficult stuff clearly, teaching me how to spell "Zero",
and being the first prof to learn my name.
- Dr. McClellan -- for all of the help with the Matlab code and for
always having "Wouldn't-it-be-neat"'s
- Jeff Schodorf -- for pushing me on the deadlines and breaking all
the code I sent(!)
- Amer Abufadel -- for the late night lab breaks
- The EE2200 Students -- for keep asking WHY?!?
And to all of the friends that did't make it, including
John, Bill,Ed, Surfer Rick, and Burn-Out-Mike.
For Red.