互补滤波器

从 RC 电路 到 数字滤波器 。


参考:​​wikiPedia​

by luoshi006
欢迎交流~ 个人 Gitter 交流平台,点击直达: ​互补滤波器_低通滤波器


介绍


互补滤波器_低通滤波器_02


原理

低通滤波器

一阶低通滤波器

传递函数


互补滤波器_差分_03


常见的 RC 电路构成的一阶低通滤波器的输入(U) 输出(Y)关系如下:




YU =11+RC⋅S  



其中,滤波器的截止频率为: w c =1RC   。

将传函转换为微分形式:




y(t)+RCdy(t)dt =x(t) 



dy(t)dt =差分=y(k)−y(k−1)Δt   ,代入得到差分形式:




y(k)=RCΔt+RC y(k−1)+ΔtΔt+RC x(k) 



由近似公式:




11+Δt/RC = ˙ 1−ΔtRC  



可得:




y(k)=(1−ΔtRC )y(k−1)+ΔtRC x(k) 



即,一阶低通滤波的差分形式。


二阶低通滤波


互补滤波器_低通滤波器_04


过程略;




y(k)=2(1+σΔt)1+2σΔt+ω 2 0 Δt 2  y(k−1)−11+2σΔt+ω 2 0 Δt 2  y(k−2)+ω 2 0 Δt 2 1+2σΔt+ω 2 0 Δt 2  x(k) 



其中, σ=R2L ,ω 2 0 =1LC   。


高通滤波器

依然使用RC电路为模型。

传递函数为:




G(s)=11+1RC⋅S   






=RC⋅SRC⋅S+1  



******************* 内容仅作参考 *******************************
由 $s=\frac {Z-1}{T}$变换:

$$U\cdot RC \cdot Z - U\cdot RC=Y\cdot RC \cdot Z- Y\cdot RC+Y\cdot T$$

Z反变换:

$$Y(k+1)=U(k+1)-U(k)+(1-\frac{T}{RC}) Y(k)$$
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

将传函转化为微分形式:




RC⋅dy(t)dt +y(t)=RC⋅dx(t)dt  



转换为差分形式:




y(k)=RCRC+T y(k−1)+RCRC+T (x(k)−x(k−1)) 




互补滤波器

综上,可知:

低通滤波器:




y(k)=RCRC+T y(k−1)+TRC+T x(k) 



高通滤波器:




y(k)=RCRC+T [y(k−1)+Δx(k)] 



故,互补滤波器:




y(k)=RCRC+T [y(k−1)+Δx gyro (k)]+TT+RC x acc (k) 




​angle = (factor) * (angle + gyro * dt ) + (1 - factor) * (x_acc);​
其中,factor 为互补滤波因子,定义域:( 0 , 1 )。



the end

本文简单介绍了一阶互补滤波的理论和实现,以期望对刚开始接触数字滤波的朋友有所帮助。

互补滤波使用较多的 mahony 滤波,限于篇幅,另外介绍。