EE698K: Programming for Signal Processing (Fall 2024)

Units: 3-0-0-0-9 (modular course; 3 hours lecture; total 9 credits)
Class timings: MTh 12:00-13:15 (TB-208)
Instructor: Vipul Arora
Office hours: After each class

Registration Note:

TAs

Name E-mail
Parampreet Singh params21@iitk.ac.in
Aravind Potluri aravindp23@iitk.ac.in

Course Objectives:

Most of the research in signal processing is heavily computational. Good programming skills are indispensable for good computational research. The knowledge of data structures and algorithms is necessary for writing efficient and easy to understand codes. With advacing computational technologies and infrastructure, it is even more important to know these concepts well for effective and efficient use. The course will discuss basics of programming and basics of digital signal processing.

This course is tailored specifically for EE PGs with limited programming experience. We will use Python to implement the concepts we learn in this course. (Python is one of the most popular high-level languages highly recommended for researchers). There will be theory classes as well as coding assignments or projects.

Pre-requisites:

Lecture Plan

Topics No of weeks
Python basics 1
Abstract Data Types, Arrays 1
Linked Lists, Stacks and Queues 2
Trees and Binary Search Tree 1
Heaps, Sets, Hash Tables 1
Graphs and Dynamic Programming 1
Linear Time Invariant Systems, Fourier Transforms 2
Z-transforms, symbolic programming, Linear Constant Coefficient Difference Equations, Digital Filter Design 2
Filter banks, cepstral analysis, short time Fourier analysis, time series analysis 2

Grading Scheme

  1. Quizzes and assignments – 40%
  2. Mid-sem Exam – 20%
  3. Project - 30%
  4. End-sem Exam - 10%

Plagiarism Penalty:

As heavy as possible. Zero-tolerance policy.

References:

Books: