Digital Signal Processing

This collection of jupyter notebooks introduces various topics of Digital Signal Processing. The theory is accompanied by computational examples written in IPython 3. The notebooks constitute the lecture notes to the masters course Digital Signal Processing read by Sascha Spors, Institute of Communications Engineering, Universität Rostock. The sources of the notebooks, as well as installation and usage instructions can be found on GitHub.

Table of Contents

1. Introduction

2. Spectral Analysis of Deterministic Signals

3. Random Signals

4. Random Signals and LTI Systems

5. Spectral Estimation of Random Signals

6. Quantization

7. Realization of Non-Recursive Filters

8. Realization of Recursive Filters

9. Design of Digital Filters


The contents base on the following literature:

  • Alan V. Oppenheim and Ronald W. Schafer, Discrete-Time Signal Processing, Pearson Prentice Hall, 2010.
  • John G. Proakis and Dimitris K. Manolakis, Digital Signal Processing, Pearson, 2006.
  • Athanasios Papoulis and S. Unnikrishna Pillai, Probability, Random Variables, and Stochastic Processes, Mcgraw-Hill, 2002.
  • Petre Stoica and Randolph Moses, Spectral Analysis of Signals, Prentice Hall, 2005.
  • Udo Zölzer, Digitale Audiosignalverarbeitung, Teubner, 2005.
  • Peter Vary, Ulrich Heute and Wolfgang Hess, Digitale Sprachsignalverarbeitung, Teubner, 1998.
  • Bernd Girod, Rudolf Rabenstein, Alexander Stenger, Einführung in die Systemtheorie, B.G. Teubner Verlag, 2007.


  • Sascha Spors (author)
  • Vera Erbes (text, proofreading)
  • Matthias Geier (technical advice, code review, nbsphinx)
  • Frank Schultz (proofreading)


The notebooks are provided as Open Educational Resources. Feel free to use the notebooks for your own purposes. The text is licensed under Creative Commons Attribution 4.0, the code of the IPython examples under the MIT license. Please attribute the work as follows: Sascha Spors, Digital Signal Processing - Lecture notes featuring computational examples, 2016.