中位值平均滤波法
2015-05-31 00:29
239 查看
最近用stm32单片机检测外部8路电压。STM32内部包含12位的ADC,一次检测一路AD最快只要1us。为了防止偶尔外对AD采样的干扰,单片机对采集数据进行中值平均滤波。
中值平均滤波就是在采集的N个数据中去掉一个最大值和一个最小值,然后对剩下的数据求平均值。所以这个算法不需要对数据排序,关键是计算最大值,最小值,和。算法实现如下:
中值平均滤波就是在采集的N个数据中去掉一个最大值和一个最小值,然后对剩下的数据求平均值。所以这个算法不需要对数据排序,关键是计算最大值,最小值,和。算法实现如下:
unsigned short AD_Filter(unsigned short* pData,int N) { unsigned short max,min,average; int sum,i; average = 0; if(N>2) { max = pData[0]; min = max; sum = 0; for(i=0;i<N;i++) { sum += pData[i]; if(pData[i]>max) { max = pData[i];//一个循环之后max就是最大的值 } if(pData[i]<min) { min = pData[i];//一个循环之后min就是最小的值 } sum = sum-max-min;//去掉最大的值和最小的值 average = sum/(N-2);//对N-2个数求平均值 } return average; }
相关文章推荐
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- 黑马程序员——内部类
- 梦想需要现实来支撑
- Eclipse 配置SSH 详解
- 使用Delphi实现JNI - 1
- HDU 2005 第几天?
- 15-五月总结
- 2015年百度之星程序设计大赛 - 初赛(1)
- 如何从Google Play下载应用到电脑?
- 匹配字符串的KMP算法
- HDU 2004 成绩转换
- JAVA_OPTS-----java虚拟机启动参数配置
- ctrl+c,ctrl+d,ctrl+z在linux中意义
- ctrl+c,ctrl+d,ctrl+z在linux中意义
- [CF442A] Borya and Hanabi (暴力bitmask)
- Node入门
- 关于jQuery中index()容易错用的地方。
- 队列的链式存储结构的实现1 —— 创建销毁判断满空入队
- 【软考路上】——总结篇——软考收获+复习建议
- 2015百度之星初赛(1)1001