## 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:

- How to compute the first derivative from an actual signal, without knowing its underlying function.
- 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**: A Nonlinear Kalman Filter

**Next**: The Jacobian