.TH FIR 1carl CARL
.SH NAME
fir \- IEEE program for optimal design of FIR filters
.SH SYNOPSIS
.B fir
.SH DESCRIPTION
This program designs FIR (finite impulse response) filters according
to an optimal algorithm. 
Unfortunately, it is not at all easy to use.  Some helpful 
suggestions are contained in the helpfile for this program, but
it is still not recommended for the novice.
A good, but nontrivial, reference is
.I Programs for Digital Signal Processing, 
published by the
IEEE, or the book 
.I Theory and Application of 
.I Digital Signal Processing
by Rabiner and Gold. Also, you can get all but the first parameter to
take on the values required for a simple lowpass filter by typing
carriage returns to the prompts.
.PP
After design is complete, you are asked for a filterfile name. This
file is written out in filterfile format so that the
.B filter
and 
.B fastflt
programs can use it.  If the filter impulse response is more than 20
samples long, then the 
.B fastflt
program is strongly preferred.
The filterfile is an ASCII file and is intended to be self-documenting.
.SH FILES
.SH AUTHOR
J. O. Smith and F. R. Moore
.SH SEE ALSO
impulse(1carl), filter(1carl), fastflt(1carl)
.SH BUGS
Some input parameters specify impossible filters, or ones which cause
numerical difficulties.
These cases can cause irritating problems.
For example, specifying an even number of coefficients and zero
gain at DC (e.g., a highpass filter) results in an extremely poor
design.  This is because the program is wired to produce symmetric
impulse responses for all multiband filters.  But this is one case in
which an antisymmetric response would be more appropriate.  This could
easily be incorporated into the program, but a simpler solution
is not to specify even numbers.  Odd numbers also have the advantage
of leading to an integral sample delay.  Lastly,
this program should be rewritten to be kinder to its users; but
that would be a thankless chore!

