# SimpleKalmanFilter.H question

I'm using the SimpleKalmanFilter, and it works great.
The problem is that I don't understand the parameters. I just used what the example showed.
I studied (googled) KalmanFilter Filters, but I don't know how A, B, and C effect the results.

SimpleKalmanFilter Filter1(A, B, C);

side note: I know a guy who meet Mr. Kalman back in the 70's.

Is it documented? Link?

If it works great, then you don't have a problem.

i'm curious, what are you using a kalman filter for? guidance ?

Thanks for the responses.

GCJR: It's a simple potentiometer to servo program. The environment was noisy and it caused jitter in the servo response. I tried capacitors and resistors on the sense line to filter it out, but it did not help much. The Kalman filter did the trick.

JREMINGTON: I need to be able to explain the code, at this moment I can't describe the variables in the Kalman filter very well. My next step is write a for loop statement that increments the variables and then sends the results to the serial plotter for examination.

AARG: The SimpleKalmanFilter is in the Arduino library and has a few examples, but it does not describe the actions of the variables. It does make a little sense to me, but I'm no mathematician.

SimpleKalmanFilter(e_mea, e_est, q);
e_mea: Measurement Uncertainty
e_est: Estimation Uncertainty
q: Process Noise

Thanks again, this not a critical problem for me. I'll do some more Google research.

Itâ€™s a simple potentiometer to servo program. The environment was noisy and it caused jitter in the servo response

you might try leaky integration, a form of low-pass filtering

A += (s - A) * K // K < 1

where A is the average and s is the sample

For potentiometers, this FilteredAnalog class works very well: FilteredAnalog.ino

It uses a combination of an optimized low-pass filter and hysteresis to prevent flipping back and forth between two neighboring values.

There's a great Kalman filter course by ilectureonline: http://www.ilectureonline.com/lectures/subject/SPECIAL TOPICS/26/190
It's not really something you can understand by reading a single answer on an online forum.

In theory, a Kalman filter with the right parameters will outperform all other (linear) filters, it's an optimal state estimator. However, for many applications, such as filtering potentiometer readings, it's overkill. The FilteredAnalog class mentioned above will be much faster than a Kalman filter implementation with floating point values, and because of the hysteresis, it will give better results than a poorly tuned Kalman filter.

Pieter

e_mea: Measurement Uncertainty
e_est: Estimation Uncertainty
q: Process Noise

Those variables are explained in papers or books describing the theory of the Kalman filter. Here is a short, readable explanation from Dan Simon, who wrote one of the best books on the topic.

But you need to have good estimates for those values to get the best results, and for one dimension, a moving or exponential average performs about as well.