Over a million developers have joined DZone.

Simple Kalman Filter in C

This code snippet covers simple Kalman filters in C.

· Web Dev Zone
/** A simple kalman filter example by Adrian Boeing 
 www.adrianboeing.com 
 */ 

#include 
#include 
#include 

double frand() {
    return 2*((rand()/(double)RAND_MAX) - 0.5);
}

int main() {

    //initial values for the kalman filter
    float x_est_last = 0;
    float P_last = 0;
    //the noise in the system
    float Q = 0.022;
    float R = 0.617;

    float K;
    float P;
    float P_temp;
    float x_temp_est;
    float x_est;
    float z_measured; //the 'noisy' value we measured
    float z_real = 0.5; //the ideal value we wish to measure

    srand(0);

    //initialize with a measurement
    x_est_last = z_real + frand()*0.09;

    float sum_error_kalman = 0;
    float sum_error_measure = 0;

    for (int i=0;i
Topics:
web dev,c

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}