基于proteus仿真的数字滤器波器设计(编辑修改稿)内容摘要:

DGND:数字信号地。 3 数字滤波原理介绍介绍: 数字滤波方法有很多种,如中值滤波、算术平均滤波、加权平均滤波,限幅滤波等等。 本次课程设计我选用的是限幅滤波方法和中位值滤波法 限副滤波 A、方法: 根据经验判断,确定两次采样允许的最大偏差值( 设为 A) 每次检测到新值时判断: 如果本次值与上次值之差 =A,则本次值有效 如果本次值与上次值之差 A,则本次值无效 ,放弃本次值 ,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 程序: /* A 值可根据实际情况调整 value 为有效值, new_value 为当前采样值 滤波程序返回有效的实际值 */ 基于单片机 C语言编程的数字滤波显示系统设计 9 9 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。 else return new_value。 } 中位值滤波法 A、方法: 连续采样 N 次( N 取奇数),把 N 次采样值按大小排列 ,取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果 C、缺点: 对流量、速度等快速变化的 参数不宜 程序: /* N 值可根据实际情况调整 排序采用冒泡法 */ define N 11 char filter() { char value_buf[N]。 char count,i,j,temp。 基于单片机 C语言编程的数字滤波显示系统设计 10 10 for ( count=0。 countN。 count++) { value_buf[count] = get_ad()。 delay()。 } for (j=0。 jN1。 j++) { for (i=0。 iNj- 1。 i++) { if ( value_buf[i]value_buf[i+1] ) { temp = value_buf[i]。 value_buf[i] = value_buf[i+1]。 value_buf[i+1] = temp。 } } } return value_buf[(N1)/2]。 } 算术平均滤波法 A、方法: 连续取 N 个采样值进行算术平均运算 N值较大时:信号平滑度较高,但灵敏度较低 N值较小时:信号平滑度较低,但灵敏度较高 N值的选取:一般流量, N=12;压力: N=4 B、优点: 适用于对一般具 有随机干扰的信号进行滤波 这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动 C、缺点: 基于单片机 C语言编程的数字滤波显示系统设计 11 11 对于测量速度较慢或要求数据计算速度较快的实时控制不适用 比较浪费 RAM 程序: define N 12 char filter() { int sum = 0。 for ( count=0。 countN。 count++) { sum + = get_ad()。 delay()。 } return (char)(sum/N)。 } 递推平均滤波法(又称滑动平均滤波 法) (FIR 前身 ) A、方法: 把连续取 N个采样值看成一个队列 队列的长度固定为 N 每次采样到一个新数据放入队尾 ,并扔掉原来队首的一次数据 .(先进先出原则 ) 把队列中的 N 个数据进行算术平均运算 ,就可获得新的滤波结果 N值的选取:流量, N=12;压力: N=4;液面, N=4~12;温度, N=1~4 B、优点: 对周期性干扰有良好的抑制作用,平滑度高 适用于高频振荡的系统 C、缺点: 灵敏度低 对偶然出现的脉冲性干扰的抑制作用较差 不易消除由于脉冲干扰所引起的采样值偏差 基于单片机 C语言编程的数字滤波显示系统设计 12 12 不适用于脉冲干 扰比较严重的场合 比较浪费 RAM 程序: define N 12 char value_buf[N]。 char i=0。 char filter() { char count。 int sum=0。 value_buf[i++] = get_ad()。 if ( i == N ) i = 0。 for ( count=0。 countN,count++) sum+ = value_buf[count]。 return (char)(sum/N)。 } 中位值平均滤波法(又 称防脉冲干扰平均滤波法) A、方法: 相当于“中位值滤波法” +“算术平均滤波法” 连续采样 N个数据,去掉一个最大值和一个最小值 然后计算 N2 个数据的算术平均值 N值的选取: 3~14 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 测量速度较慢,和算术平均滤波法一样 比较浪费 RAM 程序: 基于单片机 C语言编程的数字滤波显示系统设计 13 13 define N 12 char filter() { char count,i,j。 char value_buf[N]。 int sum=0。 for (count=0。 countN。 count++)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。