ECE 4680 Signal Processing Laboratory

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.
- Lab 1 as of July 25, 2024 02:20:52 (UTC). Lab 1 isample notebooks (Python & Julia) as of August 08, 2024 02:48:20 (UTC).
- Lab 2 as of July 25, 2024 02:20:51 (UTC). Jupyter notebook for recording and loop playback (two playback methods) as of September 09, 2024 09:47:40 (UTC). This ZIP includes the two appendices to Lab 2 (Matrix_Tips_ipynb) as a Jupyter notebook. Stereo audio wav test file.
- Lab 3 as of July 25, 2024 02:20:51 (UTC). FM 4 tools setup and board check as of September 13, 2024 07:27:43 (UTC). Lab3_zip as of September 14, 2024 02:26:54 (UTC).
- Lab 4 as of July 25, 2024 02:20:50 (UTC). Lab4_zip as of September 14, 2024 02:26:56 (UTC). Jupyter notebook inside project Python subfolder explains noise capture and spectrum estimation process.
- Lab 5 as of July 25, 2024 02:20:50 (UTC). Lab5_zip as of September 14, 2024 02:26:57 (UTC).
- Lab 6 as of July 25, 2024 02:20:50 (UTC). Lab6_zip as of September 14, 2024 02:26:57 (UTC).
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 1 as of 03:23 PM on Wednesday, August 25, 2021. Lab 1 sample notebooks (Python & Julia) as of August 08, 2024 02:48:20 (UTC).
- Lab 2 as of 09:20 PM on Thursday, September 30, 2021. Jupyter notebook for recording and loop playback (two playback methods) as of September 09, 2024 09:47:40 (UTC). This ZIP includes the two appendices to Lab 2 (Matrix_Tips_ipynb) as a Jupyter notebook. Stereo audio wav test file.
- 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