Signal Processing Packages for Mathematica
Brian Evans is the
author of the Signal Processing Packages and Notebooks for
The packages support both analog and digital signal processing theory
and visualization in multiple dimensions.
The packages implement common signals and systems,
the Laplace, Fourier, z, DTFT, and DFT transforms,
symbolic discrete and continuous convolution,
and digital and analog IIR filter design.
The Signal Processing Packages can also convert algebraic descriptions
of algorithms to textual representations for the
The notebooks accompanying the packages include tutorials on analog
filter design, convolution, and the z-transform.
The Signal Processing Packages have been under development since
February of 1989, and Version 2.9.5 was released in the Fall of 1993.
The Signal Processing Packages have been used in the teaching of
signals and systems at different levels in the undergraduate engineering
programs at the
Georgia Institute of Technology,
the Rose-Hulman Institute of
Washington State University.
It has been used to teach convolution in civil engineering classes
at the Pennsylvania State University by
Prof. Christopher J. Duffy.
Prof. Roberto Bamberger at
Washington State University has been
using the packages extensively in various signal processing courses.
Based on version 2.9.5 of the signal processing packages, he has developed
Since the Fall of 1993, I have overhauled the packages to create version 3.0.
Version 3.0 was released April 28, 1995, and Version 3.0.1 was released
October 2, 1995, respectively, in the following commercial products:
In version 3.0, I have changed the syntax to conform with the rest of
Mathematica, added many new functions, and fixed many bugs.
Some of the new functionality includes more IIR digital filter design
routines, symbolic filter design, multidimensional windows,
a sampled data type for numerical signals, and separate convolution
Some the enhanced functionality includes improvements in the
convolution routines to handle intervals with symbolic end points,
graphical design of two-dimensional decimators, signal plotting,
and the high-level digital and analog analysis/reporting functions.
Version 3.0 comes with a compatibility file that implements obsolete
functions and reports obsolete uses of syntax in files (e.g., in packages
Many bugs, and inconsistencies in option handling, have been removed,
especially in the transforms.
Special thanks to John Novak at Wolfram Research Inc. for working
with me on this upgrade.
Downloading by FTP
Version 2.9.5 is the most recent one available by FTP:
Compatibility with Mathematica
Version 2.9.5 of the Signal Processing Packages will work with
Mathematica 2.0, 2.1, and 2.2.
The Notebooks were written using Mathematica 2.1, and some
irregularities will occur when they are opened under Mathematica 2.2.
When Mathematica 2.2 evaluates the command
Needs[ "SignalProcessing`Master`" ]
Mathematica will print out the warning message
Needs::nocont: Warning:Context SignalProcessing`Master`
was not created when Needs was evaluated.
You can ignore this message.
Some users dislike seeing the messages that are displayed when
the above Needs command is evaluated. You can suppress the messages
by using the following code to initialize the signal processing packages:
oldMessageStream = $Messages;
$Messages = Identity;
Needs[ "SignalProcessing`Master`" ];
$Messages = oldMessageStream;
The PC release of Version 2.9.5 will not work properly under Windows
95 because the PC release is in MS-DOS format with all of the filenames
truncated to eight characters, but the contexts in signal processing
packages are not truncated to eight characters.
So, when Mathematica looks for the context
SignalProcessing`Support`, Mathematica interprets
"SignalProcessing\Support.m", but the directory
SignalProcessing does not have an entry (mapping) under
Windows 95 to an eight-character directory name, and Mathematica will
report that it cannot find it.
I have written a package called
TruncCon.m that will truncate all
signal processing contexts to an MS-DOS filename format, but it
can also be used to truncate context names of other packages.
You must load in the TruncCon.m
package before evaluating
Needs[ "SignalProcessing`Master`" ]
The Signal Processing Packages and Notebooks are copyright ©
1989-1995 Georgia Tech Research Corporation.
All Rights Reserved.
Send comments to Brian Evans at