Hallo, Dan Wilcox hat gesagt: // Dan Wilcox wrote:
Can anyone give me a pointer on how to implement this function using rpole~, rzero~, etc:? y = 2 * (a * (x - x[-2]) + c * y[-1] - b * y[-2]) It's the transposed Direct Form II digital filter from dsp/TDFII.h
This is a biquad filter, so you could use [biquad~] (or one of it's signal-inlet equivalents like the [e_beequad] in RjDj's "rj" library). Translating the formula to a biquad~-friendly format would be:
y = 2 * (a * (x - x[-2]) + c * y[-1] - b * y[-2])
==> 0.5*y = a * (x - x[-2]) + c * y[-1] - b * y[-2] = a*x + 0*x[-1] - a*x[-2] + c*y[-1] - b*y[-2]
The last version lets you directly read the required [biquad~] coefficents as:
[c -b a 0 -a( | [biquad~] | [*~ 2]
Replace c, b and a with real numbers. I hope, I got the signs right ...
Frank