Page 1 of 1

Third order filters on FV-1

Posted: Thu Jun 20, 2013 6:47 am
by Digital Larry
Call me obsessive, but I've been spending some time trying to implement this algorithm on the FV-1:

http://www.docstoc.com/docs/53837224/Di ... Tone-Stack

You wind up with a third order Z-transform, and some of the coefficients come out larger than 1.999! Now I'm guessing it will be OK to scale denominator and numerator in such a way as to avoid that and then pull out a master gain correction that could be applied afterwards.

I know that I could break this into a 2-pole and a 1-pole filter. In fact since all poles are real I could certainly break it into 3 1-pole filters, given enough time and scratch paper to do the math (which I'm not sure I have).

It did strike me that the coefficient value range of the FV-1 is ideal for implementing 2nd order blocks since with 2nd order polynomials, and poles or zeroes inside the z-plane unit circle, no coefficient would ever get larger than 2.0.

So, (getting to my point finally), does anyone have a DSP reference that goes beyond the theoretical stuff and talks in detail about implementing z transforms of a given order on one DSP architecture or the other? Seems like commercial higher-end DSP just goes directly to C++, which (after spending half a year with FV-1 assembler) just takes all the fun (cough) out of it!

Posted: Thu Jun 20, 2013 10:41 am
by frank
Any time you are working with a fixed point DSP you run into this problem. Solutions are to do as you suggested (scale coefficients) or try different structures (DFI, DFII, cascaded second order) or ways of attacking the scaling.