无迹卡尔曼滤波的状态建模方式,比较适合非线性系统的信号。原理其实不复杂,核心就是通过一套“采样点”和“均值协方差”的计算,把系统状态估得更准。嗯,滤波精度比扩展卡尔曼还要稳点,是在系统不太线性的时候效果更。
状态空间模型的构建,是整个滤波的基础。建议用Matlab
搭配来搞,工具支持比较全,而且文档和例子也多。网上也有不少可跑通的代码,比如无迹粒子滤波的 Matlab 实现,可以参考下。
信号滤波这一块,主要是降噪+状态预测。适用于那种传感器数据有波动的场景,比如自动驾驶、飞控系统啥的。代码逻辑还算清晰,调参的时候记得注意协方差矩阵的设置,影响挺大的。
对比类的资源你也可以看看,比如扩展卡尔曼 VS 无迹卡尔曼,看清楚两者在非线性上的差异。还有非线性滤波+卡尔曼+h∞,也蛮有用。
如果你正好在搞MPC或者状态空间建模,建议顺手看下这个MPC 工具教程,多思路是通的,用起来更顺。
哦对了,滤波记得要用合理的时间步长,不然结果跳得会比较狠。状态转移模型别乱写,动态系统里,稳定性是第一位的。