降采样中
01提问
卓老师,您好。我想请问一下,假如我陀螺仪配置800Hz的ODR,在定时器中断中以500Hz频率用IIC的方式读取数据,这样是不是会造成误差,丢失数据呢?谢谢~?
02回复
前面的提问包括了如下几个基本问题:
1)在IMU(Inertial Measurement Unit,惯性测量单元)中ODR(Output Data Ratio,数据输出速率)究竟设置多少合适?
2)如果读取速率和ODR不相同会对采样数据造成什么样的影响?如果读取速率低于ODR,则相当于离散时间数据的降采样
03数据输出速率
在智能车竞赛中,IMU通常用于直立平衡车的姿态控制。通过对IMU输出的陀螺仪和加速度计数据的融合滤波,可以获得直立车模的倾角,然后通过反馈控制使得车模保持直立状态。
反馈控制通常使用单片机的程序进行离散时间控制,控制时间周期通常小于系统主要惯性环节的时间常数,一般小于10ms.
在IMU中,常常可以通过寄存器配置设置传感器数据更新速度(ODR)。显然IMU的ODR应该大于反馈控制程序的执行频率。否则就会造成车模姿态测量数据的延迟,从而影响控制效果。具体的相应分析在这里就不再展开了。
通常情况下,ODR等于软件控制频率即可。ODR如果高于软件控制频率,多余的数据也会丢失掉。
在某些IMU中,对于测量得到的加速度、角加速度数据通常会经过一个低通滤波器的平滑滤波,然后再送到输出寄存器中。这样可以提高数据的信噪比。
有的IMU中的ODR参数往往会与输出数据的低通滤波截止频率有关系。高度的ODR,则相应的输出数据的低通滤波器的截止频率也高。反之,就会降低输出数据的低通滤波器的截止频率。
测量数据的信噪比和频率带宽对于车模直立控制都很重要。但在IMU输出数据中这是一个矛盾。因此,设置ODR,使得输出数据的截止频率略高于控制频率即可。
通过上面分析,IMU中的ODR通常设置高于100~500就可以满足控制要求,太低就会影响控制效果。
在实际调试中,如果发现车模直立控制始终无法稳定,此时需要注意看看是否你所使用的IMU的ODR设置太低了。我在平时碰到过有的同学没有注意到这个问题,由于设置ODR太低,使得车模无法保持直立。
04数据降采样
由于IMU的ODR通常比实际软件控制所需要的数据要大,所以通常需要对IMU输出的数据进行降采样。
对于连续时间信号,可以对其在任意时间点进行采样。对于均匀采样的离散时间信号,由于数据只出现在一系列的离散时间点上,因此对它进行降采样的时候,就会出现一些限制。
如果降采样的比例是整数时,则每隔几个数据保留一个数据就可以完成。比如将数据降采样两倍,则每两个相邻数据保留一个数据就可以完成。
如果降采样的比例不是整数时,比如前面同学所碰到的,800比上500,即8:5,此时就需要每8个数据,只保留5个数据,因此就无法做到降采样之后的数据在时间上均匀分布了。
这种降采样后数据时间间隔不均匀,会对软件控制产生一定的影响。但是只要控制频率足够快,这种时间上的抖动所带来的影响可以由系统惯性环节进行平滑,不会产生明显的效果。
在理论上,可以通过以下过程完成离散时间数据的任意比率重采样(上采样,或者降采样),消除采样所带来的数据时间点的抖动.
步骤1:通过数据插值,重构出对应的最高频谱小于采样频率一半的连续时间信号。
步骤2:然后在按照新的采样率采样得到新的离散时间数据。
在实际操作中,可以只通过数字信号处理手段,使用数字滤波器,上采样和下采样等来完成上述过程。不需要中间的模拟信号的完成。
但在早期美国Apollo登月计划中,为了降低对通信频段的要求,从飞船返回的图像是每秒钟10帧的电视信号,将其转换成当时NTSC电视标准,需要重新将电视图像频率增加到每秒30帧。
在当时的技术条件下,由于缺乏高速数字处理设备,对于电视图像频率的重新采样,则是通过摄像机对准低频视频播放的长余辉显现管进行拍摄的。这个过程则是利用了物理方式将原来低频采样的信号恢复成连续信号然后在重新采样。
在有些IMU传感器中,为了减少MCU读取IMU数据的时间,降低系统功耗,通常带有内部的FIFO进行数据的缓冲。这样可以减少数据丢失的可能性,降低MUC读取数据的开销,但也会带来数据更新的延迟。
所以在控制中,为了减少这种数据的延迟,需要采用高的读取速率,或者中断的方式能够及时得到最新测量数据。
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/104134884
- 点赞
- 收藏
- 关注作者
评论(0)