嵌入式常用数字滤波算法

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次后,取中值,实际上是个排序的过程

 

 

 

上一篇:观察者模式-订阅通知(一):Head first


下一篇:合并两个有序数组