Transform Theory in Mathematica
- To: mathgroup at yoda.physics.unc.edu
- Subject: Transform Theory in Mathematica
- From: Brian Evans <evans at gauss.eedsp.gatech.edu>
- Date: Sat, 18 Jan 1992 01:52:43 -0500
[Note: the packages here are also on the MathGroup Anonymous
ftp machine in the pub/Packages/SIGNAL_PROCESSING directory. -smc]
An implementation of concepts from transform theory exists for
Mathematica 1.2/2.0 in the public domain. The abilities are part of
the signal processing packages which were described in part by an
article in the second issue of volume 1 of The Mathematica Journal.
The packages perform
-- linear transforms 1-D & m-D Laplace, Fourier, z, DTFT, DFT
-- extended graphics 1-D & 2-D time, freq., pole-zero plots
-- analysis of functions 1-D & 2-D discrete and continuous
-- linear DE solving 1-D difference/differential equ's
-- linear convolutions 1-D discrete and continuous
Mathematica already provides a numerical algorithm for the DFT, but
ours is a symbolic algorithm. Standard Mathematica 2.0 packages
provide one-dimensional one-sided Fourier and Laplace transforms
for mathematical expressions whereas ours provide multidimensional
multi-sided transforms for signal processing expressions (a super-
set of mathematical expressions).
The following sections discuss the abilities listed above,
describe the accompanying Notebooks, and give downloading instruc-
tions. We have found these extensions to be useful in helping en-
gineering students learn transform theory.
--> Transforms
The transforms are implemented so that users can
1. specify their own transform pairs, and
2. see a step-by-step justification of answers.
Users can define transform pairs as abstract as x(t) <---> X(s):
In:= LaPlace[ t x[t], t, s, TransformLookup -> { x[t] :> X[s] } ]
Out= LTransData[ -X'[s], Rminus[-Infinity],
> Rplus[Infinity], LVariables[s] ]
This is none other than the property t x[t] <---> - d X(s) / ds.
The justification of answers is enabled by the Dialogue option:
False for no, True for partial, and All for complete justification.
Justification appears as textual dialogue.
--> Extended Plotting
These routines plots sequences and signals in the time domain
as well as their frequency responses and pole-zero diagrams. A
routine to plot root loci is also provided.
--> Analysis of Functions
Two analysis routines (one for the discrete and one for the
continuous domain) perform rudimentary transform-domain analysis
at the level of a fourth-year engineering student. They graph the
time response, display the pole-zero diagram, check for stability,
and plot the frequency response.
--> Difference/Differential Equation Solver
Based on the z- and Laplace transforms capabilities, we have
written a difference and a differential equation solver for linear
constant coefficient DE's. It is not elaborate but it does justify
its answers by textual dialogue (see the Dialogue option above).
--> Linear Convolution
The convolution routines convolve two one-dimensional functions
using the Square Matrix Rule. The continuous convolution routine
relies on the built-in symbolic integration routine and the discrete
convolution routine uses the symbolic summation routine in the stan-
dard packages. There is no textual dialogue because we believe that
one would gain more by viewing convolution in an animation sequence.
An animated example of the "flip-and-slide" view of convolution is
given in the Convolution Notebook.
--> Notebooks
Accompanying these packages are ten Notebooks. Three teach
convolution the z-transform analog filter design
One other tutorial Notebook teaches the discrete-time Fourier trans-
form (although its current form is quite incomplete). Another
Notebook introduces Mathematica, signal processing, and the signal
processing packages all in one shot. The other 6 Notebooks provide
on-line help.
--> Downloading the Packages and Notebooks
Version 2.4 is located on the ftp site "euler.eedsp.gatech.edu"
(IP #130.207.226.7). After giving "anonymous" as the user name and
who you are as the password, change directories to Mathematica and
transfer the compressed tar file "SigProc2.0.tar.Z" (about 1.65 Mb)
in binary mode. It will expand to about 5.4 Mb of files (4.2 Mb in
Notebooks, .7 Mb in packages, and .5 Mb in documentation and other
files). The Notebooks document the extensions well, but for those
without access to the Notebook facility, we provide two LaTeX files
of documentation. For those who do not have access to LaTeX, we
have placed the equivalent PostScript files in the download area.