Explain process noise terminology in Kalman Filter

frank picture frank · Oct 23, 2013 · Viewed 29.1k times · Source

I am just learning Kalman filter. In the Kalman Filter terminology, I am having some difficulty with process noise. Process noise seems to be ignored in many concrete examples (most focused on measurement noise). If someone can point me to some introductory level link that described process noise well with examples, that’d be great.

Let’s use a concrete scalar example for my question, given:

x_j = a x_j-1 + b u_j + w_j

Let’s say x_j models the temperature within a fridge with time. It is 5 degrees and should stay that way, so we model with a = 1. If at some point t = 100, the temperature of the fridge becomes 7 degrees (ie. hot day, poor insulation), then I believe the process noise at this point is 2 degrees. So our state variable x_100 = 7 degrees, and this is the true value of the system.

Question 1:

If I then paraphrase the phrase I often see for describing Kalman filter, “we filter the signal x so that the effects of the noise w are minimized “, http://www.swarthmore.edu/NatSci/echeeve1/Ref/Kalman/ScalarKalman.html if we minimize the effects of the 2 degrees, are we trying to get rid of the 2 degree difference? But the true state at is x_100 == 7 degrees. What are we doing to the process noise w exactly when we Kalmen filter?

Question 2:

The process noise has a variance of Q. In the simple fridge example, it seems easy to model because you know the underlying true state is 5 degrees and you can take Q as the deviation from that state. But if the true underlying state is fluctuating with time, when you model, what part of this would be considered state fluctuation vs. “process noise”. And how do we go about determining a good Q (again example would be nice)?

I have found that as Q is always added to the covariance prediction no matter which time step you are at, (see Covariance prediction formula from http://greg.czerniak.info/guides/kalman1/) that if you select an overly large Q, then it doesn’t seem like the Kalman filter would be well-behaved.

Thanks.

EDIT1 My Interpretation

My interpretation of the term process noise is the difference between the actual state of the system and the state modeled from the state transition matrix (ie. a * x_j-1). And what Kalman filter tries to do, is to bring the prediction closer to the actual state. In that sense, it actually partially "incorporate" the process noise into the prediction through the residual feedback mechanism, rather than "eliminate" it, so that it can predict the actual state better. I have not read such an explanation anywhere in my search, and I would appreciate anyone commenting on this view.

Answer

Dave picture Dave · Oct 25, 2013

In Kalman filtering the "process noise" represents the idea/feature that the state of the system changes over time, but we do not know the exact details of when/how those changes occur, and thus we need to model them as a random process.

In your refrigerator example:

  • the state of the system is the temperature,
  • we obtain measurements of the temperature on some time interval, say hourly, by looking the thermometer dial. Note that you usually need to represent the uncertainties involved in the measurement process in Kalman filtering, but you didn't focus on this in your question. Let's assume that these errors are small.
  • At time t you look at the thermometer, see that it says 7degrees; since we've assumed the measurement errors are very small, that means that the true temperature is (very close to) 7 degrees.
  • Now the question is: what is the temperature at some later time, say 15 minutes after you looked?

If we don't know if/when the condenser in the refridgerator turns on we could have: 1. the temperature at the later time is yet higher than 7degrees (15 minutes manages to get close to the maximum temperature in a cycle), 2. Lower if the condenser is/has-been running, or even, 3. being just about the same.

This idea that there are a distribution of possible outcomes for the real state of the system at some later time is the "process noise"

Note: my qualitative model for the refrigerator is: the condenser is not running, the temperature goes up until it reaches a threshold temperature a few degrees above the nominal target temperature (note - this is a sensor so there may be noise in terms of the temperature at which the condenser turns on), the condenser stays on until the temperature gets a few degrees below the set temperature. Also note that if someone opens the door, then there will be a jump in the temperature; since we don't know when someone might do this, we model it as a random process.