Re: IIR vs. FIR filters
Re: IIR vs. FIR filters
- Subject: Re: IIR vs. FIR filters
- From: Michael Ashton <email@hidden>
- Date: Wed, 11 Dec 2002 12:49:48 -0700
On Wednesday, December 11, 2002, at 03:03 AM, Urs Heckmann wrote:
Hi Michael,
just some thoughts:
Am Dienstag, 10.12.02, um 23:02 Uhr (Europe/Berlin) schrieb Michael
Ashton:
Only one problem with FIRs though. Say you want to simulate a tunable
Moog-style / 4-multiply filter. Isn't it easier to do that with an
IIR? Perhaps you could do multi-rate processing of some sort through
an FIR to get the tuning, and run a feedback loop for resonance ..
dunno. I'll bet somebody's done this before.
Why would one try to implement an IIR by a FIR?
'Cause they're nuts. Like me. :)
(A resonant filter like the Moog cascade has an - almost - infinite
impulse response)
FIRs are generally good at preserving phase, i.e. when seperating
bands via windowed sinc kernel. However, they are expensive to compute
(unless you use a moving average :-) Another drawback, if you need
linear phase and want to compute efficently, you'll end up doing
convolution by multiplication in the frequency domain (via
FFT->multiply->iFFT), usually performing overlap-add, using
double-sized kernels with zero padding, and adding not too little
latency.
Yes, quite so.
Generally, as todays performance bottleneck is memory bandwidth,
computational approaches should be preferred over memory wasting
techniques. You'd rather use functional approximations to sin, cos,
tan, pow than lookup tables.
Hmmmmm ... well, could be; although I'd venture to guess that, if a
lookup table makes it into cache, it could be faster. However, the
tremendous computation hardware on processors like the G4 might indeed
make lookup tables a little pointless.
IIRs are fast to calculate, can easily be made time variant and
stability problems can be met with waveshapers on the feedback
(resonance). Latter is what often makes them sound better ("warmth",
"drive", "fatness").
Now _there's_ an interesting thought. The Roland filter, which is one
of the many variants on the gain-cell ARP design, has always been one
of my favorites; and they always put a pair of diodes on the resonance
feedback path to control the oscillation. I've not experimented much
with different wave-shaping circuits on that path. Might be an
interesting thing to do some time.
Plus, there are a lot of good explanations and source code on the net.
I'd recommend oversampled Chamberlain derivates.
Hmm .. I've never heard of that. I'll look it up.
It occurred to me just now that a slick way to get around the
biquad-warping problem for digital 4-multiply filters might be to
take the impulse response of a continuous-time circuit and do
convolutions ... hmm ...
You don't necessarily need a biquad filter. You could also cascade
some 1-pole/1-zero filters or two 2-poles to get a 4-pole (if this is
what you're looking for)
My sentence wasn't very well written - sorry. I wasn't thinking of
biquad filters, but of the biquad transform frequently used to convert
continuous-time filters into discrete-time filters. I think that, for
music, the biquad transform doesn't work very well because it alters
the shape of the transition band, which, in a music filter, is what
produces a particular timbre.
Lots of memory though ..
Maybe I should bring this up on a computer-music list :)
Maybe check out this one:
www.musicdsp.org - mailing list, source code, advise. Nice people, not
overly academic
Yes, that's the one I was thinking of.
(Watch out for "State Variable Filter, double sampled, stable" in the
source code archive. This is a good one)
OK, 'preciate it!
thanks
----
Michael Ashton <email@hidden>
"Turning off Rendezvous to improve security is like having a company
policy that every employee will be hit in the face with a baseball bat
every day when they come to work in the morning, to discourage thieves."
-- Stuart Cheshire, the Rendezvous FAQ
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.