EECS452 Picture

EECS 452 – Digital Signal Processing Design Lab

Instructional Team:

Primary Instructor: Prof. Victor Liu,  web

Lecture Hours and Venue: Tu & Th 12noon -1:30pm, GGBL 2153

GSI: Alyssa Anderson

Lab Session 011: Wed. 3:30-6:30pm.

Lab Session 012: Thu. 3:30-6:30pm.

IA: Rachel Nowak

          Lab Session 013: Wed 12noon - 3pm, (updated from 12:30pm-3:30pm posted before 8/26).

Please subscribe our course Calendar to get the most up-to-date time changes.

Course Highlights:

EECS 452 is a senior/graduate design course whose main focus is the application of real-time digital signal processing (including theory, software and hardware) to a multi-week team project. This course satisfies the CoE’s major design experience requirement. The course consists of lectures, structured laboratory exercises, and team projects. The lectures and structured laboratory exercises are intended to provide a foundation for the team projects to build on. Examples of topics covered in past semesters include:

Prerequisites

[EECS 280 and (EECS 351 or 455)] or Graduate standing or Permission from instructor.

Instruction

This class will be in a flipped classroom format, and paperless. You will be expected to view the relevant lecture material on Canvas before class; these lecture videos and content are by Prof. Hun-Seok Kim, Shai Revzen, and Al Hero. Some topics (i.e. PCA and KF) would be taught in person by Victor Liu. Most of the videos have brief (15 minutes) follow-up quizzes.  You must complete the quiz for all assigned videos before the start of the class for which those videos were assigned.  While the videos themselves are available at all times, the quizzes will only be available shortly before the lecture, to make sure the material is fresh in your mind when you come to class. Please find this Schedule at a Glance page for details.

Lab instructions will also be available online, and lab assignments will be done using lab kits that you should collect in the first lab sessions or by coordinating with the TAs.

Attendance at lectures is MANDATORY (but see below re. excused absences). Lecture participation is GRADED. Lecture time will be used to discuss questions about the recorded lectures, quiz questions, homework, and labs. 

Attendance at lectures is FORBIDDEN if you have a fever or more than one respiratory illness symptom. If you are ill, let us know over email with documentation no later than 24 hours after the lecture start time, and you will not be marked down for not attending. you might have to make up the requirements completed by others in the missing lectures. Also see the excused absences below.

If we have to switch to remote teaching, students will be expected to keep their video cameras ON throughout each class session.  Students benefit from being able to see, and not merely hear, each other during class, and a gathering in which many of the participants are invisible does not feel much like a class.  Having your video ON also helps us tell how you are reacting to the material — a sea of quizzical looks conveys one thing, and a set of heads nodding in understanding conveys something very different. It is fine if you turn off the video for a total of 10 minutes because you need to attend to a personal matter.  It is also fine if you want to use a virtual background or green screen to block out the background.  Students who fail to turn or keep on their video will be considered absent for that class session.  If you cannot turn or keep your video on for good reason (e.g., technological issues), please contact us individually so that we can discuss it.

For each class during the semester, we may record:

  1. who is called on and whether the student participates or passes. 
  2. who volunteers to participate in class.
  3. any particularly insightful comments made by class participants.

Each lecture, the professor will call on 3+ students, selected randomly before class, to explain and discuss their experiences with the material for this class and/or to discuss their homework.  Responses will be graded. 

Excused absences: each student is allowed 3 excused absences from lecture; no explanation needed.  If you have a documented illness related absence, this will not count against these, i.e. if you test positive for COVID / flu / other illness the related absences are in addition to the automatic excused absences.  To take advantage of an excused absence, email the instructor with the subject line "EECS452 excused absence" no later than 30 minutes before the class you intend to be absent from. Make-ups should be done after the absences. Students with recurring conflicts should discuss these in advance with the instructor to see if an accommodation can be made.

If you have additional absences for whatever reason, you can regain up to 50% of your classroom participation grade by sending an email to the instructors (professor and TAs) with a discussion of each your answers to the quizzes due for that class, and any questions or comments you have about the homework that would be discussed during that lecture.  Your email will be graded as if you participated in class and expressed the contents of the email. 

