https://github.com/eddelbuettel/rcppkalman
Kalman filtering via RcppArmadillo
https://github.com/eddelbuettel/rcppkalman
Last synced: over 1 year ago
JSON representation
Kalman filtering via RcppArmadillo
- Host: GitHub
- URL: https://github.com/eddelbuettel/rcppkalman
- Owner: eddelbuettel
- Created: 2014-04-27T16:34:29.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2020-06-17T23:09:07.000Z (about 6 years ago)
- Last Synced: 2025-03-01T06:11:12.546Z (over 1 year ago)
- Language: MATLAB
- Size: 1.96 MB
- Stars: 35
- Watchers: 8
- Forks: 19
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
Awesome Lists containing this project
README
## rcppkalman
Kalman filtering via RcppArmadillo -- based on a R and C++ port of the
[EKF/UKF](http://becs.aalto.fi/en/research/bayes/ekfukf/) toolbox for Matlab
[](https://travis-ci.org/eddelbuettel/rcppkalman)
[](http://www.gnu.org/licenses/gpl-2.0.html)
[](https://github.com/eddelbuettel/rcppkalman)
## Why?
R has a number of existing Kalman filter packages which are all very
noteworthy in their own right. A comparison was provided by
[this JSS paper from 2011](http://www.jstatsoft.org/v39/i02).
Yet I had a need for something both simple and fast at the C++ level.
The [EKF/UKF](http://becs.aalto.fi/en/research/bayes/ekfukf/) toolbox for
Matlab proved to be a wonderful source of excellent code that was well
documented (see [this 130 page pdf manual]http://becs.aalto.fi/en/research/bayes/ekfukf/documentation.pdf()),
under a suitable license and covering both simple examples as
well as promising extensions.
### Demos
#### Static Sine Signal And Noisy Measurement
This example is not described in the pdf manual, but included as demo
[kf_sine_demo.m](https://github.com/eddelbuettel/rcppkalman/blob/master/inst/ekfukf/demos/kf_sine_demo/kf_sine_demo.m) within the
[EKF/UKF](http://becs.aalto.fi/en/research/bayes/ekfukf/) sources. A signal
is provided via a sine wave plus random noise, and a linear Kalman Filter is
used to smooth and filter the series. Our variant
[demo/kf_sine_demo.R](https://github.com/eddelbuettel/rcppkalman/blob/master/demo/kf_sine_demo.R)
reproduces the demo via the following chart

#### Continuous Wiener-Process Acceleration
This demo is described in detail in Section 2.2.4 on pages 11 to 15 of the
[EKF/UKF Documentation](https://github.com/eddelbuettel/rcppkalman/blob/master/inst/ekfukf/ekfukf-documentation.pdf);
the animation is part of the corresponding Matlab code in
[kf_cwpa_demo.m](https://github.com/eddelbuettel/rcppkalman/blob/master/inst/ekfukf/demos/kf_cwpa_demo/kf_cwpa_demo.m). We
show the two final charts which provide animations of the smoothing and
filtering in our version [demo/kf_cwpa_demo.R](https://github.com/eddelbuettel/rcppkalman/blob/master/demo/kf_cwpa_demo.R):


### Status
Working, but still far from complete. We currently support two demo scripts
based on linear smoothers and filters. Additional functions should get added
over time.
### Author
The [EKF/UKF Toolbox for Matlab](http://becs.aalto.fi/en/research/bayes/ekfukf)
was written by Simo Särkkä, Jouni Hartikainen, and Arno Solin.
Dirk Eddelbuettel is writing and maintaing this package by porting it to R and
C++ via [Rcpp](https://github.com/RcppCore/Rcpp) and particularly [RcppArmadillo](https://github.com/RcppCore/RcppArmadillo).
### License
This package is released under GNU General Public License, Version 2 or
later. EKF/UKF itself (which is included) is released under the GNU General
Public License, Versions 2 and 3.