关闭

递推平均滤波

标签: 滤波算法
391人阅读 评论(0) 收藏 举报

数据波动比较大,但又希望延迟比较小,可以尝试使用递推平均滤波

#define filter_num 5
float recursive_average_filter(uint16_t filter_object)
{	
    uint32_t sum = 0;         
    float temp = 0;	
	static uint16_t filter_buf[filter_num + 1]; 
    filter_buf[filter_num] = filter_object;
    for(char i = 0; i < filter_num; i++){
		filter_buf[i] = filter_buf[i + 1]; // 所有数据左移,低位扔掉
        sum += filter_buf[i];
    }
    temp = ((float)sum / filter_num);
    return temp;
}

滤波效果如下图:


1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11877次
    • 积分:221
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:2篇
    • 译文:2篇
    • 评论:15条
    文章分类
    文章存档
    最新评论