Signal Processing Packages for Mathematica

Brian Evans is the author of the Signal Processing Packages and Notebooks for Mathematica. 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 Ptolemy interpreter. 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 Technology, and 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 animation routines. 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 and notebooks). 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 it as "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.

Ptolemy Project
Send comments to Brian Evans at