How to define a Kalman filter with a delta time dependent process noise?

9 views (last 30 days)
Hello,
I am using the trackingKF and trackingUKF functions from the Sensor Fusion and Tracking Toolbox to create kalman filters. I have been trying to figure out how to create a process noise function that is dependent delta time (dt), and give this process noise function to the trackingKF constructor function, or creating a KalmanFilter object without the TrackingKF. I have tried the first suggestions in set process noise 1D Constant Velocity - (mathworks.com), and from this I understood it in the following way:
If I use
sigmasq = 3;
EKF = trackingEKF(@constvel,@cvmeas,zeros(2,1),'HasAdditiveProcessNoise', false,'ProcessNoise',sigmasq);
to create my kalman filter for the IMM in the TOMHT, the process noise used by the EKF will be 3 * [0.25 * dt^4, 0.5 * dt^2; 0.5 * dt^2; dt].
Did I understand correctly? If so, where can I find the code where this is implemented? If not, how can I achieve this?
Thank you,
Joost

Accepted Answer

Prashant Arora
Prashant Arora on 2 May 2022
Edited: Prashant Arora on 2 May 2022
Hi Joost,
The “constvel” and other built-in motion models take advantage of the non-additive EKF/UKF process noise model to describe the process noise and time step impact.
The constvel motion model is defined as:
is the process noise random vector. For constvel, can be inferred as the “unknown acceleration” of the target assuming piecewise constant model. The and matrices are function of the time step, T. Shown below are their 1-D versions.
When you use an EKF with non-additive process noise (HasAdditiveProcessNoise = false), the Jacobian of the state transition with respect to noise (which is simply in this case) takes care of the time-varying nature.
These analytical Jacobians are defined using constveljac as a function of time step. However, even numerical Jacobian should include the time impact. Here, represents the ProcessNoise matrix defined as an N-D square matrix.
Similarly, when using an UKF, the random vector is sampled from the matrix and the propagation of random vector using the motion model () automatically considers the impact of time-step.
Hope this helps
Thanks,
Prashant
  3 Comments
Joost
Joost on 5 May 2022
Hi Prashant,
You are right, it makes 1 + 2N sigma points with w a zero vector, and then 2 points for each dimension of w, one with a positive value and one with a negative value.Thank you so much for getting to the bottom of this, and explaining non-additive noise to me.
Kind regards,
Joost

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!