PCP Teaser

Overview

The PCP notebooks serve two purposes. First, they introduce some basic material on Python programming as required for more advanced lab courses offered in FAU study programs such as Communications and Multimedia Engineering (CME) or Advanced Signal Processing and Communications Engineering (ASC). Second, the PCP notebooks may be used as a gentle introduction to programming as needed in the more advanced FMP Notebooks on Fundamentals of Music Processing. While the first half of the PCP notebooks covers general Python concepts, the second half introduces and requires fundamental concepts in signal processing. The PCP notebooks are not intended to give a comprehensive overview of Python programming, nor are the notebooks self-contained. For a systematic introduction to Python programming, we refer to online sources such as The Python Tutorial or the Scipy Lecture Notes. The PCP notebooks have been inspired and borrow material from the FMP Notebooks on Fundamentals of Music Processing.

Note: The code, text, and figures of the PCP notebooks are licensed under the MIT License. The latest version of the PCP notebooks is hosted on GitHub. Alternatively, you can download a zip-compressed archive containing the PCP notebooks and all data. We work continuously on the PCP notebooks and provide updates on a regular basis (current version: 1.0.1). For suggestions and feedback, please contact Meinard Müller.

Get Started

If a static view of the PCP notebooks is enough for you, the exported HTML versions can be used right away without any installation. All material including the explanations, the figures, and the audio examples can be accessed by just following the HTML links. If you want to execute the Python code cells, you have to download the notebooks (along with the data), create an environment, and start a Jupyter server. You then need to follow the IPYNB links within the Jupyter session. The necessary steps are explained in detail in the PCP notebook on how to get started.

Content

The collection of PCP notebooks is organized in ten units. Each unit, corresponding to an individual notebook, introduces some Python concepts, which are then applied and explored in exercises. The following table gives an overview of these units and provides links. In the first unit, we provide basic information on how to set up the Python and Jupyter framework, and discuss some tools used throughout the PCP notebooks.

Unit Title Notions, Techniques & Algorithms HTML IPYNB
1 Get Started Download; Conda; Python environment; Jupyter [html] [ipynb]
2 Python Basics Help; variables; basic operators; list; tuple; boolean values; set; dictionary; type conversion; shallow and deep copy [html] [ipynb]
3 NumPy Basics Array; reshape; array operations; type conversion; constants; matrix [html] [ipynb]
4 Control Structures and Functions Loop; for; while; break; continue; Python function; efficiency; runtime [html] [ipynb]
5 Visualization Using Matplotlib Plot (1D); figure; imshow (2D); surface (3D); logarithmic axis [html] [ipynb]
6 Complex Numbers Real part; imaginary part; absolute value; angle; polar representation; complex operations; conjugate; polar coordinate plot; roots; Mandelbrot [html] [ipynb]
7 Exponential Function Power series; exponentiation identity; Euler's formula; differential equation; roots of unity; Gaussian function; spiral [html] [ipynb]
8 Signals and Sampling Continuous-time signal; periodic; frequency; Hertz; amplitude; phase; discrete-time signal; sampling; aliasing; interference; beating; [html] [ipynb]
9 Discrete Fourier Transform (DFT) Inner product; DFT; phase; optimality; DFT matrix; fast Fourier transform (FFT); FFT algorithm; runtime; time localization; chirp signal; inverse DFT [html] [ipynb]
10 Python Modules and Packages Python modules; Python packages; LibPCP; documentation; docstring [html] [ipynb]

Contact

Prof. Dr. Meinard Müller
Friedrich-Alexander Universität Erlangen-Nürnberg
International Audio Laboratories Erlangen
Lehrstuhl Semantic Audio Processing
Am Wolfsmantel 33, 91058 Erlangen
Email: meinard.mueller@audiolabs-erlangen.de

Acknowledgment

We want to thank the various people who have contributed to the design, implementation, and code examples of the notebooks. We mention the main contributors in alphabetical order:

The International Audio Laboratories Erlangen are a joint institution of the Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU) and Fraunhofer Institute for Integrated Circuits IIS.

PCP License