Bessel filter

From HandWiki
Short description: Type of analog linear filter in electronics

In electronics and signal processing, a Bessel filter is a type of analog linear filter with a maximally flat group delay (i.e., maximally linear phase response), which preserves the wave shape of filtered signals in the passband.[1] Bessel filters are often used in audio crossover systems.

The filter's name is a reference to German mathematician Friedrich Bessel (1784–1846), who developed the mathematical theory on which the filter is based. The filters are also called Bessel–Thomson filters in recognition of W. E. Thomson, who worked out how to apply Bessel functions to filter design in 1949.[2]

The Bessel filter is very similar to the Gaussian filter, and tends towards the same shape as filter order increases.[3][4] While the time-domain step response of the Gaussian filter has zero overshoot,[5] the Bessel filter has a small amount of overshoot,[6][7] but still much less than other common frequency-domain filters, such as Butterworth filters. It has been noted that the impulse response of Bessel–Thomson filters tends towards a Gaussian as the order of the filter is increased.[3]

Compared to finite-order approximations of the Gaussian filter, the Bessel filter has better shaping factor, flatter phase delay, and flatter group delay than a Gaussian of the same order, although the Gaussian has lower time delay and zero overshoot.[8]

The transfer function

A plot of the gain and group delay for a fourth-order low-pass Bessel filter. Note that the transition from the passband to the stopband is much slower than for other filters, but the group delay is practically constant in the passband. The Bessel filter maximizes the flatness of the group delay curve at zero frequency.

A Bessel low-pass filter is characterized by its transfer function:[9]

[math]\displaystyle{ H(s) = \frac{\theta_n(0)}{\theta_n(s/\omega_0)}\, }[/math]

where [math]\displaystyle{ \theta_n(s) }[/math] is a reverse Bessel polynomial from which the filter gets its name and [math]\displaystyle{ \omega_0 }[/math] is a frequency chosen to give the desired cut-off frequency. The filter has a low-frequency group delay of [math]\displaystyle{ 1 / \omega_0 }[/math]. Since [math]\displaystyle{ \theta_n (0) }[/math] is indeterminate by the definition of reverse Bessel polynomials, but is a removable singularity, it is defined that [math]\displaystyle{ \theta_n (0) = \lim_{x \rightarrow 0} \theta_n (x) }[/math].

Bessel polynomials

The roots of the third-order Bessel polynomial are the poles of the filter transfer function in the [math]\displaystyle{ s }[/math] plane, here plotted as crosses.

The transfer function of the Bessel filter is a rational function whose denominator is a reverse Bessel polynomial, such as the following:

[math]\displaystyle{ n=1: \quad s+1 }[/math]
[math]\displaystyle{ n=2: \quad s^2+3s+3 }[/math]
[math]\displaystyle{ n=3: \quad s^3+6s^2+15s+15 }[/math]
[math]\displaystyle{ n=4: \quad s^4+10s^3+45s^2+105s+105 }[/math]
[math]\displaystyle{ n=5: \quad s^5+15s^4+105s^3+420s^2+945s+945 }[/math]

The reverse Bessel polynomials are given by:[9]

[math]\displaystyle{ \theta_n(s)=\sum_{k=0}^n a_ks^k, }[/math]

where

[math]\displaystyle{ a_k=\frac{(2n-k)!}{2^{n-k}k!(n-k)!} \quad k=0,1,\ldots,n. }[/math]

Setting the cutoff attenuation

There is no standard set attenuation value for Bessel filters, however, −3.0103 dB is a common choice. Some applications may use a higher or lower attenuation, such as −1 dB or −10 dB. The attenuation is set by frequency scaling the denominator. This can be approximated by interpolating Bessel filter attenuation tables, or calculated precisely with Newton's method.

The denominator may be frequency scaled by using a scaling factor that we will refer to as [math]\displaystyle{ \omega_c }[/math]. The frequency-scaled denominator of the Bessel transfer function may be rewritten for the [math]\displaystyle{ n=3 }[/math] case above and the example below as follows:

[math]\displaystyle{ H(s)=\frac{15}{(s/\omega_c)^3+6(s/\omega_c)^2+15s/\omega_c+15} }[/math]

The task for modifying [math]\displaystyle{ H(s) }[/math] to is to find an [math]\displaystyle{ \omega_c }[/math] that results in the desired attenuation at 1 r/s for the normalized transfer function. Newton's method can be easily summarized to do this by its basic definition:

[math]\displaystyle{ \omega_a = \omega_a + (|H(j\omega_a)| - \text{DesiredAttenuation})/(d|H(j\omega_a)|/dj\omega_a) }[/math]

through successive iterations of [math]\displaystyle{ \omega_a }[/math] until [math]\displaystyle{ \omega_a }[/math]is the frequency that attenuates [math]\displaystyle{ |H(j\omega_a)| }[/math]to the desired attenuation at 1 radian/s.

