Start Here Help Center
Welcome to Digital Signal Processing! This page collects all the details you need to know before you start the class and all the practical information you may wish to return to from time to time. Here are the key points you should remember and the places on this site where you can find more information.
General considerations and prerequisites
We have worked hard to make this class as self-contained as possible but clearly there are only so many "first-principles" that we can review in our limited time. We simply must assume that you do have a working knowledge of calculus and linear algebra and hopefully some notion of probability theory. We encourage you to take the self-assessment quiz we prepared and to review the relevant topics if you encounter any trouble spot while answering its questions. You will find useful references at the end of the class syllabus.
If you just enrolled in this class, please don't forget to fill in the mandatory survey. this will help us know our student base better and will allow you to better tailor our class to your needs.
Schedule
Every week, on Monday at 5pm Central European Time (CET), we will release one or two video lectures and the associated homework. You are free to watch the lectures back to back or to split the workload over different days as best fits your schedule. Lectures will be supplemented by additional material:
- some emblematic examples of famous signals and associated processing, which we call the "signal of the day" section
- weekly numerical examples: these examples, fully worked out in Python, are designed to illustrate in a practical way the concepts that you'll learn during the lectures. You are encouraged to use the code, modify it, play with it.
- occasional handouts to complement the material in the lectures and in the book
- solved exercises, where we detail the steps in working through some homework sets
You can look at the full class syllabus to see an overview of the topics that we will cover. You should anticipate a workload of about 6 to 8 hours per week in order to make the most of the class. This includes watching the videos, doing the homework and studying the associated textbook.
How to pass this class
A word of caution: the videos are packed with information and they should be regarded as concentrated teaching pills rather than something you leisurely watch. We think that the best approach to make the most of online teaching is to give students resources that they can use and reuse according to how much time they can devote to the task. The ideal workflow goes something like this:
- watch the videos
- take notes while watching
- something is unclear? Watch the video again. Repeat if necessary
- use the book to look up concepts that are still fuzzy
- write a cheat sheet of the week to memorize the key concepts
Finally, the most important thing is to work on the exercises. If you're done with the online homework, you can try your hand at the exercises in the companion textbook. When you think you have mastered a concept, try to write a little numerical routine that implements it, paying attention to the details and making sure that it behaves as the theory would predict. Be active in the forums, and exchange ideas with your fellow students. Ask questions in the forums and our TAs will get back to you as soon as possible. Above all, realize that most of the things you find entertaining today (music, video, internet, IM) are available to you thanks to signal processing! It's time to really understand what's inside the box!
Homework
There is a homework set associated to each day of class, so normally there will be two homework sets per week. Please note that the final grade for the class is based on the homework scores only.
The homework is due two weeks after its release date; since homework sets are released on Mondays, the deadline is at 5pm CET on the Monday two weeks later. Please make sure you take your time zone into account since you may incur a late submission penalty if you miscalculate the due date. Full grade for the homework may be achieved only if you submit your final answer before the deadline. Afterwards, for the next five days, a penalty of 10% of the score for each late day is applied; after five days, you will receive no credit for your submission. You can submit your homework only once.
Solutions to the homework will be available immediately after submission: to see the solutions, just go back to your homework submission and comments will be available next to each question.
Practice homework
For each day of class we will provide you with some practice homework. This homework is not graded and detailed solutions will be provided immediately. The practice homework is usually more articulated and complex than the graded homework since we are not constrained by the limits imposed by the autograder. We encourage you to work hard on the practice homework if you want to fully master the topics in the class.
Feedback
Your feedback with respect to the homework is essential in order for us to make the class better; for this purpose, each homework set has a companion set of feedback questions that we kindly ask you to answer to. To show you our appreciation for your help we will give you up to a 5% bonus on your final grade if you answer all of the feedback questions.
Programming assignments
The class contains a series of four short programming assignments in Python. If you complete these assignments, you can earn up to a 10% bonus on your final grade.
Grading
Your final grade for the class will be based on the cumulative score of your homework. In-video quizzes will not be used for your grade.
To compute your final grade, the sum of all your homework grades will be compared to the maximum theoretical score (i.e. the sum of all maximum homework grades). If your total is greater or equal to 40% of the maximum score you will have successfully completed the class and you will obtain a certificate. If your total is greater or equal to 90% of the maximum score you will obtain a certificate with distinction.
Certificates
Students who successfully complete the class will receive a certificate signed by the instructors. You can see a sample certificate here.
Class Resources
The home page is your first stop to make sure you're in synch with what's happening in class; you can access it any time by clicking on the course's logo in the upper right corner of each page. Announcements and updates will be posted there, as well as a brief introduction to each week's new material, so make sure to check it on a regular basis.
Discussion boards
Clearly, due to the number of students enrolled in the class, we will only be able to communicate with you by monitoring and participating to the discussion boards and not by personal email. Both the instructors and a team of extraordinary teaching assistants will be keeping a close watch on the activity in the discussion boards and will be able to answer your question and address any problem in no time. Please make sure to read the guidelines for posting in the forums before you submit your contributions.
Signal of the day
After listening to the first lectures, you will realize that signals are all around us and that's why signal processing is such a diverse and fascinating subject. From variations in stock markets to changes of temperature in meteorology, you will be see how the techniques you are learning in class can be put to work in an incredible range of problems.
The signals of the day will be available in the form of short videos we encourage you to watch. In certain cases, we will also share with you our implementation of the signal of the day in the form of an IPython notebook, so that you can explore and interact with the examples. To know more about Python and IPython notebooks, you can refer to the tutorial we prepared.
Numerical examples
Each week we will release one or more numerical examples. These are fully worked-out toy applications in which we run actual signal processing algorithms on real data and you will be able to run the examples on your PC with minimal requirements. The numerical examples are an integral part of the learning experience and we encourage you to get your hands dirty, so to speak, and play with them as much as possible. You are also encouraged to take the numerical examples as a starting point to write your own DSP code; if you do, don't hesitate to share your efforts with your fellow students in the forum!
In order to run the numerical examples that we will provide you should have (or install) some software on your PC. We will be providing all of the numerical examples in iPython notebook format. For Python, a short introductory tutorial has been provided to help you install the necessary packages on your PC. Please remember that this course is completely agnostic with respect to what programming tool you prefer to use and that all of DSP can be implemented in any current programming language (we will give some examples in C, for instance).
Companion Textbook
The class is based on the book "Signal Processing for Communications", by Paolo Prandoni and Martin Vetterli. The book is available in the following formats:
- for sale in printed form at major retailers (e.g. Amazon)
- in iBook format in the Apple store
- as a free PDF download at http://www.sp4comm.org.
Please note that we compiled a (hopefully comprehensive) list of typos and errata for the first edition; make sure you edit your copy accordingly.
Last Modified Mon 30 Nov 2015 11:45 AM CET