Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Explain process noise terminology in Kalman Filter

Tags:

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.

like image 253
frank Avatar asked Oct 23 '13 09:10

frank


People also ask

What is process model in Kalman filter?

Kalman filters are used to estimate states based on linear dynamical systems in state space format. The process model defines the evolution of the state from time k−1 to time k as: xk=Fxk−1+Buk−1+wk−1 E1.

What is process noise covariance matrix?

The process covariance acts as a weighting matrix for the system process. It relates the covariance between the ith and jth element of each process-noise vector. It is defined as: Σij=cov(→xi,→xj)=E[(→xi−μi)⋅(→xj−μj)]

What are the types or variants of the Kalman filter?

A Kalman Filter (KF), an Extended Kalman Filter (EKF) and an Unscented Kalman Filter (UKF) are described next.


2 Answers

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.

like image 67
Dave Avatar answered Sep 20 '22 06:09

Dave


  1. Yeah, I don't think that sentence is a good one. The primary purpose of a Kalman filter is to minimize the effects of observation noise, not process noise. I think the author may be conflating Kalman filtering with Kalman control (where you ARE trying to minimize the effect of process noise).
  2. The state does not "fluctuate" over time, except through the influence of process noise.

Remember, a system does not generally have an inherent "true" state. A refrigerator is a bad example, because it's already a control system, with nonlinear properties. A flying cannonball is a better example. There is some place where it "really is", but that's not intrinsic to A. In this example, you can think of wind as a kind of "process noise". (Not a great example, since it's not white noise, but work with me here.) The wind is a 3-dimensional process noise affecting the cannonball's velocity; it does not directly affect the cannonball's position.

Now, suppose that the wind in this area always blows northwest. We should see a positive covariance between the north and west components of wind. A deviation of the cannonball's velocity northwards should make us expect to see a similar deviation to westward, and vice versa.

Think of Q more as covariance than as variance; the autocorrelation aspect of it is almost incidental.

like image 25
Sneftel Avatar answered Sep 21 '22 06:09

Sneftel