News for

12/18: Histogram of the homework scores, including bonus points.

12/17: I hope graduation went well today. I will be grading papers for some time to come, but do have a histogram of the final exam. Not what I was hoping for.

A supplemental Lecture 9 video that walks through debugging in vs code and then importing files back into Jupyter notebook.

I just posted a document detailing the install of MSYS2 with GCC and then configuring vs code here

3D audio simulator using pyaudio_helper. Link to GitHub in the paper. Real-time DSP in the Jupyter notebook as presented at Scipy2018.

The use of Python >=3.8x and the Python package scikit-dsp-comm is part of this course. The syllabus describes basic install info.

Office Hours

T 3:05 to 4:15 PM and 7:05 to 8:00 PM,
or by appointment.
Phone 255-3500,

Learning Python

Python Basics a tutorial written in Jupyter Notebook. ZIP.

Link to Anaconda. This is the scientific Python I recommend.

Two IDE's I recommend are (1) VS Code with the Python extension and (2) Pycharm Community Edition.

Cheatsheet for MATLAB/Python/Julia

NumPy2MATLAB and IPython reference card

EAS RATS and LATS Servers

Obtaining Mathematica

Mathematica is available across the campus due to the CU system wide site license. This system-site license also means that students may install their own copy on home computers as well. Some links of interest regarding the CU site license for Mathematica are: download and installation and support information.

Catalog Course Description

Study of linear discrete-time systems, linear difference equations, Z-transforms, discrete Fourier transform, fast Fourier transform, sensitivity discrete random processes, quantization effects and design-related concepts.
Prerequisite: ECE 3205 and ECE 3610, or equivalent
Offered: Fall (S)

Course Materials - Course Notes, m-Code

Course Syllabus as of 03:17 PM on Wednesday, August 25, 2021.

Intro Lecture as of 10:33 PM on Tuesday, August 31, 2021.

Lecture Notes

  • PDF file of Chapter 2 as of 07:28 AM on Tuesday, August 24, 2021.
  • PDF file of Chapter 3 as of 07:29 AM on Tuesday, August 24, 2021.
  • PDF file of Chapter 4 as of 07:30 AM on Tuesday, August 24, 2021.
  • PDF file of Chapter 5 as of 07:31 AM on Tuesday, August 24, 2021.
  • PDF file of Chapter 6 as of 07:31 AM on Tuesday, August 24, 2021.
  • PDF file of Chapter 7 as of 10:03 PM on Tuesday, October 05, 2021.
  • PDF file of Chapter 8 as of 07:32 AM on Tuesday, August 24, 2021.
  • PDF file of Chapter 9 as of 07:32 AM on Tuesday, August 24, 2021.

Other Course Materials

The DSP demo applications that I have used in class demos, are posted as ZIP files under the link Other Course Materials.

Support Materials for Sampling Theory

Lecture Videos - Streaming and Download

Fall 2021 Lectures as MP4 Movies

All video content is now MP4. The typical file size per lecture is about 300 MB, or less with the MP4. You may be able to stream them, but it is better to download and play from your file system.

A video that talks about Jupyter notebook to PDF conversion via markdown (MD) using the Typora editor. I also walk through the use of Plotly for plots versus matplotlib, and some tweaks to Typora (tweaked theme CSS file).

Two videos for each lecture will be maintained. Presently [2018 to 2019], which will be replaced as new lectures occur to [2019 and 2021]. Green denotes a new 2021 lecture video.

To directly download the lectures for playback at a later time, go to the lectures folder, right click, and download

Problem Sets with Solutions
  • Set 1 as of 06:29 AM on Wednesday, September 01, 2021. Set 1 IPYNB Helper Notebook. Hints as of 08:08 PM on Thursday, September 02, 2021. Solutions as of 08:13 AM on Saturday, September 18, 2021.
  • Set 2 as of 10:11 PM on Monday, September 13, 2021. Hints as of 02:55 PM on Wednesday, September 29, 2021. Solutions as of 07:48 AM on Saturday, September 25, 2021
  • Set 3 as of 10:41 AM on Thursday, September 23, 2021. Hints as of 04:13 PM on Monday, October 04, 2021. Solutions as of 07:31 AM on Saturday, October 09, 2021
  • Set 4 as of 09:48 PM on Thursday, October 14, 2021. Hints as of 10:22 PM on Friday, October 22, 2021. Solutions as of 08:52 AM on Saturday, October 30, 2021
  • Set 5 as of 03:28 PM on Wednesday, November 10, 2021. Hints as of 02:37 PM on Monday, November 01, 2021. Solutions as of 08:02 AM on Saturday, November 13, 2021
  • Set 6 as of 05:29 PM on Saturday, November 13, 2021. Hints as of 05:29 PM on Saturday, November 13, 2021. Solutions as of 05:07 PM on Friday, November 19, 2021
  • Set 7 + hints as of 10:38 PM on Saturday, November 27, 2021. Solutions as of 06:57 AM on Thursday, December 09, 2021
  • Set 8 + hints as of 02:06 PM on Thursday, December 09, 2021. Solutions as of 07:40 AM on Saturday, December 11, 2021
Jupyter Example/Tutorial Notebooks

A Collection of Jupyter Notebooks

Check the posting date for the newest.

Python Projects

Python-based projects making use of Numpy and Scipy has replaced the older MATLAB projects since Fall 2014:

New Python Projects

  • Set #1p as of 10:26 PM on Friday, November 26, 2021 and the project ZIP file as of 08:43 AM on Thursday, January 06, 2022. The ZIP includes a sample IPYNB file for problems 1, 3, and 4 and a separate notebook for problem 5. The Problem 2 zip as of 09:55 AM on Tuesday, October 12, 2021 is Python and C++ code in a project folder titled FFT_filter when unpacked. MSYS2 + gcc + vs code debug install notes as of 11:01 PM on Sunday, October 17, 2021.
  • 2021 Final Project:Set #2p (Final Project) as of 05:14 PM on Wednesday, December 01, 2021 and the project ZIP file as of 10:39 PM on Saturday, November 27, 2021. The ZIP includes a sample IPYNB file for all three problems (problem 2 is a bonus problem), including quite a few code snips to get you started coding algorithms and making plots. I'm trying to streamline your efforts.
  • 2019 Final Project: Project2/Final Project as of 08:35 AM on Saturday, December 21, 2019 and the project Project ZIP including a sample IPYNB and file as of 12:18 PM on Wednesday, November 27, 2019. Some updates are possible, but I do not expect anything significant. In the end this project is not that demanding.
Julia Modules and Pluto Notebooks

As time permits I will update the Julia dsp_tools.jl and comm_tools.jl modules in the first ZIP file below. I will also add more Pluto notebooks as time permits.

  • The first Julia and Pluto notebooks can be found in a ZIP package that includes two Pluto notebooks, support modules that I am developing, and a markdown info doc (also in pdf), plus the nice PDF exports that are directly producable when exporting from the Chrome or Edge browsers.
Sample Exams with Solutions

Spring Related 2020 (cont.)

A course of related interest Spring 2020 is Real-Time DSP, ECE 5655/4655-3, a three credit course on programming the ARM M4 Cortex. Keil MDK is the IDE and we make use of the ARM CMSIS-DSP library.