The Extended Kalman Filter: An Interactive Tutorial for Non-Experts

Part 18: Computing the Derivative

If you've made it this far, you are in a very good position to understand the Extended Kalman Filter. There are just two more things to consider:

  1. How to compute the first derivative from an actual signal, without knowing its underlying function.

  2. How to generalize our single-valued nonlinear state/observation model to the multi-valued systems we've been considering.
To answer the first question, we note that the first derivative of a function is defined as the limit of the difference between successive values of that function, divided by the timestep, as the timestep approaches zero: \[ f'(x) = \lim_{\Delta x \to 0} \frac{f(x+\Delta x) - f(x)}{\Delta x} \] If you don't understand that equation, don't worry: just think about subtracting successive differences of a signal $y$ to approximate its first derivative: \[ \frac{(y_{k+1} - y_k)} {timestep} \] Indeed, as the demo below shows, this finite difference formula is often a very good approximation to the first derivative. The demo allows you to choose among the same three functions as on the previous page (shown in the interval [0,1]), but this time you can select between the derivative and finite difference:

$f(x) = e^{2x}$ $f(x) = 10 log_{10}(x)$ $f(x) = 10 e^{-x/10}$
 
Derivative Finite difference

If one signal (like sensor value $z_k$) is a function of another signal (like state $x_k$), we can divide successive differences of the first signal by successive differences of the second signal: \[ \frac{z_{k+1} - z_k}{x_{k+1}-x_k} \]

Previous:       Next: