Please refer to the Wiki page found here
This gives the math needed to calculate coefficients for various second order filters.
I am interested in the Parametric (peaking), the bandpass, and the low pass filters.
1) This page refers to using these calculations on the ADAU145X processors, but I am using a ADAU1701. Are these calculations still relevant?
2) I note the Bandpass function does not use Q, but refers to bandwidth. I understand bandwidth is measured in octaves and Q is the steepness of the roll off and these are reciprocal of each other. Do I need to add more math to convert my Q to bandwidth for the calculations?
3) I was thinking about using the Bessel LP filter which does not seem to use either Q or Bandwidth? Is this correct? How do I change the shape of the roll off?
PS, I will be needing 15 frequencies of peaking or bandwidth filter each with a potential +-12db gain. That is just too many coefficients to store in a table so I will need to calculate all coefficients on the fly.
I'd like to add what I think is a calculation math error.
Note, under the Butterworth and Bessel calculations, I believe some parenthesis are missing.
The calculations for alpha for the Butterworth is written...
alpha = sin(w0) / 2.0 * 1/sqrt(2) square root of 2
and for the Bessel they are written thus...
alpha = sin(w0) / 2.0 * 1/sqrt(3) square root of 3
I think these are errors.
Order of operations says to perform the sqrt functions first then do mult and div from left to right.
so we can translate into the following...
alpha = sin(w0) / 2.0 * 1/1.7320 (1.7320 is sqrt of 3)
I have been researching the order of operations and I see powers and sqrts come before mult and div, but I could not find anyone to tell me if sine or cosine is before or after powers.
In any case, I am pretty sure sine and cosine are before mult and div.
So, as written above the mult by 1 is useless.
Rather, looking at the spacing on the formula (everything has spaces except for around the 1/sqrt) Is that little part supposed to have parenthesis?
like this? alpha = sin(w0) / 2.0 * (1 / sqrt(n) )