贝塞尔滤波器

在电子学和信号处理领域，贝塞尔滤波器（Bessel filter）是具有最大平坦的群延迟（线性相位响应）的线性滤波器。贝塞尔滤波器常用在音频天桥系统中。模拟贝赛尔滤波器在几乎整个通频带都具有恒定的群延迟，因而在通频带上保持了被过滤的信号波形。滤波器的得名德国数学家弗雷德里希·贝塞尔，他发展了滤波器的数学理论基础。

传递函数 
描述贝塞耳滤波器低通滤波器的传递函数如下：

这里θn(s)是一个反向贝塞耳多项式，ω0是选定的期望截止频率。

简单例子  
下面是一个三阶贝塞尔低通滤波

gain值为

相位为

群延迟为

群延迟的泰勒级数展开为

注意在ω2和ω4的二个term是零，在ω=0造成非常平坦的群延迟。这是可以调整到零term的最大数量，因为在三阶贝赛尔多项式中总共有四个系数，要求定义四个等式。一个等式是为了在ω = 0 时the gain be unity，第二个等式指定ω =无穷时gain是零，剩下二个等式指定二个terms的级数展开是零。这是n秩贝赛尔滤波的群延迟的一般特性：在群延迟的前n-1级数展开的term为零，因而ω = 0时群延迟的扁平得以最大化。

Pseudo code 
以下為貝塞爾低通濾波器的pseudo code，以階數N=5及N=10模擬並繪製出幅頻相對應曲線，可以以python或是matlab實現之。
 n ← 0 TO 1 BY 0.01
 for i (0 to 1):
    IF i ←← 0 THEN
        pos ← 1
        N ← 5
    ENDIF
    IF i ←← 1 THEN
        pos ← 3
        N ← 10
    ENDIF
    z, p, k ← besselap(N)
    b, a ← zpk2tf(z, p, k)
    h, w ← freqs(b, a, n)
    magh2 ← abs(h) ** 2
    phah ← unwrap(angle(h))
    plt.subplot(2, 2, pos)
    plt.xlim(0, 2)
    plt.xlabel("w/wc")
    plt.ylabel("Bessel H(jw)^2")
    plt.title("N =" + INT_TO_STRING(N))
    plt.grid()
    plt.plot(w, magh2)
    plt.subplot(2, 2, pos + 1)
    plt.xlim(0, 2)
    plt.xlabel("w/wc")
    plt.ylabel("Bessel Ph(jw)^2")
    plt.title("N =" + INT_TO_STRING(N))
    plt.grid()
    plt.plot(w, phah)
 ENDFOR
 plt.show()

滤波器理论