?? imm.m
字號(hào):
function [x,y,zx,zy,XXE,YYE,XERB,YERB,XSTD,YSTD]=IMM(T,mont,d)
%輸入?yún)?shù):觀測(cè)噪聲方差d,采樣間隔T,蒙特卡洛次數(shù)mont
%返回值:
totalTime=800;
%真實(shí)航跡產(chǎn)生
[x,y]=realTrack(T,totalTime);
%隨機(jī)初始化
randn('state',sum(100*clock));
D=d*d;
N=ceil(totalTime/T);
for n=1:mont;
%觀測(cè)數(shù)據(jù)產(chǎn)生
for i=1:N
zx(i)=x(i)+d*randn(1);
zy(i)=y(i)+d*randn(1);
end
%濾波(IMM)
[XXE,YYE]=immkf(zx,zy,T,D);
XXE(1)=zx(1);XXE(2)=zx(1);
YYE(1)=zy(1);YYE(2)=zy(1);
%誤差矩陣
XER(1:N,n)=x(1:N)-(XXE(1:N))';
YER(1:N,n)=y(1:N)-(YYE(1:N))';
end
%end for mont
%濾波誤差的均值
XERB=mean(XER,2);
YERB=mean(YER,2);
%濾波誤差的標(biāo)準(zhǔn)差
XSTD=std(XER,1,2);
YSTD=std(YER,1,2);
% %作圖
% figure(1)
% plot(x,y,'r');hold on;
% plot(zx,zy,'g');hold on;
% plot(XXE,YYE,'b');
% axis([1500 5000 -5000 11000]);
% title('IMM算法仿真');
% legend('真實(shí)軌跡','觀測(cè)數(shù)據(jù)','濾波估計(jì)');
%
% figure(2)
% subplot(2,2,1)
% plot(XERB)
% axis([0 500 -50 50])
% xlabel('觀測(cè)次數(shù)')
% ylabel('X方向?yàn)V波誤差均值')
% subplot(2,2,2)
% plot(YERB)
% axis([0 500 -50 50])
% xlabel('觀測(cè)次數(shù)')
% ylabel('Y方向?yàn)V波誤差均值')
% subplot(2,2,3)
% plot(XSTD)
% axis([0 500 0 150])
% xlabel('觀測(cè)次數(shù)')
% ylabel('X方向?yàn)V波誤差標(biāo)準(zhǔn)值')
% subplot(2,2,4)
% plot(YSTD)
% axis([0 500 0 150])
% xlabel('觀測(cè)次數(shù)')
% ylabel('Y方向?yàn)V波誤差標(biāo)準(zhǔn)值')
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -