All Projects → kenluck2001 → pySmooth

kenluck2001 / pySmooth

Licence: MIT License
A unique time series library in Python that consists of Kalman filters (discrete, extended, and unscented), online ARIMA, and time difference model.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pySmooth

SP Lib
Signal processing method and algorithm library
Stars: ✭ 93 (+220.69%)
Mutual labels:  signal-processing, kalman-filter
adaptive-filters
My collection of implementations of adaptive filters.
Stars: ✭ 32 (+10.34%)
Mutual labels:  signal-processing, kalman-filter
tsa4
R code for Time Series Analysis and Its Applications, Ed 4
Stars: ✭ 108 (+272.41%)
Mutual labels:  kalman-filter, time-series-analysis
kalman-clib
Microcontroller targeted C library for Kalman filtering
Stars: ✭ 43 (+48.28%)
Mutual labels:  signal-processing, kalman-filter
sensor-fusion
Filters: KF, EKF, UKF || Process Models: CV, CTRV || Measurement Models: Radar, Lidar
Stars: ✭ 96 (+231.03%)
Mutual labels:  kalman-filter
Mathematical-Modeling
A sharing of the learning process of mathematical modeling 数学建模常用工具模型算法分享:数学建模竞赛优秀论文,数学建模常用算法模型,LaTeX论文模板,SPSS工具分享。
Stars: ✭ 30 (+3.45%)
Mutual labels:  time-series-analysis
KalmanFiltering
A demo for the performace evaluation of different kinds of Kalman filters, including the conventional Kalman filter (KF), the unscented Kalman filter (UKF), the extended Kalman filter (EKF), the embedded/imbedded cubature Kalman filter (ICKF/ECKF), the third-degree cubature Kalman filter (CKF) and the fifth-degree cubature Kalman filter (FCKF).
Stars: ✭ 37 (+27.59%)
Mutual labels:  kalman-filter
nostromo
BLDC ESC firmware (GPLv3.0)
Stars: ✭ 36 (+24.14%)
Mutual labels:  kalman-filter
bayes-filters-lib
A flexible, modern, C++ recursive Bayesian estimation library.
Stars: ✭ 48 (+65.52%)
Mutual labels:  kalman-filter
Chronetic
Analyzes chronological patterns present in time-series data and provides human-readable descriptions
Stars: ✭ 23 (-20.69%)
Mutual labels:  time-series-analysis
GNSS Compare
A novel framework for processing raw GNSS measurements on an Android smartphone
Stars: ✭ 49 (+68.97%)
Mutual labels:  signal-processing
kafbox
A Matlab benchmarking toolbox for kernel adaptive filtering
Stars: ✭ 70 (+141.38%)
Mutual labels:  signal-processing
MPU6050
STM32 HAL library for GY-521 (MPU6050) with Kalman filter
Stars: ✭ 114 (+293.1%)
Mutual labels:  kalman-filter
Python-Adaptive-Signal-Processing-Handbook
Python adaptive signal processing tutorials
Stars: ✭ 80 (+175.86%)
Mutual labels:  signal-processing
HistoricalVolatility
A framework for historical volatility estimation and analysis.
Stars: ✭ 22 (-24.14%)
Mutual labels:  time-series-analysis
iirj
An efficient IIR filter library written in JAVA
Stars: ✭ 95 (+227.59%)
Mutual labels:  signal-processing
imusensor
Python library for communication between raspberry pi and MPU9250 imu
Stars: ✭ 47 (+62.07%)
Mutual labels:  kalman-filter
DeepTimeSeriesModel
A paper list for Time series modelling, including prediciton and anomaly detection
Stars: ✭ 78 (+168.97%)
Mutual labels:  time-series-analysis
vor-python-decoder
Decodes VOR signal from WAV file to get the bearing to your position
Stars: ✭ 33 (+13.79%)
Mutual labels:  signal-processing
DA Tutorial
This is a 'hands-on' tutorial for the RIKEN International School on Data Assimilation (RISDA2018).
Stars: ✭ 23 (-20.69%)
Mutual labels:  kalman-filter

Tracking the tracker: Time Series Analysis in Python From First Principles

All codes are using python 2.7.

The source code are original work of the author, so any resemblance to existing work on the Internet would be merely coincidental. This work is free from every form of plagarism, so the references of the research papers used in writing the codes are provided.

A number of kalman filtering solution has been biased towards location-based problems. This talk aims to change that stereotype by describing kalman filtering in a form suited for time series analysis and other kinds of applications.

Kalman filtering is a estimation technique that is suited for time series analysis (filtering, forecasting), sensor fusion, and localization. This can be used as a basis for converting static models into incremental learning models.

Kalman filtering works using a two-step process of prediction and correction under some conditions can ensure that we can have a self-correcting system as sample size increases.

Why would the author spend time implementing from first principle or reinventing the wheel. This was done to ensure that the audience internalize the concept described as the implementation are free of unneccessary optimizations that destroy the understanding of the concept.

Run the Test

Download code and navigate to tests folder. The run

$ python -m tests -v

API

See the examples folder.

TO DO

  • Set up project for patch contributions.

  • Make the extended kalma filter's non linear equation easy to use.

  • Replace first order differentiation to automatic differentiation tool like autograd.

  • Reorganize in an installable python package with pip.

  • Robust documentation.

  • Ad more testcases.

Q & A

is the code production ready? You may want to offload aspects of the processing to Cython. Otherwise, it can be suitable for your needs. This is an experimental project.

is the code free from bugs? This code does not have any intentional bug. However, like Donald Knuth would say 'Beware of bugs in the above code; I have only proved it correct, not tried it.'. Only one caveat here, I have demonstrated a use case to show the usefulness of the code.

Feel free to reach out to me for any discussion about anything. Twitter: @kenluck2001 Linkedin: https://www.linkedin.com/in/kenluck2001/

References

  1. Castanon, D., & Karl, C. W. SC505: Stochastic processes. Retrieved 06/15, 2017, from http://www.mit.edu/people/hmsallum/GradSchool/sc505notes.pdf

  2. Wellstead, P. E. & Karl, C. W. (1991). Self-tuning Systems: Control and Signal Processing. Chichester, United Kingdom: John Wiley & Sons Ltd.

  3. Hamilton, J. D. (1994). Time series analysis. Chichester, United Kingdom: Princeton University Press.

  4. Julier, S. J. The scaled unscented transformation. Retrieved 06/15, 2017, from https://www.cs.unc.edu/~welch/kalman/media/pdf/ACC02-IEEE1357.PDF

  5. Terejanu, G. A. Extended kalman filter tutorial. Retrieved 06/15, 2017, from https://www.cse.sc.edu/~terejanu/files/tutorialEKF.pdf

  6. Wan , E. A., & Merwe, R. (2000). The unscented kalman filters for nonlinear estimation. IEEE Adaptive Systems for Signal Processing, Communications, and Control Symposium, pp. 153-158.

  7. Welch, G., & Bishop, G. An introduction to the kalman filter. Retrieved 06/15, 2017, from https://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].