## 4 Educational Guide
### Fourier Analysis of Signals (Part 2)  
The Fourier transform is undoubtedly one the most fundamental tools in signal processing, and it plays a central role also throughout all parts of the FMP notebooks. In ([1], Chapter 2), the Fourier transform is approached from various perspectives considering real-valued and complex-valued versions as well as analog and discrete signals. The underlying idea is to analyze a given signal by means of elementary sinusoidal (or exponential) functions, which possess an explicit physical meaning in terms of frequency. The **Fourier transform** converts a time-dependent signal into frequency-dependent coefficients, each of which indicates the degree of correlation between the signal and the respective elementary sinusoidal function. The process of decomposing a signal into frequency components is also called **Fourier analysis**. In contrast, the **Fourier representation** shows how to rebuild a signal from the elementary functions, a process also called **Fourier synthesis**. In Part 2 of the FMP notebooks, we approach Fourier analysis from a practical perspective with a focus on the discrete Fourier transform (DFT). In particular, we cover the entire computational pipeline in a bottom-up fashion by providing Python code examples for deepening the understanding of complex numbers, exponential functions, the DFT, the fast Fourier transform (FFT), and the short-time Fourier transform (STFT). In this context, we address practical issues such as digitization, padding, and axis conventions--issues that are often neglected in theory. Assuming that the reader has opened the FMP notebooks of Part 2, we now briefly comment on the FMP notebooks in the order in which they appear. We start with the FMP **Notebook**_Complex Numbers_, where we review basic properties of complex numbers. In particular, we provide Python code for visualizing complex  
Figure 6: Videos generated by the FMP **Notebook**_Waves and Waveforms_ to illustrate the concepts of transverse, longitudinal, and combined waves. numbers using either Cartesian coordinates or polar coordinates. Such visualizations help students gain a geometric understanding of complex numbers and the effect of their algebraic operations. Subsequently, we consider in the FMP Notebook _Exponential Function_ the complex version of the exponential function. Many students are familiar with the real version of this function, which is often introduced by its power series  
\[\exp(a)=\sum_{n=0}^{\infty}a^{n}/n!\]  
for \(a\in\mathbb{R}\) This definition can be extended by replacing the real variable \(a\in\mathbb{R}\) by a complex variable \(c\in\mathbb{C}\). Studying the approximation quality of the power series (and other limit definitions of the exponential function) is instructive and can be combined well with small programming exercises. One important property of the complex exponential function, which is also central for the Fourier transform, is expressed by [PERSON]'s formula \(\exp(i\gamma)=\cos(\gamma)+i\sin(\gamma)\) for \(\gamma\in\mathbb{R}\). We provide a visualization that illustrates how the exponential function restricted to the unit circle relates to the real sine and cosine functions. Furthermore, we discuss the notion of roots of unity, which are the central building blocks that relate the exponential function to the DFT matrix. The study of these roots can be supported by small programming exercises, which may also cover mathematical concepts such as complex polynomials and the fundamental theorem of algebra. In the FMP Notebook _Discrete Fourier Transform_, we approach the DFT in various ways. Given an input vector \(x=(x(0),x(1),\ldots,x(N-1))^{\top}\in\mathbb{R}^{N}\) of length \(N\in\mathbb{N}\), the DFT is defined by  
\[X(k):=\sum_{n=0}^{N-1}x(n)\exp(-2\pi ikn/N)\]  
for \(k\in[0:N-1]\). The output vector \(X\in\mathbb{C}^{N}\) can be interpreted as a frequency representation of the time-domain signal \(x\).