The Royal Consortium for DSP
"Giving Digital Signal Processing the Royal Treatment"
Introduction to Our DSP Project - Noise Cancellation
The curriculum for Elec
431, Digital Signal Processing, an Electrical
Engineering course at Rice University
requires that class members participate together in groups of four or five
to examine, an application of DSP. Material gathered is to be presented
in the group's project web page (this document), and in an oral class presentation.
For those interested in how we are coming along with this project,
ie., our professor, Richard G.
Baraniuk , we have included a Progess Report.
The Royal Consortium for DSP (yes, you may inquire about our name
but that doesn't mean you will get an answer) has selected the topic of
For some specialized applications such as noise cancelling headphones,
DSP techniques have been successfully used. It turns out that other applications,
such as reducing the noise a jet engine makes are much more complex. We
will examine these complexities, and if possible, develop a method of practical
implementation for at least one application.
Note: If you have
information you can contribute to this project, please contact any of our
gang members shown below. We would be grateful for the assistance.
Additional Note: Project is complete
as of 12/21/96, but we would still be interested in information or comments.
Project Document Format
In addition to the formal report classifications described below, this
document contains the following information categories:
We generally follow the organization of a standard formal report,
modified as required to take advantage of/work around the facilities/limitations
of HTML. One key difference between a paper report and this web page report
will be the retention of historical entries within each category below.
to enable the reader to follow the development of the project.
Design Approach and Procedure
Result and Discussion
- the meat of the matter - click here if you're in a hurry
We have also devoted a special
page to our DSP professor, Richard
Keeping an Eye on Things"
This will be the final project status report for the project for
it has come to a successful conclusion. The following is worthy of note:
We gave our project presentation in class on Monday, December 16, 1996,
and we would call it a success. We would opt for a couple of changes for
the next group of folks who get to do this. First, given the scope of the
typical project, 20 minutes is not enough time to give adequate treatment
to the material. We would very much like to have expounded on a few more
details, but did not have time to do so. Two other groups expressed similar
views. Second, full multi-media materials need to be available on the day(s)
of the presentations, including owlnet connections and VGA type overhead
projectors that work.
The power of adaptive filters is nothing short of amazing. Given the
many tests that we ran using the filters, the ability to remove noise (or
define a plant) seemed almost like magic, had we not written the code ourselves
to cause the magic to happen. Recognizing that adaptive filtering is a
graduate level course of study, we would nevertheless recommend that at
least the fundamental techniques and theory be introduced at the undergraduate
Finally, the project web pages, as of 12/21/96, do not contain any sound
or graphics. As soon as we are able to allocate about 6 megabytes of space,
viewers of these pages will be able to hear the experiments and the effects
of the filters, and will be able to view animated graphics demonstrating
filter operation. We expect to have this material in place by year end.
After further reading, we have elected to implement the "stochastic
gradient" method of adaptive filtering. This is a least squares method
of minimizing some error. For a system that "listens", such as noise cancellation
in a muffler, the error is the difference between what is heard and what
is desired. For other applications, one approach to error is to minimize
the total power found in the signal.
We are now proceeding with three primary tasks. The first is the
modelling of a muffler, a rather simplified muffler, of course. Essentially,
we are using the physics of sound in a pipe to create the model.
Our second task is the development of the actual filter. We know
now that it will be an FIR filter; further, that it will use least squares
to control the weights at each tap. We still need to determine filter length
and the "mu" function used in tap weight computation.
Lastly, we are seeking out other adaptive filter models. We have
identified two sources: A Simulink model and a model produced in England
for teaching purposes. The Simulink model should be available from the
Mathworks homepage. The other is more difficult to retrieve.
It goes without saying that we have also updated the project web
pages rather substantially.
We have reviewed two textbooks and conducted a fairly exhaustive
web search for information relevant to noise cancellation. In summary:
Based upon the limited information we have to date, we are moving the
project in the following direction:
There are two basic approaches to developing linear adaptive filters:
Stochastic Gradient Approach (or the least mean square 'LMS' algorithm);
and the method of Recursive Least Squares 'RLS' algorithm, a filter embodying
the notion of state.
The LMS filter appears to provide all the necessary essentials for understanding
the issues of convergence, robustness, and performance, and at the same
time it is an algorithm which is relatively simple to implement.
We have obtained the mathematical basis and theory for the operation
of the LMS filter.
We have identified approximately four papers which should help us with
the next steps in the project.
We will focus on the LMS filter in order to fully understand how it
works and its limitations. The output of this stage of the project will
be the mathematical treatment of LMS filters.
We will attempt to obtain a Matlab like filtering/teaching program to
understand how the mathematics are actually implemented. The output of
this stage will be the "psuedocode" implementation of the filtering algorithm.
We will decide on exactly the type of real world noise cancellation
on which we intend to use our filter(s). The output of this stage will
be a detailed analysis of the noise problem, approaches taken in the real
world, and other relevant information to insure that we fully understand
what it is that we think we are doing. We will also collect/build data
which is representative of the problem at hand.
We will implement our filtering system in Matlab. Obviously, the output
of this stage will be a demonstration of the effectiveness of our noise
cancellation techniques. We intend on designing the system that it will
be demonstrable in class.
"There is an old trick question: "If a tree falls in the forest and
nobody is there to hear it, does it make any noise?" The answer is "no"
because sound cannot be *noise* unless somebody hears it and finds it offensive.
However, if the question is phrased "Does it make any *sound*," then you
have a deep philosophical question to ponder!"
From: Active Noise Control FAQ by Dr. Chris Ruckman ( go
to FAQ ), copyright 1996
This page, while nearing completion, has yet to have the last bells
and whistles added. It was last modified on December 24, 1996, AD. God
bless the Queen. If you have kudos and accolades for this page, contact
Herbert, but if you want to gripe, try Art
Copyright © 1996 The Royal Consortium for DSP