Catalog Course Description
An introduction into the design, development, and implementation of signal processing alogithms on real-time hardware targets. The emphasis will be on high-level language (e.g., C), but assembly language will also be discussed.
Prerequisite: ECE 5650/4650, or ECE 2610/3205 or equivalent
Offered: Spring
Course Syllabus as of 09:38 AM on Thursday, January 06, 2022.
Chapter 1 as of 01:14 PM on Monday, January 24, 2022.
Chapter 2 as of 02:20 PM on Monday, February 07, 2022.
Chapter 3 as of 04:19 PM on Monday, February 06, 2017. Chapter 3 asm examples zip as of 06:55 AM on Wednesday, February 24, 2016.
Chapter 4 as of 03:18 PM on Monday, March 07, 2016.
Chapter 5 as of 03:40 PM on Monday, March 05, 2018. Codec codebase.
Chapter 6 as of 06:15 PM on Tuesday, April 05, 2022. Python FIR filter design is now integrated into the Chapter 6 notes. The Assignment 4 ZIP contains a notebook in the Python folder that tracks the updated Chapter 6 Python examples.
Chapter 7 as of 11:05 AM on Monday, April 11, 2022. Python IIR filter design is now integrated into the Chapter 7 notes. The Assignment 5 ZIP contains a notebook in the Python folder that tracks the updated Chapter 7 Python examples.
Chapter 8 as of 02:57 PM on Monday, April 18, 2022. Adaptive Keil project with Jupyter notebook. as of 03:27 PM on Monday, April 13, 2020.
Chapter 9 as of 01:56 PM on Monday, April 20, 2020 FFT project with Jupyter notebook as of 09:30 PM on Monday, April 20, 2020.
Chapter 10 as of 12:25 PM on Wednesday, May 11, 2022. Costas loop project with Jupyter notebook as of 12:31 PM on Wednesday, May 11, 2022.
Appendix A as of 03:21 PM on Monday, February 15, 2016. Keil projects: FM4 UART code base and GUI slider interface, and ST32F4 Slider GUI ZIP, and Serial port debug ASM ZIP.
Appendix B as of 07:54 PM on Friday, February 13, 2015. Corresponding IPython notebook: IPYNB zip as of [an error occurred while processing this directive] (an .ini function file included), IPYNB PDF as of 07:50 PM on Friday, February 13, 2015
Appendix C as of 11:05 AM on Monday, February 23, 2015.
Appendix D as of 08:06 AM on Tuesday, February 24, 2015.
Appendix E as of 10:33 AM on Friday, March 13, 2015. GPIO example.
Appendix F. FM4_PN_lut_intr example.
For the Spring 2020 offering of this course, MP4 video files will be produced.
Right clicking over the links should give you the option of copying the URL. The .mp4 file is in a high resolution 1280 x 720 format at 8 frames per second. The typical file size per lecture is about 300 MB.
- Lecture 1 (sp22). Lecture 1 (sp20).
- Lecture 2 (sp22). Lecture 2 (sp20).
- Lecture 3 (sp22). Lecture 3 (sp20).
- Lecture 4 (sp22). Lecture 4 (sp20)
- Lecture 5 (sp22). Lecture 5 (sp20).
- Lecture 6 (sp22). Lecture 6 (sp20).
- Lecture 7 (sp22). Lecture 7 (sp20).
- Lecture 8 (sp22). Lecture 8 (sp20).
- Lecture 9 (sp22). Lecture 9 (sp20).
- Lecture 10 (sp20). Lecture 10 (sp20).
- Lecture 11 (sp22). Lecture 11 (sp20).
- Lecture 12 (sp22). Lecture 12 (sp20).
- Lecture 13 (sp22). Lecture 13 (sp20).
- Lecture 14 (sp22). Lecture 14 (sp19).
All of the content in this tab needs to be updated.
- Assignment 1 as of 01:36 PM on Wednesday, February 02, 2022. FM4_tools_setup_with_Keil as of 01:40 PM on Thursday, January 06, 2022. Assignment 1 ZIP a package for use with the Reay text as of 01:00 PM on Monday, January 31, 2022.
- Assignment 2 as of 08:58 PM on Monday, March 07, 2022. Assignment 2 ZIP a package for use with the Reay text as of 08:21 AM on Thursday, February 24, 2022. Hints
- Assignment 3 as of 08:58 PM on Monday, March 07, 2022. Assignment 3 ZIP a package for use with the Reay text as of 03:16 PM on Friday, March 11, 2022. FM noise capture sample.
- Midterm document as of 07:31 PM on Tuesday, March 22, 2022. Midterm ZIP as of 09:08 AM on Tuesday, March 15, 2022.
- Final project RFP as of 09:11 AM on Tuesday, March 15, 2022.
- Assignment 4 as of 07:29 PM on Tuesday, March 29, 2022. Assignment 4 ZIP a package for use with the Reay text as of 09:33 AM on Tuesday, April 05, 2022. Jupyter notebook sample pdf as of 01:02 PM on Tuesday, April 05, 2022.
- Assignment 5 as of 07:17 AM on Monday, April 11, 2022. Assignment 5 ZIP a package for use with the Reay text as of 10:36 AM on Monday, April 11, 2022. ECE2610 Audio Project PDF as of 09:07 AM on Saturday, March 31, 2018. PC Speakers notebook and PC Speakers pdf. Music and Tone Mixing.
Course Syllabus as of 09:38 PM on Sunday, January 19, 2014.
Chapter 1 Lecture Notes as of 12:02 AM on Monday, January 20, 2014.
Chapter 2 Lecture Notes as of 03:14 PM on Tuesday, February 07, 2012.
Chapter 3 Lecture Notes as of 03:30 PM on Tuesday, February 07, 2012.
Chapter 4 Lecture Notes as of 10:16 PM on Sunday, March 11, 2012.
Chapter 5 Lecture Notes as of 10:34 PM on Monday, February 27, 2012.
Chapter 6 Lecture Notes as of 10:39 PM on Monday, February 27, 2012.
Chapter 7 Lecture Notes as of 06:47 AM on Tuesday, March 13, 2012.
Chapter 8 Lecture Notes as of 05:15 AM on Tuesday, April 03, 2012.
Chapter 9 Lecture Notes as of 05:25 AM on Tuesday, April 17, 2012.
Chapter 10 Lecture Notes as of 04:35 PM on Monday, May 02, 2022.
Chapter 11 Lecture Notes as of 05:08 PM on Sunday, April 22, 2012.
Chapter 12 Lecture Notes as of 01:18 PM on Tuesday, April 24, 2012.
Chapter 13 Lecture Notes as of 09:24 AM on Tuesday, April 13, 2010.
Chapter 14 Lecture Notes as of 10:25 AM on Tuesday, April 13, 2010.
Appendix A Lecture Notes as of 05:05 PM on Tuesday, January 31, 2012.
For the Spring 2012/2013/2014 offering of this course, streaming QuickTime movies were produced.
You will need to have the free QuickTime player installed on your PC or Mac (get it). If clicking the link below does not start your QuickTime player you can manually start QuickTime, then the 'Choose File -> Open URL' menu item and enter the URL pointed to by the below links. The URLs are of the form lectures/ece5655/Lecture#.mov, where # is 1, 2, ... Right clicking over the links should give you the option of copying the URL. The .mov file is in a high resolution 1024 x 768 format at 8 frames per second. The typical file size per lecture is about 300 MB.
- Lecture 1_s13 (sp13).
- Lecture 1 (sp12).
- Lecture 2 (sp12).
- Lecture 3 (sp12).
- Lecture 4 (sp12).
- Lecture 5 (sp12).
- Lecture 6 (sp12).
- Lecture 7 (sp12).
- Lecture 8 (sp12).
- Lecture 9 (sp12).
- Lecture 10 (sp12).
- Lecture 11 (sp12).
- Lecture 12 (sp12).
- Lecture 13 (sp12).
- Lecture 14 (sp12).
To directly download the lectures for playback at a later time, go to the lectures folder, right click, and download
- Set #1 as of 03:09 PM on Monday, January 27, 2014. (Due 2/10) Set #1 ZIP as of 04:36 PM on Monday, January 27, 2014.
- Set #2 as of 07:55 AM on Wednesday, February 19, 2014. (Due 2/26)
- Set #3 as of 10:23 PM on Tuesday, March 12, 2013. (Due ~2/12). Hints as of 09:20 PM on Tuesday, March 26, 2013. simpleSA.m.zip.
- Final Project RFP as of 01:05 PM on Tuesday, March 12, 2013.
- Set #4 as of 01:05 PM on Tuesday, March 12, 2013. (Due 4/9)
- Set #5 as of 01:08 PM on Tuesday, March 12, 2013. (Due 4/23) OMAP-L138 serial port configuration.
- MISRA: Comments from lecture and a handout.
- Notes and comments from lecture 2/3/2014.
- MISRA C-Some key rules to make embedded systems safer
- Supporting link #1. Supporting link #1.
- Take a look at the TI C6x standard int header now.
- Norm Squared ZIP package (C, ASM, SA, and PJTs updated sp2012)
- myFirstProject_Plus (OMAP-L138), VC5505 advanced polling, and C5515 advanced polling examples
- Fixed and float FIR packages (C and PJT updated sp2012)
- Float SOS and oscillator package (C and PJT updated sp2012)
- Adaptive
- You may obtain your own OMAP-L138 via the TI e-store.
- C6748 Data Sheet
- Technical Reference Manual
- C6000 Optimizing Compiler
- C6000 Assembly Language Tools
- TMS320C67x/C67x+ DSP CPU and Instruction Set Reference Guide
- L138 Boot Loader
- AIC3106 Data Sheet
- TI app note on fixed-point IIR design
- EDN magazine fixed-point IIR design article.
Specifics
This course is about the use of general purpose digital signal processing microprocessors for solving signal processing problems in real-time. The new version of the course with utilize the ARM Cortex M4 processor family. Previously the course focus was on using the Texas Instruments (TI) C6x family of fixed and floating processors, and in particular implementing programs written in assembly, linear assembly, and C for the OMAP L138 (C6748 DSP). The old material is still available on the Web Site with the tag - C6x.
For both processor families the course will start out considering general signal processing applications of real-time DSP. A focus applications area will be communication system design using DSP algorithms. The course meeting time will be used for lecturing and laboratory time using Cortex M4 (old C6x) hardware/software development tools ARM Keil at first (old Code Composer Studio).