Skip to content

Xylambda/kalmankit

Repository files navigation

GitHub tag (latest by date) GitHub code size in bytes GitHub issues workflow doc

The Kalman filter is an optimal estimation algorithm: it estimates the true state of a signal given that this signal is noisy and/or incomplete. This package provides a multidimensional implementation of:

  • Standard Kalman Filter: if the noises are drawn from a gaussian distribution and the underlying system is governed by linear equations, the filter will output the best possible estimate of the signal's true state.

  • Extended Kalman Filter: can deal with nonlinear systems, but it does not guarantee the optimal estimate. It works by linearizing the function locally using the Jacobian matrix.

Installation

Normal user

pip install kalmankit

Developer

git clone https://github.com/Xylambda/kalmankit.git
pip install -e "kalmankit/.[dev]"

Tests

To run tests you must install the library as a developer.

cd kalmankit/
pytest -v tests/

Usage

The library provides 5 examples of usage:

  1. Moving Average
  2. Market Beta estimation
  3. Pendulum estimation with EKF
  4. Standard RTS smoothing for constant-velocity tracking
  5. Extended RTS smoothing for a nonlinear pendulum

Install the examples extra to run the examples:

pip install -e ".[examples]"

References

Cite

If you've used this library for your projects please cite it:

@misc{alejandro2021kalmankit,
  title={kalmankit - Multidimensional implementation of Kalman Filter algorithms},
  author={Alejandro Pérez-Sanjuán},
  year={2021},
  howpublished={\url{https://github.com/Xylambda/kalmankit}},
}

Packages

 
 
 

Contributors

Languages