.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!