DSP Lab Syllabus - Fall 2021
DSP Lab Syllabus - Fall 2021
DSP Lab Syllabus - Fall 2021
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
Discrete-Time Signal and Systems (undergraduate level is sufficient) (ECE 3054 or ECE 6113 or equivalent)
You should know: discrete-time convolution, Z-transform, transfer function, frequency response, difference equa-
tions, pole-zero diagrams, and the discrete-time Fourier transform.
Instructor
Ivan Selesnick
Email: [email protected]
Phone: (646) 997-3416
Office: 370 Jay Street, Room 805
Web: http://eeweb.poly.edu/iselesni/
Texts
You can read both books online through the NYU Library for free. You will need to login to the library.
Outline
1. Introduction to Python
Binary data and the pack function
Wave files
4. Circular buffers
The vibrato effect
Instantaneous frequency
9. Exam
Project
Students will complete a real-time audio programming project and make a video presentation to be shared with
the class.
Grading, Category weights
45% Exercises
25% Exam
10% Paper report
20% Project
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.
Software
Matlab: http://www.mathworks.com
Matlab at NYU: https://www.nyu.edu/life/information-technology/getting-started/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).
Inclusion Statement
The NYU Tandon School values an inclusive and equitable environment for all our students. I hope to foster a
sense of community in this class and consider it a place where individuals of all backgrounds, beliefs, ethnicities,
national origins, gender identities, sexual orientations, religious and political affiliations, and abilities will be treated
with respect. It is my intent that all students’ learning needs be addressed both in and out of class, and that the
diversity that students bring to this class be viewed as a resource, strength and benefit. If this standard is not
being upheld, please feel free to speak with me.
1. Cheating: intentionally using or attempting to use unauthorized notes, books, electronic media, or electronic
communications in an exam; talking with fellow students or looking at another person’s work during an
exam; submitting work prepared in advance for an in-class examination; having someone take an exam for
you or taking an exam for someone else; violating other rules governing the administration of examinations.
2. Fabrication: including but not limited to, falsifying experimental data and/or citations.
3. Plagiarism: intentionally or knowingly representing the words or ideas of another as one’s own in any
academic exercise; failure to attribute direct quotations, paraphrases, or borrowed facts or information.
4. Unauthorized collaboration: working together on work that was meant to be done individually.
5. Duplicating work: presenting for grading the same work for more than one project or in more than one
class, unless express and prior permission has been received from the course instructor(s) or research adviser
involved.
6. Forgery: altering any academic document, including, but not limited to, academic records, admissions
materials, or medical excuses.