While the above summary may be concise and easily understood, the mechanics of obtaining an accurate derivative of the magnitude function along the [math]\displaystyle{ j\omega }[/math] axis may be problematic. Digital techniques may be used, but it is generally better to apply Newton's method with continuous functions, if possible, so as to maximize accuracy. Therefore, it is useful to modify the expression to eliminate excess mathematical functions by making the following alterations:

  1. Multiply [math]\displaystyle{ H(s) }[/math] by [math]\displaystyle{ H(-s) }[/math] to obtain [math]\displaystyle{ H(s)H(-s) }[/math]. This will eliminate complex numerical results when evaluating [math]\displaystyle{ |H(s)H(-s)| }[/math] by removing the odd order terms in the polynomial.
  2. In [math]\displaystyle{ H(s)H(-s) }[/math], negate all terms of [math]\displaystyle{ s^n }[/math] when [math]\displaystyle{ (n+2) }[/math] is divisible by [math]\displaystyle{ 4 }[/math]. That would be [math]\displaystyle{ s^2 }[/math], [math]\displaystyle{ s^6 }[/math], [math]\displaystyle{ s^{10} }[/math], and so on. We will call the modified function [math]\displaystyle{ H_2(s)H_2(-s) }[/math], and this modification will allow the use of real numbers instead of complex numbers when evaluating the polynomial and its derivative. That is, we can now use the real [math]\displaystyle{ \omega_a }[/math]in place of the complex [math]\displaystyle{ j\omega_a }[/math]
  3. Convert the desired attenuation in dB, [math]\displaystyle{ A_{dB} }[/math], to an arithmetic attenuation value, [math]\displaystyle{ A_{arith} }[/math], using [math]\displaystyle{ A_{arith} = 10^{A_{dB}/20} }[/math]. For example, −3.010 dB is 0.7071, −1 dB is 0.8913 and so on. This simplifies the derivative evaluation.
  4. Square the resulting arithmetic attenuation to correlate with the squaring of the [math]\displaystyle{ H(s) }[/math] function.
  5. Calculate the modified [math]\displaystyle{ [H_2(\omega_a)H_2(-\omega_a)] }[/math] in Newton's method using the real value, [math]\displaystyle{ \omega_a }[/math]. Always take the absolute value.
  6. Calculate the derivative the modified [math]\displaystyle{ H_2(\omega_a)H_2(-\omega_a) }[/math] with respect to the real value, [math]\displaystyle{ \omega_a }[/math]. Negate the derivative computation to account for the effects due to the modifications made to create [math]\displaystyle{ H_2(\omega_a)H_2(-\omega_a) }[/math]. DO NOT take the absolute value of the derivative.

When steps 1) through 4) are complete, the expression involving Newton's method may be written:

[math]\displaystyle{ \omega_a = \omega_a + ([H_2(\omega_a)H_2(-\omega_a)] - \text{DesiredAttenuation})/(d[H_2(\omega_a)H_2(-\omega_a)]/d\omega_a) }[/math]

using a real value for [math]\displaystyle{ \omega_a }[/math]with no complex arithmetic needed. The movement of [math]\displaystyle{ \omega_a }[/math] should be limited to prevent it from going negative early in the iterations for increased reliability. When complete, invert [math]\displaystyle{ \omega_a }[/math]to obtain an [math]\displaystyle{ \omega_c }[/math]that can be used to scale the original [math]\displaystyle{ H(s) }[/math] transfer function denominator. The attenuation of [math]\displaystyle{ H(s/\omega_c) }[/math] will then be virtually the exact desired value at 1 radian/s. If performed properly, only a handful of iterations are needed to set the attenuation through a wide range of desired attenuation values for both small and very large order Bessel filters.

Example

Gain plot of the third-order Bessel low-pass filter, versus normalized frequency.
Group delay plot of the third-order Bessel low-pass filter, illustrating flat unit delay in the passband.

The transfer function for a third-order (three-pole) Bessel low-pass filter with [math]\displaystyle{ \omega_0 = 1 }[/math] is

[math]\displaystyle{ H(s)=\frac{15}{s^3+6s^2+15s+15}, }[/math]

where the numerator has been chosen to give unity gain at zero frequency ([math]\displaystyle{ s = 0 }[/math]).The roots of the denominator polynomial, the filter's poles, include a real pole at [math]\displaystyle{ s=-2.3222 }[/math], and a complex-conjugate pair of poles at [math]\displaystyle{ s = -1.8389 \pm j1.7544 }[/math], plotted above.

The gain is then

[math]\displaystyle{ G(\omega) = |H(j\omega)| = \frac{15}{\sqrt{\omega^6+6\omega^4+45\omega^2+225}}. \, }[/math]

The −3-dB point, where [math]\displaystyle{ |H(j\omega)| = \frac{1}\sqrt{2}, \, }[/math] occurs at [math]\displaystyle{ \omega = 1.756 }[/math]. This is conventionally called the cut-off frequency.

The phase is

[math]\displaystyle{ \phi(\omega)=-\arg(H(j\omega))= \arctan\left(\frac{15\omega-\omega^3}{15-6\omega^2}\right). \, }[/math]

The group delay is

