**
Q1.2: Where can I get free software for general DSP?
**

**
**

**
The packages listed below are mostly for general purpose DSP,
that is, DSP that is not specific to a particular
programmable DSP chip. See the later sections in the FAQ for
software relevant to a particular programmable DSP chip.
**

**
**

**
According to Brian Evans: "There was an entire session on
this subject [free DSP software] at ICASSP '92, chaired by
Dr. Sally Wood and Dr. James McClellan. It appears in Volume
4 of the Proceedings, pages 73-112. There was another such
session at ICASSP '93." [Brian Evans, evans@eedsp.gatech.edu]
Much of the information below is from Brian's mail.
**

**
**

**
Q1.2.1: What is Gabriel? Where can I get it?
**

**
**

**Gabriel was a hierarchical block diagram environment for
prototyping signal processing systems on single or multiple
processors. It has been superceded by Ptolemy (see below),
and is no longer available.
**

**
**

**
Q1.2.2: What is Ptolemy? Where can I get it?
**

**
**

**
Description: Ptolemy provides a highly flexible foundation
for the specification, simulation, and rapid prototyping of
systems. It is an object oriented framework within which
diverse models of computation can co-exist and interact. For
example, using Ptolemy a data-flow system can be easily
connected to a hardware simulator which in turn may be
connected to a discrete-event system, etc. Because of this,
Ptolemy can be used to model entire systems.
**

**
In addition, Ptolemy now has code generation capabilities.
>From a flow graph description, Ptolemy can generate both C
code and DSP assembly code for rapid prototyping. Note that
code generation is not yet complete, and is included in the
current release for demonstration purposes only.
**

**
Ptolemy has been used for a broad range of applications
including signal processing, telecomunications, parallel
processing, wireless communications, network design, radio
astronomy, real-time systems, and hardware/software
co-design. Ptolemy has also been used as a lab for signal
processing and communications courses. Currently Ptolemy has
hundreds of users in over 100 sites, both in industry and
academia.
**

**
Ptolemy is available for the Sun 4 (sparc), DecStation
(MIPS), and HP (HP-PA) architectures. Installing the system
requires 90 Mbytes for Ptolemy (more if you optionally
remake). Ptolemy also requires at least 8 Mbytes of physical
memory. Linux binaries also exist.
**

**
Ptolemy is available via anonymous ftp. Get the file:
file://ptolemy.eecs.berkeley.edu/pub/README
and follow the instructions.
**

**
ptolemy.eecs.berkeley.edu contains the entire
Ptolemy distribution, a postscript version of the Ptolemy
manual, and several Ptolemy papers.
**

**
Organizations without Internet FTP capability can obtain
Ptolemy, without support, from ILP. This is often a more stable,
less featured version than is available by FTP.
**

EECS/ERL Industrial Liaison Program Office Software Distribution 205 Cory Hall University of California, Berkeley Berkeley, CA 94720 (510) 643-6687 E-mail

This includes printed documentation, including installation instructions, a user's guide, and manual pages. A handling fee (on the order of $250) will be charged.

Contact: Alan Kamas

**
Q1.2.3: What is Khoros? Where can I get it?
**

**
Description: Block diagram simulator for image and video
processing. 1-D signal processing is also supported. See
the UseNet group comp.soft-sys.khoros.
**

**
Platforms: sun 3, sun 4, others? X windows. Written in C.
**

**
To obtain, get this file, and read the instructions:
file://ftp.eece.unm.edu/pub/khoros/release/install.ftp
**

**
**

**
Q1.2.4: What are DSP Tutorials? Where can I get them?
**

**
Package: DSP Tutorials
**

**
Description: Computer aided instruction.
**

**
Platforms: suns under SunView.
**

**
Contact: Dr. Sally Wood, Electrical Engineering Department,
Santa Clara University, Santa Clara, CA 95053. **

**
Q1.2.5: What are some DSP extensions to MATLAB? Where can
I get them?
**

**
Package: MATLAB user's group public domain
extensions to MATLAB
**

