Overview
Syllabus
Introduction.
Time series data from sound recordings.
Julia notebook: Playing with sound - WAV files.
Drawing waveforms.
Effect of frequency.
Combining (superposing) different frequencies.
Julia: FFT function.
Discrete Fourier Transform (DFT) vs Fast Fourier Transform (FFT).
Plotting an FFT.
Musical overtones: Magnitude of the FFT.
Analyzing a sound file using the FFT.
Defining the DFT mathematically.
First term of the DFT.
Visualizing the DFT in the complex plane.
Equally-spaced points on unit circle in the complex plane.
Idea of Fourier transform of a signal: walking around a circle.
Adding complex numbers as adding vectors.
Magnitude of DFT gives information about frequency.
Angle of DFT gives information about phase.
Interpreting the second term of the DFT.
General formula for DFT.
Implementing the DFT in Julia.
Julia: Writing "i" as im.
Julia: Array comprehension.
Comparison of DFT with FFT results.
Julia: isapprox for testing approximate equality.
Efficiency of the implementation.
Pre-computing an array of powers.
Julia: Modulo (%).
Julia: OffsetArray for zero-based indexing.
Computational complexity of DFT vs FFT.
DFT as polynomials.
Taught by
The Julia Programming Language