[math]\displaystyle{ D(\omega)=-\frac{d\phi}{d\omega} = \frac{6 \omega^4+ 45 \omega^2+225}{\omega^6+6\omega^4+45\omega^2+225}. \, }[/math]

The Taylor series expansion of the group delay is

[math]\displaystyle{ D(\omega) = 1-\frac{\omega^6}{225}+\frac{\omega^8}{1125}+\cdots. }[/math]

Note that the two terms in [math]\displaystyle{ \omega^2 }[/math] and [math]\displaystyle{ \omega^4 }[/math] are zero, resulting in a very flat group delay at [math]\displaystyle{ \omega=0 }[/math]. This is the greatest number of terms that can be set to zero, since there are a total of four coefficients in the third-order Bessel polynomial, requiring four equations in order to be defined. One equation specifies that the gain be unity at [math]\displaystyle{ \omega=0 }[/math] and a second specifies that the gain be zero at [math]\displaystyle{ \omega=\infty }[/math], leaving two equations to specify two terms in the series expansion to be zero. This is a general property of the group delay for a Bessel filter of order [math]\displaystyle{ n }[/math]: the first [math]\displaystyle{ n-1 }[/math] terms in the series expansion of the group delay will be zero, thus maximizing the flatness of the group delay at [math]\displaystyle{ \omega=0 }[/math].

Digital

As the important characteristic of a Bessel filter is its maximally-flat group delay, and not the amplitude response, it is inappropriate to use the bilinear transform to convert the analog Bessel filter into a digital form (since this preserves the amplitude response but not the group delay).

The digital equivalent is the Thiran filter, also an all-pole low-pass filter with maximally-flat group delay,[10][11] which can also be transformed into an allpass filter, to implement fractional delays.[12][13]

See also

References

  1. "Bessel Filter". 2013. http://www-k.ext.ti.com/SRVS/Data/ti/KnowledgeBases/analog/document/faqs/bes.htm. 
  2. Thomson, W. E. (November 1949). "Delay networks having maximally flat frequency characteristics". Proceedings of the IEE - Part III: Radio and Communication Engineering 96 (44): 487–490. doi:10.1049/pi-3.1949.0101. https://www.researchgate.net/profile/Josef_Puncocha/post/Do_you_want_to_know_the_basic_papers_about_approximations_of_filters_See_attachment/attachment/59d622916cda7b8083a1cc5f/AS%3A280454482677766%401443876967288/download/thomson.pdf. 
  3. 3.0 3.1 Roberts, Stephen (2001). "Transient Response and Transforms: 3.1 Bessel-Thomson filters". http://www.robots.ox.ac.uk/~sjrob/Teaching/SP/l3.pdf. 
  4. "comp.dsp | IIR Gaussian Transition filters". http://www.dsprelated.com/showmessage/130958/1.php. "An analog Bessel filter is an approximation to a Gaussian filter, and the approximation improves as the filter order increases." 
  5. "Gaussian Filters". http://www.nuhertz.com/response/iir-and-analog-filters-basic-types/gaussian-filters. 
  6. "How to choose a filter? (Butterworth, Chebyshev, Inverse Chebyshev, Bessel–Thomson)". http://www.etc.tuiasi.ro/cin/Downloads/Filters/Filters.htm. 
  7. "Free Analog Filter Program". http://www.kecktaylor.com/. "the Bessel filter has a small overshoot and the Gaussian filter has no overshoot." 
  8. Paarmann, L. D. (2001) (in en). Design and Analysis of Analog Filters: A Signal Processing Perspective. Springer Science & Business Media. ISBN 9780792373735. https://books.google.com/books?id=l7oC-LJwyegC. "the Bessel filter has slightly better Shaping Factor, flatter phase delay, and flatter group delay than that of a Gaussian filter of equal order. However, the Gaussian filter has less time delay, as noted by the unit impulse response peaks occurring sooner than they do for Bessel filters of equal order." 
  9. 9.0 9.1 Bianchi, Giovanni; Sorrentino, Roberto (2007). Electronic filter simulation & design. McGraw–Hill Professional. pp. 31–43. ISBN 978-0-07-149467-0. https://books.google.com/books?id=5S3LCIxnYCcC&dq=Bessel+filter+polynomial&pg=PT53. 
  10. Thiran, J.-P. (1971). "Recursive digital filters with maximally flat group delay". IEEE Transactions on Circuit Theory 18 (6): 659–664. doi:10.1109/TCT.1971.1083363. ISSN 0018-9324. 
  11. Madisetti, Vijay (1997). "Section 11.3.2.2 Classical IIR Filter Types" (in en). The Digital Signal Processing Handbook. CRC Press. p. 11-32. ISBN 9780849385728. https://books.google.com/books?id=Zhc36gyobk0C. 
  12. Smith III, Julius O. (2015-05-22). "Thiran Allpass Interpolators". W3K Publishing. https://ccrma.stanford.edu/~jos/pasp/Thiran_Allpass_Interpolators.html. 
  13. Välimäki, Vesa (1995). Discrete-time modeling of acoustic tubes using fractional delay filters (PDF) (Thesis). Helsinki University of Technology.

External links