Charles Poynton -
Filter design software
This is an ancient page that used to summarize freely-available FIR filter
design software that is or was available, most in source code form, on
the net. Most or all of the links are now dead; some of this information may be available at new URLs.
I would be happy to receive updates on any of these links, or any new links that provide more current information.
Much commercial software is available for designing filters.
(In particular, MATLAB's filter toolbox has FIR filter design capability built-in.)
Information on commercial packages is outside the scope of this
page. I don't have the knowledge or resources to track the latest
developments or to maintain an inventory of commercial sites
of DSP vendors. DSPnet
and EE Toolbox perform
that function already.
I maintain this page as a public service. I do the best I can to keep things up to date,
but (unfortunately) I have no control over other people's e-mail addresses, web sites, ftp sites, etc.
If you discover a broken link, perhaps you could spend a few minutes searching. Then,
instead of sending e-mail saying "your links are broken, your site sux," you can instead
send a correction that I will make as soon as I receive it. This way, we spread the workload,
and we all benefit. Thanks.
- maxflat FIR digital filters (in Java), by
Sa'ed Samadi and
Prof. A. Nishihara
Janovetz has implemented the McClellan-Parks-Rabiner (MPR, or "Remez exchange") algorithm in
Iain A Robin has ported
Janovetz's program to Java 1.17 - see DSP Tutor.
Hanson's implementation in Scheme of the Parks-McClellan
format, 33088 bytes).
- FIR Linear Phase Filter Design (21 KB), C version
- Filter Design by Peter Kabal, including dfir, DFiltFIR, and DFiltInt.
- METEOR. A filter design algorithm is described in the paper
"METEOR: A Constraint-Based FIR Filter Design
Program", Kenneth Steiglitz, Thomas W. Parks and James F.
Kaiser, IEEE Transactions on SIgnal Processing, Vol. 40,
No. 8, 1901-1909. (293 KB, PostScript). Code is available
to implement the algorithm. The original code is in Pascal, the
main routine meteorJ.p (24 KB) and its front-end formJ.p (16 KB). The code has been mechanically
translated to c: meteor.c (54 KB) and form.c (47 KB).
- A C implementation of McLellan et. al. as published
in Peled and Liu's "Digital Signal Processing" is available
as firsrc-03.tar.Z (17 KB). This was implemented by
Pete Hardie, VE5VA. There are 3 different archived versions of the firsrc04 file:
firsrc04.zip. See the
index (text file).
- C. Britton Rorabaugh has published C source code for FIR
filter design in Digital Filter Designer's Handbook (Blue Ridge Summit, Penn.:
TAB/McGraw-Hill, 1993), ISBN 0-8306-4431-8, and his later book (I suppose it's the superseding edition)
DSP Primer (New York:McGraw-Hill, 1999), ISBN 0-07-054004-7. Source code is provided with both books,
but is apparently not available on the net.
Kvaleberg has posted on his download software page the file remez.zip (PKZIP binary, 83144 bytes), an program
that uses the Remez exchange algorithm to calculate FIR filter
coefficients. Includes FFT for control of resulting frequency
response. Includes source code and Window executable.
- University of Westminster, Division of Electronic Systems,
has a CMSA Filter Designer.
Burnside has made available MATLAB software that implements
the filter design algorithm outlined in "Optimal design
of FIR filters with the complex Chebyshev error criteria"
(submitted to IEEE SP), April 1993, by Daniel Burnside and T.
W. Parks. Find the software at ee.cornell.edu/pub/dsp/filterDesign/complexFIR/.
- IEEE DSP Programs (McMaster) (218 KB), dusty
Fortran decks, circa 1979
If you know of other freely available packages, please drop a line.
There are a few nascent interactive filter design systems on the web.