**Course Title** : Digital Signal Processing

**Course Number**: ENEE 610 (graduate) CMPE 422 (undergraduate)

**Credits**: 3.00

**Description**: This is a first-year graduate course for communication and signal processing majors in electrical engineering (EE) that covers the fundamentals of digital signal processing (DSP). The goal of this course is to provide the first-year EE graduate student with the foundations and tools to understand, design and implement DSP systems, in both hardware and software. Students will learn computer-based DSP design and simulation software tools. The student also will acquire an understanding of DSP hardware basics and architecture. Topics covered include: (1) A/D-D/A conversion and quantization, number representations and finite wordlength effects; (2) FIR, IIR and lattice filter structures, block diagram and equivalent structures; (3) multi-rate DSP and filterbanks; (4) digital filter design methods and verification; (5) DSP hardware architecture; and (6) DSP simulation/ laboratory experiences.

**Prequisite (Graduate)** : Prerequisite: ENEE 601, ENEE 620 or their equivalent or consent of instructor.

See Graduate Catalog

**Instructor**

Dr. Ryan Robucci

** Grader ** :

** Undergraduate Syllabus:** PDF

**Course Number**: ENEE 610 (graduate) CMPE 422 (undergraduate)

**Credits**: 3.00

**Description**: This is a first-year graduate course for communication and signal processing majors in electrical engineering (EE) that covers the fundamentals of digital signal processing (DSP). The goal of this course is to provide the first-year EE graduate student with the foundations and tools to understand, design and implement DSP systems, in both hardware and software. Students will learn computer-based DSP design and simulation software tools. The student also will acquire an understanding of DSP hardware basics and architecture. Topics covered include: (1) A/D-D/A conversion and quantization, number representations and finite wordlength effects; (2) FIR, IIR and lattice filter structures, block diagram and equivalent structures; (3) multi-rate DSP and filterbanks; (4) digital filter design methods and verification; (5) DSP hardware architecture; and (6) DSP simulation/ laboratory experiences.

**Prequisite (Graduate)** : Prerequisite: ENEE 601, ENEE 620 or their equivalent or consent of instructor.

See Graduate Catalog

**Instructor**

Dr. Ryan Robucci

Assistant Professor

Email: robucci@umbc.edu

Department of Computer Science and Electrical Engineering

University of Maryland Baltimore County

1000 Hilltop Circle

Baltimore, MD, 21250

Office: ITE 316 Office Hours: TBD

Phone: x53549

** Meeting Time ** MW 2:30-3:45 Email: robucci@umbc.edu

Department of Computer Science and Electrical Engineering

University of Maryland Baltimore County

1000 Hilltop Circle

Baltimore, MD, 21250

Office: ITE 316 Office Hours: TBD

Phone: x53549

** Grader ** :

- Chunying Jia - umbc email: chunin1

** Undergraduate Syllabus:** PDF

