Announcements Signal Processing System Design Laboratory Reading Guides
Resources are available on a network storage on intranet at ip 10.9.2.10 EE69205
Session: Autumn 2023
Subject Type: Core
LTP: 0-0-3 | Credits: 2
Location: NC314, Nalanda Academic Complex
Time: Slot N / Thu (2:00 PM - 4:55 PM) (M. Tech - SPML)

Instructor(s): Dr. Debdoot Sheet (Slot N)
TA(s): Pragydipta Adhya, Ragimanu Bashneer Ahammad, Gollapalli Chandra Kiran

Grading: Part A (10%) + Part B (50%) + Part C (20%) + Viva voce (20%)
Linear Algebra - Gilbert Strang
Digital Signal Processing - Alan V. Oppenheim
Design and Analysis of Algorithms - Dana Moshkovitz and Bruce Tidor
Performance Engineering of Software Systems - Saman Amarasinghe and Charles Leiserson
A Gentle Introduction to Programming using Python - Sarina Canelake
Computational Methods of Scientific Programming - Thomas Herring and Chris Hill

Part A: Preparatory Exercises
Objective These exercises are modelled to provide you with an exposure to introductory concepts of Scientify programming using Python2 and refresher of general guidelines for scientific programming.
Refresher
Slot N - 3/08 + 10/08 + 17/08
Complete all the exercises in the text.
>>Download the Text Book.

Part B: Assignment Exercises
Objective These exercises are modelled to provide you with an exposure to theoretical foundations of algorithms, computational and space complexity estimation, enable budgeting and optimize algorithms according to hardware resource availability. The exercises are designed to empower you design multiple architectures (viz. single core vs. multi-thread, loop execution vs. vector programming) of a single functional form of multidimensional signal processing algorithm and compare theoretical complexity and hardware dependent execution complexity through code profiling.
Experiment 1
Search and sorting in arrays.
Slot N - 24/08
Estimation of polynomial order of complexity of searching, sorting (linear and bubble) implemented in Python and their profiling for execution complexity estimation.
Experiment 2
Parallelization for execution speedup.
Slot N - 31/08
The 2D and nD Convolution and DFT algorithm using nested loop, parallel loops. Code profiling for execution complexity comparison.
Experiment 3
Multidimensional signal processing.
Slot N - 07/09
Functional mapping of fixed point polynomial functions using look-up tables. Dynamic range compression in imaging signals. Scan conversion of multidimensional imaging signals (Polar to Cartesian coordinate and vice versa). Linear vs vector programming. Space complexity estimation and code profiling for executing complexity comparison.
>>Ultrasound imaging wiki
S. Sikdar, et al., "Programmable ultrasound scan conversion on a media-processor based system", Proc. SPIE, vol. 4319, 2001.
Experiment 4
Fast Fourier Transform.
Slot N - 28/09
Implementation of Radix-2 DIT and DIF FFT algorithm in Matlab. Comparison of computational complexity, space complexity and execution complexity with the DFT algorithm.
R. M. Piedra, "Parallel 1-D FFT Implementation", Application Report # SPRA108, Texas Instruments, 1994.
Experiment 5
Fast 2D Median filter.
Slot N - 05/10 + 12/10
Implementation of the moving window fast 2D median filter in Matlab using parallel programming and estimation of space, time and execution complexity.
T. S. Huang, et al., "A Fast Two-Dimensional Median Filtering Algorithm", IEEE Trans. Acoust. Speech, Signal Process., vol. 27, no. 1, pp. 13-18, Feb. 1979.

Part C: Capstone Projects
Slot N - 19/10 + 02/11 + 09/11 Capstone project and Viva voce