Institute for Dynamic Systems and Control

Recursive Estimation (Spring 2010)

Recursive Filtering and Estimation


4 credit points

Start: 03.03.10
End: 02.06.10

Frequency:  Annually, Spring semester



Raffaello D'Andrea



Angela Schöllig, Sebastian Trimpe




13:15-16:00, NO C 6

(on April 14 only: HG F 5)

Description: Probability review; Bayes theorem; recursive estimation using Bayes theorem; introduction to estimation; standard Kalman filter; extended Kalman filter; particle filtering.

Literature: Notes (available online): Introduction to Estimation and the Kalman Filter by H. Durrant-Whyte and other notes.

Requirements: Introductory probability theory and matrix-vector algebra.


Sep 10
The sample solution of the final exam may be downloaded here.
Sep 07
The final marks (percentages) for the class may be found here.  For Master students, the final grades will be published by the ETH student administrations.  Please contact the teaching assistants if you have any question regarding the grading.
If you want to take a look at your graded exam, please come to ML K33 on Sep 16 from 14:00 to 15:00.
July 30
The results of the second programming exercise are online.  If you have questions or if you want to take a look at the sample solution (will not be available online), please make an appointment with Angela.
July 19
There will be office hours held by Angela and Sebastian during the semester break on the following dates:
  • August 11, 14:00-15:00, ML K33
  • August 16, 14:00-15:00, ML K33
  • August 20, 14:00-15:00, ML K33

If you have questions regarding the preparation for the exam, please come to one of these dates.

June 30
Final Examination:
According to the information by the ETH examination office, the final exam will take place on August 23, 2010 from 14:00-16:30 in ETA F5.

We will offer office hours before the final examination; they will be announced here.

June 03
Example solution of Programming Exercise 2: A complete package including the Matlab Compiler and a Readme File was uploaded.
May 30
The results of the first programming exercise are online.  If you have questions or if you want to take a look at the sample solution (will not be available online), please make an appointment with Sebastian.
May 28
Programming Exercise 2: An example solution was uploaded, see 'Quizzes and Programming Exercises' section. You can use it to compare your code with.
May 27
Programming Exercise 2: An updated template was uploaded. The half-plane measurement was incorrect before.
May 25
In class, the variance update equation for the Kalman Filter (2nd step) was derived as follows:
P(k|k) = (I - KH) P(k|k-1) (I - KH)^T + KRK^T.
Some students asked why we weren't using the shorter formula
P(k|k) = (I - KH) P(k|k-1)
which can be derived from the first by using the equation of the filter gain K. The reason why the first equation for P(k|k) is preferred over the second is that it is symmetric and therefore preserves the symmetry of P(k|k) in the case of numerical errors.
May 17
A link to the class notes for the two lectures on particle filtering has been added in the Lectures section below.

The Matlab script that will be used in this week's lecture (May 19) to generate approximations of a Gaussian distribution can be downloaded here.

Apr 30
An updated version of the programming exercise has been uploaded (Ver 2).  We have added in the problem description that all random variables are assumed to be mutually independent and independent over time.
(Thanks for pointing this out.)
Apr 28
The first programming exercise is online.  It is due on May 12.
Apr 19
The quiz results and sample solutions are available (see section Quizzes and Programming Exercises below).
Mar 31
Information regarding the Quiz:
  • Date: April 14
  • Start: 13:15 sharp, duration: 45 min
  • Location: HG F 5
  • Afterwards two hours of lecture (no exercise class)
  • Material covered: Lectures #1 to #5
  • No aids (books, notes etc.) permitted
  • Paper will be provided
Mar 26
Please notice an update on the class schedule:  the lecture #7 will be given by Prof. D'Andrea on Apr 15 (Thu) from 18:15 to 20:00; the same lecture will be repeated by Sebastian on Apr 21 (regular lecture time).  The date for the exercise class remains unchanged (Apr 21, 15:15 to 16:00).
Mar 24
The .m file for Problem 12 (Problem Set 2) is added and a slightly updated version of Problem Set 2 is uploaded.
Mar 17
Additional material for today's exercise class can be downloaded here (two different  implementations of the random number generator for the joint pdf example, script for plotting the results, and the derivation of the second implementation that was not covered in class).
Mar 12
Due to unavailability of bigger rooms, the classroom for the lecture and the exercise remains the same (NO C 6).

There is one exception: On April 14 (day of the quiz), the class will take place in HG F 5.

