Third order filters on FV-1
Posted: Thu Jun 20, 2013 6:47 am
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!
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!