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.