/dsp-101

Introductory class on Digital Signal Processing.

Primary LanguageMATLABMIT LicenseMIT

MIT license

Project_Logo

TABLE OF CONTENTS

  1. About
  2. Contents
  3. Contributions
  4. References
  5. Acknowledgements
  6. License

ABOUT

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.

CONTENTS

All lab solutions were done in Matlab in the form of live scripts.

Lab 01

  • Exercise 1.1 - Tinkering with audio files.
  • Exercise 1.2 - Generating musical tones.

Lab 02

  • 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.

Lab 03

  • Exercise 3.1 - Echo I.
  • Exercise 3.2 - Echo II.
  • Exercise 3.3 - Reverberation.
  • Exercise 3.4 - Echo & rebervation.

Lab 04

  • 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.

Lab 05

  • Exercise 5.1 - Spectrograms.
  • Exercise 5.2 - C major scale.

Lab 06

  • Exercise 6.1 - Fourier transform.
  • Exercise 6.2 - Input-output difference equation.
  • Exercise 6.3 - Echo cancellation.

Lab 07

  • Exercise 7.1 - Chirp signals.
  • Exercise 7.2 - Chirp signals, sampling.
  • Exercise 7.3 - Sampling and aliasing.

Lab 08

  • Exercise 8.1 - Generating a musical chord.
  • Exercise 8.2 - Spectral analysis of a musical chord.
  • Exercise 8.3 - Spectral analysis, windowing.

Exams

  • 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.

CONTRIBUTIONS

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.

REFERENCES

This section is intended to serve as a quick way to familiarize yourself with common terminology and algorithms used in DSP.

ARTICLES

Physical description

Signal.
Signal processing.

Frequencies and Sampling

Frequency.
Bandwidth.
Aliasing.
Sampling.
Nyquist-Shannon sampling theorem.

Series

Time series.
Discrete time and continuous time.

Systems & functional analysis

Discrete system.
Finite impulse response (FIR).
Infinite impulse response (IIR).
Recursive filter (IIR).
Linear constant-coefficient difference equation.
Unit step function.
Cross-correlation.
Convolution.

Windowing

Window function.
Gauss function.
Hann function.

Filters

Filter.
Low-pass filter.
High-pass filter.
Band-pass filter.
Band-stop filter.

Spectral Analysis

Spectral analysis.
Fourier transform (FT).
Fast Fourier transform (FFT).
Discrete Fourier transform (DFT).
Gabor transform.
Spectrogram.

VIDEOS

But what is the Fourier Transform? A visual introduction.
The Mathematics of Signal Processing | The z-transform, discrete signals, and more.

BOOKS

Kenneth, Steiglitz. A Digital Signal Processing Primer: with Applications to Digital Audio and Computer Music. Dover Publications, 2020.

ACKNOWLEDGEMENTS

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.

LICENSE

This repository is released under the MIT license. See LICENSE.md for more information.