0 序言 我们在什么时候会使用数字滤波算法
通常地,我们会使用单片机来采集数据。在这个过程中,一方面会有一些随机干扰带来对的误差,另一方面由于通讯数据异常,会导致采集的数据不够准确,从而影响了我们基于数据的判断。
这个时候我们使用一些常见的、高效的数字数字滤波算法,来规避掉一些随机误差和筛选掉明显错误的数据。
滤波算法一般是系统测控算法中重要组成部分,具有很强的实时性,所以其算法结构一般都不会非常复杂。
1 第一章 数字滤波的优点
①无额外的硬件成本,高可靠性;
②可以对频率极低的信号进行滤波;
③通过软件实现,可以复用滤波模块;
④通过软件实现,便于调整参数
2 第二章 常见滤波算法(限幅滤波、中值滤波、算数平均滤波、加权平均滤波、滑动平均滤波)
2.1 限幅滤波
设定一个允许偏差A,本次采样数据依照上次采样的数据进行评估,如果大于偏差A,则舍弃,返回上一次的采样数据
#define A 0.03
int data;
int filter()
{
int newdata;
newdata = get_data();
if(abs(newdata-data)>A)
{
return data;
}
else
{
return newdata;
}
}
2.2 中值滤波
连续采样N次后,取中值,实际上是个排序的过程