References : Posted by Robert Bristow-Johnson
Linked file : EQ-Coefficients.pdf
see attached file
Added on : 14/05/05 by didid[ AT ]skynet[ DOT ]be
In your most recent version, you write:
alpha = sin(w0)/(2*Q) (case: Q)
= sin(w0)*sinh( ln(2)/2 * BW * w0/sin(w0) ) (case: BW)
= sin(w0)/2 * sqrt( (A + 1/A)*(1/S - 1) + 2 ) (case: S)
But the 'slope' case doesn't seem to work for me. It results in some kind of bad resonance at higher samplerates.
Now I found this 'beta' in an older version of your paper (I think), describing:
beta = sqrt(A)/Q (for shelving EQ filters only)
= sqrt(A)*sqrt[ (A + 1/A)*(1/S - 1) + 2 ] (if shelf slope is specified)
= sqrt[ (A^2 + 1)/S - (A-1)^2 ]
..and here the
sqrt(A)*sqrt[ (A + 1/A)*(1/S - 1) + 2 ]
formula works perfectly for me.
I must say I don't understand half of the theory, so it's probably my fault somewhere. But why the change in the newer version?
Added on : 20/05/05 by rbj[ AT ]audioimagination[ DOT ]com
>But why the change in the newer version?
i wanted to get rid of an extraneous intermediate variable and there was enough similarity between alpha and beta that i changed the lowShelf and highShelf coefficient equations to be in terms of alpha rather than beta.
i believe if you use the new version as shown, in terms of alpha (but remember the coef equations are changed accordingly from the old version), it will come up with the same coefficients given the same boost gain, Q (or S), and shelf frequency (and same Fs). lemme know if you still have trouble.
Added on : 14/11/05 by swding[ AT ]yahoo[ DOT ]com
Where can I find the source code?
Added on : 03/05/06 by ben_tj[ AT ]caramoule[ DOT ]com
it's very nice! where can I find the source
Added on : 23/05/06 by scoofy (at) inf[ DOT ]elte[ DOT ]hu
Look for "C++ class implementation of RBJ Filters" or "biquad.c" in the archive.
Added on : 07/07/06 by sundar_ranga[ AT ]yahoo[ DOT ]com
could u plz tell me how to vary the shelf slope parameter . I want a slope of 6db/octave with second order . what Parameter i have to vary to acheive this???
Added on : 07/07/06 by scoofy[ AT ]inf[ DOT ]elte[ DOT ]hu
you have to vary the Q parameter to change the slope.
Added on : 09/08/09 by tomizett at uk2 dot net
My apologies if I'm asking a daft question, but I seem to lack the mathematics skill to work this kind of thing out for myself.
I seem to be getting bad values (feedback coef.s > 1) out of these equations, and I think it's down to me feeding them bad Q values. What is the Q parameter that is used in this work? The only Q I've encountered before if centre-frequency/bandwidth, but this Q seems to be a different beast. Could anyone suggest how I should set the Q to (say) maintain a constant Fc/BW for a sweepable peaking EQ, or obtain a butterworth HP/LP filter?
Many thanks, Tom.
|Add your own comment|
Comments are displayed in fixed width, no HTML code allowed!