## 4 Educational Guide
### Fourier Analysis of Signals (Part 2)
This, however, is not true in a qualitative sense, as is explained in the notebook. As an alternative, we  
Figure 8: **(a)** Time-domain signal (using a sampling rate \(F_{\text{s}}=256\)) and magnitude Fourier transform. **(b)** STFT (\(N=512,H=128\)) without padding. **(c)** STFT (\(N=512,H=128\)) with zero-padding. Figure 7: The matrix DFT\({}_{N}\) and a visualization of its real and imaginary parts for the case \(N=32\). discuss in the FMP Notebook STFT: Frequency Interpolation_ another common procedure to adjust the frequency resolution. On the way, we give a quick introduction to interpolation and show how the Python package scipy can be applied for this task. Beside refining the frequency grid, we then show how interpolation techniques can be used for a non-linear deformation of the frequency grid, resulting in a log-frequency spectrogram. This topic goes beyond the scope of the current part, but plays an important role in designing musical features (see, e.g., [1], Section 3.1.1). The matrix DFT\({}_{N}\) is invertible, and its inverse DFT\({}_{N}^{-1}\) coincides with the DFT matrix up to some normalizing factor and complex conjugation. This algebraic property can be proven using the properties of the roots of unity. In the FMP Notebook STFT: Inverse, we show that the two matrices are indeed inverse to each other--up to some numerical issues due to rounding in floating-point arithmetic. While inverting the DFT is straightforward, the inversion of the discrete STFT is less obvious, since one needs to compensate for effects introduced by the sliding window technique. In our notebook, we provide some basic Python implementation of the inverse STFT since it sheds another light on the sliding windowing concept and its effects. Furthermore, we discuss numerical issues as well as typical errors that may creep into one's source code when loosing sight of windowing and padding conventions. At this point, we want to emphasize again that the STFT is one of the most important tools in music and audio processing. Common software packages for audio processing offer STFT implementations, including convenient presets and functions for physically interpreting time, frequency, and magnitude parameters. From a teaching perspective, we find it crucial to exactly understand the role of the STFT parameters and the conventions made implicitly in black-box implementations. In the FMP Notebook STFT: Conventions and Implementations, we summarize various variants for computing and interpreting a discrete STFT, while fixing the conventions used throughout the FMP notebooks (if not specified otherwise explicitly). The FMP notebooks of Part 2 close with some experiments related to the digitization of waveforms and its effects (see also [1], Section 2.2.2). In the FMP Notebook Digital Signals: Sampling, we implement the concept of equidistant sampling and apply it to a synthetic example. We then reconstruct the signal from its samples (using the interpolation of the sampling theorem based on the sinc function) and compare the result with the original signal. Based on the provided functions, one simple yet instructive experiment is to successively decrease the sampling rate and to look at the properties of the reconstructed signal Similarly, starting with a real music recording (e.g., in the notebook, we use a C-major scale played on a piano), students may acoustically explore and understand aliasing effects. We continue with the FMP Notebook Digital Signals: Quantization, where we have a closer look at the effects resulting from quantization. We provide a function for uniform quantization, which is then applied to a synthetic example and visually explored using different quantization parameters. Furthermore, using again the C-major scale recording, we reconstruct an analog signal from the quantized version, which allows for understanding the distortions introduced by quantization (also referred to as quantization noise).