資源簡介
目標跟蹤問題的應用背景是雷達數據處理,即雷達在搜索到目標并記錄目標的位置數據, 對測量到的目標位置數據(稱為點跡)進行處理,自動形成航跡,并對目標在下一時刻的位置進行預測。 下文簡要討論了用Kalman濾波方法對單個目標航跡進行預測,并借助于Matlab仿真工具,對實驗的效果進行評估。 里面包括三個源程序,和一份實驗報告,里面有算法的詳細分析和情景假設。
代碼片段和文件信息
function?[XERYER]=filter_result(Tsmond)
%?filter_result?????????對觀測數據進行卡爾曼濾波,得到預測的航跡以及估計誤差的均值和標準差
%?Ts????????????????????采樣時間,即雷達的工作周期
%?mon???????????????????進行Monte-Carlo仿真的次數
%?d?????????????????????測量的誤差單位m
%返回值包括濾波預測后的估計航跡以及均值和誤差協方差
if?nargin>3
????error(‘Too?many?input?arguments.‘);
end
offtime=800;
%?產生理論的航跡
[xy]=trajectory(Tsofftime);
Pv=d*d;
N=ceil(offtime/Ts);
randn(‘state‘sum(100*clock));?%?設置隨機數發生器
for?i=1:N
???vx(i)=d*randn(1);?%?觀測噪聲,兩者獨立
???vy(i)=d*randn(1);
???zx(i)=x(i)+vx(i);?%?實際觀測值
???zy(i)=y(i)+vy(i);
end
%?產生觀測數據
for?n=1:mon
????%?用卡爾曼濾波得到估計的航跡
????XE=Kalman_filter(Tsofftimed0);?
????YE=Kalman_filter(Tsofftimed1);
????%誤差矩陣
????XER(1:Nn)=x(1:N)-(XE(1:N))‘;
????YER(1:Nn)=y(1:N)-(YE(1:N))‘;
end
%濾波誤差的均值
XERB=mean(XER2);
YERB=mean(YER2);
%濾波誤差的標準差
XSTD=std(XER12);?%?計算有偏的估計值,flag=‘1‘
YSTD=std(YER12);
%作圖
figure
plot(xy‘r‘);hold?on;
plot(zxzy‘g‘);hold?on;
plot(XEYE‘b‘);hold?off;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1703??2006-04-26?14:12??filter_result.m
?????文件???????2984??2006-04-26?13:37??Kalman_filter.m
?????文件????????167??2006-04-26?14:39??readme.txt
?????文件???????1430??2006-04-26?08:08??trajectory.m
?????文件?????200192??2006-04-26?21:45??卡爾曼濾波在目標跟蹤中應用仿真研究.doc
?????文件????????353??2006-07-14?23:37??說明.txt
-----------?---------??----------?-----??----
???????????????206829????????????????????6
- 上一篇:克魯斯卡爾算法(數據結構課程設計)
- 下一篇:QT畫曲線圖程序
評論
共有 條評論