由于无人机在飞行过程中受到电机桨叶转动的引起的振动影响,从陀螺仪、加速度计等传感器出来的数据需要进行滤波,一般是通过低通滤波,结合电机的频率特性,通常30Hz左右是比较合适的阈值
Matlab提供了较为方便的设计低通滤波器的工具,如Buttorworth低通滤波器,
[b, a] = butter(order, normalized_cutoff);
order为阶数,normalized_cutoff为标准化的截止频率,比如程序运行的频率是1000Hz,过滤30Hz的频率,设计一个三阶的滤波器,那么命令就是
[b, a] = butter(3, 0.03)
b和a分别为得到的滤波器的滤波参数,a=[a0,a1,...,ak],b=[b0,b1,...,bk],k为阶数,这些参数的滤波作用如下
即