ECE 421 - Introduction to Signal Processing
Spring 2021
Instructor:
Dr. Dror Baron,
Email: barondror AT ncsu DOT edu
Office hour: on Zoom, Mondays and Wednesdays, 11:45 AM - 1:00 PM
Teaching assistant:
Hangjin Liu, Email: hliu25 AT ncsu DOT edu
Office hour: on Zoom, Tuesday 3 - 4 PM
Classroom:
Classes will be recorded in modules on Zoom. Office hours
will be held on Zoom, Mondays and Wednesdays, 11:45 AM - 1:00 PM.
Announcements
-
May 8, 2021:
Test 5 and its
solution.
-
April 26, 2021:
Learning objectives
for Test 5.
-
April 25, 2021:
Module 65 has been recorded.
-
April 24, 2021:
Modules 63 and 64 have been recorded; and
updated schedule.
-
April 23, 2021:
Module 62 has been recorded.
-
April 19, 2021:
Test 4 and its
solution.
-
April 15, 2021:
Modules 60 and 61 have been recorded; and
Slides #6 have been updated.
-
April 12, 2021:
Modules 58 and 59 have been recorded.
-
April 11, 2021:
Module 57 has been recorded.
-
April 8, 2021:
Modules 55 and 56 have been recorded.
-
April 6, 2021:
Modules 53 and 54 have been recorded;
Test 3; and its
solution.
-
April 3, 2021:
Modules 51 and 52 have been recorded;
Slides #5 have been updated; and
updated schedule.
-
April 2, 2021:
Modules 49 and 50 have been recorded.
-
April 1, 2021:
Modules 47 and 48 have been recorded.
-
March 28, 2021:
Modules 44, 45, and 46 have been recorded.
-
March 26, 2021:
Project 5.
-
March 24, 2021:
Learning objectives
for Test 3; and edited the mathematical part of
Project 4.
-
March 16, 2021:
Updated due dates for homeworks:
HW7, March 29; HW8 March 31; HW9 April 5; HW10, April 12; HW11, April 19; and HW12, April 21.
This information is reflected in our
updated schedule;
-
March 16, 2021:
Modules 41, 42, and 43 have been recorded;
Slides #4 have been updated;
updated schedule;
Test 2; and its
solution.
-
March 10, 2021:
Learning objectives
for Test 2.
-
March 7, 2021:
Modules 39 and 40 have been recorded.
-
March 6, 2021:
Module 38 has been recorded.
-
March 4, 2021:
Module 37 has been recorded.
Updated schedule
adds an extra wellness day, removes Project 6,
postpones Projects 3-5 to March 17,
April 5, and April 26, respectively,
and revises the homework schedule.
-
March 3, 2021:
Project 3
has been revised; the hint for part 5 of the mathematical
Question 2 has been removed, as it was misleading.
-
March 2, 2021:
Typo on page 47 of
Slides #2 has been corrected;
the corresponding slides for module 22 have been updated; and
modules 35 and 36 have been recorded.
-
March 1, 2021:
Updated project slides.
-
February 27, 2021:
Modules 33 and 34 have been recorded;
Slides #3 have been updated; and
updated schedule.
-
February 25, 2021:
Module 32 has been recorded;
Test 1; and its
solution.
-
February 23, 2021:
Project 4 is due on March 29; and
example solution.
-
February 21, 2021:
Modules 30 and 31 have been recorded.
-
February 18, 2021:
Modules 27, 28, and 29 have been recorded.
-
February 17, 2021:
Format for tests; and
learning objectives
for Test 1.
-
February 16, 2021:
Project 3
has been revised (see the red text on page 6); our
updated syllabus
(see the red text on pages 2 and 3)
specifies that individual submission of projects (starting from P2)
will be penalized by 10%; and
module 26 has been recorded.
-
February 15, 2021:
Modules 24 and 25 have been recorded.
-
February 13, 2021:
Updated schedule; and
module 23 has been recorded.
-
February 12, 2021:
Module 22 has been recorded; updated
Slides #2.
-
February 11, 2021:
Module 21 has been recorded.
-
February 10, 2021:
Module 20 has been recorded;
updated project slides
describe
Project 3.
-
February 9, 2021:
Modules 18 and 19 have been recorded.
-
February 8, 2021:
Today's discussion has been posted to our shared drive;
Project 3 is due on March 8; and
data for working through it.
-
February 7, 2021:
Modules 16 and 17 have been recorded.
-
February 6, 2021:
Background module 3 on linear algebra; and
background slides.
-
February 5, 2021:
Background module 2 on complex numbers and trigonometric functions.
-
February 4, 2021:
Background module 1 on arithmetic and geometric series has been recorded.
-
February 3, 2021:
Module 15 has been recorded;
example solution for Project1; and
example solution for Project2.
-
February 2, 2021:
Module 14 has been recorded.
-
February 1, 2021:
Updated
project slides and
Slides #1.
-
January 31, 2021:
Module 13 has been recorded.
-
January 30, 2021:
Modules 11 and 12 have been recorded; and
updated schedule.
-
January 28, 2021:
Project 2 is due on February 22.
-
January 26, 2021:
Modules 9 and 10 have been recorded.
-
January 25, 2021:
Today's discussion has been posted to our
Google drive;
modules 7 and 8 have been recorded; and
Project 1 is due on February 8.
-
January 23, 2021:
Module 6 has been recorded.
-
January 22, 2021:
Modules 4 and 5 have been recorded.
-
January 21, 2021:
Module 3 has been recorded.
-
January 20, 2021:
Homework 1 (HW1) is available;
there will no longer be quizzes, resulting in homeworks being worth 10%; and
quiz changes are reflected in an
updated syllabus.
Finally, you may use Python in your projects, but basic Matlab proficiency
will be expected in tests.
-
January 19, 2021:
Modules 1-2 have been recorded.
-
January 18, 2021:
Piazza.
-
January 17, 2021:
Syllabus;
Hangjin's office hours will be Tuesday 3 - 4 PM; and
updated schedule.
-
January 16, 2021:
Welcome to ECE 421! The course resources are
going online.
Moodle;
continuty plan; and
tentative schedule.
Useful Links
About this Course
Prerequisites
ECE 301 (linear systems) and familiarity with Matlab (download it
here; a
Matlab tutorial; and
another one).
Purpose
ECE 421 will familiarize students with the basic elements of signal processing.
It will teach you key concepts in discrete- and continuous-time signals and
systems including frequency domain analysis, linear time invariant systems,
Fourier transforms, and filtering. You will also learn how to sample analog
signals and later reconstruct them. Finally, you will learn to solve signal
processing problems numerically using the Matlab software package, and in
particular you will be able to apply a methodology to signal processing
problems that involves looking at the problem, translating it to mathematics,
proposing an algorithm, and implementing it in Matlab.
Course Syllabus and Outline
Here is a description of the
grand scheme
of the course and
syllabus.
We expect to loosely following the following
(tentative) schedule.
The course will proceed as follows:
- Introduction and Review.
Discrete-Time Signals and Systems and Z-Transform. (Chapters 1-3.)
-
Fourier transforms; frequency Analysis of Signals and Systems. (Chapters 4, 5.)
-
Sampling and Reconstruction of Signals. (Chapter 6.)
-
Some topics in modern signal processing.
-
The Discrete Fourier Transform (DFT). (Chapter 7.)
(Chapter 8 and the fast Fourier transform will only be covered in passing.)
-
Filter design. (Chapter 10.)
Course Materials
Textbook
The textbook used in this course is Digital Signal Processing - Principles, Algorithms, and Applications
by Proakis and Manolakis. Changes between editions have been minor, and any relatively
recent edition should be fine.
Matlab
Students are encouraged to use Matlab, and we expect to have some computer
homework questions. Matlab can be downloaded
here.
(Here's a
Matlab tutorial; and
another one.)
Note that you may use Python in your projects, but basic Matlab proficiency
will be expected in tests.
Slides / Modules / Handouts
Material will be organized in slides. Each set of slides will cover a few
weeks of material. Within each set of slides, hand written handouts
will cover the material in greater detail. And supplements covering
examples, useful links, Matlab demos, and so are intended to help
students deepen their understanding.
The presentations will revolve around chunks of material organized into modules.
The most detailed presentation of
the material appears in the course textbook.
It will probably help you utilize your time effectively if you
glance through the slides and handouts 1-2 classes ahead of where we are,
listen to the modules, attend our discussions,
and wait to read through the details in the textbook until after they've covered.
-
Background material -
For students' convenience, several modules containing mathematical background
were recorded.
- Background module 1 covers arithmetic and geometric series (pages 1-7).
- Background module 2 covers complex numbers (pages 8-15).
- Background module 3 linear algebra (pages 16-20).
-
Slides #1 -
introduction, signals & systems, periodicity, A/D and D/A conversion,
discrete time signals & systems, and correlation (Chapters 1-2).
-
Handout #1 - intro and motivation; and a
Matlab example.
- Module 1: What is ECE421 about? (Slides #1, pages 1-8.)
- Module 2: Motivation. (Slides #1, pages 9-13.)
-
Handout #2A - signals & systems; periodicity and sinusoids;
visual illustration of
aliasing;
another cool video showing "stationary"
helicopter blades;
and
supplemental
material about aliasing and problem 1.2.
- Module 3: Signals and systems. (Slides #1, pages 19-22.)
- Module 4: Frequencies and periodicity. (Slides #1, pages 23-29.)
-
Handout #2B - A/D and D/A conversion, and
HW2 example.
- Module 5: A/D and D/A conversion. (Slides #1, pages 30-35.)
- Module 6: The sampling theorem. (Slides #1, pages 36-38.)
-
Handout #3 - discrete time signals and systems;
supplement containing various examples;
and another
supplement about phases of sampled signals.
- Module 7: Discrete time signals and systems. (Slides #1, pages 39-47.)
- Module 8: Properties of discrete time systems. (Slides #1, pages 48-51.)
- Module 9: Stable discrete time systems. (Slides #1, pages 52-56.)
- Module 10: Linear time invariant discrete time systems. (Slides #1, pages 57-62.)
- Module 11: Implementing discrete time systems. (Slides #1, pages 63-66.)
-
Handout #4 - correlation.
And a
supplement
on active learning exercise on page 8;
Matlab example
that visualizes correlation and shows how to compute cross-correlation;
another
Matlab supplement
for the extended example on radar;
HW3 example; and
HW3 Problem 2 example.
- Module 12: Motivation for correlation. (Slides #1, pages 67-70.)
- Module 13: Correlation and its properties. (Slides #1, pages 71-78.)
- Module 14: Radar example. (Slides #1, pages 79-82.)
-
Slides #2 -
z transforms (Chapter 3).
-
Handout #5;
Handout #5B; supplements on
the bigger picture and
active learning;
detailed example
from the homework; and
more examples.
- Module 15: Overview of Chapter 3. (Slides #2, pages 1-6.)
- Module 16: The z-transform. (Slides #2, pages 7-10.)
- Module 17: More about the ROC. (Slides #2, pages 11-16.)
- Module 18: Properties of z-transform. (Slides #2, pages 17-22.)
- Module 19: Transfer functions. (Slides #2, pages 23-26.)
- Module 20: Rational z-transforms. (Slides #2, pages 27-34.)
-
Handout #6;
Handout #6B; and supplements on
one sided z examples,
Matlab
script for computing the Fibonacci series,
active learning example (page 9), and a
Webwork example.
- Module 21: LTI systems in z-domain. (Slides #2, pages 35-43.)
- Module 22: One sided z-transform. (Slides #2, pages 44-49.)
- Module 23: Solving difference equations. (Slides #2, pages 50-57.)
-
Slides #3 -
Fourier transforms (Chapter 4).
-
Handout #7;
Handout #7b;
example problems from book; and
Webwork examples.
- Module 24: Fourier transforms - big picture. (Slides #3, pages 1-4.)
- Module 25: Continuous time periodic signals. (Slides #3, pages 5-9.)
- Module 26: Continuous time aperiodic signals. (Slides #3, pages 10-15.)
- Module 27: Fourier for discrete time signals. (Slides #3, pages 16-21.)
- Module 28: More Fourier for discrete time signals. (Slides #3, pages 22-26.)
- Module 29: Discrete time aperiodic signals. (Slides #3, pages 27-29.)
-
Handout #8 and
Matlab code for visualizing the Gibbs phenomenon.
- Module 30: Existence of Fourier transform. (Slides #3, pages 30-35.)
- Module 31: Fourier for finite energy signals. (Slides #3, pages 36-42.)
-
Handout #9;
Handout #10;
example
(discusses pages 4-5 of Handout 10);
problems from the book;
Webwork example; and
HW7 Problems 2-3.
- Module 32: Time and frequency analogies. (Slides #3, pages 43-49.)
- Module 33: Properties of Fourier transform. (Slides #3, pages 50-59.)
- Module 34: Other properties. (Slides #3, pages 60-64.)
-
Slides #4 -
Frequency-domain analysis of LTI systems (Chapter 5).
-
Handout #11; and
supplement
on Example 5.1.2 on pages 6-7.
- Module 35: LTI systems as filters of sinusoids. (Slides #4, pages 1-11.)
- Module 36: Beyond superposition of sinusoids. (Slides #4, pages 12-21.)
-
Handout #12;
video
explaining graphical interpretation of phase and magnitude (details on pages 7-8); and
Webwork example.
- Module 37: Transient and steady state response of LTI systems. (Slides #4, pages 22-25.)
- Module 38: Frequency response of rational systems. (Slides #4, pages 26-35.)
-
Handout #13; details about
active learning part (pages 14-15); and
examples.
- Module 39: Filters. (Slides #4, pages 36-44.)
- Module 40: Filter design. (Slides #4, pages 45-54.)
-
Handout #14; and
examples.
- Module 41: From lowpass to other filters. (Slides #4, pages 55-60.)
- Module 42: Application to AM demodulation. (Slides #4, pages 61-67.)
- Module 43: More filters and deconvolution. (Slides #4, pages 68-73.)
-
Slides #5 -
Sampling, reconstruction, and end-to-end system design (Chapter 6).
-
Handout #15; and
active learning on pages 6-7.
- Module 44: Sampling. (Slides #5, pages 1-10.)
- Module 45: Aliasing. (Slides #5, pages 11-19.)
- Module 46: Reconstruction. (Slides #5, pages 20-27.)
-
Handout #16; and
examples.
- Module 47: End-to-end system design. (Slides #5, pages 28-34.)
- Module 48: A/D and D/A conversion. (Slides #5, pages 35-44.)
-
Handout #17; and material about
denoising.
- Module 49: Sampling bandpass signals. (Slides #5, pages 45-49.)
- Module 50: Transforms. (Slides #5, pages 50-55.)
- Module 51: Compressed sensing. (Slides #5, pages 56-66.)
- Module 52: Denoising. (Slides #5, pages 67-71.)
-
Slides #6 -
Discrete Fourier transform (DFT; Chapter 7).
-
Handout #18.
- Module 53: Frequency sampling. (Slides #6, pages 1-13.)
- Module 54: Frequency interpolation. (Slides #6, pages 14-18.)
- Module 55: The discrete Fourier transform. (Slides #6, pages 19-22.)
-
Handout #19 and
supplement
about active learning on pages 4-5.
- Module 56: DFT as a transform. (Slides #6, pages 23-31.)
- Module 57: Circular convolution. (Slides #6, pages 32-37.)
-
Handout #20;
supplement about DFT properties;
Matlab for convolution with zero padding; and
Matlab for linear convolution using the DFT.
- Module 58: More properties of DFT. (Slides #6, pages 38-41.)
- Module 59: Linear filters using DFT. (Slides #6, pages 42-47.)
- Module 60: Filtering long sequences. (Slides #6, pages 48-51.)
-
Handout #21 and
examples.
- Module 61: Frequency analysis using DFT. (Slides #6, pages 52-61.)
-
Slides #7 -
Fast Fourier transform (FFT; Chapter 8).
-
Slides #8 -
Digital fiter design (Chapter 10).
-
Handout #24 - FIR filter design.
- Module 63: Linear phase. (Slides #8, pages 1-11.)
- Module 64: FIR design with windowing. (Slides #8, pages 12-22.)
-
Handout #25 - IIR filter design.
- Module 65: FIR design with windowing. (Slides #8, pages 23-30.)
More Learning Materials
Below are additional learning materials.
- Notation.
(If you encounter any notation that isn't defined, please inform the
instructor and we will update this resource accordingly.)
-
Solutions to
active learning examples.
Assignments
Homework
Simpler "training" homework questions will be automated
using WebWorK software (accessible from
Moodle).
Here is an explanation about
WebWork basics, and
please read through our
instructions
for getting started with your WebWorK account, and
it might help to keep in mind some of
these points
about the software platform.
(Note that the software compares your numerical answers to its answes,
and being you should make sure that your answers are
sufficiently accurate.)
There will be WeBWork-based homework assignments almost every week
with 3-5 questions per assignment. The submission will be electronic.
The day that a homework is due, there will be a corresponding
WeBWork-based quiz in class.
Here are some solutions for WebWorK problems:
Projects
We expect 5-6 projects during the semester. Projects will combine deriving some
math, working out some Matlab solutions, and possibly looking at data.
Each project will involve some application, and we hope that you will be able to
appreciate better how signal processing is useful in plenty of problems around us.
An overview of the projects appears in these
slides.
Project 1 is due on February 8;
here is an
example solution.
Project 2 is due on February 22;
here is an
example solution.
Project 3 is now due on March 17; and
data for working through it.
Note that the project was revised on February 16; see the red text on page 6.
We want you to solve the non-adaptive part for each student in your team.
Project 4 is now due on April 5; and
example solution.
Project 5;
example solutions are included.
Quizzes
We plan to have many quizzes during the semester roughly corresponding to the
homeworks (in class on the day that the homework is due).
The WebWorK software will be used for quizzes;
please bring a computer (laptop, tablet, even a smartphone) to class.
There might also be "traditional" hand-written quizzes, which will be graded manually.
Tests
We typically have 1-2 midterms and a final exam.
In 2021, for the online format we have 5 tests.
Below are tentative (will depend on progress made in class) learning objectives for
the various tests, and old practice tests (there was only one midterm some years).
Grading
Grades sum up to 80%, owing to Midterm2 being canceled.
All grades will be normalized (divided by 0.8) accordingly.
The final's weight may decrease to 20%, depending on its format.
Assignment |
% of Grade |
Due Date |
Homework (WebWork): |
10% |
Throughout course; 12 homeworks expected |
Quizzes (WebWork): |
0% |
No quizzes this semester |
Projects: |
40% |
Throughout course; 5-6 projects expected |
Tests: |
50% |
5 tests are expected |
Feedback
Students are encouraged to provide feedback by
emailing the course staff, chatting after class or during office hours, etc.
We will do our best to incorporate your comments, thanks!