|
Digital Signal Processing & Real-Time DSP Laboratory Winter 2004 |
![]() |
Class Meeting Schedule
Lectures: MWF, 2:00 - 2:50 PM, 240 CTB
Recitation: Th, 2:00 - 2:50 PM, 490 CB
Lab, Section 1: Th, 3:00 - 5:50 PM, 490 CB
Lab, Section 2: W, 3:00 - 5:50 PM, 490 CB
Lab, Section 3: M, 3:00 - 5:50 PM, 490 CB
Instructor Information
Brian
Jeffs
Professor (Lectures, Lab Sections 2 & 3)
457 CB
Office Hours: MW, 8:00-11:00 AM
(801) 422-3062
bjeffs@ee.byu.edu
Michael Rice
Professor (Lab Section 1)
443 CB
(801) 422-4469
mdr@ee.byu.edu
TA Information
Julie Carver
email: jaj37@et.byu.edu
office hours: T, 2:00-4:00 PM, 424 CB
W, 4:00-6:00 PM, 490 CB
phone: 422-9046
Don Adams
email: dba25@email.byu.edu
David Casbeer
email: dwc8@email.byu.edu
We can add more office hours if needed.
Syllabus
Click here to download a copy of the syllabus handed out in class.
General Comments
Textbooks
ABET Accreditation Competencies
Lecture Schedule
Grading
Midterms & Final Exam
Quizzes
Labs
Homework
University Policies
General Comments
Welcome to Digital Signal Processing! This senior
level course is a natural follow-on for the discrete-time systems material
in ECEN 380. Since digital signal processing is used in an increasing
range of applications, the material presented in this course has become
more important for B.S. graduates, and is becoming more common at the undergraduate
level in universities across the country. This introductory course
will be useful to students planning careers in digital signal processing
(including audio, RADAR, and SONAR signal processing), communications (satellite,
wireless, modem, sensor array processing, etc.), digital image processing,
digital control, detection and estimation, and many other fields.
This material was probably my all-time favorite course in my own engineering
studies, and led to a change in my career direction. I hope that
you too will find it interesting and useful. We are also excited
to include an integrated companion laboratory where you will learn how
to implement real-time DSP applications by programming a Texas Instruments
DSP processor.
Textbooks
Oppenheim & Schafer, Discrete-Time Signal Processing, 2nd Edition, Prentice Hall, 1999 (ISBN 0-13-754920-2). Sections of the text that I expect you are already familiar with and that we will not cover: (Chapter 2, Sections 4.0-4.5, Sections 5.0-5.2). Other than that, we will cover most of the rest of the book, with the exception of Chapter 6. Weekly reading assigments are listed in the lecture schedule.
A bound, hardcover, grid ruled laboratory notebook with at least 70 pages (35 sheets) is required for the lab.
Some useful lab references are:
Dahnoun, Digital Signal Processing Implementation
Using the TMS320C6000TM DSP Platform, Prentice Hall, 2000 (ISBN 0-201-61916-4)
Kernighan & Ritchie, The C Programming
Language, Prentice Hall, 1988 (ISBN 0-13-110362-8)
TMS320C6000 Optimizing
Compiler User's Guide, Texas Instruments literature number SPRU187G
TMS320C6201/6701 Evaluation
Module Technical Reference, Texas Instruments literature number
SPRU305
Code Composer Studio
User's Guide, Texas Instruments literature number SPRU328B
Technical Brief,
Texas Instruments literature number SPRU197D
ABET Accreditation Competencies
As part of degree program accreditation requirements, the desired competencies which will be assessed for students in this course are as follows:
1. Application of integral calculus, discrete math,
complex variables, and transform theory to discrete-time signal processing.
2. Completion of real-time DSP design projects,
including discrete-time filters, spectrum analyzer, adaptive filter, etc
3. Familiarity with basic DSP functions and algorithms
(i.e. FIR filters, IIR filters, polyphase systems, windows, FFTs, etc.)
4. Ability to use MATLAB, C, and Code Composer
Studio as tools to design, implement, and debug DSP functions.
Lecture Schedule
Reading assignments will be given, and students are expected to come
to class having completed the assigned reading. Students will be
called on randomly to demonstrate their knowledge of the material by working
problems on the board to assist the class in understanding the current
discussion topic.
| Date | Topic | Reading | Chapter |
| 1/5-1/12 | Review of z-Transform and its properties | 94-127 |
|
| 1/14-1/16 | Inverse z-Transform using contour integration | Handout |
|
| 1/21-1/26 | Sampling and multirate signal processing | 167-200 |
|
| 1/28-2/4 | DFT, circular convolution, linear convolution from DFT | 541-588 |
|
| 2/6-2/17 | The Fast Fourier Transform (Butterflies Shown In Class) | 629-669 |
|
| 2/18 | Frequency response for rational system functions | 250-269 |
|
| 2/20-2/25 | Relationship between magnitude and phase, all-pass systems, minimum phase, generalized linear phase | 270-310 |
|
| 2/27-3/1 | Filter design by impulse invariance and bilinear transform | 439-464 |
|
| 3/3-3/12 | Windowed design of FIR filters | 465-485 |
|
| 3/15-3/19 | Optimal approximations for FIR filter design | 486-510 |
|
| 3/22-3/26 | Discrete Hilbert Transforms | 775-800 |
|
| 3/29-3/31 | Hilbert Transforms by complex bandshift | Handout |
|
| 4/2-4/5 | Time-dependent Fourier Transform | 694-729 |
|
| 4/7-4/12 | Applications: Speech, SONAR, Adaptive Filtering, etc. |
|
|
Some Matlab demo files:
Final grades in the course will be based on the following distribution:
| Homework | 15% |
| Quizzes | 5% |
| Labs | 20% |
| Midterm 1 | 15% |
| Midterm 2 | 20% |
| Final Exam | 25% |
All exams are timed, with open books and notes. Students may not take exams on other than the scheduled dates and times. If a midterm is missed due to an emergency situation or illness, the student may petition the professor to have the average grade for the remaining exams applied to the one missed. Exams must be entirely your own work.
Midterm exams will cover material up to and including any homework assignment due before the first day of the exam. The final exam will be comprehensive, but will emphasize new material introduced since the last midterm.
The time allotted for exams will require you to be efficient in solving problems, but should be sufficient if you are prepared. Speed in problem solving is an important skill to cultivate, and you should practice for speed with your homework and quizzes.
The schedule for the 2 midterms and the final is:
| Midterm 1 | Feb. 20-23 | Testing Center, 2.5 hours |
| Midterm 2 | Mar. 26-29 | Testing Center, 2.5 hours |
| Final Exam | April 21 | 240 CTB, 7:00-10:00 AM |
Sample Exam 1
Quizzes
In-class, 10-minute quizzes will be given approximately weekly on Friday mornings. These count for only a small percentage of the grade and are intended to serve as a self assessment and practice on questions similar to those that will be on the exams.
The Quiz Keys:
Quiz 1
Quiz 2
Quiz 3
Quiz 4
Quiz 5
Quiz 6
Quiz 7
Quiz 8
Quiz 9
Quiz 10
Quiz 11
Quiz 12
Quiz 13
To go to the Lab Webpage for the course, click here.
This is a programming laboratory. You will be developing real-time software to implement signal processing applications on a programmable DSP processor board. As with all programming classes, the time you will spend on the labs is highly variable, and dependent on your skills (and luck?) as a software engineer. Developing efficient debugging skills will be most helpful to you in completing labs in a timely manner. Most of the programming will be in "C." If you are unfamiliar with the C programming language, I recommend you select a partner who is experienced in C, and plan to take some extra time to learn the language.
The class will meet as a closed lab for three hours weekly in 490 CB. Labs begin with a 30 minute to 1 hour presentation by the professor. This introductory lecture will help you get started on the right foot for each lab assignment. Demonstrations of various aspects of the lab assignments will also be presented. The remainder of the time will be directed by the lab TAs. These are closed labs! This means you are expected to be there the entire three hours, and that you should try to complete the experiments during the three hour block. There may be limited time available for make-up work in the labs during other sections' regularly scheduled times, but ONLY if there is an open workstation. The TAs will occasionally hold make-up sessions on a Saturday. If you need make-up lab time, schedule it with the TA, do not just show up. At most two teams can be scheduled for make-up work in any given later lab section due to limited equipment availability. A key to completing the labs during the 3-hour closed block is to read the lab assignment and complete all possible preparatory work before coming to the lab. The advantage of closed labs is that you will have a well trained TA there the entire time to assist you, so you should spend much less time than in an open lab. You will need to pass off portions of your lab assignments to the TA's during their scheduled hours.
Documenting and Reporting Laboratory Work
All laboratory work should be recorded in a laboratory notebook as per department standards (hardbound, engineering grid, etc.). This lab book should be new. We will not be doing written reports or abstracts, but you need to keep very thorough and neat records in your book. At the end of each lab assignment you will submit a copy of the pertinent pages in your lab notebook for grading by the TA. Graphs, plots, and tables should be printed from the computer and pasted into the notebook.
For some of the experiments you will be explicitly instructed in the
lab handout to have a TA "check off" operational performance. The TA needs
to observe your functioning system, and will sign and date an entry in
your lab book. Other experiments which do not require a check-off must
be documented clearly enough in the lab book to serve as evidence that
you actually did the work. Do not just state that you completed the task;
you should record observations, insights, operational conditions, problems,
debug steps, etc., to document your effort. The lab record should include
preparatory designs (including software), calculations, and a conclusions
section at the end of each lab. Any new source code that you create or
modify (some experiments request that you just run some existing code)
should be printed and pasted into your lab book.
Homework
Homework will be assigned and collected weekly. Due dates will typically be on Wednesday evenings. Collection will be at 12:00 a.m. (midnight) in the homework box outside room 416 on evening of the assigned due date. As you may suspect, the grader may not always (ever) pick up the homework at exactly 12:00, but she will mark as late any homework she sees a student put in the box after that time. This is to avoid a cluster of students on the floor near the box finishing their homework, so just drop it in the box when you are done on the evening it is due.
I believe that completing the homework assignments is absolutely essential for mastering this difficult material. Each on-time submission of a serious solution attempt for a homework problem (even if it is wrong) will receive at least 75% credit. Solutions to the homework will be posted on the class web page one day after the due date. Please review these solutions to insure you understand the material in preparation for exams. In order to encourage this review, you may submit corrections to your homework up to three weeks after it was originally due, for a maximum of 50% of the original lost points. When submitting corrected solutions, please include either a copy of, or your original graded homework if it has been returned. I recommend that all homework be completed (even if late) to prepare for the exams.
Homework must be submitted on green engineering grid paper, using one side of the paper only. Fold the paper lengthwise and put your name and the homework set number on the outside for submission. Separate problems with a double horizontal line, work neatly, and put a box around your final answer (unless it is a large figure). Show a clear progression of your work towards a solution. Points will be deducted if the grader has difficulty finding and following what you have done.
Some homework assignments will include problems with MATLAB programming to give you some hands-on application experience. MATLAB is available on all the CAEDM machines and on the DSP lab machines in room 490. If you are unfamiliar with MATLAB, I suggest you begin immediately playing with it and familiarizing yourself with its basic syntax. On-line help is included for documentation on any built-in function. Just type "help function's-name."
Cooperative group study on the homework is encouraged, but simply copying someone else's work is unethical and will leave the student unprepared for exams. Much insight can be gained by studying with one or more groups, if you discipline yourself to find your own solutions first before comparing results. Rely on other's help only when you have exhausted all of you own ideas or have made no progress for 15 or 20 minutes. Remember, the exams will be totally your own work and constitute the greater portion of the grade. I find the biggest contributor to excessive time spent on homework is failure to read the text material for understanding prior to attempting problems. The text is thorough and well written; take advantage of it!
Recitation/Homework Help Sessions
The scheduled discussion sessions are held weekly and are presented by the TA to assist you in mastering the lecture material and in completing the homework. Approximately half of the time will be spent with the TA presenting reinforcement material. i.e. homework examples, demonstrations, etc. The other half will be for question and answer exchange. Please come to the session having attempted all of the homework problems due that week so that you can ask insightful questions.
Homework Schedule
| Homework Set | Due Date | Problems Assigned | Solutions |
|
|
Jan. 9 | 3.3, 3.4, 3.23 |
|
|
|
Jan. 14 | 3.26, 3.28, 3.32, 3.51 |
|
|
|
Jan. 21 | 3.40, 3.42, 3.49; The following three problems are taken from the handout on contour integration, Oppenheim & Schafer 1st edition: 4.36 parts (a),(d), and (e), 4.38, 4.40 |
|
|
|
Jan. 28 | 4.15, 4.25, 4.44, 4.52, 4.59 |
|
|
|
Feb. 4 | 8.32, 8.52 (note this is the basis for developing the FFT in the next chapter), 8.63, 8.64, 8.42; For 8.42 part (b), compute the DFT to approximate the DTFT (i.e. zero pad to a longer DFT size) of the two sequences (MATLAB FFT function, calculator, or other computed solution acceptable) and explain why these results support your conclusion. |
|
|
|
Feb. 11 | 9.1, 9.15, 9.16 |
|
|
|
Feb. 18 | 9.33, 9.31, 9.28, 9.53 (refer to lecture notes);
Problem: Using any appropriate computer language, write a subroutine for computing an N point FFT recursively. Assume N is a power of 2. (Note: this is easier to do in a very high level language such as MATLAB or Mathematica, which are available on the college systems, but do not use the built-in FFT functions.) Submit your source code listing and output data for an input signal of: x[n] = cos(np/4) , 0 |
Matlab Code: 9.31 FFT |
|
|
Mar. 25 | 5.17, 5.39, 5.22, 5.15;
Problem: Given two minimum phase sequences, h1[n] and h2[n], is h1[n]*h2[n] minimum phase? Prove your conclusion. |
|
|
|
Mar. 3 | 5.41, 5.43, 7.21, 7.2, 7.3, 7.25 |
|
|
|
Mar. 10 | 7.32, 7.34, 7.6, 7.5; For Problem 7.5 also use MATLAB to compute the impulse response using windowed filter design techniques.) |
Matlab |
|
|
Mar. 17 | 7.36, 7.57; For both 7.36 and 7.57, also use MATLAB to compute the impulse response and frequency response using remez (the Parks-McLellan algorithm) and freqz. |
Matlab |
|
|
Mar. 24 | 7.55, 7.53, 7.51, 11.1 |
|
|
|
Mar. 31 | 11.4, 11.5, 11.26 |
|
|
|
Apr. 7 | 10.3, 10.17;
Problem: x(t) is an amplitude modulated upper single sideband radio signal with suppressed carrier at frequency w0. x(t) = A(t)cos(w0t + f(t)) where A(t) and f(t) are the magnitude and phase respectively of the complex analytic signal representation of the real audio modulation signal a(t). w0/2p= 455 kHz, and a(t) contains energy only in the band 300 Hz to 3.0 kHz. x[n] is generated by sampling x(t) at fs = 1.2 MHz. You will specify how to demodulate x[n] to obtain a[n]. Design a digital system to accomplish this using only linear operations. We will assume that noise and other interfering signals exist in adjacent frequencies so we must include filtering to reject them. All filtering must be done using lowpass filters only. Out of band noise must be attenuated at least 50 dB. Specify filter performance parameters (corner frequencies, stopband attenuation, etc.) and required filter length. Your design must be computationally efficient, so decimation must be used in the appropriate stages. At the output, a[n] must be sampled at a reduced rate f's which is the least possible integer sub multiple of fs which does not produce aliasing. Draw a block diagram and indicate all parameters (e.g. frequencies of local signals, filter bandwidths, decimation rate, etc.) Also draw plots showing the spectrum at each stage of the processing. |
Design Problem |
|
|
Apr. 13 | 10.32, 10.40 parts (a), (b), and (c), 10.26, 10.34, 10.36
DELETED: Problem: Write a MATLAB code to compute and plot
beam response as a function of bearing angle, in degrees, for a 10 element
line array beamformer which has its main lobe steered to +20 degrees.
Assume the following parameters:
|
|
All work that you submit is to be your own except where specifically stated otherwise. Honor Code violations include but are not limited to: the copying (by hand or copy machine) of another individual's work on exams, quizzes, homework, simulations, or reports; the use of another individual's computer files; the copying of any computer software which the student has not been given permission to copy by the instructor; unauthorized use of equipment including the computers and network system.
Preventing Sexual Harassment
Title IX of the Education Amendments of 1972 prohibits sex discrimination against any participant in an educational program or activity that receives federal funds. The act is intended to eliminate sex discrimination in education. Title IX covers discrimination in programs, admissions, activities, and student-to-student sexual harassment. BYU's policy against sexual harassment extends not only to employees of the university but to students as well. If you encounter unlawful sexual harassment or gender based discrimination, please talk to me; contact the Equal Employment Office at 422-5895 or 367-5689 (24-hours); or contact the Honor Code Office at 422-2847.
Students with Disabilities
Brigham Young University is committed to providing a working and learning
atmosphere which reasonably accommodates qualified persons with disabilities.
If you have any disability which may impair your ability to complete this
course successfully, please contact the University Accessibility Center
(422-2767). Reasonable academic accommodations are reviewed for all students
who have qualified documented disabilities. Services are coordinated with
the student and instructor by the SSD Office. If you need assistance or
if you feel you have been unlawfully discriminated against on the basis
of disability, you may seek resolution through established grievance policy
and procedures. You should contact the Equal Employment Office at 422-5895,
D-282 ASB.