Free DSP Software

Compiled by:

Dr. Charles MacCluer

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,] 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:// and follow the instructions. 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

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://

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 with a subject: "DIG" and description.

For the Pacific, try located at the University of Wollongong, NSW, Australia.

A plethora of toolboxes are available at FTP site: (use netlib for the username)

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

In order to get some code, (unbundle in the `tools'
directory, say), send the message:
   send unbundle from MATLAB/tools

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

Communications Toolbox

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 Communication
New version (Matlab 4.1) is available on:

Old version (Matlab 3.5) is available on:

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 -]


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

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:

A freely distributable Notebook reader is available for Macintosh computers and IBM-compatibles running MicroSoft Windows by anonymous ftp:
Mac: file:// Windows: file://

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:// 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.

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.

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: ( 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

pub/DSP/ Generalized Hamming windows
pub/DSP/ The Kaiser window
pub/DSP/ 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,

To obtain:

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

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


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


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 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: 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. as the file netlib/cephes/ellf.shar.Z. By email to the request message text is `send ellf from cephes'

[Stephen Moshier,]

The Fortran source code from the IEEE Press book "Programs For Digital Signal Processing" is available for anonymous ftp from file://

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://

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,, from Charles Owen at]

{ 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 (file name /pub/

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

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). is a mailing list for discussions of AudioFile.
Send mail to to be added to this list

The kit is located at: file://

A sample kit of sound-bites is available as: file://

[Larry Stewart,]

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


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:, or

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:


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:


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

For more details: W8MQV

Top Page


Main Page