N阶IIR低通滤波器参数计算

    /* 
     * n-order lp butterworth analog filter 
     *                      1
     * H(s)*H(-s) = -------------------
     *               1 + (-s^2/wc^2)^n
     *
     * poles: 
     *      pk = wc*(-sk + j*ck), k = 1, 2, .., n/2 
     * 
     *                 2*k - 1
     * where sk = sin(--------- * PI)
     *                  2*n
     *
     *                 2*k - 1
     *       ck = cos(--------- * PI)
     *                  2*n
     *
     * so, (n is odd)
     *
     *        n/2           wc^2
     * H(s) = MUL ------------------------
     *        k=1  wc^2 + 2*wc*sk*s + s^2
     *
     *                 1 - z^-1
     * replace s with ----------
     *                 1 + z^-1
     *
     * so, 
     *        n/2               wc^2 * (1 + 2*z^-1 + z^-2)
     * H(z) = MUL ------------------------------------------------------------
     *        k=1  (wc^2+2*wc*sk+1) + (2*wc^2-2)*z^-1 + (wc^2-2*wc*sk+1)*z^-2
     *
     * if n is even, 
     *
     *      p0 = -wc 
     * 
     * so, 
     *
     *           wc       n/2           wc^2
     * H(s) = -------- *  MUL ------------------------
     *         wc + s     k=1  wc^2 + 2*wc*sk*s + s^2
     *
     * and, 
     *
     *             wc*(1+z^-1)
     * H(z) = ---------------------- * MUL ....
     *         (wc+1) + (wc-1)*z^-1
     *
     *
     * NOTE: 
     *  here wc is not normalized digital frequency but analog frequency 
     *
     *      wc = tan(fc*PI), where fc is normalized digital frequency 
     
*/

 

 

 

 

    /* 
     * n-th order chebyshev I analog lpf's transfer function: 
     *
     *                      1
     *      H(s) = --------------------
     *              1 + e^2*Tn^2(s/wc)
     *
     * where e is the ripple factor, wc is the cutoff frequency 
     * and Tn() is nth order Chebyshev polynomial.
     *
     * poles: 
     *
     *      pk = (+-sinh(A)*sin(B) + jcosh(A)*cos(B))*wc
     *
     *         = Rp + j*Ip
     *
     *            1          1
     * where A = ---*arsinh(---), 
     *            n          e
     *
     *            PI   2*k-1
     *       B =  ---*-------, k = 1, 2, ... n/2
     *             2     n
     *
     * so, 
     *             n/2                     1
     *      H(s) = MUL ------------------------------------------
     *             k=1  1 - ((pk+pk~)/(pk*pk~))*s + s^2/(pk*pk~)
     *
     *             n/2                     1        
     *           = MUL ---------------------------------------------
     *             k=1  1 - ((2*Rp)/(Rp^2+Ip^2))*s + s^2/(Rp^2+Ip^2)
     *
     *             n/2          1
     *           = MUL -------------------
     *             k=1  1 + A1*s + A2*s^2
     *
     * where pk have negtive real parts
     *
     *                 1 - z^-1
     * replace s with ----------
     *                 1 + z^-1
     *
     *             n/2             1 + 2*z^-1 + z^-2
     *      H(z) = MUL --------------------------------------------
     *             k=1  (1+A1+A2) + (2-2*A2)*z^-1 + (1-A1+A2)*z^-2
     *
     *
     * NOTE: 
     *  wc is analog frequency;
     *

     */ 

posted @ 2012-08-25 16:25  没头的苍蝇  阅读(3155)  评论(0编辑  收藏  举报