Second half of the semester: during the second half of the semester, lecture meetings will be used for project consultation and milestone presentations.  Attendance will remain mandatory as above.  All team members are expected to be available to answer questions regarding their progress and activities as part of their classroom participation grade. If a team member is absent for any reason, the other team members will be responsible for answering any questions about the missing members' areas of responsibility.  Grades for projects are based on individual contributions and participations on the team activities, mostly inside of the classrooms.  

Grading Scheme

(No) Textbook

Lectures and labs will be stand-alone and will draw from materials available on the web. You may also find textbooks used in previous courses to be useful, particularly textbooks used in EECS 351.  A good reference for many of the topics, but not required in any way for the class, is "Discrete-Time Signal Processing" by Oppenheim and Schafer.

Piazza  

We started using Piazza in Fall'25! Please leverage this place to find your teammates, read Q&As or brought up your own questions if you did not see anyone else asking them. 

You may also e-mail any questions to the Professor, CC the TAs.  If the reply is relevant to the whole class, it will be sent out as an announcement in Piazza or discussed in the lecture. 

Python, NumPy and SciPy

All computing for this class will be done in Python/SciPy (NOT Matlab).  Solutions and example code will be tested on Python (3.10.12), with NumPy (1.21.5), SciPy (1.8.0), MatPlotLib (3.7.1) and ipython (7.31.1), in an Ubuntu Linux environment. Information about installing SciPy for your preferred environment/OS can be found at https://scipy.org/. The Raspberri Pi computers in the lab kits have a working SciPy environment.  You can also run scipy on Jupyter Notebook within Docker by this command:

docker run -it -p 8888:8888 -v "$(pwd):/home/jovyan/work" jupyter/scipy-notebook

Additionally, you may want to install the [[pyfda]] filter design GUI as appropriate for you OS, and the [[ sounddevice package ]] for playing sounds.

Course policies, Engineering Honor Code

You are encouraged to interact with other students to discuss course material, and provide each other with debugging assistance, encouragement, and moral support. However, all individual assignments (i.e. homework assignments) are to be performed on your own, and all team assignments (labs and the project) are to be performed only by members of the team.

A lot has changed from previous semesters, and even questions we are re-using have been tweaked to produce different answers.  You are strongly discouraged from using answers from previous semesters.

All code used in the completion of homework, labs, and projects must either be written by you or must be properly acknowledged as part of the material you submit. The Engineering Honor Code obligates you not only to abide by this policy, but also to report any violations that you become aware of. Violations of this policy will be brought to the College of Engineering’s Honor Council. For more information on the Honor Code, see the Honor Council web page. If you have any doubts about whether a certain level of collaboration is permissible, or have any other questions, contact the Professor.

AI Policy: Feel free to use AI in any way you wish, with the following limitations. (1) you MUST NOT use AI to help you with quizzes; (2) if you use AI to help you with an assignment, write 1-2 sentence note describing which AI tool and what you used it for. If there are multiple tools / uses, write a note for each distinct use.

Laboratory policy

Lab Kits: A lab kit is necessary to complete EECS 452 labs; you will have individual lab kits which you will mark with your names when you receive them.

In-Person Laboratory Access. The EECS 452 laboratory takes place in-person in EECS 4341.  If students wish to use the EECS4341 laboratory during off hours (when no lab section is ongoing) to complete labs, or to work on the course project, they must contact GSIs to arrange a visit schedule. Please make every effort to keep the lab clean and tidy. We ask all students to clean the bench, keyboard, mouse, and any other equipment before and after use.

Manuals and Handouts. All manuals and documentation documenting the hardware and software used in the EECS 452 laboratory is on the web and can be found on these webpages. Copies of lecture recordings and lab handouts will be available on the Canvas web page.

Lab Reports

The structured laboratory experiments will be worked individually. The intent of the prelab exercises is to determine your understanding of the current experiment, the hardware, and the associated code. The prelab exercises must be submitted with the lab report PDF file but should be completed prior to the beginning of the associated lab section.

A report on each week’s lab work is required. Due the Friday after the week of the lab and should be submitted online to the appropriate Canvas assignment in PDF format, with the PDF separate from the other required documents. The report need not be lengthy but must be typed. Be complete and professional in your presentation.  Feel free to append supplementary material such as captured video and images. 

The lab report grade will be reduced by 20% for each day late.

Homework

Homework covering the material presented in the lecture will be assigned.  All submissions will be electronic using Canvas. The purpose of the homework is to reinforce the material covered in the lecture and lab.  You are encouraged to discuss the homework with others, the instructor, and/or the GSI.

