I have a touch sensor with 28 pixels that outputs integers relative to how much pressure is being applied. No pressure equals a value of $0$ on a given pixel, however there is noise in the range $+/- 40$. When pressure is applied values could be anywhere from 200 to 2000.

I want to filter out this noise, and thought of a Kalman filter. Covariances for measurement noise can easily be calculated by sampling data, however I’m not sure what the process noise would be. I’m not sure there is a way to predict the next state from previous states.

So does that mean a Kalman filter is not appropriate for this application?

I think a low pass filter of sorts might be better, as the noise has a much higher frequency than actual changes in pressure.

One other note: Sometimes after releasing pressure, the data will still be higher in pixels where pressure was applied. Possibly in the range 100-200. Would a Kalman filter help reducing this noise?

I also want to interpolate the data somehow to simulate a higher resolution, could a Kalman filter help here?

  • $\begingroup$ You've got observation noise, but no dynamical model of the underlying process. If the measurements were noiseless, would you have any basis for predicting the measurement in the next time interval? $\endgroup$ Commented Jun 2, 2018 at 23:23
  • $\begingroup$ Even without noise, no way of predicting next outcome. I guess there is no reason to use a kalman filter here due to the lack of dynamical model. $\endgroup$ Commented Jun 2, 2018 at 23:47

1 Answer 1


I think you would be able to use the Kalman filter to smooth out the observation/process noise but there are several things that you might need to pay attention to:

  • The Kalman filter is an estimation/prediction tool which minimizes the mean square error (MSE) of predictions for linear systems. In your case, since you do not have access to the dynamics, the KF might or might not work very well due to the fact that there might be "nonlinearities" which a traditional KF cannot handle very well.
  • In general, the process noise covariance is unknown in many KF applications. In this case, given that you do not know the process noise, I suggest to treat the process noise covariance as a "tuning" parameter. Based on my experience, trial and error usually is the best way to tune it up.
  • Not being able to predict the next input to your system does not deter you from implementing a KF. Basically, it can be argued that the input to your system (e.g. in your case users' touching pressure) does not affect the performance of your filter -- this is a well-known fact in control theory called the Separation Principle-- or as some say, the input does not have any "probing" effect on your filter output in linear systems.

To sum it up, I would implement a Kalman filter and after shedding some tears tuning it, you can hope that it works (and it most probably will!).


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .