On Sun, Feb 19, 2012 at 6:12 PM, Mathieu Bouchard <[email protected]> wrote: > Le 2012-02-19 à 17:48:00, Mike Moser-Booth a écrit : > >> On Sun, Feb 19, 2012 at 4:54 PM, Mathieu Bouchard <[email protected]> >> wrote: >>> >>> Why would you change the signs of a and b but not c ? >>> (Was I giving the formula relative to ax²+bx+c=0 or did I assume ax²+bx=c >>> by >>> accident ?) >> >> >> I think it has to do with where c is in the difference equation: >> c*y[n] = g*x[n] + a*y[n-1] + b*y[n-2] > > > This equation uses a for the middle term (y[n-1]) ? Weird.
> I'd expect b to go with y[n-1], whereas a and c would go with either y[n] or > y[n-2]... Sorry, I kind of confused myself. I'm used to thinking of the coefficients as a_0, a_1, etc. You're right, b should go with y[n-1], and the one that should go with y[n] is which ever one is equal to 1, which would be c if you think of it as a + bx + cx^2, not ax^2 + bx + c. To clarify, think of the z-transform of the filter as H(z) = 1/A(z), where A(z) = 1 - 2r*cos(ω)*z^-1 + r^2*z^-2. If we decide c=1, b=2r*cos(ω), and a=r^2, we have A(z) = c - bz^-1 + az^-2. In order to apply the quadratic formula, those exponents need to be positive, so you have to multiply by (z^2)/(z^2), which leaves you with H(z) = z^2 / (cz^2 - bz +a). That's what I meant earlier when I said a and c should be switched, and I thought you were trying to say that you were thinking in terms of a + bx +cx^2. ;-) > > BTW, the equations I used are things that I reconstituted from the source > code of [biquad~] in pd/src/d_filter.c. They don't come from manuals. You mean for [bp~]? The equation used for [biquad~] is in the helpfile, if I'm not mistaken. But, yeah, that's what I'm going off of, too. btw, you wouldn't happen to know where the source for [vcf~] is, would you? I'd like to know how that one works as well, but I can't find it. .mmb _______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
