[sdiy] Digital filtering question

ASSI Stromeko at nexgo.de
Tue Aug 24 18:27:36 CEST 2010


On Tuesday 24 August 2010, Wooster Audio wrote:
> 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)
> effectively equals x(n-1) and it stops moving.  I think I calculated I
> would need 26 bits.  I switched to an NCO-based ADSR with exponential
> look-up table shaper and am much happier.

It's all linear until it sinks into the truncation noise, so you can scale 
at any time by any factor - lets say 2^n - and still get the same response.  
If you appropriately shift the input and output bits of the filter core 
(that's why you chose a power of two for the factors) and maybe add some 
dither, the only thing that needs more bits is the state (for keeping track 
of the "exponent").  Yes, that's a kind-of-FP implementation, but it doesn't 
cost much in an FPGA.  Much less than adding an extension to the multiplier, 
anyway.  As Antti said, usually the accumulator is first to need more bits 
even when you stick to fixed point, but probably not all 36 that the 
multiplier potentially provides (that helps to keep the speed up).


Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf rackAttack V1.04R1:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada




More information about the Synth-diy mailing list