= fS.11x3 \; greater than or equal fS.11c> \; greater than ft \1 ... > ft \1 ... > ce >ft \2 ... > { #m#k#f#i#l#t#e#r is a program which designs an infinite impulse response digital filter from parameters specified on the command line, using the bilinear transform method. } { The source code of the program (in C) is at ft >TABL and there is a World Wide Web form-based front end at ft >TABL } { In normal use, the output of the program is a set of S- and Z-plane pole and zero positions, the filter recurrence relation, and some other information in human-readable form. By specifying the #-#l parameter, computer-readable output is produced which can be piped into other programs. In particular, the program #g#e#n#c#o#d#e takes the #-#l output from #m#k#f#i#l#t#e#r and generates a piece of C code which implements the filter, and the program #g#e#n#p#l#o#t takes the #-#l output and generates a #g#i#f file containing phase and magnitude graphs._ #g#e#n#c#o#d#e has no parameters._ #g#e#n#p#l#o#t has one, the name of the output #g#i#f file. } { #g#e#n#p#l#o#t uses the #g#d gif manipulation library from Quest Protein Database Center, #<#h#t#t#p#:#/#/#s#i#v#a#.#c#s#h#l#.#o#r#g#/#g#d#/#g#d#.#h#t#m#l#>. } { A warning about higher-order Bessel filters: although an analogue Bessel filter has an excellent approximation to a linear phase characteristic, the pre-warping inherent in the bilinear transform design method upsets this, and the corresponding digital filter often deviates significantly from linear phase. This is particularly evident in the higher-order Bessel filters (say ^N_>_2). You're advised to study the graphs produced by #g#e#n#p#l#o#t before you use any Bessel filter generated by this package. } >SECT { ``[]'' means ``optional''. } { The following parameters are required: } < #-#B#u \t |5 \tf of these options must be specified. The parameter ^r is the passband > < #-#C#h ^r \t |6 \tf ripple in dB, meaningful for Chebyshev designs only. NB:_ ^r \< 0. > >TABL < #-#H#p \t |5 \tf Exactly one of these options must be specified. > < #-#B#p \t |6 \tf > >TABL \need 2 TABL TABL < \t Low-pass: \t __^N \t __--- \t __^N \t ^N at --1 > < \t High-pass \t __^N \t ^N at 0 \t __^N \t ^N at +1 > < \t Band-pass: \t _2^N \t ^N at 0 \t _2^N \t ^N at --1, ^N at +1 > >tabs >TABL TABL >SUBS { The following parameters are optional: } TABL TABL TABL TABL >SUBS >SECT \need 9 < \t \t Generate a 4-pole Butterworth low-pass filter with corner frequency 0.2 ^f`S; > < \t \t display pole & zero positions and filter recurrence relation > >TABL < \t \t Generate C code for the above filter > >TABL < \t \t Generate phase & magnitude graphs for the above filter > >TABL >SECT < Dept of Computer Science > < The University of York > < York YO1 5DD, U.K. > \1 < #f#i#s#h#e#r#@#m#i#n#s#t#e#r#.#y#o#r#k#.#a#c#.#u#k > < #h#t#t#p#:#/#/#d#c#p#u#1#.#c#s#.#y#o#r#k#.#a#c#.#u#k#:#6#6#6#6#/#f#i#s#h#e#r > >in \3 < \g 19th August 1995 > >SECT >CHAP