以下是kalman-filter五條公式
https://imgur.com/a/85OkG
https://imgur.com/a/kCCjz
下面是kalman濾波器的程式碼:
我想把kalman-filter(卡爾曼濾波器)用在「修正河川液體濃度擴散」
x(:,1,k) = A*x(:,1,k-1)+U;
p(:,:,k) = A*p(:,:,k-1)*A';
kg(:,1,k) = p(:,:,k)*H' / (H*p(:,:,k)*H'+R);
x(:,1,k)=x(:,1,k)+kg(:,1,k)*(y(k-1)-H*x(:,1,k-1));
x0= 不知道怎麼處理 ??????????? ;
p(:,:,k)=(II-kg(:,1,k)*H)*p(:,:,k);;
% k是總迭代次數(k表不同時間,k=1秒、2秒、3秒、4秒....)
[x]跟[A]是矩陣式,所有參數或矩陣都已知。
[x]矩陣,是擴散後的液體濃度的推估值
[x]矩陣格式如下:
[ A
B
C
D
.
.
.
. ]
A為0公尺處的濃度推估值
B為10公尺處的濃度推估值
C為20公尺處的濃度推估值
D為30公尺處的濃度推估值
以此類推下去,假設終點為100公尺處。
如果我想貯存某一點(譬如B點)隨著時間的不同液體濃度,該如何設定x0
.
.
.
.
.
我各項參數都有了(A矩陣、p矩陣、U矩陣、k是總迭代次數)
但有一個小地方,我不知道該如何處理。 就是x0如何處理?
x0的數學含義就是把每次叠代k狀態下的x值貯存起來方便最後做圖
(和觀測值y以及理論值y0對比)
物理意義是把卡爾曼濾波算法得到的每一k時刻的位移值放在x0中,
於是x0就是每一時刻的濃度值
但是在此處,我不知道我這個題目的x0該如何設定=.=...
假設這裡迭代10次好了。