Welcome to the home page for ECE4703 "Real-Time Digital Signal Processing" for B-term 2011.
announcements and lecture slides
- [08-Dec-2011] Some potentially useful information about C6000 memory models.
- [08-Dec-2011] Some example Matlab code to demonstrate LMS-adapted unknown system identification. Although this code is vectorized to run fast in Matlab, you might find this useful for getting started on your C code for Lab 6.
- [07-Dec-2011] Texas Instruments documentation on bit-reversal and digit-reversal (found by Brennan Ashton). You may want to look this over to better understand how the TI bitrev.sa and digitrev_index.c functions work and how they are memory and computationally efficient.
- [05-Dec-2011] Example Matlab code demonstrating the concept of gradient descent and LMS for unknown system identification. Example Matlab code that you can use to perform system identification using the brute-force correlation and matrix inversion method.
- [01-Dec-2011] Matlab demo showing complexity trends of the FFT and DFT. This demo needs the support function dft.m. Also, slides for the complexity analysis of the FFT and FFT butterfly diagrams from the Thad Welch textbook.
- [28-Nov-2011] Example code for efficient C-callable assembly functions for the dot product examples covered in lecture on 21-Nov. In particular, I've added new #pragma DATA_ALIGN lines to show how to force the compiler to properly align the arrays for double-word loads.
- [21-Nov-2011] Schedule tables for lecture 7.
- [14-Nov-2011] Lecture 5. I will start these slides on assembly language programming on the C6713. An example C program for calling two assembly language functions (donothing.asm) and (test_asm.asm) may also be useful for understanding the examples and getting started on Lab 4.
- [10-Nov-2011] Lecture 5. Here is a summary of what we've discussed for avoiding overflow and maintaining precision in fixed-point multiplication. In this lecture we will cover fixed-point addition and put it all together for fixed-point FIR and IIR filtering.
- [10-Nov-2011] Lecture 4. We covered DF-II SOS IIR filters again and then began discussing fixed-point filtering.
- [03-Nov-2011] Lecture 3 handout on realization structures.
- [31-Oct-2011] Lecture 2 slides (pdf) and some aliasing and quantization examples.
- [28-Oct-2011] A .c shell file for use with TI's C6713 Cycle Accurate Simulator, as discussed in lecture on 27-October. You can just copy and paste your ISR into the "myfunc()" function and run this code in the simulator to profile the execution time. Note that you will still need to tell CCS where to find the BSL and CSL header files, but there are no calls to BSL functions in this code because the simulator doesn't support the peripherals on the DSK.
- [27-Oct-2011] Lecture 1 slides (pdf). If time permits, I will demonstrate some of the profiling features in CCS v4.
- [26-Oct-2011] First lab session hardware introduction and software introduction (pdf).
- [25-Oct-2011] An email was sent to the class mailing alias ece4703@ece.wpi.edu today. If you did not receive this email, please contact Prof. Brown.
general
There is no required textbook for this course. In the past, we have used Real-Time Digital Signal Processing: Based on the TMS320C6000 by Nasser Kehtarnavaz and Digital Signal Processing and Applications with the TMS320C6713 and TMS320C6416 DSK by Donald Reay and Rulph Chassaing. Both of these books are good references, but are not required for the course.
The course syllabus (pdf) including expected course outcomes, grading information, and late policies.
ECE4703 academic honesty policies.
ECE4703 students with disabilities statement.
links and files
- How to install Code Composer Studio v4 and the necessary chip support and board support libraries for use with the C6713 DSK. Note that CCS v4 can be downloaded and run without a license for 30 days.
- How to configure Code Composer Studio v4 for use with the C6713 DSK.
- How to build and run a "Hello World" project from a project template on the C6713 DSK in Code Composer Studio v4.
- How to create, build, run, and test a simple stereo loop project on the C6713 DSK in Code Composer Studio v4.
- Other useful links and files.
laboratory assignments
General report and project code submission guidelines (pdf).
lab 1: familiarization with ccs and the dsk
Assignment (pdf) and grade sheet. Project code and report due by 3:00pm on 03-Nov-2011.
lab 2: floating-point FIR and IIR filtering
Assignment (pdf) and grade sheet. Project code and report due by 3:00pm on 10-Nov-2011.
lab 3: fixed-point FIR and IIR filtering
Assignment (pdf) and grade sheet. Project code and report due by 3:00pm on 17-Nov-2011.
lab 4: hand-optimized assembly language programming
Assignment (pdf) and grade sheet. Project code and report due by 3:00pm on 01-Dec-2011.
lab 5: fast linear convolution
Assignment (pdf) and grade sheet. Project code and report due by 3:00pm on 08-Dec-2011.
Here are the TI files needed for the radix-2 FFT: cfftr2_dit.sa, bitrev.sa, and digitrev_index.c. Here also some example main code that shows how to correctly use TI's optimized FFT code (including the critical pragmas to ensure buffer alignment). Careful study of this example project should be helpful in the Laboratory 5 assignment.
lab 6: adaptive filtering
Assignment (pdf) and grade sheet. Useful files for testing your code: lab6part1.zip (three unknown systems to identify) and lab6part2.wav (noise cancellation sound file). The song in part 2 is "Pigs on the Wing: Part 1" by Pink Floyd. Project code and report due by 3:00pm on 15-Dec-2011. Due to grading constraints, no late submissions can be accepted.
examinations
The midterm examination (solution) was done on November 17. The mean was 172 and the maximum was 198.
The final examination was done on December 15. The mean was 157 and the maximum was 200.
homework
No homework is assigned in this course.