卡爾曼濾波的壹個典型實例是從壹組有限的,包含噪聲的,對物體位置的觀察序列(可能有偏差)預測出物體的位置的坐標及速度。在很多工程應用(如雷達、計算機視覺)中都可以找到它的身影。同時,卡爾曼濾波也是控制理論以及控制系統工程中的壹個重要課題。
例如,對於雷達來說,人們感興趣的是其能夠跟蹤目標。但目標的位置、速度、加速度的測量值往往在任何時候都有噪聲。卡爾曼濾波利用目標的動態信息,設法去掉噪聲的影響,得到壹個關於目標位置的好的估計。這個估計可以是對當前目標位置的估計(濾波),也可以是對於將來位置的估計(預測),也可以是對過去位置的估計(插值或平滑)。
目標跟蹤示例代碼:(具體解釋請見參考資料 )
Z=(1:100); %觀測值
noise=randn(1,100); %方差為1的高斯噪聲
Z=Z+noise;
X=[0;0]; %狀態
P=[1 0;0 1]; %狀態協方差矩陣
F=[1 1;0 1]; %狀態轉移矩陣
Q=[0.0001,0;0,0.0001]; %狀態轉移協方差矩陣
H=[1 0]; %觀測矩陣
R=1; %觀測噪聲方差
figure;
hold on;
for i=1:100
X_ = F*X;
P_ = F*P*F'+Q;
K = P_*H'/(H*P_*H'+R);
X = X_+K*(Z(i)-H*X_);
P = (eye(2)-K*H)*P_;
plot(X(1), X(2)); %畫點,橫軸表示位置,縱軸表示速度
end