首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 常用文档 > 单片机软件滤波的几种方法

单片机软件滤波的几种方法

资料介绍
单片机软件滤波的几种方法
沈阳单片机开发网――帮您精确掌握电子器件的使用细节 www.symcukf.com


单片机软件滤波的几种方法

假定从 AD 中读取数据的子程序为:unsigned int get_ad();

1、限幅滤波法(又称程序判断滤波法)
A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为 A)。每次检测到新值时
判断: 如果本次值与上次值之差<=A,则本次值有效;如果本次值与上次值之差>A,则本次值无
效,放弃本次值,用上次值代替本次值。
B、优点:能有效克服因偶然因素引起的脉冲干扰
C、缺点:无法抑制那种周期性的干扰,平滑度差
D、软件实现:
//=======================
//值 A 可根据实际情况调整,value 为有效值,new_value 为当前采样值
//滤波程序返回有效的实际值
#define A 10
char value;
char filter()
{char new_value;
new_value = get_ad();
if ( ( new_value - value > A ) || ( value - new_value > A ) return value;
return new_value;
}
//=======================

2、中位值滤波法
A、方法:连续采样 N 次(N 取奇数),把 N 次采样值按大小排列,取中间值为本次有效值
B、优点:能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数
有良好的滤波效果
C、缺点:对流量、速度等快速变化的参数不宜
D、软件实现:
//==============
标签:软件滤波
单片机软件滤波的几种方法
本地下载

评论