| Date | Event | Description/Reading | Assignments and Due Dates
|------------------|---------------------|--------------------------------------------------------------|-------------------------------------------
|Jan 29 | First Day of Class | Discrete Sequences and Systems | |
|Jan 31 | Lecture | Discrete Systems and Impulse Response (OS Ch2 Hayes Ch1 ) | |
|Feb 5 | Lecture | DTFT (OS Ch2 Hayes Ch 2) | |
|Feb 7 | Lecture | Z-Transform OS Ch3 Hayes Ch 4 | |
|{date} Feb 9 | W Day | Last Day to Drop w/o a Grade of "W | |
|Feb 12 | Lecture | | |
|Feb 14 | Lecture | | [Assignment 1](#hw1) due |
|Feb 18 | Lecture | | [Assignment 2](#hw2) assigned |
|Feb 19 | Lecture | Transform Analysis of Systems (OS Ch 5 Hayes Ch 5 ) | |
|Feb 21 | Lecture | | |
|Feb 26 | Lecture | | |
|Feb 26 | Assignment | | [Assignment 2](#hw2) due |
|Feb 27 | Lecture | | [Assignment 3](#hw3) assigned |
|Feb 28 | Lecture | | |
|Mar 5 | Lecture | | |
|Mar 7 | Lecture | Sampling (OS Ch 4 Hayes Ch 3 ) | |
|Mar 12 | Lecture | Sampling and Reconstruction | [Assignment 3](#hw3) due |
|{warning} Mar 14 | Exam | | |
|Mar 14 | Assignment | | [Assignment 4]($hw4) assigned |
|{dull} Mar 19 | Spring Break 18-15 | -- | -- |
|{dull} Mar 21 | Spring Break 18-25 | -- | -- |
|Mar 26 | Lecture | Changing Sample Rate (Multirate Signal Processing) | |
|Mar 28 | Lecture | DFT (OS Ch 8 Hayes Ch 6) | [Assignment 4](#hw4) due |
|Apr 2 | Lecture | | [Assignment 5](#hw5) assigned |
|Apr 4 | Lecture | | |
|Apr 9 | Lecture | Finish DFT and Begin Filter Design (OS Ch 7 Hayes Ch 9) | [Assignment 5](#hw5) due |
|{date} April 09 | Drop Day | Last Day to Drop from Individual Courses with a Grade of "W" | [Assignment 6](#hw6) |
|Apr 11 | Lecture | | |
|Apr 16 | Lecture | | [Assignment 6](#hw6) due |
|Apr 18 | Lecture | Completed Filter Design Chapter | [Assignment 7](#hw6) assigned |
|Apr 23 | Lecture | Filter Design Examples and Begin Digital Filter Implementation | |
|Apr 25 | Lecture | Digital Filter Implementation (OS CH6 OS Ch 8) | [Assignment 7](#hw6) due |
|Apr 30 | Lecture | | |
|{warning} May 2 | Exam | | |
|May 7 | Lecture | | |
|May 9 | Lecture | | |
|May 14 | Lecture | | |
|{date} May 16 | Study Day | | |
|{warning} May 18 | Final Exam | Time 1:00-3:00 | - |

* A. V. Oppenheim and R. W. Schafer, Discrete-Time Signal Processing, 3rd ed. Upper Saddle River, NJ: Prentice-Hall, 2010. ISBN 978-0131988422 [Amazon](http://www.amazon.com/gp/product/0131988425)
* Hayes, Monson H. Schaum's outline of digital signal processing , 2nd Edition . McGraw-Hill, Inc., 1998. ISBN-13: 978-0071635097 [Amazon](http://www.amazon.com/gp/product/0071635092)
* Errata

Assigned: Thurdsay 2018/02

Due: Monday 2018/02/14 Beginning of class * From OS 2.45*,2.49*,2.51*,2.54,2.56,2.63*,2.65,2.67,2.77* * All problems must be submitted. * The problems with asterisk will be graded based on correctness and effort should be made to clearly identify and explain your solution. * The other problems will be graded for completeness (that you attempted to completely solve the problem and provide an answer). * You may collaborate with other students on this homework, but must identify them by name with your submission by writing their names on a coversheet.

Due: Monday 2018/02/14 Beginning of class * From OS 2.45*,2.49*,2.51*,2.54,2.56,2.63*,2.65,2.67,2.77* * All problems must be submitted. * The problems with asterisk will be graded based on correctness and effort should be made to clearly identify and explain your solution. * The other problems will be graded for completeness (that you attempted to completely solve the problem and provide an answer). * You may collaborate with other students on this homework, but must identify them by name with your submission by writing their names on a coversheet.

Due: Monday 2017/02/26 Beginning of class

From OS 3.21, 3.31, 3.36, 3.42, 3.46, 3.48, 5.7, 5.8

From OS 3.21, 3.31, 3.36, 3.42, 3.46, 3.48, 5.7, 5.8

- On this HW, though you may have discussion with collaberators and even compare final answers, you must write the entire final submitted solutions for the graded problems entirely on your own as you would an exam. Any form of direct copying or transcribing of another student's written solution is not allowed. Providing another student access to your written solution for the purpose of copying is not allowed. No handing off solutions -- Providing access of your written solution to another student beyond purpose required to aid simultaneous discussion is not allowed.
- You must identify all collaberators by name with your submission by writing their names on a coversheet.

Assigned: 2017/02/27

Due: Monday 2017/03/12 at START OF CLASS (no late submissions).

From OS:

Due: Monday 2017/03/12 at START OF CLASS (no late submissions).

From OS:

- 5.24,5.28,5.34,5.45(a,b,c,d,e,f,g,h,i,j) (pace yourself to complete at least this much by class next Wed)
- 5.46 5.47 5.53 5.61 (Tuesday)
- Graduate Students Only: 5.72

Assigned: Thurdsay 2017/03/14

Due: Monday 2017/03/28 (or day after class 29th under my office door) Beginning of class

From OS: 4.4,4.20,4.24,4.36,4.39 Due 21

Due: Monday 2017/03/28 (or day after class 29th under my office door) Beginning of class

From OS: 4.4,4.20,4.24,4.36,4.39 Due 21

Assigned: Thurdsay 2018/04/02
Due: Monday 2018/04/09
* From OS: 8.8,8.10,8.12,8.17,8.29
* E5.13 : Example 5.13 in the OS text presents a filter in (5.97) and a phase correction allpass filter in (5.100) that creates a minimum phase system (5.99).
Using Matlab Code Publishing Feature (https://www.mathworks.com/help/matlab/matlab_prog/publishing-matlab-code.html) or an IPython/Jupyter Notebook,
* for each of the three systems, Create the pole zero plots
* for each of the three systems , find the coefficients for the numerator and denominator z^-1 polynomial (i.e. b and a)
* for each of the three systems, use the coefficients to call freqz and then plot the resulting phase, magnitude, and group delay

Assigned: Thurdsay 2018/04/09
Due: Monday 2018/04/16
* Computer Problem:
* 1500 samples of a continuous signal from stationary process comprising two sinusoidal components is obtained by sampling at 8k samples/sec. The data is provided in the csv below. You are asked to compute the frequency of the two components using the dft (fft).
* (a) Assume that you need to know the frequency of each to within the nearest 16 Hz. How many samples do you actually need? Use that many to find the frequency of the two sinusoids. Show the dft result as a stem plot and report the frequencies answers directly from the dft result.
* (b) Assume that you need to know the frequency of each to within the nearest 10 Hz. How many samples do you actually need? Use that many to find the frequency of the two sinusoids. Show the dft result as a stem plot and report the frequencies answers directly from the dft result.
* From OS:
* 7.7
* 7.15
* 7.27 (use python/matlab for plotting and explain results with theory)
[mystery_peaks.csv](./attachments/mystery_peaks.csv)
```python
import pandas as pd
#df = pd.read_csv('https://eclipse.umbc.edu/robucci/enee610/attachments/mystery_peaks.csv') # this may work for you
df = pd.read_csv('mystery_peaks.csv') #for this version, you have to download the csv
xx = df['time_series'].values
tt = df['time_stamps'].values
```

Assigned: Thurdsay 2018/04/18
Due: Monday 2018/04/25
* Q1: 7.4
* Q2: 7.13
* Q3: Using a bilinear transformation, design a digital Butterworth highpass filter with the following specifications:
* passband edge at 50kHz
* stopband edge at 25kHz
* peak passband ripple of 0.5 dB
* and a minimum stopband attenuation of 50dB.
Provide the following:
* (a) Provide the specification of the analog highpass filter
* (b) Provide the specification of the analog lowpass filter
* (c) Provide all relevant analytical transfer functions
* (d) Plot the analog lowpass, analog highpass, digital filter frequency responses
* Q4: Rework by hand the follow two problems: Hayes 9.39 Hayes 9.40 Plot the responses of the two resulting filters in matlab
* Q5: Hayes 9.69 - Provide a more detailed explanation than answer given explaining why. Sketch an example analog filter frequency response and the two resulting digital filter frequency responses to help explain. You may use matlab to plot responses instead of producing hand sketches.