Skip to content

ECE420

ECE 420 (Embedded DSP Lab) is a 2-credit-hour course that satisfies the Technical Electives requirement for ECE majors. It is offered in both the fall and spring semesters.

Content Covered

This is a very enjoyable and rewarding lab for undergraduates. The class can be a substantial amount of work, but the skills taught are very applicable. The focus is on implementing most of what is taught in ECE310 and students deal with practical issues of DSP implementation such as quantization error, memory usage, floating point precision; these few practical concerns are the main new concepts. Students don't need to remember all concepts from ECE310, but they are expected to know or learn concepts necessary for implementation. Students must code in TI (Texas Instruments) Assembly code and C for this class, as well as some minor work in MATLAB---the assembly and C code are used to program the DSP chip, whereas MATLAB is mainly used for simulation before programming the chips. In weekly lectures, the professor introduces new theories related to DSP or reviews old concepts from ECE310. The final project gives you the freedom to explore a project of personal interest under the guidance of the professor and TAs. Students usually learn new concepts and algorithms related to their projects at that time.

Outlines of each lab are listed below (details can be found on course website):

  • Lab 0: This lab is for hardware introduction, students will learn how to use Code Composer (IDE in this course) to program DSP chips. They also learn how to use MATLAB to design filters and check output error.
  • Lab 1: In this lab, students implement FIR filters on chip. They will learn some basic instructions in TI Assembly Code.
  • Lab 2: In this lab, students implement Upsampling and Downsampling with casaded FIR filters on chip using C, which interfaces with previously used Assembly code. The students are expected to figure out the syntax for passing values between the two languages.
  • Lab 3: In this lab, students implement IIR filters on chip. The original IIR filter is 4th order and they are required to use two lower order filters to get the same output as the original filter. Since the chip can only represent numbers between -1 and 1, the main challenge is to use gain factors to avoid overflow and then compensate the reduced output amplitude caused by the gain factor. Another challenge is find a way to overcome the large filter coeffcient problem. This lab is implemented entirely in C.
  • Lab 4: From this lab, students start programming in C on the Android platform and learn how to process data in blocks of multiple samples. The main goal is to implement a spectrum analyzer application. Most of the analyzer code is given so students only need to write the C code that implements the analysis.
  • Lab 5: In this lab, students are given code that takes camera input from the Android device and displays it on the screen in grayscale in realtime (as a video). The students' task is to take the color information from the camera input and map it from the YUV420sp colorspace into the RGB colorspace for color display, and also to implement a histogram equalization of color intensities in each frame of the video.

Prerequisites

The only prerequisite listed for the class is ECE310 (Digital Signal Processing). While ECE310 is the only class that is absolutely essential, experience with assembly programming, C programming and MATLAB is a major plus. Students who have previously been exposed to assembly programming through ECE220 (Computer Systems and Programming) should have a sufficient advantage before taking this class.

When to Take It

This class is usually offered every semester. Taking this class within a couple of semesters of taking ECE310 is a good idea, as solid understanding of the material in ECE310 makes this class a lot easier. Each week's prelab and quiz typically involves questions from DSP theory. It might also be enjoyable to take this class after taking other electives in related areas such as imaging and communications so that you can do something cool for your final project.

Course Structure

This is an open lab, meaning you will need to complete lab assignments at the DSP lab outside of class hours. The work required for this class is 5 required weekly labs, each of which includes a pre-lab assignment and a demonstration of the assignment (no write-ups). The pre-labs often deal with something from ECE310. These weekly labs cover essentials such as implementation of FIR and IIR filters, FFTs, and up- and down-sampling. Before demonstrations of each lab, students take a written quiz. Each quiz has a few short questions related to the concepts introduced in the lab about to be demonstrated.

After the 5 labs, you'll have a final project. For the final project, you will present a project proposal, a helper lab assignment, a design review presentation, and a demonstration of the final project. The nice part about ECE420 is that the weekly labs do not require you to spend time writing up reports, but instead require you to spend the time understanding the theory and practical considerations. The final projects in this class are usually substantial, and are very rewarding once completed. Some examples of past final projects include a guitar effects mixer, number-recognizing processors, and a modem. The average student can expect to devote between 6 to 10 hours per week on this class outside class hours.

Instructors

The class is usually taught by Professor Thomas Moon. He's done a good amount of research in signal processing and has taught ECE310 in many semesters.

Life After

If you enjoy ECE420, classes to check out include ECE417, ECE418, ECE486 (Control Systems), and ECE463. ECE417 and ECE418 are classes that teach further signal processing theory and have associated lab work. ECE486, the control systems lab, and ECE463, the digital communications lab, are related electives.