数字滤波常用方法 在微机控制系统的模拟输入信号中,一般均含有各种噪声和干扰,他们来自被测信号源本身、传感器、外界干扰等
为了进行准确测量和控制,必须消除被测信号中的噪声和干扰
噪声有2 大类:一类为周期性的,其典型代表为 50 Hz 的工频干扰,对于这类信号,采用积分时间等于 20 ms 整倍数的双积分 A/D 转换器,可有效地消除其影响;另一类为非周期的不规则随机信号,对于随机干扰,可以用数字滤波方法予以削弱或滤除
所谓数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比重,因此他实际上是一个程序滤波
数字滤波器克服了模拟滤波器的许多不足,他与模拟滤波器相比有以下优点: (1)数字滤波器是用软件实现的,不需要增加硬设备,因而可靠性高、稳定性好,不存在阻抗匹配问题
(2)模拟滤波器通常是各通道专用,而数字滤波器则可多通道共享,从而降低了成本
(3)数字滤波器可以对频率很低(如 0
01 Hz)的信号进行滤波,而模拟滤波器由于受电容容量的限制,频率不可能太低
(4)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点
10 种软件滤波方法的示例程序 OurWay 发表于 2005-9-2 22:24:00 10 种软件滤波方法的示例程序(JKRL) 假定从 8 位 AD 中读取数据(如果是更高位的AD 可定义数据类型为 int),子程序为 get_ad(); 1、限副滤波 A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为 A),每次检测到新值时判断:如果本次值与上次值之差A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点:能有效克服因偶然因素引起的脉冲干扰
C、缺点:无法抑制那种周期性的干扰,平滑度差
/* A 值可根据实际情况调整 value 为有效值,new_value 为当前采样值 滤波程