Signal processing
COM-202
Media
EE-205 Signals and Systems - Spring 2021
EPFL EE-205 - cours 11 - 2025
25.05.2025, 10:13
Cours 11
23 mai 2025
Prof. Jean-Philippe Thiran
EPFL EE-205 - cours 10 - 2025
16.05.2025, 16:28
Cours 10
16 mai 2025
Prof. Jean-Philippe Thiran
EPFL EE-205 - cours 9 - 2025
14.05.2025, 21:13
Cours 9
9 mai 2025
Prof. Jean-Philippe Thiran
EPFL EE-205 - cours 8 - 2025
03.05.2025, 17:53
Cours 8
2 mai 2025
Prof. Jean-Philippe Thiran
EPFL EE-205 - cours 7 - 2025
04.04.2025, 23:45
Cours 7
4 avril 2025
Prof. Jean-Philippe Thiran
EPFL EE-205 - cours 5 - 2025
21.03.2025, 21:09
Cours 5
21 mars 2025
Prof. Jean-Philippe Thiran
EPFL EE-205 - cours 4 - 2025
14.03.2025, 16:28
Cours 4
14 mars 2025
Prof. Jean-Philippe Thiran
EPFL EE-205 - cours 3 - 2025
07.03.2025, 16:24
Cours 3
7 mars 2025
Prof. Jean-Philippe Thiran
EPFL EE-205 - cours 2 - 2025
28.02.2025, 23:38
Cours EPFL EE-205 Signaux et Systèmes
Cours 2
28 février 2025
Prof. Jean-Philippe Thiran
EPFL EE- 205 - cours 1 - 2025
27.02.2025, 09:33
Cours EPFL EE-205 Signaux et Systèmes
Cours 1
21 février 2025
Prof. Jean-Philippe Thiran
EPFL - EE-205 – Signaux & Systèmes - intro 2025
21.02.2025, 15:35
Introduction au cours EPFL EE-205 Signaux et Systèmes
Section EL
Prof. Jean-Philippe Thiran - 21 février 2025
EPFL - EE-205 - cours 11
31.05.2024, 22:42
Cours 11
31 mai 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 10
24.05.2024, 20:30
Cours 10
24 mai 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 9
17.05.2024, 19:58
Cours 9
17 mai 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 8
04.05.2024, 09:58
Cours 8
3 mai 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 7
26.04.2024, 20:44
Cours 7
26 avril 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 6
15.04.2024, 12:35
Cours 6
12 avril 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 5
22.03.2024, 16:04
Cours 5
22 mars 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 4
15.03.2024, 16:11
Cours 4
15 mars 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 3
08.03.2024, 15:50
Cours 3 - 8 mars 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 2
01.03.2024, 16:00
Cours 2 - 1er mars 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - cours 1
01.03.2024, 15:24
Cours 1 - 23 férvier 2024
Prof. Jean-Philippe Thiran
EPFL - EE-205 - introduction 2024
01.03.2024, 15:21
Section EL
Prof. Jean-Philippe Thiran - 23 février 2024
Final Exam Review Session - Sampling
16.06.2021, 13:10
Lecture 12 - Course Overview
03.06.2021, 14:41
Lecture 12 - System Composition
01.06.2021, 17:47
Lecture 12 - Difference Equations
01.06.2021, 17:36
Lecture 12 - LTI Systems and z-Transform
01.06.2021, 17:32
Lecture 11 - z-Transform and LTI Systems
26.05.2021, 14:19
Lecture 11 - ROC for rational transforms
26.05.2021, 14:17
Lecture 11 - Region of Convergence (ROC)
26.05.2021, 08:00
Lecture 11 - Introduction to the z-Transform
26.05.2021, 07:43
Lecture 10 - Control Systems
21.05.2021, 11:24
Lecture 10 - Block Diagrams
19.05.2021, 08:29
Lecture 10 - Differential Equations and System Composition
19.05.2021, 08:17
Lecture 10 - Laplace Transform and LTI Systems
19.05.2021, 08:01
Lecture 9 - LTI Systems and the Laplace Transform
12.05.2021, 08:26
Lecture 9 - ROC 2
12.05.2021, 08:24
Lecture 9 - ROC
12.05.2021, 07:57
Lecture 9 - Introduction to the Laplace Transform
12.05.2021, 07:53
Midterm Review - Problem 5
07.05.2021, 11:56
Midterm Review - Problem 4
07.05.2021, 11:55
Midterm Review - Probmes 1, 2, and 3
07.05.2021, 11:55
Lecture 8 - Sampling
06.05.2021, 08:39
Lecture 7 - Sampling and Reconstruction
29.04.2021, 10:09
Lecture 7 - The Sampling Theorem
28.04.2021, 11:56
Lecture 7 - Sampling Complex Exponentials
28.04.2021, 10:22
Lecture 7 - Introduction to Sampling
28.04.2021, 09:06
Midterm Review Session
21.04.2021, 08:33
Lecture 6.3 - Filters
14.04.2021, 15:15
Lecture 6.2 - Frequency Response and System Composition
14.04.2021, 10:06
Lecture 6.1 - Frequency Response
14.04.2021, 09:54
Lecture 5.4 - DTFT and stable LTI systems
23.03.2021, 17:53
Lecture 5.3 - DTFT Properties
23.03.2021, 17:50
Lecture 5.2 - DTFT
23.03.2021, 17:39
Lecture 5.1 - Partial Fraction Expansion
23.03.2021, 17:33
Lecture 4.4 - Stable LTI systems
16.03.2021, 15:17
Fourier Properties
16.03.2021, 15:15
Lecture 4.2 - Fourier Pairs
16.03.2021, 15:12
Lecture 4.1 - Fourier Transform
16.03.2021, 15:08
Lecture 3.4 - Differential and Difference Equations
10.03.2021, 16:46
Lecture 3.3 - LTI System Properties
09.03.2021, 14:31
Lecture 3.2 - Graphical Convolution
09.03.2021, 14:31
Lecture 3.1 - System Composition
09.03.2021, 14:30
Lecture 2.4 - Convolution
02.03.2021, 17:26
Lecture 2.3 - CT Impulse Response
02.03.2021, 17:23
Lecture 2.2 - Dirac Delta
02.03.2021, 16:53
Lecture 2.1 - LTI Systmes
02.03.2021, 16:47
Lecture 1.4 - Systems
25.02.2021, 11:57
Lecture 1.3 - Signals
24.02.2021, 15:49
Lecture 1.2 - Course Logistics
24.02.2021, 11:38
Lecture 1.1 - Course Introduction
24.02.2021, 11:37
Review Session - Part 3
28.07.2020, 14:51
Open Problems 3 and 1
Review Session - Part 2
28.07.2020, 14:49
Open Problems 4 and 5
Review Session - Part 1
28.07.2020, 14:47
Multiple choice Q7, Q9, Q10, and Q11 from the sample final.
Lecture 13 (Midterm Solutions) - Part 2
02.06.2020, 13:53
We go over solutions to the sample midterm.
Part 2 is questions 2 and 3.
Lecture 13 (Midterm Solutions) - Part 1
02.06.2020, 13:51
We go through Midterm Solutions.
Part 1 is multiple choice questions.
Lecture 13 - Course Review
28.05.2020, 09:06
A review of theoretical concepts covered in the course.
Lecture 12 - Part 3
23.05.2020, 15:56
Questions about Lecture 12 Parts 1 and 2, System Composition Examples.
Lecture 12 - Part 2
21.05.2020, 11:47
Application of Laplace transform to LTI Systems
Lecture 12 - Part 1
21.05.2020, 11:10
Laplace transform, ROC with multiple poles
Lecture 11 - Part 3 (Interactive Lecture Session)
15.05.2020, 15:10
Questions on Laplace transform, Inverse Laplace transform example
Lecture 11 - Part 2
14.05.2020, 08:42
Lecture 11 - Part 1
14.05.2020, 08:26
Introduction to Laplace transform, Region of Convergence (ROC), Application to LTI systems.
Lecture 10 - Part 3
11.05.2020, 13:04
Lecture 10 - Part 2
07.05.2020, 07:54
Transfer function of composed LTI systems, difference equations
Lecture 10 - Part 1
07.05.2020, 07:47
Z-transform region of convergence, multiple poles example
Lecture 9 - Part 2
30.04.2020, 08:21
Z-Transforms, Region of Convergence (ROC), Poles and Zeros
Lecture 9 - Part 1
30.04.2020, 07:55
Introduction to the Z-Transform, transfer function for LTI systems
Lecture 8 - Part 3
25.04.2020, 16:38
Sampling review. Examples 2 and 3 on Nyquist rate of signals.
Lecture 8 - Part 2
23.04.2020, 11:55
Sampling reconstruction, aliasing, examples.
Lecture 8 - Part 1
23.04.2020, 09:41
Impulse-train sampling, the sampling theorem
Lecture 7 - Part 3
14.04.2020, 13:42
Supplementary example from the interactive lecture session. This example deals with modulation and is similar to problem 3 on problem set 7.
Lecture 7 - Part 2
14.04.2020, 13:41
Frequency response properties and filters.
Lecture 7 - Part 1
14.04.2020, 13:41
Frequency response interpretation
Lecture 6 - Part 3
14.04.2020, 13:39
DTFT pairs and properties
Lecture 6 - Part 2
14.04.2020, 13:38
Definition of discrete-time Fourier transform
Lecture 6 - Part 1
14.04.2020, 13:37
Introduction to discrete-time Fourier transform.
Lecture 5 - Part 4
14.04.2020, 13:09
Application of Fourier transform to LTI systems
Lecture 5 - Part 3
14.04.2020, 13:09
Fourier transform properties
Lecture 5 - Part 2
14.04.2020, 13:08
Definition of Fourier transform and Fourier transform pairs.
Lecture 5 - Part 1
14.04.2020, 13:05
Introduction to continuous-time Fourier transform.
Welcome to the spring 2025 edition of Signal Processing (COM-202)!
Practical information
Class Schedule:
Lectures:
Monday, 15:15 to 17:00, room BCH2201
Tuesday, 10:15 to 12:00, room CE14
Exercise sessions:
Friday, 08:15-10:00, rooms INM10, INM11, INM201, INM202
Important: every student has been assigned to a specific room for all the exercise sessions in the semester and you can find your room number via this link. In order to avoid overcrowding, it is mandatory that you respect the official room assignment.
Update: Due to lack of attendance, there won't be any assistants in the room INM10 from now on. If you are assigned to INM10, you can use the room for self study or go to INM11. (28.03.2025)
Teaching Staff:
Instructors:
Shkel, Yanina
Prandoni, Paolo
Teaching Assistants:
Coban, Emre
Deschenaux, Justin
Song, Ryan
Çadir, Cemre
Homework, coding labs, and grading policy
Homework and Exercise Sessions
Every Monday, a new problem set will be made available on Moodle; the exercises will focus on the topics covered during the lectures on Monday and Tuesday. Every Friday you will be able to attend a two-hour exercise session led by the teaching assistants, where you will be able to work on the problems and ask for clarifications or assistance if needed. Of course you are encouraged to start working on the problems before Friday's session in order to make the most of the interaction with the teaching staff.
It is essential that you do your homework and that you try to do it by
yourself. Only by thinking hard and by solving the homework problems you
can gain a true understanding of the course material and prepare
yourself for the exam.
Weekly Lab Sessions
The great thing about Signal Processing is that almost everything that we will study in class can be implemented in practice as a computer program. To help you develop a feel for how to translate the theory into algorithmic implementations we have prepared a series of Jupyter Notebooks using Python that complete and cast in a computational light the topics discussed during the lectures.
Every Monday afternoon, you will have the opportunity to participate in a hands-on lab session where you can explore and play with the notebooks that have been released so far. In many cases, you will be asked to complete part of the code or write short functions that implement some signal processing functionality; teaching assistants will be there to answer your questions and help you if you get stuck. It is important that you complete the labs early in the week, as lectures will be based on the lab content.
While the labs will not be
graded directly, it is crucial that you work on them diligently since a) some of the homework problems will require you to write some code and 2) the final exam will include questions that require you to understand how to code signal processing algorithms in Python.
Python notebooks HOWTO:
Python notebooks are special .ipynb files that combine code,
commentary in HTML or markup, audio, video and other media. They are
meant to be edited and run in a browser, which acts as the user
interface to an underlying Python interpreter.
From a
practical point of view, ideally you will want to run the Python
notebooks on your own PC; for this I recommend installing Anaconda,
which includes Jupyer lab out of the box. In this case the Python
interpreter and the associated environments will be running locally,
with obvious efficiency and access to the local filesystem. The notebooks are hosted in GitHub and the easiest way to obtain them in one go is to simply clone this repository.
Alternatively, thanks to the NOTO team
at EPFL, you have the option to use your browser to connect to a remote
Python environment. In this case you do not need to install a local
Python distribution and libraries but of course you will be limited by
the fact that the computing resources are shared among many users. The
NOTO environment is very convenient to explore notebooks from any PC and
you can either import notebooks directly from GitHub or upload your own
files. For your convenience, every week we will provide a link to open the current notebook in your NOTO sandbox.
Final exam and grading
There will be no midterm exam but we will hand out a take-home, non-graded midterm during the semester that you can use as a checkpoint to see if
you're up to speed with the class. We expect to release the midterm the week of April 7, but we reserve the right to update this date if needed. To help you work on the midterm, we plan to not have a separate problem set that week; you will have the exercise session to work on it. When the time comes, please try to solve the mock midterm as if it were a real exam; the solution will be discussed in class the following week.
The date and place for the final exam will be announced towards the end of the semester. The
final exam is closed-book. However, you will be allowed to bring with
you two double-sided A4 sheets of handwritten notes: photocopies
are not allowed. Calculators and all other electronic devices are not allowed either.
The final exam will be a mix of multiple choice and open answer questions. About half of the final exam will be multiple choice, and about half will be open questions. We will provide you with a sample final that will match the format of the actual final by the end of the semester.
Grading: If you do not hand in your final exam your overall grade will be “NA”. Otherwise, your grade will be determined based on the following weighted average:
- 10% for the submitted homework questions (0 to 10 points)
- 90% for the final exam (0 to 90 points)
The sum of your homework score and your final exam score will be mapped to your final grade using the following scale:
| Points | 0 - 9 | 10 - 14 | 15 - 19 | 20 - 24 | 25 - 29 | 30 - 34 | 35 - 39 | 40 - 44 | 45 - 49 |
| Grade | 1 | 2 | 2.25 | 2.5 | 2.75 | 3 | 3.25 | 3.5 | 3.75 |
| Points | 50 - 54 | 55 - 59 | 60 - 64 | 65 - 69 | 70 - 74 | 75 - 79 | 80 - 84 | 85 - 89 | 90+ |
| Grade | 4 | 4.25 | 4.5 | 4.75 | 5 | 5.25 | 5.5 | 5.75 | 6 |
Class material and additional resources
Every week, we will post lecture slides from in-person lectures, weekly problem sets, and problem set solutions on Moodle. Additional handouts will also be made available occasionally.
For those of you who prefer working on a textbook, please consider getting a copy of Signal processing for Communications, EPFL Press, 2008, by P. Prandoni and M. Vetterli. You can download a pdf copy online for free here (or purchase the printed edition online, although availability may vary). The book covers primarily the "discrete time" portions of the course.
Recommended additional textbooks:
- Discrete-Time Signal Processing, by A. V. Oppenheim and R. W. Schafer (Prentice-Hall, 1989); this is the "bible" of digital signal processing and a must-have textbook if you are serious about DSP.
-
Signals & Systems, by A. V. Oppenheim, A. S. Willsky, S. H. Nawab (Prentice-Hall, 1997); another classic textbook, with a focus on continuous-time signals and systems.
- Foundations of Signal Processing, by M. Vetterli, J.
Kovacevic and V. Goyal; extremely comprehensive and rigorous reference; a
must-read for the more mathematically inclined. The textbook is
available for sale but you can also get a pdf copy online.
Online lectures:
Although this edition of COM-202 will not be recorded, a significant part of the material that we will cover in class is available as a
four-part online class on Coursera. The online course has been available
to the public free of charge for the past eight years and has attracted
more than 100K students worldwide so far; this user volume made sure
that most (if not all) typos and mistakes
have been found and corrected. On top of the videos, the online material
contains several sets of auto-graded exercises that provide you with
additional ways to test your progress. You are welcome to use the online
material as a supplemental resource or as a replacement for the
on-campus lectures if you miss any. (Please note that Coursera will try to ask you for your credit card information when you enroll in the DSP classes; simply ignore their prompt and click on "Audit the course" to enroll for free). You may also wish to access the Signals and Systems 2021 Videos to supplement the online Coursera class.
- EE-205 - Signals and Systems Lecture notes (File)
- Companion Booklet for the Coursera DSP lectures (File)
- Selection of questions from past exams (without solutions) (File)
- Selection of questions from past exams (with solutions) (File)
- Exercises from past exams (Folder)
- Exercises from past exams with solutions (Folder)
- Transform Tables (File)
Final Exam Information
Time: Friday 20.06.2025, from 15h15 to 18h15
Location: CO 1, CO 2, CO 3, SG 0211
| week 1 | Mon, 1pm | Lecture |
Introduction to COM 202 and practical information |
| Mon, 5pm | Lab (INF2, INF3) | Introduction to Python & NumPy (warmup) |
|
| Tue, 10am | Lecture |
Discrete-time signals and their properties |
|
| Fri, 8am | Exercises | Exercise session for Homework #1 |
- Lecture slides and course notes (Folder)
- Math self-test (File)
- Homework #1 (File)
- Solutions for Homework #1 (File)
- Python Lab #1: introduction to Python and NumPy (Page)
- Links to Coursera videos (Page)
| week 2 | Mon, 3pm | Lecture |
Review of linear algebra and vector space |
| Mon, 5pm | Lab (INF2, INF3) |
Work on released notebooks |
|
| Tue, 10am | Lecture |
Vector spaces for signals |
|
| Fri, 8am | Exercises | Homework #2 |
- Lecture slides and course notes (Folder)
- Homework #2 (File)
- Solutions for hw2 (File)
- Links to Coursera videos (Page)
| week 3 | Mon, 1pm | Lecture |
Introduction to Fourier Analysis |
| Mon, 5pm | Lab (INF2, INF3) |
Notebook #2: the DFT |
|
| Tue, 10am | Lecture |
The Discrete Fourier Transform |
|
| Fri, 8am | Exercises | Homework #3 |
- Lecture slides and course notes (Folder)
- Homework #3 (File)
- Solutions of hw3 (File)
- Python Lab #2: the Discrete Fourier Transform (Page)
- Links to Coursera videos (Page)
- Additional material and links (Page)
| week 4 | Mon, 3pm | Lecture |
The short-time Fourier Transform (STFT) |
| Mon, 5pm | Lab (INF2, INF3) |
Work on released notebooks |
|
| Tue, 10am | Lecture |
IC Boost - no class today |
|
| Fri, 8am | Exercises | Homework #4 |
| week 5 | Mon, 3pm | Lecture |
The DTFT |
| Mon, 5pm | Lab (INF2, INF3) |
Lab #3: DTMF dialing |
|
| Tue, 10am | Lecture |
DTFT and wrap-up of Fourier analysis |
|
| Fri, 8am | Exercises | Homework #5 |
- Lecture slides and course notes (Folder)
- Homework #5 (File)
- solutions of hw5 (File)
- Python Lab #3: DTMF dialing (Page)
- Links to Coursera videos (Page)
| week 6 | Mon, 3pm | Lecture |
Linear Time-Invariant Discrete-Time Systems |
| Mon, 5pm | Lab |
Work on released notebooks | |
| Tue, 10am | Lecture |
Ideal filters |
|
| Fri, 8am | Exercises | Homework #6 |
| week 7 | Mon, 3pm | Lecture |
The z-transform |
| Mon, 5pm | Lab |
Work on released notebooks |
|
| Tue, 10am | Lecture |
Filter design |
|
| Fri, 8am | Exercises | Homework #7 |
- Lecture slides and course notes (Folder)
- Homework #7 (File)
- hw7solutions (File)
- Links to Coursera videos (Page)
- Optional handout: The Swiss Army Knife of DSP (from IEEE SP magazine) (File)
- Pole-zero interactive demo (File)
| week 8 | Mon, 3pm | Lecture |
Filter implementation |
| Mon, 5pm | Lab |
Lab#4: discrete-time filters |
|
| Tue, 10am | Lecture |
Real-time audio processing |
|
| Fri, 8am | Exercises | Homework #8 |
- Lecture slides and course notes (Folder)
- Python Lab #4: Digital Filters (Page)
- Homework #8 (File)
- Solutions for Homework #8 (w/ graded solution) (File)
- Equalization demo (Python code) (File)
- Real-time guitar effects (Python code) (File)
- Real-time voice transformer on a microcontroller (URL)
- Links to Coursera videos (Page)
| week 9 | Mon, 3pm | Lecture |
Signal Processing in the Wild (by S. Kashani) |
| Mon, 5pm | Lab | You can use the lab session to work on Mock Midterm |
|
| Tue, 10am | Lecture |
Continuous-time signal processing and Fourier analysis |
|
| Fri, 8am | Exercises | no exercise session (holiday) |
- Guest lecture slides: Signal Processing in the Wild by S. Kashani (Folder)
- Lecture slides and course notes (Folder)
- Sample Midterm Exam (File)
- Sample Midterm Exam Solutions (File)
- Appendices (File)
| week 10 | Mon, 3pm | Lecture |
Sampling |
| Mon, 5pm | Lab | No new lab today |
|
| Tue, 10am | Lecture |
Interpolation |
|
| Fri, 8am | Exercises | Homework #10 |
- Lecture slides and course notes (Folder)
- Homework #10 (File)
- Solutions for Homework #10 (w/ graded question) (File)
- Links to Coursera videos (Page)
| week 11 | Mon, 3pm | Lecture |
Applications of sampling and interpolation, multirate |
| Mon, 5pm | Lab |
Lab #5: Audio signal processing | |
| Tue, 10am | Lecture |
Solution and discussion of midterm exercises | |
| Fri, 8am | Exercises | Homework #11 |
- Lecture slides and course notes (Folder)
- Homework #11 (File)
- Solutions for Homework #11 (w/ graded question) (File)
- Python Lab #5: Audio signal processing (Page)
- Links to Coursera videos (Page)
| week 12 | Mon, 3pm | Lecture |
Stochastic and adaptive signal processing |
| Mon, 5pm | Lab |
Lab #6: adaptive echo cancellation | |
| Tue, 10am | Lecture (CM12) | Quantization | |
| Fri, 8am | Exercises | Review of past homework |
- Lecture slides and course notes (Folder)
- Python Lab #6: Adaptive echo cancellation (Page)
- Links to Coursera videos (Page)
| week 13 | Mon, 3pm | Lecture |
Image processing |
| Mon, 5pm | Lab |
Work on released notebooks |
|
| Tue, 10am | Lecture |
Final review and discussion of typical exam questions |
|
| Fri, 8am | Exercises | Homework #12 |
- Lecture slides (Folder)
- Homework #12 (File)
- Solutions for Homework #12 (w/ graded solution) (File)
- Links to Coursera videos (Page)
| week 14 | Mon, 3pm | Lecture |
Compression |
| Mon, 5pm | Lab |
No lab (but you can come to the lab room to ask questions!) |
|
| Tue, 10am | Lecture |
Final review and discussion of typical exam questions | |
| Fri, 8am | Exercises | review session |