[sdiy] Digital filtering question

Antti Huovilainen ajhuovil at cc.hut.fi
Tue Aug 24 15:54:44 CEST 2010


On Tue, 24 Aug 2010, Wooster Audio wrote:

> I've got an 18-bit 4-pole IIR filter running on my FPGA synth.   It sounds 
> okay, but hopefully has some room for improvement.  I have a feeling the 
> extra bits come in handy for resonance and distortion.

You're probably better off using cascaded 1st order sections with global 
feedback. Then 18 bits is plenty enough for the multiplies and double 
precision accumulators are cheap in FPGA.

> One area where you really need the extra bits in an IIR filter is an 
> ADSR.  I tried to approximate an exponential curve using an 18-bit IIR, 
> and could not get a good range of envelope times.  At some point x(n)

Extra bits or alternative structure. Calculating the "filter" at lower 
samplerate helps as does using higher resolution accumulator while 
sticking to 16 or 18 bit multiplies. In an fpga you can also use shifts to 
take advantage of the fact that the coefficient is either close to 0.0 or 
1.0 depending on your filter arrangement.

Antti

"No boom today. Boom tomorrow. There's always a boom tomorrow"
   -- Lt. Cmdr. Ivanova



More information about the Synth-diy mailing list