Last semester I took an introductory class on Digital Signal Processing. The lab exercises were tackled mostly via hands-on audio processing. Naturally, it sparked an immediate interest for me. I decided to go over the code, adding observations and explanations were I deemed fit. I am looking forward to growing this repository into a learning resource that can stand on its own, à la wiki, but with a practical focus.
I can not upload the provided lab documents for obvious reason, but the code should be pretty self-explanatory. That said, feel free to open up a pull request or to contact me with any inquiries you may have. Beware though, anything outside the scope of this repository will likely escape my understanding of the subject matter.
All lab solutions were done in Matlab in the form of live scripts.
- Exercise 1.1 - Tinkering with audio files.
- Exercise 1.2 - Generating musical tones.
- Exercise 2.1 - Dirac Delta and Unit-Step functions.
- Exercise 2.2 - Convolution.
- Exercise 2.3 - Generating a periodic signal.
- Exercise 2.4 - Rectangular periodic pulse.
- Exercise 3.1 - Echo I.
- Exercise 3.2 - Echo II.
- Exercise 3.3 - Reverberation.
- Exercise 3.4 - Echo & rebervation.
- Exercise 4.1 - White noise.
- Exercise 4.2 - Pink noise and brownian noise.
- Exercise 4.3 - Noise in nature.
- Exercise 4.4 - Bitcoin price history.
- Exercise 5.1 - Spectrograms.
- Exercise 5.2 - C major scale.
- Exercise 6.1 - Fourier transform.
- Exercise 6.2 - Input-output difference equation.
- Exercise 6.3 - Echo cancellation.
- Exercise 7.1 - Chirp signals.
- Exercise 7.2 - Chirp signals, sampling.
- Exercise 7.3 - Sampling and aliasing.
- Exercise 8.1 - Generating a musical chord.
- Exercise 8.2 - Spectral analysis of a musical chord.
- Exercise 8.3 - Spectral analysis, windowing.
- Exam Drill - Tone generation, rectangular window function, spectral analysis (N-FFT, log scale plot).
- Exam - Continuous-time plot, spectral analysis (N-FFT, log scale plot), logarithmic unit of attenuation.
Please, don't shy away from making pull requests with modifications, fixing any mistakes I may have made or adding your own lab exercises / projects.
This section is intended to serve as a quick way to familiarize yourself with common terminology and algorithms used in DSP.
Frequency.
Bandwidth.
Aliasing.
Sampling.
Nyquist-Shannon sampling theorem.
Time series.
Discrete time and continuous time.
Discrete system.
Finite impulse response (FIR).
Infinite impulse response (IIR).
Recursive filter (IIR).
Linear constant-coefficient difference equation.
Unit step function.
Cross-correlation.
Convolution.
Window function.
Gauss function.
Hann function.
Filter.
Low-pass filter.
High-pass filter.
Band-pass filter.
Band-stop filter.
Spectral analysis.
Fourier transform (FT).
Fast Fourier transform (FFT).
Discrete Fourier transform (DFT).
Gabor transform.
Spectrogram.
But what is the Fourier Transform? A visual introduction.
The Mathematics of Signal Processing | The z-transform, discrete signals, and more.
I would like to express my sincere gratitude to Universitat Politècnica de València, and especially my professor María Desamparados Girona Coma, for her outstanding passion for teaching, her encouragement and constant availability throughout the class. This new-found interest of mine is, in a big way, due to her.
This repository is released under the MIT license. See LICENSE.md for more information.