乐于分享
好东西不私藏

简析低通滤波器:软件实现

简析低通滤波器:软件实现
在电机控制中,电流采样、速度反馈等有时需要进行低通滤波,今天来聊聊其软件实现方式

一、递推公式

先直接给出程序中实际最常用的相关代码:

其实,这就是一阶数字低通滤波器的递推公式
其中:x[n]为当前时刻的采样输入;y[n−1]为上一时刻的滤波输出(历史状态);y[n]为当前时刻的滤波输出;α为滤波系数,范围 0<α<1。
直观理解可以意会成当前输出由“当前输入”和“上一次输出”按比例加权得到
系数α越大,输出跟随输入越快,滤波弱α越小,输出越平滑,滤波强

二、系数如何选取

熟悉该公式的工程师应该知道系数的选取规则         
这里简要推导一下该公式的由来。
一阶低通滤波器在连续域的描述是
其中 τ为时间常数,它与截止频率 fc的关系为:
计算机只能处理离散时刻的数据,无法直接求导数。前向欧拉法用相邻两拍的差值除以采样周期来近似导数
其中 Ts是采样周期,即两次计算之间的时间间隔,代入微分方程可得到
可求解得到

对比标准形式,得出系数

三、实际应用

比如采样周期Ts=100us,希望截止频率1Hz,可如下编码
该信号经软件低通滤波后,由黄色的原始信号变成平滑的输出信号,用于后续的相关计算推理,如下图所示:
关于低通滤波器的基本概念、硬件实现、软件实现三篇文章先介绍到这里。总之,滤波器的设计还是比较复杂的,但基础的知识大抵如此。

 请多多关注,谢谢!