**
Description: The MATLAB Digest is issued at irregular
intervals based on the number of questions and software items
contributed by users. To make submissions to the digest,
please send to hwilson@ua1vm.ua.edu with a subject: "DIG" and
description.
**

**
For the Pacific, try netlib@draci.cs.uow.edu.au located at
the University of Wollongong, NSW, Australia.
**

**
A plethora of toolboxes are available at FTP site:
research.att.com (use netlib for the username)
**

**
**

Currently there are the following subdirectories: approximation approximation theory archive old MATLAB user group digests control control theory dataanalysis data analysis and statistics graphics graphics programs integration numerical integration linearalgebra linear algebra utilities misc miscellaneous ode ordinary differential equations optimization as the name says pde partial differential equations rootfinding zero-finding routines specialfunctions special functions teaching for classroom use tools miscellaneous tools In order to get an index for a subdirectory (tools, say) send the message: send index from MATLAB/tools to netlib@ornl.gov. In order to get some code, (unbundle in the `tools' directory, say), send the message: send unbundle from MATLAB/tools to netlib@ornl.gov.

There is a set of Wavelet Tools available for MATLAB, see Section 8 of this FAQ.

We have developed a "Communications Toolbox" based on the Matlab code for classroom use. It is used by students taking a 4th year communications course where the emphasis is on digital coding of waveforms and on digital data transmission systems. The Matlab code that constitutes this toolbox has been in use for over two years.

There are close to 100 "M-files" that implement various functions. Some of them are quite simple and are based on existing Matlab M-files. But a great many of them has been created from scratch. We also prepared a lab manual (in TEX format) for the 7 simulations which the students perform as the lab component of this course. The topics of these simulations are:

[1]. Probability Theory [2]. Random Processes [3]. Quantization [4]. Binary Signalling Formats [5]. Detection [6]. Digital Modulation [7]. Digital CommunicationNew version (Matlab 4.1) is available on:

file://ftp.mathworks.com/pub/contrib/misc/comm_tbx.tar

Old version (Matlab 3.5) is available on:

file://evans.ee.adfa.oz.au/pub/matlab/comms/comm_tbx.tar

Functionality is basically the same.

The manual has also been slightly changed. I am still working to get all the figures in postscript format. Please continue using the old manual until I have the new manual in postscript format ready.

[Mehmet Zeytinoglu - mzeytin@ee.ryerson.ca]

**
FOR STUDENTS:
**

**
Prentice Hall has published a student edition
of matlab which contains a book and set of disks for PCs and
Macs. The software is limited only in matrix size (32 x 32
matrix; 1024 elements) and in its ability to import or call C
or Fortran subroutines. On the plus side, it is able to run
without a coprocessor (it will use one if it is present) and
it includes a subset of the Signal Processing and Controls
Toolboxes, The Signals and Systems Toolbox, which provides
for added functionality.
**

**
Book only (about US$30): ISBN =0138560064;
**

**
Book + disk: (about US$50) ISBN=0-13-855974-0 for 3.5"
or ISBN=0-13-855982-1 for 5.25
**

**
Macintosh version: ISBN=0-13-855990-2.
**

**
There will be related books out by mid to late 1993 :
Computer Aided Signal Processing with MATLAB, by Burrus,
Oppenheim, McClellan, Parks, Schafer, and Schussler;
**

**
and Signal Processing : A Computer Approach, by Etter. More
books in this MATLAB Curriculum Series are planned.
**

**
For general info
[From the Matlab Users Group (Editor, hwilson@ua1vm.ua.edu)] **

**
Q1.2.6: What are the Signal Processing Packages for Mathematica?
Where can I get them?
**

**
Package: Signal Processing Packages (SPP) and Notebooks.
**

**
Freely distributable extensions to Mathematica. Enables the
symbolic manipulation of signal processing expressions: 1-D
discrete/continuous convolutions and 1-D/m-D linear transforms
(Laplace, Fourier, z, DTFT, and DFT). For linear transforms,
you can specify your own transform pairs and see the
intermediate computations. Great for showing students how to
take transforms, or for deriving input-output relationships in
a transform domain. Additional abilities include analog
filter design, solving DE's using transforms, converting
signal processing expressions to their equivalent TeX forms,
number theoretic operations (Bezout numbers, Smith Form
decompositions, and matrix factors), and multirate operations
(graphical design of 2-d decimators). Accompanying the SPPs
are tutorial notebooks on analog filter design, Fourier
analysis, piecewise convolution, and the z-transform (includes
a discussion of fundamentals of digital filter design). These
Notebooks illustrate difficult concepts (such as the
flip-and-slide view of convolution) through animation.
**

**
Get this file, and read the instructions:
file://gauss.eedsp.gatech.edu/Mathematica/README
**

**
A freely distributable Notebook reader is available for
Macintosh computers and IBM-compatibles running MicroSoft
Windows by anonymous ftp:
Mac: file://mathsource.wri.com/pub/NumberedItems/0204-297-0011
Windows: file://mathsource.wri.com/pub/NumberedItems/0203-599-0011
**

**
Contact: Brian Evans
**

**
**

**Dr. Roberto H. Bamberger reports:**

I have developed a series of about 30 Lectures that I use for EE341 (Analog Communication Systems) here at Washington State University. They use the SPP by Brian Evans. They discuss many concepts associated with linear systems theory. They are available from: file://yardbird.eecs.wsu.edu/pub/Notebooks. Topics covered include LTI system theory, convolution, AM, FM, PM modulation and demodulation, and the sampling theorem. NOTE: All Notebooks were developed under NeXTSTEP 3.1 using Mathematica 2.2. I make no guarantees about the graphics being able to be rendered on anything other than a NeXT.

**
FOR STUDENTS:
**

**
**

**
Q1.2.7: What is the Control Systems Analysis Packages for Mathematica?
Where can I get them?
**

**
Package: Control Systems Analysis Package (COSYPAK) and Notebooks
**

**
Description: Public domain extension to Mathematica.
Classical and state-space control analysis and design
methods. The Notebooks supplement the material in the
textbook "Modern Controls Theory" by Ogata. Largely based on
the Signal Processing Packages (SPP, see above).
**

**
Contact: Dr. Steenath
**

**
To obtain: (129.22.40.9) anonymous FTP
**

**
**

**
Q1.2.8: What are some other Mathematica DSP Notebooks?
**

**
**

**
The following Mathematica notebooks can be ftped from:
Mathematica Notebooks
**

**
pub/malcolm/FilterDesign.math IIR Filter Design (continuous and discrete)
pub/malcolm/ear.math Implementation of Lyon's Cochlear Model
pub/malcolm/Gammatone.math Implementation of Gammatone Cochlear Model
**

**
Printed copies (with floppies) are available from:
The autor
**

**
The following Mathematica notebooks can be ftped from
ccrma-ftp.stanford.edu:
**

**
pub/DSP/GenHamming.ma.Z Generalized Hamming windows
pub/DSP/Kaiser.ma.Z The Kaiser window
pub/DSP/WinFlt.ma.Z Digital filter design by the "window method"
**

**
(There are other DSP related items in pub/DSP on ccrma-ftp;
see other sections of this FAQ for details).
**

**
**

**
Q1.2.9: What is the Linear Systems Toolbox for Maple?
Where can I get it?
**

**
Package: Linear systems toolbox for Maple.
**

**
Description: Public domain extension to Maple.
**

**
Contact: Tony Richardson, amr@mpl.ucsd.edu.
**

**
To obtain:
file://ftp.egr.duke.edu/pub/maple/linsys1.2.tar.Z
**

**
**

**
Q1.2.10: Where can I get text to speech conversion software?
**

**
Free (but not public domain) text to speech conversion
software is available via anonymous ftp from
wilma.cs.brown.edu in the pub directory as speak.tar.Z. It
will compile and run on a SPARC's built-in audio after
modifying speak.c with the path of your libaudio.h (e.g.,
/usr/demo/SOUND/libaudio.h). It's a simple phoneme
concatenation system with commensurate synthesized speech
quality (a directory of phoneme audio files is included).
[Joe Campbell, jpcampb@afterlife.ncsc.mil]
**

**
A public domain version of the same Naval Research Lab text
to phoneme rules can be obtained from:
**

**
file://svr-ftp.eng.cam.ac.uk/comp.speech/sources/english2phoneme.shar
**

**
A implementation of the Klatt phoneme to waveform speech
synthesiser is in:
**

**
file://svr-ftp.eng.cam.ac.uk/comp.speech/sources/klatt-0.02.tar.Z
**

**
This directory also contains lossless speech compression
(shorten-1.08.tar.Z), speech recognition (recnet-1.1.tar),
acoustic modelling (rasta.tar.Z) and text normalisation
(textnorm.shar) software.
**

**
**

**
Q1.2.11: Where can I get filter design software?
**

**There
are filter design programs available via anonymous FTP. The
following are summarized here and discussed in greater detail
below:
**

**
1. August 1992 IEEE Trans. on Signal Processing: METEOR FIR
filter design program.
**

**
2. DFIR FIR filter design program.
**

**
3. Netlib IIR filter design.
**

**
4. IEEE Press "Programs for Digital Signal Processing".
**

**
**

The August 92 issue of IEEE Transactions on Signal Processing there is a paper entitled "METEOR: A Constraint-Based FIR Filter Design Program" by Kenneth Steiglitz, Thomas W. Parks and James F. Kaiser. They describe an FIR design program which allows specification of the target frequency response characteristics in a fairly generalised and flexible way. As well as designing filters, the program can optimise filter lengths and push band limits.

The paper contains a footnote which says "Pascal and C versions of source code are available to anonymous ftp at princeton.edu in the directory /pub as meteor.p, form.p, meteor.c and form.c".

True, they are. They appear to work. The Pascal versions have been put through p2c to get the C versions; all the needed Pascal library stuff is included in the C versions and they built error-free out of the box for me on an SGI machine.

One catch is, there is no manual - you need the paper to know how to drive the programs.

[ Steve Clift ]

Another public domain filter design package is DFIR, for FIR filter designs. It includes design capabilities for: equiripple linear phase multiband filters, linear phase differentiators, linear phase Hilbert transform filters, MMSE interpolating filters and equiripple Nyquist filters. It is written in Fortran 77 and has been tested on DECStations and Suns.

It is available from: aldebaran.ee.mcgill.ca/pub/dfir. Additionally, a package to plot filter responses is available in "pltfilter-V2R0.tar.Z".

[Peter Kabal, via Witold Waldman]

Another source is netlib: "A free program to design IIR Butterworth, Chebyshev, and Cauer (elliptic) filters, in any of lowpass, bandpass, band reject, and high pass configurations, is available in netlib (e.g. research.att.com) as the file netlib/cephes/ellf.shar.Z. By email to netlib@research.att.com the request message text is `send ellf from cephes'

[Stephen Moshier, mosher@world.std.com]

The Fortran source code from the IEEE Press book "Programs For Digital Signal Processing" is available for anonymous ftp from file://nimios.eng.mcmaster.ca/pub/IEEE/software/dsp.zip

It includes FIR and IIR filter design software, as well as other general purpose DSP subroutines.

There is also a C/C++ version of the Parks-McLellan FIR filter design program available from file://ftp.uu.net/usenet/comp.sources.misc/volume22/fir/part01.Z

This program was created and tested using Borland C++ 2.0. This requires a pretty reasonable C++ compiler - it is reported that QuickC (not C++) won't do it.

[Witold Waldman, witold@hotblk.aed.dsto.gov.au, from Charles Owen at mgcbo@uxa.ecn.bgu.au]

{ There are other free filter design programs floating around out there, such as optfir/wfir. Does anyone know of ftp sites? }

**
Q1.2.12 What is PC Convolution? Where can I get it?
**

**
P.C. convolution is a educational software package that graphically
demonstrates the convolution operation. It runs on IBM PC type computers
using DOS 4.0 or later. It is currently being used in schools of Mathematics,
Electrical Engineering, Earth Sciences, Aeronautics, Astronomy, Geophysics,
and (believe it or not) Experimental Psychology.
**

**
The current version of this software only demonstrates continuous time
convolution, but a discrete time version is in the works.
**

**
Anyone may download a demonstration version of this software via anonymous
ftp from 131.151.4.11 (file name /pub/pc_conv.zip)
**

**
University instructors my obtain a free, fully operational version by
contacting Dr. Kurt Kosbar at the address listed below.
**

**
Dr. Kurt Kosbar
117 Electrical Engineering Building, University of Missouri - Rolla
Rolla, Missouri, USA 65401, phone: (314) 341-4894
E-mail
**

**
**

**
Q1.2.13: What is the AudioFile System? Where can I get
it?
**

**
The AudioFile System (AF) is a device-independent
network-transparent audio server. The distribution includes
device drivers and server code for Digital RISC systems
running Ultrix, Digital Alpha AXP systems running OSF/1, and
Sun Microsystems SPARCstations running SunOS. Also included
are an API and library, out-of-the-box core applications, and
a number of contributed applications. AudioFile allows
applications to generate and process audio in real-time and
at present handles up to 48 KHz stereo audio.
**

**
AudioFile is distributed in source form, with a copyright
allowing unrestricted use for any purpose except sale (see
the Copyright notice). af@crl.dec.com is a mailing list for
discussions of AudioFile.
Send mail to
to be added to this list
**

**
The kit is located at:
file://crl.dec.com/pub/DEC/AF/AF2R2.tar.Z
**

**
A sample kit of sound-bites is available as:
file://crl.dec.com/pub/DEC/AF/AF2R2-other.tar.Z
**

**
[Larry Stewart, stewart@crl.dec.com]
**

**
**

**
Q1.2.14 What is MathViews? Where can I get it?
**

**
Package-Name: mathview.zip
**

**
MathViews for Windows/32 - Math Software for Windows
(32-bit). Current version is 1.60. "MathViews for
Windows/32 is Matlab look-alike. It has a full set of linear
algebra and signal processing functionality."
**

**
No sources. Windows 3.1. Shareware. Try:
ftp.cica.indiana.edu, oak.oakland.edu or wuarchive.wustl.edu
**

**
Author: Dr. Shalom Halevy
PO BOX 22564,
San Diego, CA 92192
(619) 552-9031 USA (Tel/FAX)
**

**
**

**
Q1.2.15 What is Shorten? Where can I get it?
**

**
Shorten is a compressor/coder for waveform files. Two major
changes have been made since the last announcement:
**

**
a) Thanks to the efforts of two users there is now a MS-DOS
executable (version 1.09) available on:
**

**
file://svr-ftp.eng.cam.ac.uk/comp.speech/sources/shn109.exe
**

**
b) The lastest version, 1.11, has early support for lossy
compresson. This is achieved by quantisation of the
prediction residual which maximises the segmental signal to
noise ratio. This works well for many waveforms - for
speech the quality is sometimes better and sometimes worse
than the various CCITT ADPCM standards. The advantages are
that the code is very fast, will accept most known file
formats and will code from lossless compression down to
three bits per sample. The disadvange is that this is a
variable bit rate scheme and so is more suited to storage
than transmission applications. It is available from:
**

**
file://svr-ftp.eng.cam.ac.uk/comp.speech/sources/shorten-1.11.tar.Z
**

**
The MS-DOS version comes with no support whatsoever - you
have been warned. I'll be able to test and maintain this
code when someone decides that it is worth funding the kit
to enable me to do this.
**

**
The UNIX version has been tested on many platforms and there
are no known portability problems. If you have problems,
then please tell me.
**

**
Feedback from USENET readers has been very valuable in the
past, and I'd like to ask for this again. I'll incorporate
as many sugestions as I can into version 2.0.
**

**
Contact: Tony Robinson
**

**
**