/* 
     * 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;
     *

     */ 

版权声明:本文为magic-chen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/magic-chen/archive/2012/08/25/2656728.html