However, all work must be done individually (program code, plots, and written homework) .

Assignments will be posted on Fridays and will be due in two weeks with following milestones:

Late homework grade will be reduced by 20% for each day late. 

Please contact the professor via email at least a week in advance in planned absences to prevent you from completing your homework to determine whether you can turn your homework in after the due date without penalty. 

Team Project

the core of EECS452 is your team's project

Projects are to involve the design and implementation of a stand-alone real-time signal-processing system using concepts, tools and techniques you have learned in EECS 216 (elementary principles of linear systems, Fourier analysis, filters, communication and feedback control), 301 (probability theory), 351 (discrete-time systems and signals, signal modeling, spectral analysis of deterministic and stochastic signals, image processing), 280 (programming and data structures) and 373 (embedded systems). In addition, it is expected that each team will draw upon the unique background and interests of its members as reflective of prior coursework, internships, and other extracurricular projects.

To help students come up with projects, we provide a theme and some related project ideas. You are not required to select one of our ideas or select a project that matches the theme.

Theme this semester: PRIVACY & SECURITY

There are many project ideas that are exciting, lovely, and might even fit the theme, but are not suitable as EECS 452 projects. The project MANDATORY REQUIREMENTS are

  1. All projects must include a significant real-time signal-processing component running on a "bare metal" embedded system, i.e. a system which has no interactive shell or UI and is programmed via cross-compiling.  Various hardware platforms can be used for this, such as Arduino, Teensy, ESP32, etc. In exceptional cases we may allow processing on RPI-s, but only if [i] the processing power needed is not available on any of our embedded platforms; [ii] the code doing the numerics on the RPI-s will be aggressively optimized (near-)real-time code written by the team in a fully compiled language (C, C++, Rust, D, etc.).  This means if you want to use ML, you need to be able to implement the core ML algorithms in e.g. C by yourselves and demonstrate that you optimized their numerical performance in meaningful ways.
  2. The real-time system must integrate at least one or more sensors (e.g., infrared, LIDAR, camera, microphone, ultrasound, or IMU) using one of several standard or custom communications protocols.
  3. Each project must show a prototype demo of all signal-processing and logic of their system by implementing the core functionality in Python on a PC or RPI, with particular attention paid to mitigating the effects of external environmental factors (lighting variations, unwanted sources, other contaminating/interfering signals, sensor position/ sensitivity), algorithmic modeling errors, and computational capacity/throughput of the microcontroller SoC components.
  4. All final implementations must be coded “on chip”, in the language(s) and operating system(s) appropriate for the device(s).

Team Formation

You will form your project teams in multiple phases.  Initially, you will post an introduction to yourself with 3 project ideas (Introduce Yourself and Your Ideas). You will then form 3-person Founding Teams and meet with the instructors to get feedback on your idea.  It is expected that 30% of the Founding teams will be disbanded at this stage, and the people on those teams will join other existing Founding teams to form Project teams of no more than 5 students per Project team.  We will ensure that every student interacts with multiple potential teams before making a commitment to be part of a team.

Written Proposal

Each project team must submit a written proposal along with an equipment budget (up to $250/team).  Each written proposal must address the course-wide constraints listed in the above as well as application-specific constraints, including the needs/expectations of the human user, and potential social impacts of the technology.  Each team will defend their proposal in an oral presentation in which staff will provide feedback on improving the overall design and tightening the system requirements.  The proposal must include a milestone review proposal, and a risk assessment and mitigation strategy. 

Milestone Reviews

There will be no formal lectures, labs, or homework during most of the second half of the course. Instead, lecture and lab periods will be open for consultation with the teaching staff and the lab will be open upon request (a GSI needs to be in the lab). Progress will be measured through milestone reviews and weekly class meetings.

Project Grade

The team project counts towards a large share of your final grade. The shared portion of this grade will be based on the quality of your team's product, as expressed by the mock tech expo final and your written documentation, as well as the steps your team took along the way to meet your project’s requirements/constraints.

After the final report, each of student will be asked to fill a team evaluation form. This form will give us additional information about what each team member has contributed.

Individual Adjustment of Project Grade

Each member of a team will receive a bonus or penalty to their individual grade of up to one letter grade difference (e.g. enough to convert an 'A' to a 'B' or visa versa), which reflects that member's contribution to the team's success as measured through the team evaluation form and staff assessment during the semester.