自适应α-β滤波算法
想请教高手,我在做利用自适应α-β滤波算法跟踪目标的时候,生成的观测轨迹的方差设置为R,利用附件图片上的方法取得α,β的值。在程序实现中,前两个点的状态估计是设置为初始的观测值。
从第3个点开始,首先α,β是初始化为1,从第4个点开始,利用前面的3个点的误差均值来估计机动加速度的方差:(1/3)*(观测值-预测值).^2,从而计算α,β的值。但是实验发现我的程序在跟踪匀速运动的目标时,不收敛,而且β的值还出现复数形式。
est_signal(1)=zx(1);
est_signal(2)=zx(2);
for k=3:sample
Xest=Phi*Xfli; % 更新该时刻的预测值
if(k>3)
delta_v2= (1/3)*((zx(k-1)-est_signal(k-1)).^2+(zx(k-2)-est_signal(k-2)).^2+(zx(k-3)-est_signal(k-3)).^2);
r= (delta_v2*(Ts^4))/(4*R);
a(k) = ((r+4*sqrt(r))/2)*sqrt(1+(4/(r+4*sqrt(r)-1)));
b(k) = 2*(2-a(k))-4*sqrt(1-a(k));
%%%%%计算自适应α-β滤波增益
K=';
Xfli=Xest+K*(zx(k)-C*Xest);
.....
est_signal(k)=Xfli(1,1);
end
有没有人可以帮我分析一下原因,到底是哪里设置的有误?? 对α-β滤波不了解
再则你给的代码也非常有限,很难从中看出什么端倪
不过你程序中有一行代码
r= (delta_v2*(Ts^4))/(4*R);
不知道其中的R是什么?似乎和你给的公式不是很对应 另外复数应该是在sqrt中产生的,建议从这里入手查查这个复数是如何产生的 R是观测误差的方差,就是求r的分母中的值。
根号产生虚数可以看出来的,但是不应该是这样的,不知道为什么书上这样写呢 这个我就无能为力了,对这个滤波不了解 虚数的问题解决了,观测误差没有除初始值,上面的公式还有点错误。不过仍然不能收敛。
页:
[1]