Real-Time Digital Signal Processing Lab
ECE-GY 6183 / ECE-UY 4163
Fall 2024
This course is an introduction to the real-time implementation of digital signal processing (DSP) algorithms, with an emphasis on audio signal processing and audio effects.
The course will use Matlab and Python programming. Some Matlab experience is expected. No experience in Python required; the course will introduce Python as needed. This course can be taken independently of ECE 6113 and ECE 7133 (DSP I and DSP II).
Topics include: Audio input-output and buffering. Filtering (recursive and non-recursive filters, structures). Fast Fourier transform. and windowed spectral analysis. Digital audio effects (delay line, amplitude modulation, reverberation, distortion, short-time Fourier transform). Students will learn to implement these algorithms for real-time audio processing in software.
Prerequisites
The prerequisite for this class is required. Valid prerequisites are ECE-GY 6113 (DSP 1), ECE-UY 3054 (Signals and Systems), or another course that covers discrete-time signals and systems (undergraduate level is sufficient). The registration system (NYU Albert) does not check for the prerequisite for this course; but you must still have it. Your prerequisite course should cover: discrete-time convolution, Z-transform, transfer function, frequency response, difference equations, pole-zero diagrams, and the Fourier transform. Let me know if you have any questions about the prerequisite.
Texts
You can read both books online through the NYU Library for free. You will need to login to the library. Use the Ebook Central link to read the books online.
1. Audio Effects: Theory, Implementation and Application Joshua D. Reiss, Andrew McPherson
CRC Press, 2014
NYU library: https://bobcat.library.nyu.edu/permalink/f/ci13eu/nyu_aleph004382842
Publisher: http://www.crcpress.com/product/isbn/9781466560284
2. DAFX – Digital Audio Effects Udo Z¨olzer (editor)
Wiley, 2002 (1st edition), 2011 (2nd edition)
NYU library: https://bobcat.library.nyu.edu/permalink/f/1c17uag/COURSES000344723
Publisher: https://www.wiley.com/en-us/DAFX%3A+Digital+Audio+Effects%2C+2nd+Edition-p-9780470665992
Outline (subject to revision)
1. Introduction to Python
Binary data and the pack function
Wave files
2. The PyAudio library Second-order filters Matlab examples
Graphical user interfaces (GUI) in Matlab
3. Real-time filtering of microphone signals The classical recursive filters
4. Circular buffers
The vibrato effect
Instantaneous frequency
5. Block processing for real-time processing The Python Matplotlib library
Real-time plotting of audio signals
6. The Fast Fourier Transform.
The Numpy Library Block filtering
Graphical user interfaces (GUIs) in Python using the TKinter library
7. Keyboard interactivity using TKinter
Simulating a guitar (Karplus-Strong algorithm)
Complex amplitude modulation for voice transformation
8. Image and real-time video processing in Python using CV2 Processing audio from two microphones
9. Exam
10. The short-time Fourier transform. (STFT) Audio effects using the STFT
FFT-based convolution (and overlap-add algorithm) for real-time filtering Acoustic impulse response examples
11. Reverberation and room impulse responses
Room impulse response measurements using chirps Chirp signal signals and matched filtering
12. All-pass systems
Fractional delay systems Artificial reverberation
13. Parametric filters
Distortion effects
Quantization effects
14. Multirate Systems
Discrete-cosine transform. (DCT)
Principle component analysis (PCA)
Grading, Category weights
30% Exercises
15% Quizzes
30% Exam
25% Project
Students may work in groups on the HW assignments. However, what is submitted for HW should be individually written by the student and should represent the student’s individual understanding of the material.
You should not use ChatGPT or other code-assistants or AI tools to write programs that you submit for the course.
In the event of academic dishonesty, a score of zero may be given for the item at issue. Additionally, the grade for the course may be reduced, including a failing grade for the course.
Project
Students will complete a real-time audio programming project and record a video presentation to be shared with the class.
Exam
The exam will be a take-home exam. For the exam, you will write real-time programs in Python. No use of AI tools will be allowed for the exam. Guidelines for the exam will be given. There will not be a lecture the week of the exam.
Software
Matlab: http://www.mathworks.com
Matlab at NYU: https://www.nyu.edu/life/information-technology/computing-support/software/ software/matlab.html
Python : http://www.python.org
PyAudio : http://people.csail.mit.edu/hubert/pyaudio/
Learning objectives
1. The implementation and design of algorithms for signal processing with an emphasis on audio processing.
2. Software-based real-time programming of signal processing functions (real-time filtering, time-varying filter- ing, spectral analysis, audio effects).
Learning outcomes
1. Students will be able to use Matlab and Python to perform. signal processing functions (filtering, spectral analysis, filter design).
2. Students will understand constraints and parameters associated with real-time signal processing (sampling rate, latency, buffering, bits per sample).
3. Students will be able to write programs to perform. audio effects (reverberation, delay line effects, amplitude modulation, distortion).
If you are ill or have a personal emergency during the semester
If you are experiencing an illness or other situation that affects your academic performance in a class, please email the Coordinator of Student Advocacy, Compliance and Student Affairs. They can reach out to your instructors on your behalf when warranted.
advocacy .tandonstudentlife@nyu .edu
https://engineering.nyu.edu/life-tandon/student-life/student-advocacy