lanpijiu 发表于 2006-11-27 17:13

自适应α-β滤波算法

想请教高手,我在做利用自适应α-β滤波算法跟踪目标的时候,生成的观测轨迹的方差设置为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   


有没有人可以帮我分析一下原因,到底是哪里设置的有误??

happy 发表于 2006-11-27 19:38

对α-β滤波不了解
再则你给的代码也非常有限,很难从中看出什么端倪

不过你程序中有一行代码

r= (delta_v2*(Ts^4))/(4*R);

不知道其中的R是什么?似乎和你给的公式不是很对应

happy 发表于 2006-11-27 19:39

另外复数应该是在sqrt中产生的,建议从这里入手查查这个复数是如何产生的

lanpijiu 发表于 2006-11-27 20:00

R是观测误差的方差,就是求r的分母中的值。
根号产生虚数可以看出来的,但是不应该是这样的,不知道为什么书上这样写呢

happy 发表于 2006-11-27 20:23

这个我就无能为力了,对这个滤波不了解

lanpijiu 发表于 2006-11-27 21:29

虚数的问题解决了,观测误差没有除初始值,上面的公式还有点错误。不过仍然不能收敛。
页: [1]
查看完整版本: 自适应α-β滤波算法