The purpose of this project is to reinforce your your
understanding of discrete-time convolution. After familiarizing
yourself with the use of Matlab's conv command, you will
develop a function that implements overlap-add block convolution.
Block convolution is used frequently in digital signal processing.
You will use the function you develop to filter a noisy audio
signal.
You are must to work in groups on this
project. Groups will be assigned by Monday, September 9. Each group
will turn in a single
writeup. The writeups must include all of the analytical
(i.e, pencil/paper) work, Matlab plots and code, and relevant
explanations.
A list of guidelines for preparing the writeup of this project are
given below. Failure to comply with these guidelines will result in a
grade of ZERO for the project.
The report must be neatly handwritten or typed, and all pages
must be numbered.
All plots must be neatly annotated with x-axis and y-axis labels
and a title.
When referring to plots in the text, you should do at least one
of the following:
use figure numbers, e.g., ``Figure 1 is a plot of the signal
x[n].''
cite the page number they are on, e.g., ``The figure at the
top of page 4 is a plot of x[n].''
All Matlab code must be well-documented and should be included
in the report.
1 Discrete-Time Convolution
Do all of the exercises in Section 2.7 of Computer
Explorations in Signals and Systems by Buck, Daniel, and
Singer. Your writeup should include answers to all of the questions
in the book and any other observations you make as you complete the
exercises. Additional instructions:
While many overlap-add implementations use the fft command to
implement the convolution for each block, I am not asking you to
do this. You should use the conv command instead. A discussion
of the fft-based implementation is beyond the scope of this
class. You will learn more about it if you take a senior- or
graduate-level class in signal processing.
2 Filtering of a Noisy Audio Signal
As the final part of this project, use your function oafilt to filter the noisy audio signal contained in the file proj1_data.mat (which may be downloaded from the course website).
You may load the data file by typing load proj1_data.mat. The file
contains 3 variables:
fs: sampling frequency in Hz
h: vector containing the impulse response of a 61-point FIR filter
sig: vector containing the noisy audio signal
Once you have loaded the data, do the following.
Play the signal using Matlab's soundsc command. What do
you hear?
Filter the signal using your oafilt function. Play the
resulting signal. Is there a difference? Can you identify the words?
Your writeup for this part should include answers to the
above questions along with plots of the noisy signal and the filtered
signal.