This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, go to https://wso2.com/documentation/.

Kalman Filter Extension

This extension provides Kalman filtering capabilities to Siddhi. This allows you to detect outliers of input data. Following are the functions of the Kalman Filter extension.

Kalman Filter function

This function uses measurements observed over time containing noise and other inaccuracies, and produces estimated values for the current measurement using Kalman algorithms. The parameters used are as follows.

  • measuredValue: The sequential change in the observed measurement. e.g., 40.695881
  • measuredChangingRate: The rate at which the measured change is taking place. e.g., The velocity with which the measured value is changed can be 0.003 meters per second.
  • measurementNoiseSD: The standard deviation of the noise. e.g., 0.01
  • timestamp: The time stamp of the time at which the measurement was carried out.
Syntax<double, double> kf:kalmanFilter(<double> measuredValue)
Extension TypeFunction
Example
  • 1st round: kf:kalmanFilter(-74.178444) returns an estimated value of -74.178444.
  • 2nd round: kf:kalmanFilter(-74.175703) returns an estimated value of -74.1770735006853.
  • 3rd round: kf:kalmanFilter(-74.177872) returns an estimated value of  -74.1773396670348.
Syntax<double, double> kf:kalmanFilter(<double> measuredValue, <double> measurementNoiseSD)
Extension TypeFunction
Example
  • 1st round: kf:kalmanFilter(-74.178444, 0.003) returns an estimated value of -74.178444.
  • 2nd round: kf:kalmanFilter(-74.175703, 0.003) returns an estimated value of -74.17707350205573.
  • 3rd round: kf:kalmanFilter(-74.177872, 0.003) returns an estimated value of  -74.177339667771.
Syntax<double, double> kf:kalmanFilter(<double> measuredValue,  <double> measuredChangingRate, <double> measurementNoiseSD, <long> timestamp)
Extension TypeFunction
Example
  • 1st round: kf:kalmanFilter(-74.178444, 0.003, 0.01, time:timestampInMilliseconds() ) returns an estimated value of -74.1784439700006.
  • 2nd round: kf:kalmanFilter(-74.178444, 0.003, 0.01, time:timestampInMilliseconds() ) returns an estimated value of -74.1784439700006.
  • 3rd round: kf:kalmanFilter(-74.177872, 0.003, 0.01, time:timestampInMilliseconds()) returns an estimated value of  -74.17697314316393.