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-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 版权协议,转载请附上原文出处链接和本声明。