Re: IIR vs. FIR filters
Re: IIR vs. FIR filters
- Subject: Re: IIR vs. FIR filters
- From: Urs Heckmann <email@hidden>
- Date: Wed, 11 Dec 2002 11:03:12 +0100
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?
(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.
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.
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"). Plus, there are a lot of good explanations and
source code on the net. I'd recommend oversampled Chamberlain derivates.
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)
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
(Watch out for "State Variable Filter, double sampled, stable" in the
source code archive. This is a good one)
Cheers,
;) Urs
urs heckmann
email@hidden
www.u-he.com
_______________________________________________
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.