Mar 03
The factsheet that was handed out in class today can be downloaded here.
Feb 10
The first class will take place on March 3.
Feb 10
This website has been updated with the syllabus and other class information.
Jan 27
The class Introduction to Recursive Filtering and Estimation will be held by Prof. Raffaello D'Andrea in Spring 2010. The syllabus is currently under revision; more details will be announced here soon.

Class Facts     

Instructor Prof. Raffaello D'Andrea
Teaching Assistants
Angela Schoellig, Sebastian Trimpe
Lectures Wednesday, 13:15 to 15:00, NO C 6, (on April 14 only: HG F 5)
Exercise class Wednesday, 15:15 to 16:00, NO C 6, (on April 14 only: HG F 5)
Office hours
During the break: Aug 11/16/20, 14:00-15:00, ML K33.

During the semester: By appointment (please send an e-mail to the teaching assistants).

Exam Final written exam during the examination session, covers all material.
40% quiz/programming exercises, 60% final exam if the grade for quiz and programming exercises is better than the grade in the final exam;
100% final exam otherwise.
  Only the two best grades from the quiz and the programming exercises will count towards the 40% above.
  PhD students will get credits for the class if they pass the class (final grade of 4.0 or higher).
Repetition The final exam is only offered in the session after the course unit. Repetition is only possible after re-enrolling. Students who took the class in Spring 09 and have to retake the course should inform the teaching assistants before the beginning of the new class.


# date topic reading
Mar 03
Probability Review
DW: 1, 2
Mar 10
Probability Review
DW: 1, 2
 3 Mar 17
Bayes Theorem
DW: 1, 2
 4 Mar 24
Bayesian Tracking
DW: 1, 2
 5 Mar 31
Introduction to Estimation
DW: 3
 - Apr 7
Easter break
 6 Apr 14
Standard Kalman Filter
DW: 4, 5, 6
 7 (*)
Apr 15
Standard Kalman Filter DW: 4, 5, 6
 7R (*)
Apr 21
 8 Apr 28
Extended Kalman Filter
DW: 7
 - May 05
No class
May 12
No class
 9 May 19
Particle Filtering
PF Tutorial
May 26
Particle Filtering
PF Tutorial
Jun 02
No class


(*)  The lecture will be held by Prof. D'Andrea on April 15 (Thu) from 18:15 to 20:00 in NO C6.  The same lecture will be repeated by one of the teaching assistants on April 21 at the regular place/time.

Reading Material:

The notes Introduction to Estimation and Kalman Filter by Durrant-Whyte are the primary class reference.  The sections relevant to the lectures are indicated above.

Quizzes and Programming Exercises

During the semester, there will be a graded quiz and programming exercises, which can be used to improve the final grade for the course (see "grading"). The quiz will take place at the beginning of the lecture and will test the student's understanding of the corresponding topic. The programming exercises will require the student to apply the lecture material.

Up to three students can work together on the programming exercises.  If they do, they have to hand in one solution per group and will all receive the same grade.

# type topic dates download
Q1 Quiz Probability, Bayes Theorem, Estimation (Lectures #1 to #5)
Apr 14


P1 Programming Kalman filter
Apr 28 (issued)

May 12 (due)



P2 Programming Particle filter
May 26 (issued)

Jun 09 (due)

complete package with compiler)


Problem Sets

We will make sets of problems and solutions available online for the topics covered in the lecture. It is the student's responsibility to solve the problems and understand their solutions. The TAs will answer questions in office hours and some of the problems might be covered during the exercise classes.

# topic
Probability review
2 Bayes theorem, recursive estimation using Bayes theorem

.m file (Problem 12)

3 Introduction to estimation ProblemSet3

.m file (Problem 7)

4 Kalman filter ProblemSet4
5 Particle filter

Wichtiger Hinweis:
Diese Website wird in älteren Versionen von Netscape ohne graphische Elemente dargestellt. Die Funktionalität der Website ist aber trotzdem gewährleistet. Wenn Sie diese Website regelmässig benutzen, empfehlen wir Ihnen, auf Ihrem Computer einen aktuellen Browser zu installieren. Weitere Informationen finden Sie auf
folgender Seite.

Important Note:
The content in this site is accessible to any browser or Internet device, however, some graphics will display correctly only in the newer versions of Netscape. To get the most out of our site we suggest you upgrade to a newer browser.
More information

© 2013 ETH Zurich | Imprint | Disclaimer | 24 August 2013