Welcome to the home page for ECE4703 "Real-Time Digital Signal Processing" for B-term 2012.
announcements and lecture slides
- [05-Dec-2011] Lecture 10. We began our study of adaptive filtering by covering the MMSE criterion, batch calculation of MMSE filter coefficients, and gradient descent methods. 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.
- [29-Nov-2012] Lecture 9. 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. And finally, Texas Instruments documentation on bit-reversal and digit-reversal. If you are interested, this discusses how the TI bitrev.sa and digitrev_index.c functions work and how they are memory and computationally efficient.
- [26-Nov-2012] Lecture 8. We discussed frame-by-frame processing and asymptotic complexity of algorithms.
- [19-Nov-2012] Lecture 7. We will discuss efficient ASM coding on the C6713 and make use of schedule tables for lecture 7. Here also is some example code for efficient C-callable assembly functions for the dot product examples covered in lecture. In particular, note the #pragma DATA_ALIGN for forcing the compiler to properly align the arrays for double-word loads.
- [12-Nov-2012] Lecture 6. I will first discuss any remaining issues with fixed-point filtering and discuss the simulator I sent out on Friday. I will then 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.
- [08-Nov-2012] Lecture 5 was about avoiding overflow in fixed-point addition and fixed-point IIR filtering.
- [05-Nov-2012] Lecture 4 was about fixed-point filtering. In particular, I will spend some time discussing good strategies for fixed-point multiplication.
- [01-Nov-2012] Lecture 3 handout on realization structures.
- [29-Oct-2012] Lecture 2 was canceled due to Hurricane Sandy. These are the slides I was planning on covering. Most of the material in slides 1-18 should be review. The material in slides 19-32 is directly relevant for Lab 2 and I will cover this material at the start of lab on Wednesday 31-October.
- [25-Oct-2012] Lecture 1 slides (pdf). If time permits, I will demonstrate some of the profiling features in CCS v4. Here is a 4 minute screencast on breakpoint/stopwatch profiling in CCS v4.
- [24-Oct-2012] First lab session hardware introduction and software introduction (pdf).
- [23-Oct-2012] 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. Signoff between 2-5pm on 31-October-2012. Project report due by 3:00pm on 01-Nov-2012.
lab 2: floating-point FIR and IIR filtering
Assignment (pdf) and grade sheet. Signoff between 2-5pm on 07-November-2012. Project report due by 3:00pm on 08-Nov-2012.
lab 3: fixed-point FIR and IIR filtering
Assignment (pdf) and grade sheet. Signoff between 2-5pm on 14-November-2012. Project report due by 3:00pm on 16-Nov-2012 (note 1-day extension).
lab 4: hand-optimized assembly language programming
Assignment (pdf) and grade sheet. Signoff between 2-5pm on 28-November-2012. Project report due by 3:00pm on 29-Nov-2012.
lab 5: frequency-domain filtering
Assignment (pdf) and grade sheet. Signoff between 2-5pm on 05-Dec-2012. Project report due by 3:00pm on 06-Dec-2012
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 The Distance by Cake. Signoff between 2-5pm on 12-Dec-2012. Project report due by 3:00pm on 13-Dec-2012. Due to grading constraints, no late submissions can be accepted.
examinations
The midterm examination is scheduled for November 15. The mean was 172 and the maximum was 200.
The final examination is scheduled for December 13.
homework
No homework is assigned in this course.