Take the 2-minute tour ×
Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. It's 100% free, no registration required.

A practical guide for digital IIR audio filters has cookbook-style values for creating higher-order Bessel filters out of biquads, but the values listed aren't very precise:

You should multiply the Fc for each stage by the following coefficients:
1: 1.00
2: 1.27
3: 1.32 1.45
4: 1.60 1.43
5: 1.50 1.76 1.56
6: 1.90 1.69 1.60

The corresponding Q values are:
1: ---
2: 0.58
3: --- 0.69
4: 0.81 0.52
5: ---- 0.92 0.56
6: 1.02 0.61 0.51

What are the expressions to calculate these values exactly?

For the Butterworth table, the values are given by Q = 1/(2 * sin((pi / N) * (n + 1 / 2))), for instance. So where the table says 4: 0.54 1.31, the equation gives 1.3065629648763766 and 0.54119610014619701. But I can't find the expression for Bessel filters, except that 2: 0.58 is $1\over\sqrt3$.

Prototype-generating functions just have long tables of numbers, so maybe these are not easy to calculate? (Bessel functions?) If so, a listing of these Q and Fc values for the first several orders would be good.

(And yes, I know the bilinear transformed Bessel is no longer linear-phase. :/ I just want to know where these numbers are from.)

share|improve this question
3  
There is no simple closed form equitation to calculate Bessel filter bi-quad coefficients. The poles of the filter come from a Bessel polynomial. Higher order Bessel polynomials are determined using a recursion relationship. You need computer algorithms to calculate the poles and resolve the bi-quad coefficients. Two books I can recommend: “Passive and Active Filters” by Wai-Kai Chen and “Analog Filter Design” by M.E. Van Valkenburg. –  user2718 Feb 13 '13 at 1:26
    
And for the record, the values on that page design a Bessel filter that hits -3 dB at the frequency you specify, for any order. Matlab/SciPy, on the other hand, design a filter with the same asymptotes as a Butterworth of the same order. –  endolith Feb 14 '13 at 15:58

2 Answers 2

There is no simple closed-form equation to calculate Bessel filter bi-quad coefficients. The poles of the filter come from a Bessel polynomial. Higher order Bessel polynomials are determined using a recursion relationship. You need computer algorithms to calculate the poles and resolve the bi-quad coefficients.

Two books I can recommend: “Passive and Active Filters” by Wai-Kai Chen and “Analog Filter Design” by M.E. Van Valkenburg.

share|improve this answer

I back-calculated from the Python prototype filters to get more precise values:

f multiplier to get -3 dB at fc, for N = 
 1: 1.0*           
 2: 1.27201964951  
 3: 1.32267579991*  1.44761713315  
 4: 1.60335751622   1.43017155999  
 5: 1.50231627145*  1.75537777664   1.5563471223   
 6: 1.9047076123    1.68916826762   1.60391912877  
 7: 1.68436817927*  2.04949090027   1.82241747886   1.71635604487  
 8: 2.18872623053   1.95319575902   1.8320926012    1.77846591177  

Q for N = 
 1: --------------
 2: 0.57735026919 
 3: -------------- 0.691046625825
 4: 0.805538281842 0.521934581669
 5: -------------- 0.916477373948 0.563535620851
 6: 1.02331395383  0.611194546878 0.510317824749
 7: -------------- 1.12625754198  0.660821389297 0.5323556979  
 8: 1.22566942541  0.710852074442 0.559609164796 0.505991069397

Kind of cheating, but whatever, BLT is an approximation anyway.

Code and tables for N up to 25 is here.

There are 2 separate frequency tables:

  1. For matching the phase of high and lowpass filters / matching the asymptotes of a Butterworth of the same order.
  2. For setting the cutoff frequency to -3 dB

The latter list can also be found in "Table 7.5: Frequencies and Qs for Bessel Lowpass Filters up to Eighth Order" of "The Design of Active Crossovers", though it sounds like it was derived by trial-and-error.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.