# CDS 110b: Sensor Fusion

 WARNING: This page is for a previous year. See current course homepage to find most recent page available.

In this lecture we show how the Kalman filter can be used for sensor fusion and explore some variations on the basic Kalman filter, including the extended Kalman filter.

## Lecture Outline

1. Sensor fusion using Kalman filters
2. The extended Kalman filter
3. Parameter estimation using EKF

## Lecture Materials

Q: How do you deal with time correlated noise (eg, GPS jumps on Alice)?

Correlated noise can be put into the Kalman filtering framework by using a (linear) filter to give a correlated noise source with a given correlation function (or spectral density). Suppose that $H(s)$ is a transfer function that filters Gaussian white noise and provides the desired correlation. Let $(A_{f},B_{f},C_{f})$ be a state space representation for the filter. Then the entire system can be written as

 $\left[{\begin{matrix}x\\z\end{matrix}}\right]=\left[{\begin{matrix}A&FC_{f}\\0&A_{f}\end{matrix}}\right]\left[{\begin{matrix}x\\z\end{matrix}}\right]+\left[{\begin{matrix}B\\0\end{matrix}}\right]u+\left[{\begin{matrix}0\\B_{f}\end{matrix}}\right]v$ $y=\left[{\begin{matrix}C&0\end{matrix}}\right]\left[{\begin{matrix}x\\z\end{matrix}}\right]+w$
This system takes a Guassian white noise input $v$, filters it to give the desired spectrum, and uses it to drive the system.

For Alice, the most correct approach would be to model the noise as something other than a Gaussian process (in which case the theory we have studied doesn't directly apply). However, we can also take data from the sensor and develop the correlation function numerically, then determine the linear system that best models the correlation.

Q: In problem 1(a), can we assume $\alpha$ and $\beta$ as given in homework #2 when doing our plots? Can we also assume them when doing the calculations?

Getting an expression first in terms of $\alpha$ and $\beta$ would be good, and then plugging in the values from homework #2. (And as always, if you used different values, please be sure to clearly state that.)

Q: In problem 1(b), what transfer function should we use to calculate the gain margin? I know we want open loop, but do we want to break the loop such that it's SISO?

Yes, break the loop so it's SISO. In the coming weeks we'll make clear exactly where we'd want to break the loop and why based on precisely where the disturbances and noise are, but for now...just pick a SISO break spot.

Q: In dfan_kf.m, shouldn’t P22 be y1(:,20) and P33 be y1(:,27)?

Good catch! There is a mistake in the file. You need to add 7 to each entry to go from one diagonal entry to the next. The code as written will plot the first column of the P matrix.

Q: What's up with the units of the power spectral density on the LN200 datasheet? Why is it in degrees/sqrt(hr)?

Sometimes, the square root of the PSD is given instead of the PSD, as in this case. Thus, to get the PSD, you'll need to square the given value. (Also, remember that the units of PSD are not the same as the units of the covariance, e.g. $\sigma ^{2}$. Because integrating the PSD over a band of frequencies will give you the correlation in the frequency band, the units of the PSD should be the units of $\sigma ^{2}$divided by Hz.)