I need an explanation of advance kalman filter algorithm. Preferably a C code, but only the algorithm will work for me.
Kalman filters are specialized versions of Wiener filters. Specifically, Kalman filters take information about a problem domain and enhance a Wiener filter by applying this domain specific knowledge. I've found the Wikipedia page to be an excellent reference source for understanding the particulars of the algorithm.
Without repeating the specific details here (no linear algebra imagery functions), Kalman filters estimate future state incrementally (as do Wiener filters, for that matter). In particular, we estimate the state, apply problem domain specific noise estimations and state change approximations, and then iterate. That is to say, we take current observations of state, filter those observations, predict the next state, then combine that output to produce some new next state observation.
I've found Kalman filters quite useful for predicting motion paths. Since motion paths are smooth Kalman filters work particularly well -- motion can easily be predicted using past known observations of state. So suppose you're in a car driving down the road, you'd record the current coordinates of the car as the current state. You then filter past observations of state (your previous locations) to predict the next point the car will be (in time). Note that you can apply laws of physics (say, momentum) to customize this filter and come up with quite reasonabole results. Random changes in speed or direction have some impact on the predictions.
Take a look at this C implementation you can see that we have two major functions in running a Kalman filter estimate
and update
(the wikipedia article talkes about these, but calls estimate
"predict
").
Ultimately you're going to need to determine some very specific statistics for the problem with which you wish to apply a Kalman filter. In particular, you need to generate/record/observe statistics on how the variance of the noise signal you observe evolves over time. It's assumed the process you're predicting is also stochastic, and as such you'll need to estimate its statistics as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With