       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,
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.

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