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/. -r kalmankit/requirements-dev.txt

Tests

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

cd kalmankit/
pytest -v tests/

Usage

The library provides 3 examples of usage:

  1. Moving Average
  2. Market Beta estimation
  3. Pendulum estimation with EKF

A requirements-example.txt is provided to install the needed dependencies to run the 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}},
}