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.
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.
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:
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.
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
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
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.
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)
There is a set of Wavelet Tools available for MATLAB, see
Section 8 of this FAQ.
file://ptolemy.eecs.berkeley.edu/pub/README
and follow the instructions.
EECS/ERL Industrial Liaison Program Office
Software Distribution
205 Cory Hall
University of California, Berkeley
Berkeley, CA 94720
(510) 643-6687
E-mail
General index for the MATLAB User Group software library
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.
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:
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)]
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:
A freely distributable Notebook reader is available for
Macintosh computers and IBM-compatibles running MicroSoft
Windows by anonymous ftp:
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.
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
The following Mathematica notebooks can be ftped from:
pub/malcolm/FilterDesign.math IIR Filter Design (continuous and discrete)
Printed copies (with floppies) are available from:
The following Mathematica notebooks can be ftped from
ccrma-ftp.stanford.edu:
pub/DSP/GenHamming.ma.Z Generalized Hamming windows
(There are other DSP related items in pub/DSP on ccrma-ftp;
see other sections of this FAQ for details).
Package: Linear systems toolbox for Maple.
Description: Public domain extension to Maple.
Contact: Tony Richardson, amr@mpl.ucsd.edu.
To obtain:
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.
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? }
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
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.
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]
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:
Author: Dr. Shalom Halevy
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
file://gauss.eedsp.gatech.edu/Mathematica/README
Mac: file://mathsource.wri.com/pub/NumberedItems/0204-297-0011
Windows: file://mathsource.wri.com/pub/NumberedItems/0203-599-0011
A student version of Mathematica is available
for $175. The price includes a copy of the reference manual.
The only drawbacks to the student version are that the
floating point coprocessor is disabled and that upgrades
cannot be ordered.
Mathematica Notebooks
pub/malcolm/ear.math Implementation of Lyon's Cochlear Model
pub/malcolm/Gammatone.math Implementation of Gammatone Cochlear Model
The autor
pub/DSP/Kaiser.ma.Z The Kaiser window
pub/DSP/WinFlt.ma.Z Digital filter design by the "window method"
file://ftp.egr.duke.edu/pub/maple/linsys1.2.tar.Z
117 Electrical Engineering Building, University of Missouri - Rolla
Rolla, Missouri, USA 65401, phone: (314) 341-4894
E-mail
Send mail to
to be added to this list
ftp.cica.indiana.edu, oak.oakland.edu or wuarchive.wustl.edu
PO BOX 22564,
San Diego, CA 92192
(619) 552-9031 USA (Tel/FAX)