A goal of this experiment is to design discrete-time digital filters and implement them in real time.
In this experiment, you will design and implement finite impulse response (FIR) filters and infinite impulse response (IIR) filters in Matlab. You will implement digital filters using linear and circular buffers. Circular buffer implementation can be accelerated using special instruction set architectural features such as hardware addressing modes to perform the modulo indexing into an array. You will measure the response of the filters using a variety of input test signals and quantify the change in magnitude response due to an increase in filter order.
Downloads
Recitation slides part 1, part 2 and part 3 by Mr. Chao Jia and Ms. Debarati Kundu, The University of Texas at Austin
Lab #3 instructions part 1, part 2 and part 3 by Mr. Yunseong Cho and Mr. Dan Jacobellis, The University of Texas at Austin
MATLAB code
Assembly code files convol1.sa and convolve.sa
LabVIEW transmitter demonstration by Dr. Zukang Shen to show how labs 1-6 fit together
Overview Slides by Prof. Steven Tretter, University of Maryland (from Jan. 2008 lab manual)
Lab Report
All measurements and findings should be in lab report (cycle counts, frequency response, phase responses, etc.). In addition, please answer the following questions:
Milestones to Demonstrate to the TA
After each one of these parts, show them to the TA:
Coding Guidelines
For this lab, it is especially important to realize that the addition of an element into a circular array and the actual convolution calculation are two entirely separate operations.
Labs 5, 6, and 7 will directly involve performing multiple convolutions for FIR filters, so it makes sense to go ahead and put the Lab #3 convolution routine in a function.
As mentioned on the code grading page, the use of the C modulo operator "%" is discouraged and will be penalized.
Debugging and Troubleshooting Tips
MATLAB tips
y[n]
given the input x[n]
is
y[n] = a1 y[n-1] + a2 y[n-2] + b0 x[n] + b1 x[n-1] + b2 x[n-2]The transfer function, which assumes zero-valued initial conditions, is
-1 -2 b0 + b1 z + b2 z ------------------- -1 -2 1 - a1 z - a2 zNote the negative signs in front of a1 and a2.
Board tips
When connecting the USB cable from the PC to the C6748 DSP board, please use the USB port on the opposite side of the board from the power connector.
Here are troubleshooting tips for Code Composer Studio v4.
Here are general tips for debugging and troubleshooting:
When seeing an incorrect output on the oscilloscope, the cause may be one of the following:
Assignment
Submitting this assignment is optional, but doing it would be useful with your QUIZ preparations