控制系统及工程应用中常用到滤波器,而在MCU中计算的数字滤波器可以用多项式来计算,下面介绍二阶滤波器的数字滤波器计算公式。
通用的二阶模拟滤波器传递函数:
G ( s ) = a s 2 + b s + c d s 2 + e s + f G(s)=\frac{as^2+bs+c}{ds^2+es+f} G(s)=ds2+es+fas2+bs+c
取 s = 1 − z − 1 T = z − 1 T z s=\frac{1-z^{-1}}{T}=\frac{z-1}{Tz} s=T1−z−1=Tzz−1, T T T为计算周期,可以得到z传递函数:
G ( z ) = a ( z − 1 T z ) 2 + b z − 1 T z + c d ( z − 1 T z ) 2 + e z − 1 T z + f = ( a + b T + c T 2 ) + ( − 2 a − b T ) z − 1 + a z − 2 ( d + e T + f T 2 ) + ( − 2 d − e T ) z − 1 + d z − 2 G(z)=\frac{a(\frac{z-1}{Tz})^2+b\frac{z-1}{Tz}+c}{d(\frac{z-1}{Tz})^2+e\frac{z-1}{Tz}+f}=\frac{(a+bT+cT^2)+(-2a-bT)z^{-1}+az^{-2}}{(d+eT+fT^2)+(-2d-eT)z^{-1}+dz^{-2}} G(z)=d(Tzz−1)2+eTzz−1+fa(Tzz−1)2+bTzz−1+c=(d+eT+fT2)+(−2d−eT)z−1+dz−2(a+bT+cT2)+(−2a−bT)z−1+az−2
离散多项式为:
y ( k ) = [ ( a + b T + c T 2 ) x ( k ) + ( − 2 a − b T ) x ( k − 1 ) + a x ( k − 2 ) + ( 2 d + e T ) y ( k − 1 ) + ( − d ) y ( k − 2 ) ] d + e T + f T 2 y(k)=\frac{[(a+bT+cT^2)x(k)+(-2a-bT)x(k-1)+ax(k-2)+(2d+eT)y(k-1)+(-d)y(k-2)]}{d+eT+fT^2} y(k)=d+eT+fT2[(a+bT+cT2)x(k)+(−2a−bT)x(k−1)+ax(k−2)+(2d+eT)y(k−1)+(−d)y(k−2)]得到通用的滤波器数字计算多项式: y ( k ) = [ k 1 x ( k ) + k 2 x ( k − 1 ) + k 3 x ( k − 2 ) + k 4 y ( k − 1 ) + k 5 y ( k − 2 ) ] / k 6 ; k 1 = a + b T + c T 2 , k 2 = − 2 a − b T , k 3 = a , k 4 = 2 d + e T , k 5 = − d , k 6 = d + e T + f T 2 ; y(k)=[k_1x(k)+k_2x(k-1)+k_3x(k-2)+k_4y(k-1)+k_5y(k-2)]/k_6;\\ k_1={a+bT+cT^2}, k_2= {-2a-bT},\\ k_3=a,k_4={2d+eT},k_5=-d,k_6=d+eT+fT^2; y(k)=[k1x(k)+k2x(k−1)+k
通用的数字滤波器计算式
最新推荐文章于 2024-04-19 16:27:41 发布