A Brief Description

We wanted to create a pair of headphones, that, when worn, would create complete silence for the wearer. however, instead of doing this by muffling, we wanted to do this by superimposing the incoming sound wave with a negation of the sound wave, so that the noise, as heard by the wearer, is cancelled (ie, complete destructive interference).

Where would something like this be useful? in noisy environments, such as concerts or airport landing fields, workers could wear it for ear protection. it could also be used by people casually listening to music. external noise could be cancelled, and then music could be played on the headphones (of course, only the external nooise would be cancelled, not the music). This would allow someone to enjoy music without distraction.

Here is a copy of our original proposal, it was written late at night:

 

Mathew Chasan

Brad Dahlquist

 

CSE 466 Final Project Proposal:

 

-- Ambient Audio Signal Canceller

 

Project Description:

The concept of our project relies heavily on the superposition property of waves.  In short superposition is the property that waveforms are additive. Two waveforms when put on top of each other end up creating a waveform that is just the original two waveforms summation.  The creative scientist can exploit this in many waves, but we would like to take advantage of it to make silence.

 

We would like to design and attempt to build a mobile Ambient Audio Signal Canceller.  Conceptually this is a rather simple device: a pair of headphones attached to some hardware, that when worn blocks out much of the noise from the surrounding environment. This could be used in many things, such as portable cd and radio players (you could turn down the noise of your surroundings instead of turning up your music), digital earplugs, and all sorts of digital communication devices that require people to wear headphones.

 

To implement our Ambient Audio Signal Canceller, we would like to attach a microphone to each ear of an ordinary set of headphones (preferably the kind that covers the entire ear).  Each microphone signal will pass through a low pass filter and possibly and amplifier (or normalizer) before connecting to an analog to digital (AtoD) converter.  The AtoD will give us an inverted digital version of the waveform (if the AtoD does not have an easy invert function, adding a few inverters into the circuit should be easy), and will input this data into an Atmel 89C55 microprocessor. 

 

The Atmel will do some basic micro processing on the data as follows:

·        Based on data from some of its other inputs, the Atmel will be able to control the amplitude the incoming waveform.  This can be accomplished by a simple integer multiple instruction (by a number between 0 and n where n is the number of io lines controlling amplitude) and an arithmetic shift right instruction (by n) on all input data. 

 

·        The Atmel will then place the data in a circular array, which will be looked at by two pointers, a write pointer and a read pointer.  Based on some simple calculations, we figure that the output of the Atmel will need to delay an inverted audio signal by about .1 ms minus any hardware delay that is picked up from the AtoD and the Returning DtoA and their interface.  This delay is needed to exactly cross over the original audio signal when it reaches the inside of the headphones with our output signal (about 3 cm of flight for the signal). This means that at 44.1 KHz, our buffer will only contain about 5 data items (and this would be without any hardware delay!), with the write pointer writing out to an AtoD and then to the headphones.  

 

If the circular array is too much to process, the delay could easily be created by daisy chain of buffers, each outputting not only to the next buffer in the chain, but to the input side of a MUX.  The delay logic could just control the bus of MUXes, outputting the signal from a later buffer for more delay or an earlier buffer for less delay.  This would mean that all the 89C55 would have to do is input multiply, bit shift and output about 44.1 thousand times per second. 

 

 Risks, Issues, and Concerns:

   Our biggest fear is that we are trying to accomplish too much processing in too short a time without specialized hardware.    We haven’t ever worked with either an AtoD or a DtoA before, and have little concept of how fast we could input and output from these devices (though it seams that the market should be flooded with these things running at 44.1 KHz).  We are concerned that we will have our output fall behind our input and actually end up distorting the wave.  If this happens, we may need to slow down the sample frequency.

Obviously, the 8051 will be driven pretty hard hear, but we think it looks like a reasonable load (it has about 330 machine cycles to accomplish each input/output event, and not that much processing per event).

Our second biggest fear is that the output of the headphones will give too much feedback to the microphones, causing problems that we can’t conceive of yet.  These might end up being much harder bugs to solve than the timing issue.

 

Milestones:

1st:  Get a normalized analog signal from our microphones.

2nd: Input that through an AtoD (and possibly a hardware delay) to the 89C55.

3rd:  Build circuit to convert a digital wave back to an analog signal. 

4th:  Output any digital wave to a speaker.

5th: write code combines all of the above into a coherent final product.

6th: benchmark testing and optimization.

 

Minimum Functionality:

We believe a reasonable minimum goal for this project is to create a system that outputs an inverted, delayed version of it’s input wave.  Our final goal will be to accomplish this in the maximum of a- our minimum possible theoretical delay, and b)-the amount of time that sound takes to travel from the microphones to the headphone speaker.

 

Materials and Advice:

We will need a whole lot of both.  We will definitely need advice on the best ways to hook up and set up AtoD and DtoA circuits, as we have no experience in this.  We will also need advice on what products to use for these tasks.  We will need one pair of headphones that we know we might have to buy (but would love it if the department would throw down), two microphones, two Atmel 89C55s, two AtoDs, two DtoAs, and some circuit basics (such as resistors, caps, and a clock).  We might decide that we need 16 muxes (one for each bit of each audio channel) and a set of buffers for a delay chain.  We also might need some inverters.