yanniwang

ADXRS610模拟MEMS陀螺仪加权移动滤波方法

0
阅读(4138)

对MEMS陀螺输出的数据进行处理,一种可行的方法是移位加权平均滤波。加权移动平均法就是根据同一个移动段内不同时间的数据对预测值的影响程度,分别给予不同的权数,然后再进行平均移动以预测未来值。本文以ADI公司ADXRS610陀螺仪为例介绍滤波方法。

  加权移动平均法不像简单移动平均法那样,在计算平均值时对移动期内的数据同等看待,而是根据愈是近期数据对预测值影响愈大这一特点,不同地对待移动期内的各个数据。对近期数据给予较大的权数,对较远的数据给予较小的权数,这样来弥补简单移动平均法的不足。

计算公式如下:

式中:

  Yn+1——第n+1期加权平均值;

  Yi——第i期实际值;

  xi——第i期的权数(权数的和等于1);

  n——本期数;

k——移动跨期;

移位加权平均滤波示意图

 

滤波过程是在从机中进行的。

在程序中建立两个能存储10个数据的数组,一个用于放置最近的10个角速度数据,暂称为FIFO。另一个用于存储权值,称为Weight。Weight中的10个权值由左到右依次减小,也就是说与当前时刻越近的角速度对预测值影响越大,离当前时刻越远的角速度对预测值影响越小,所有权值的和为1。

例如Weight[10] = {0.4,0.3,0.2,0.04,0.03,0.02,0.004,0.003,0.002,0.001};

角速度数据不断地从FIFO左端流入缓冲区,当到达10个时就可以开始运算了。当然,到达10个数据这一过程只会在开始的时候进行一次,因为缓冲区是一直有数据流入的。当缓冲区满,且本次10个数据已经参与运算之后,最右侧数据将被丢弃,最左侧进入新数据,剩余数据依次右移一个格子。这一过程连续进行,于是角速度的预测值就会不断产生以供主机使用。

经过实验验证,相比于滤波之前的静止角速度输出,滤波后的输出变化幅度会小很多