[Fpga-synth] music-dsp list thread about Filterbanks
Eric Brombaugh
ebrombaugh1 at cox.net
Fri May 8 18:49:59 CEST 2009
Magnus Danielson wrote:
> I have never done my own filter bank, but I would consider using a
> number of parallel IIRs setup for a number of cut-off frequencies and
> then combined the outputs of band-border filters for weigthed summation
> such that their HP/LP properties gets used. Using the input as part of
> the summation is probably a wise step.
>
> The degree of the IIRs can be adapted as needed for slopes.
>
> I'd go for something like Butterworth, Bessel or Gauss approximations
> for the pole-positions and see what works best for the application.
>
> If we assume 31 bands and 4 poles, then the IIRs would require 30x4 MACS
> and 30x4 MOVE (can be hidden) and the summation would require 31x3
> MACS, all in all 213 MACSs per sample. This requires 10,224 MACS per
> second for a 48 kHz sampling rate. I'd say that this rought estimate
> puts it in doable for a single multiplier and a single adder chain.
>
> Maybe the bank strategy isn't optimal, but it is just a hint and play
> with numbers.
IIRs make a lot of sense for audio work where phase linearity isn't
generally a big issue, and they give you a lot more filtering for the
amount of hardware you use. The basic structure of an Nth-order IIR is
pretty much identical across a wide range of frequencies & shapes so it
would be easy to multiplex it across a number of filters in a bank as well.
That suggests you might design a simple 2*Nth-order bandpass that can be
implemented in a few biquads, generate scaled coefficients across the
bands of interest which will be stored in a RAM table. Iterate all the
filters per audio sample, then scale & sum the outputs.
I remember some Motorola app-notes for the DSP56K that were floating
around back in the late '80s that gave a pretty good description of an
audio EQ based on this approach. You might be able to dig some of those
up and convert to hardware.
There may be structures that benefit from known interrelations of the
filters to cut hardware use, but this is more general.
Eric
More information about the Fpga-synth
mailing list