EDN China > 技术文章 > 测试与测量 > 系统测试 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 嵌入式测控系统中数字滤波算法的实现

江苏淮安信息职业技术学院 邢海霞 王新风?? 2010年03月05日 ?? 收藏0

  0? 引言

  模拟信号都必须经过A/D转换才能被嵌入式控制器接收。但在干扰作用于模拟信号之后,其A/D转换结果往往会偏离真实值。因此,仅采样一次是无法确定该结果是否可信的,而必须多次采样,才能得到一个A/D转换的数据系列,然后通过某种处理,才能得到一个可信度较高的结果。这种从数据系列中提取逼近真值的软件算法,通常称为数字滤波算法。相对于硬件滤波,数字滤波的优越性在于其无需硬件且可靠性高,尤其对频率很高或很低的信号进行滤波。此外,由于对多输入通道可共用一个滤波程序,故可大大降低产品成本。

  1? 嵌入式测控系统中常见的数字滤波算法

  1.1? 限幅滤波

  首先根据被测对象确定相邻两次采样所允许的最大差值△Y,然后在每次采样后和上次有效采样值进行比较,如果变化幅度不超过△Y,则本次采样有效;否则,本次采样值被视为干扰而放弃,而以上次采样值为准。其原理可用如下公式表示:

限幅滤波

  其中,yn为第n次采样值,yn-1为第(n-1)次采样值。

  实现上述过程的参考程序(返回有效的采样值)如下:

参考程序

  限幅滤波主要用于处理变化比较缓慢的数据,如温度、湿度、液位等。该方法使用的关键是要选取合适的门限△Y。△Y通常可根据经验数据获得,必要时也可由实验得到。

  1.2中值滤波

  这种滤波方式一般对目标参数连续采样N次(N一般为奇数),然后把N次采样值进行排序,再取中间值作为有效值。对于变化很慢的参数,也可以增加采样次数。而对于变化较为剧烈的参数,此法不宜采用。其参考程序如下:

参考程序

  1.3算术平均滤波

  该算法对目标参数先进行连续采样,然后求其算术平均值作为有效采样值。该算法适用于对具有随机干扰的信号进行滤波。这种信号的特点是有一个平均值。信号在某一数值附近上下波动。信号的平滑程度完全取决于采样次数N,采样次数越多,平滑效果越好,但系统的灵敏度也会下降。为方便求平均值,N一般取4、8、16之类的2的整数次幂,以便系统用移位法来代替除法。其参考程序如下:

参考程序

  1.4去极值平均滤波

  算术平均滤波不能消除明显的脉冲干扰,而只是将其影响削弱。由于明显干扰会使采样值远离其真实值,因此可以比较容易地将其剔除,而不参加平均值计算,从而使平均滤波的输出值更接近真实值,这就是去极值算法,又称为防脉冲干扰平均值滤波算法。该方法的原理是连续采样N次,并将其累加求和,同时找出其中的最大值和最小值,再从累加和中减去最大值和最小值,再按N-2个采样值求平均,即可获得有效采样值。为方便求平均值,N-2应为2、4、8、16,故N常取4、6、10、18。其参考程序如下:

参考程序

  1.5加权平均滤波

  算术平均滤波和去极值平均滤波均存在平滑性和灵敏性的矛盾。因为,采样次数太少,平滑效果差;采样次数太多,灵敏度下降,对参数的变化趋势不敏感。为协调两者的关系,可采用加权平均滤波。即对连续N次采样值分别乘上不同的加权系数之后再求累加和。加权系数一般先小后大,以突出后面若干采样的效果,来加强系统对参数变化趋势的辨识。各个加权系数均应是小于1的小数,且应满足总和等于1的约束条件。这样,加权运算之后的累加和即为有效采样值。为方便计算,可取各加权系数均为整数,且总和为256,加权运算之后的累加和再除以256后便是有效采样值。其参考程序如下:

参考程序


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

测控系统? 数字滤波算法? 模拟信号?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