Quote:
Originally Posted by
catapult
Thanks James, I misunderstood. I thought he meant 600th order not 600 taps. About how steep in orders or dB/octave does 600 taps turn out to be?
First, it's "jj". Please.
Well, for FIR's, the order of the filter (in terms of zeros) is the number of taps minus 1, so a 600 tap filter is a 599 order filter.
To answer your second question, it's not so easy. The answer is in terms of transition bandwidth, which is itself in terms of fs/2 being '1'.
This is why low-frequency crossovers are "interesting" digitally, and higher-frequency crossovers are "interesting" for different reasons
In order to match a 100Hz 3rd order butterworth, one would need quite a long filter.
In order to match a 3rd order butterworth at 10kHz (for 44.1 sampling rate) would require a much shorter filter. Of course, also "match" is not entirely fair, you'd have to "match" "how fast did I get to -n dB" because the filter shapes are most likely to be extremely different.
To give you an idea. a 600 tap (599th order) FIR with a transition start band at 100 Hz and stop band starting at 200Hz has in-band ripple of about .3 dB, and rejection of around -28dB. Above 200Hz, the filter is equiripple, i.e. there are many peaks coming back up to -28dB. This is not a very good filter, frankly, for a crossover.
Let's try the same 600 tap filter for 1 octave at 1khz now,cutting off at 2kHz... The in-band ripple is minescule (smaller than double-precision!) and the rejection of the filter is in excess of 180dB. (More importantly my optimization program gave up as "um, I hope this is good enough, sport, I'm not written in quadruple precision...")
So, the comparison of FIR to IIR is not so simple. an IIR in analog will have a fixed slope/octave or decade. An FIR will have an out-of-band rejection, an in-band ripple, and a transition band from one to the other.
Combinations are possible, of course.
At 300Hz the ripple and rejection are reasonable, the ripple is about .004dB and the rejection about 70dB, which is reasonably good to avoid driver interactions.
I was going to try a filter working from 10khz to 20khz, but I can't even do a 600 tap filter there.
The point is that if the transition band is 100Hz, 600 taps isn't enough at 44.1khz samplgin rate. If the transition band is 300Hz (it doesn't matter 300 Hz or 3khz as the start of the stop band), it's just enough. If the transition band is 1kHz, it's too long. 10kHz? Fergetaboutit in this universe.
To explain, if I make a crossover at 1kHz, and for which the end of the HP filter transition band is 1300Hz, I get very much the same filter performance (in terms of ripple and rejection) as I do for the 300/600Hz filter. (checking my own assertion, the two filters have equal ripple and stop-band rejection to better than .1dB stop band and 1% difference in passband)
So you can't treat FIR and IIR's the same way when you think about them. With IIR's it's dB/octave, with FIR's it's "absolute width of transition band divided by fs/2"
Hope this helps.