predict函数:执行重要性采样,也可认为是预测粒子。然后计算预测状态,即粒子与权重的乘积和。
correct函数:首先按似然函数计算权重。然后计算校正状态,即粒子与权重的乘积和。接着是判断是否满足重采样条件,若满足,更新粒子,恢复权重为1/N。
getStateEstimate函数:该函数只计算当前粒子与权重的乘积和。可作为状态估计函数使用。
注意:一般的教材,粒子滤波的步骤为重要性采样→权重计算(归一化)→重采样→状态估计,按照这个顺序,MATLAB的执行步骤应为predict→correct→getStateEstimate。correct函数里提供的校正状态和一般教材的状态估计有所不同,correct函数里提供的校正状态在重采样之前,而一般教材的状态估计在重采样之后,如果不执行重采样,二者没有差别,如果执行了重采样,就需注意顺序问题。
本文解析了粒子滤波算法中的关键函数predict、correct及getStateEstimate的作用与执行顺序。predict函数实现重要性采样并计算预测状态;correct函数通过似然函数计算权重并根据条件重采样;getStateEstimate函数则直接给出状态估计。文中强调了不同函数执行顺序对最终状态估计的影响。
1641

被折叠的 条评论
为什么被折叠?



