"Brian Neunaber" <neunaber@gmail.com> wrote in message
news:1122651140.442066.137580@g49g2000cwa.googlegroups.com...
>I like Meteor: http://www.nyx.net/~wliu/filter.html. The interface is
> klunky, but it does a superb job at optimization. I've used it before
> with excellent results.
The original Parks-McClellan Fortran program is simple to use and you don't
have to compile it for Windows as there's an executable here:
ftp://mission-systems-inc.com/outgoing/Parks_McClellan/
The band edges are defined as fractions of the sample rate - so should not
be entered for values greater than 0.5.
The main thing it doesn't take as an input is a variable weight function in
each band for passband/stopband filters. But a constant weight for each
band is usually plenty good so you can trade between ripples in each band.
The wider the transistion bands (which are between each pair of band edges)
the smaller the ripple for a given length.
Example input and output for a bandpass filter:
What is the length of the filter?
64
Type?: 1 - Passband/Stopband
2 - Differentiator
3 - Hilbert Transformer
1
How many pass bands and stop bands?
3
List band edges, one per line or comma delimited
0,.2,.25,.3,.35,.5
List filter response for each band, one per line or comma delimited
or desired slop if a differentiator
0,1,0
List filter weight for each band, one per line or comma deliminted
for a differentiator, a single weight will be used as w/f
1,1,1
1**********************************************************************
FINITE IMPULSE RESPONSE (FIR)
LINEAR PHASE DIGITAL FILTER DESIGN
REMEZ EXCHANGE ALGORITHM
BANDPASS FILTER
FILTER LENGTH = 64
***** IMPULSE RESPONSE *****
H( 1) = 0.30537898E-03 = H( 64)
H( 2) = 0.49959793E-03 = H( 63)
H( 3) = 0.23405663E-03 = H( 62)
H( 4) = 0.79011120E-03 = H( 61)
H( 5) = -0.22296710E-02 = H( 60)
H( 6) = -0.76272665E-03 = H( 59)
H( 7) = 0.46930313E-02 = H( 58)
H( 8) = -0.48358738E-03 = H( 57)
H( 9) = -0.58953944E-02 = H( 56)
H( 10) = 0.22085404E-02 = H( 55)
H( 11) = 0.35657433E-02 = H( 54)
H( 12) = -0.99933892E-03 = H( 53)
H( 13) = 0.15462588E-02 = H( 52)
H( 14) = -0.62719714E-02 = H( 51)
H( 15) = -0.49136356E-02 = H( 50)
H( 16) = 0.18144451E-01 = H( 49)
H( 17) = 0.17707171E-02 = H( 48)
H( 18) = -0.26896507E-01 = H( 47)
H( 19) = 0.65720053E-02 = H( 46)
H( 20) = 0.23222979E-01 = H( 45)
H( 21) = -0.96453326E-02 = H( 44)
H( 22) = -0.53003971E-02 = H( 43)
H( 23) = -0.69127390E-02 = H( 42)
H( 24) = -0.15373212E-01 = H( 41)
H( 25) = 0.49446747E-01 = H( 40)
H( 26) = 0.18551089E-01 = H( 39)
H( 27) = -0.10686837E+00 = H( 38)
H( 28) = 0.10605872E-01 = H( 37)
H( 29) = 0.15323216E+00 = H( 36)
H( 30) = -0.67921862E-01 = H( 35)
H( 31) = -0.16304862E+00 = H( 34)
H( 32) = 0.12894705E+00 = H( 33)
BAND 1 BAND 2 BAND 3 BAND
LOWER BAND EDGE 0.000000000 0.250000000 0.349999994
UPPER BAND EDGE 0.200000003 0.300000012 0.500000000
DESIRED VALUE 0.000000000 1.000000000 0.000000000
WEIGHTING 1.000000000 1.000000000 1.000000000
DEVIATION 0.001624721 0.001624721 0.001624721
DEVIATION IN DB -55.784420013 -55.784420013 -55.784420013
EXTREMAL FREQUENCIES
0.0000000 0.0156250 0.0322266 0.0478516 0.0644531
0.0800781 0.0966797 0.1123047 0.1279297 0.1435547
0.1591797 0.1728516 0.1865234 0.1962891 0.2000000
0.2500000 0.2539062 0.2626953 0.2753906 0.2871094
0.2958984 0.3000000 0.3500000 0.3539062 0.3636719
0.3773437 0.3919922 0.4076172 0.4242187 0.4408203
0.4574219 0.4740234 0.4916016
**********************************************************************
Fred
Reply by Brian Neunaber●July 29, 20052005-07-29
I like Meteor: http://www.nyx.net/~wliu/filter.html. The interface is
klunky, but it does a superb job at optimization. I've used it before
with excellent results.
Reply by Neo●July 29, 20052005-07-29
Try with Filter express which is freely available.