This is an EKF for an autonomous vehicle performing a constant radius turn about a fixed point. The vehicle acceleration terms are nonlinear and corrupted by AWGN.The vehicle observation model is nonlinear in Range and Azimuth. The observations are corrupted by multiplicative non-Gaussian noise terms.
This EKF was constructed for a Detection & Estimation class midterm (see included PDF file). The purpose was to show that if the noise terms are non-Gaussian and enter the observation model multiplicatively, then the EKF may not be an unbiased estimator. Under these conditions, suitable alternatives are the UKF and any variation of the PFs.
A set of MC simulations was performed to show the sensitivity of the EKF to ICs for this problem and to show that it is not an unbiased estimator (no MC code is included).
Sam Nazari (2019). Extended Kalman Filter (https://www.mathworks.com/matlabcentral/fileexchange/46456-extended-kalman-filter), MATLAB Central File Exchange. Retrieved .
For automatic code generation to be used in a realtime embedded system, there may need to be slight modifications made to the sim. However, I think the program runtime can still complete in 1/400 sec without overrun.
The frequency is a parameter that can be adjusted in the simulation. So 400 Hz should be no problem. Please let me know if this helps.
Runs very well. My sensor (optical detector) has a frequency of 400 KHz and I wonder how fast can this program run.
Added randraw.m file to the repository.