trackingKF does not output Kalman Gain

조회 수: 1 (최근 30일)
Christian Busse
Christian Busse 2021년 9월 17일
댓글: Prashant Arora 2023년 11월 21일
Hello,
why does trackingKF do not output the Kalman Gain?
Also, I think that an option to specify 'time-varying' or 'time-invariant' KF would be useful.
Best Regards
Christian

채택된 답변

Prashant Arora
Prashant Arora 2023년 11월 15일
편집: Prashant Arora 2023년 11월 21일
Hi,
As of R2024a, trackingKF does not output Kalman gain. We will consider this enhancement in the future releases.
As a workaround, you can compute Kalman gain using the output of the residual method.
predict(kf);
[r, S] = residual(kf, z);
H = kf.MeasurementModel;
P = kf.StateCovariance;
kalmanGain = P*H'/S;
Hope this helps.
Prashant
  댓글 수: 2
Christian Busse
Christian Busse 2023년 11월 20일
Hello, thanks for the response.
My workaround looks similar:
S = H*P*H' + R;
B = H*P';
K = (S \ B)';
Do you think both approaches are equal or maybe the other is numerically more robust/efficient in MATLAB?
Prashant Arora
Prashant Arora 2023년 11월 21일
Hi Christian,
Your approach looks equivalent to me.
You could consider modifying it a bit to reduce one transpose operation. However, I don't believe its going to have any noticeable impact on performance.
S = H*P*H' + R;
B = P*H';
K = B/S;
The only reason to use "residual" method would be to extend the same method to other Gaussian filters such as trackingEKF and trackingUKF. Internally, trackingEKF and trackingUKF also use numerically robust approach to compute the "S" (innovation covariance) using square root implementation. However, trackingKF is still plain vanilla (no square root) as of R2024a. So, your workaround looks equivalent trackingKF. We'll consider enhancing trackingKF in a future release to also use square-root implementation.
Hope this helps.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by