(一)一阶数字低通滤波器---原理及其推导
在我的学习中,遇到了许多需要用到滤波的场合,比如ADC采样,必然会伴随这随机干扰引起的毛刺噪声,从而需要滤波处理。所以在这里,我对我最常用的一阶低通滤波进行一个推导和总结。
目录
1.滤波器介绍
2.RC滤波电路分析
3.一阶数字低通滤波器推导(EMA滤波器)
4.滤波系数a的设计
1.滤波器介绍
电子领域的滤波器,简单理解就是可以“过滤掉”我们不需要的某个频率的波形。
💡 按内部是否有电源和有源器件,可以分为:
(1)有源滤波器:一般由集成运放和RC网络组成,由电源向集成运放提供能量。除了滤除波形以外,还能够放大特定频率的波形。
(2)无源滤波器:一般由电容、电感、电阻等无源元件构成,不具备波形放大能力,只能维持或减小输入信号的幅度。
💡也可以按幅频特性,可以分为:
(1)低通滤波器(Low Pass Filter) :通低频阻高频
(1)高通滤波器(High Pass Filter) :通高频阻低频
(1)带通滤波器(Band Pass Filter) :通中频阻高、低频
(1)带阻滤波器(Band Elimination Filter) :通高、低频阻中频
这里我们主要说一下无源RC高低通滤波器。
2.RC滤波电路分析
使用电阻和电容可以组成无源RC滤波器,如下图:
图中的R也就是电阻,这个好理解,大家从小也学习过,直流和交流电都能通过,并起阻碍作用,我们称其为阻抗R;
图中的C就是电容,仅能通过交流,并对交流起阻碍作用,我们称其为容抗,用Xc表示;
容抗的公式为:
我们可以看出,电容的阻抗Xc和电容C和输入的频率f的大小有关。
💡当以电容端电压为输出Uout时,其值为下图:
从而可知,低频的信号能够很好的通过,高频的信号反而会受到抑制,从而达到低通滤波的效果。
💡当以电阻端电压为输出Uout时,其值为下图:
可知,高频的信号能够很好的通过,低频的信号反而会受到抑制,从而达到高通滤波的效果。
🔍在这里我们对RC低通滤波进一步分析:
在控制理论中,我们可以得到RC低通滤波电路的传递函数: ,也被称为一阶惯性环节。其中τ为时间常数,τ = RC;而我们的截止频率则为 ωc = 1/τ = 1/RC。
3.一阶数字低通滤波器推导(EMA滤波器)
我们的的低通滤波是一个连续的模型,如果我们想把他用到单片机控制等数字系统中,则需要对其进行离散化,得到公式:y(k) = (1 − a) ⋅ y(k − 1) + a ⋅ x (k),而离散化后的一阶数字低通滤波器也就是我们常说的EMA滤波器;下面我来对其公式进行推导:
在我们的一阶RC低通滤波电路中,我们的输出为Y(s),输入为F(s)
写出开环传递函数:Y(s) = F(s)G(s),得到:
👉Y(s) = (1/1+τs )F(s)
将其化为时域的微分方程,得到:
👉τ⋅y′+y=x
用一阶后向差分法,对其进行离散化,得到:
👉
其中,T为我们数字系统的采样周期,对上式化简整理,得到:
👉
我们令a = T/T+τ,可以的到我们一阶数字低通滤波器的表达式:
👉y(k) = (1−a) ⋅ y(k−1) + a ⋅ x (k) -----a称为滤波系数
从而可以将公式用到代码中,由数字系统迭代计算即可达到我们的滤波效果。
4.滤波系数a的设计
在很多时候,我们的滤波系数就是通过凑配和实验的方法得出,但是如果我们已经定好了系统采样时间,并有一个预期的截至频率要求,那我们该如何设计数字滤波器中的滤波系数a呢?
已知我们的ωc = 1/τ = 1/RC
而
一般情况下,f >> fc,所以:
所以已知采样频率和截至频率,就可以算出我们的滤波系数a了。
以电机控制来举例,一个永磁同步电机的额定转速为2000RPM,极对数为7,对相电流进行采样;
在额定条件下,相电流频率为f = 2000*7/60 = 233Hz,但一般会考虑更大一些的频率,我们选取截至频率fc = 400Hz。而我们的控制代码中设置的采样频率为f = 20kHz;
由此可以计算得滤波系数a = 2pi * 400/20000 = 0.1256637。
从而后续可以在这个基准上,进行调整即可。