EE123: Digital Signal Processing


Spring, 2018


Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs.


IPython is a command shell for interactive computing in multiple programming languages, especially focused on the Python programming language, that offers enhanced introspection, rich media, additional shell syntax, tab completion, and rich history.

IPython notebook

The IPython Notebook is a web-based interactive computational environment where you can combine code execution, text, mathematics, plots and rich media into a single document:


NumPy is the fundamental package for scientific computing with Python. It contains among other things:

  • a powerful N-dimensional array object

  • sophisticated (broadcasting) functions

  • tools for integrating C/C and Fortran code

  • useful linear algebra, Fourier transform, and random number capabilities


The SciPy library is a collection of numerical algorithms and domain-specific toolboxes, including signal processing, optimization, statistics and much more.


matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms.


PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library. With PyAudio, you can easily use Python to play and record audio on a variety of platforms.


pyrtlsdr is a simple Python interface to devices supported by the RTL-SDR project, which turns certain USB DVB-T dongles employing the Realtek RTL2832U chipset into low-cost, general purpose software-defined radio receivers. It wraps all the functions in the librtlsdr library (including asynchronous read support), and also provides a more Pythonic API.


  • “Python for Signal Processing” By José Unpingco. Available for students through UC Berkeley Library Here

  • Python Bootcamp by Josh Bloom and Fernando Perez Here

  • Introduction to Python (general) Here

  • A Crash Course in Python for Scientists Here

  • Scientific Computing with Python Here

  • Tentative numpy tutorial Here

  • Signal Processing Reference Guide Here

  • Numpy for Matlab users Here