ECE 4680 Signal Processing Laboratory

Course header graphic showing a speech waveform

Catalog Course Description

Analog filter design, design and simulation of digital processors including filters and FFT algorithms. Prerequisite: ECE 4650 or equivalent
Offered: Fall

News for Fall 2025

The syllabus for this course is updated for Fall 2025. Understand that the instructor is Chiranth Sidappa.

The Lab Zip Files Status 09-14-2024

The ZIP files for Labs 3, 4, 5, and 6 are now in place for use with the older FM4 board. I will be working on file updates to allow Labs 3, 4, 5, and 6 to run on the newer and more powerful STM32F746 board. With the small class size we have enough loaner FM4 boards. If you want your own board the STM32F7 board is a good option, but don’t expect support files to be posted for a while yet.

Choosing a New Board

Since around 2016 the real-time DSP board used in Labs 3-6 has employed an ARM Cortex M4. The board has been great but is no longer available. We have dwindling supplies available for student checkout. If you want to have your own board for use after the course, I highly recommend purchasing the STM32F746 Discovery board. Buy From Mouser. I notice the price has been creeping up from $49.95 earlier in the summer of 2024. DSP support for this board is provided by ARM on GitHub and I have developed an updated interface for using a modified GUI Slider that was used with the old FM4 and earlier boards.

Syllabus

Course Syllabus as of September 08, 2025 08:22:27 (UTC).

The DSP hardware experiments of Labs 3, 4, 5, and 6 make use of FM4_GUI_slider.exe, which is a Windows app. The app and the associated run-time libraries cannot fit in an 8Mb zip, thus they are presently found as a ZIP in the course Slack workspace. I can also email the ZIP to you.

The basic STM32F746 board testing, including a GUI slider interface is complete. The major step remaining is modifying the code examples to work with the STM32F746 audio codec interface library based on the ARM GitHub repo https://github.com/arm-university/Digital-Signal-Processing-Education-Kit.

  • Lab 3 as of . STM32F746 tools setup and board check as of . Lab3_zip as of .
  • Lab 4 as of . Lab4_zip as of . Jupyter notebook inside project Python subfolder explains noise capture and spectrum estimation process.
  • Lab 5 as of . Lab5_zip as of .
  • Lab 6 as of . Lab6_zip as of .

Learning Python

Python Basics a tutorial written in Jupyter Notebook. ZIP.

Link to Anaconda. This is the scientific Python I recommend. This applies to learning Python via just Jupyter Lab.

An IDE I recommend is VS Code with many nice extensions for Python, Julia, and Jupyter, C++, just to name a few.

Cheatsheet for MATLAB/Python/Julia

NumPy2MATLAB and IPython reference card