一阶惯性滤波与RC低通滤波器:原理、应用及稳态时间计算详解
目录

一、简介
一阶惯性滤波通常被视为RC电路,即低通滤波器。添加运算放大器就形成了有源低通滤波器。
高于截止频率的信号可以被衰减,低于截止频率的信号可以通过。主要用于滤除噪音。
2.时域
3、频域
它是阻抗和容抗的串联分压计算。
上述计算来源于
RC低通滤波器截止频率公式推导_月光爆的博客-CSDN博客_rc低通滤波器电路
一般来说,滤波器需要3到5倍的时间常数才能达到稳定状态。一般来说,我们会讨论我们有多少赫兹滤波器。如何快速知道达到稳定状态的时间?
一个滤波器为x Hz,反算为6.28*RC = 1/x。按照五次计算,就是5*RC*(6.28/5)=1/x
我们得到 5*RC = 5/(6.28* x) 5/6.285 = 0.8
例如,对于 1khz 滤波器,1/1khz = 1ms。乘以 0.8 就是 0.8ms。
如果是口头交流,我们不需要乘以 0.8。频率的倒数是达到稳定状态的时间。
4. 传递函数和波特图
传递函数是
其中T是滤波器时间常数,它是电路中R和C的乘积。 s 是复频域中的拉普拉斯算子
上式中有零点和极点。什么是零点?什么是极端?
极点是传递函数最大化的点,称为极点。极点的相频特性为-45度,即输出滞后输入45度。例如,之前输入和输出之间没有相位差,两者之间的相位差为0度。当频率到达极点时,输出变为45度,滞后。 45 度。在补偿中,极点被认为是滞后补偿。
零点是传递函数小至零的点,故称为零点。零点将导致输出在原始输出的基础上向前移动 45 度。同上,当频率为极点时,会滞后45度。此时,频率上加了一个零点,输入和输出之间的相位差就得到了补偿。补偿时,零点视为超前补偿。
什么时候
传递函数趋于无穷大,因此这里有一个极点。
当s=∞时,传递函数趋于0,因此当s无穷大时,存在零点(输入频率无穷大,滤波器不衰减)
波特图如下
波特图是使用 mathcad 绘制的。详细信息请参见
Mathcad使用技巧_波特图绘制_csdn_dx的博客-CSDN博客_mathcad绘制波特图
如何通过计算绘制波特图?
如何参考波特图进行分析_波特图分析方法-电子爱好者网
借用里面的图片
5、数字化的实现
利用后向差分法将s域变换到z域,可得
(5-1)
其中,Tsam为采样周期,z函数反变换为微分递推公式(方便微处理器实现迭代计算),查下表。
逆变换是
,表示前一镜头的采样值。
对公式(5-1)进行变换,将z替换为k,替换为k-1(前一拍)
可以得到以下公式
设 T= n*Tsam
得到 y(k) = n/(n+1)*y(k-1) +1/(n+1)*u(k)
令 1/(n+1) =TempD
得到 y(k) = (1-TempD)*y(k-1) +TempD*u(k)
当n=9时,y(k) = 0.9*y(k-1) +0.1*u(k) 表示时间常数为采样时间的9倍
(1)浮点运算微处理器的C语言代码实现
//k为时间常数,是采样周期的k倍。Target_Value被滤波的值。*temp_IQ_fifter是滤波后的值。
void filterLowPass(float k,float Target_Value,float *temp_IQ_fifter)
{
float TempD=0.0,temp_sum1=0.0,temp_sum2=0.0;
TempD=1.0/(k+1.0);
temp_sum1 = (1.0-TempD) * (*temp_IQ_fifter);
temp_sum2 = TempD * (float)Target_Value;
*temp_IQ_fifter = temp_sum1 + temp_sum2;
}
例如调用filterLowPass(2,adc1,&temp)函数;
当k=2时,时间常数为采样Tsam的2倍,滤波结果存放在temp中。
(2)在没有浮点运算的MCU中,为了避免出现小数,采用右移处理。
挑选
必须
不带浮点处理的微处理器C语言代码的实现方法如下:
u32 PQ_calc(u32 *x,u32 u_Q12,u8 N)
{
u_Q12=u_Q12<> N) + ( u_Q12 >> N);
return (*x)>>N;
}
调用方法:
PQ_calc(&Pq_temp,ADC_Value[0],12);
为了防止右移将值变为0,先对其进行缩放,u_Q12=u_Q12