Active Noise Control: 
 System Design, Implementation, and 
Evaluation Report 
 
 
 
Submitted To 
 
Xing-Xiang Liu 
Shawn McCaslin 
 
 
Prepared By 
 
Jeremy Cline 
John Hamann 
Monica Lui 
Huy Pham 
 
 
 
EE464 Senior Design Project 
Electrical and Computer Engineering Department 
University of Texas at Austin 
 
Fall 2009

ii 
CONTENTS 
 
TABLES ........................................................................................................................................ iv 
FIGURES ........................................................................................................................................ v 
EXECUTIVE SUMMARY ........................................................................................................... vi 
 
1.0 
INTRODUCTION ............................................................................................................... 1 
2.0 
DESIGN PROBLEM STATEMENT .................................................................................. 1 
2.1 REQUIREMENTS AND SPECIFICATIONS OF THE ANC PROJECT ........................... 2 
2.2 CONSTRAINTS OF THE ANC PROJECT ......................................................................... 2 
2.3 OTHER CRITERIA .............................................................................................................. 3 
3.0 
DESIGN PROBLEM SOLUTION ...................................................................................... 3 
3.1 OPERATIONAL SYSTEM-LEVEL DESIGN .................................................................... 3 
3.2 USER INTERFACE ............................................................................................................. 4 
3.3 FUNCTIONAL COMPONENTS ......................................................................................... 5 
3.3.1 Microphone Interface ..................................................................................................... 7 
3.3.2 Digital Processing .......................................................................................................... 7 
3.3.3 Speaker Interface ........................................................................................................... 8 
3.4 DETAILED DESIGN DECISIONS ..................................................................................... 8 
3.4.1 Processor Choice ............................................................................................................ 8 
3.4.2 Speaker and Microphone Choice ................................................................................... 9 
3.4.3 Algorithm Choice........................................................................................................... 9 
3.4.4 Subsidiary Choices....................................................................................................... 10 
4.0 
DESIGN IMPLEMENTATION ........................................................................................ 10 
4.1 HARDWARE COMPONENTS ......................................................................................... 11 
4.1.1 Microphone .................................................................................................................. 11 
4.1.2 High-Pass Filter ........................................................................................................... 11 
4.1.3 Power Amplifier........................................................................................................... 12 
4.1.4 Speaker ......................................................................................................................... 12 
4.1.5 Buttons ......................................................................................................................... 12 
4.1.6  LED Circuit ................................................................................................................. 13

iii 
4.1.7  Plexiglas Box .............................................................................................................. 14 
4.1.8  Headset ........................................................................................................................ 14 
4.2  LINEAR SYSTEMS OF PHASORS ................................................................................. 15 
4.2.1  Input and Output Loop ................................................................................................ 16 
4.2.2  Computational Loop ................................................................................................... 16 
4.2.3  Control Loop ............................................................................................................... 17 
4.2.4  Problems and Improvements....................................................................................... 18 
4.3  FILTERED-X LEAST MEAN SQUARES ....................................................................... 18 
5.0 
TEST AND EVALUATION ............................................................................................. 19 
5.1  INDIVIDUAL COMPONENT TESTING ........................................................................ 19 
5.2  SOFTWARE AND HARDWARE INTEGRATION ........................................................ 19 
5.3  NOISE CANCELLATION DEMONSTRATION ............................................................ 20 
5.4  LSP FUNCTIONALITY TESTING .................................................................................. 21 
5.5  LSP EVALUATION .......................................................................................................... 22 
5.6  FXLMS TESTING AND EVALUATION ........................................................................ 22 
5.7  SYSTEM EVALUATION ................................................................................................. 23 
6.0 
TIME AND COST CONSIDERATIONS ......................................................................... 24 
6.1 TIME CONSIDERATIONS ............................................................................................... 24 
6.2 COST CONSIDERATIONS ............................................................................................... 24 
7.0 
SAFETY AND ETHICAL ASPECTS OF DESIGN ......................................................... 26 
8.0 
CONCLUSIONS AND RECOMMENDATIONS ............................................................ 27 
REFERENCES ............................................................................................................................. 28 
APPENDIX A – LSP ALGORITHM ......................................................................................... A-1 
APPENDIX B – FXLMS ALGORITHM ................................................................................... B-1 
APPENDIX C – LSP ALGORITHM IMPLEMENTATION .................................................... C-1 
APPENDIX D – FXLMS ALGORITHM IMPLEMENTATION .............................................. D-1 
APPENDIX E – LSP OSCILLOSCOPE RESULTS ................................................................... E-1 
APPENDIX F – ANC PROJECT SCHEDULE .......................................................................... F-1

iv 
TABLES 
 
1 ANC Quantitative Specifications ......................................................................................2 
2 I/O Specifications Chart ...................................................................................................7 
3 Noise-Cancellation Demonstration ................................................................................20 
4 LSP Testing Results.........................................................................................................21 
5 LSP and FXLMS Performance........................................................................................23 
6 ANC Project Costs ..........................................................................................................25

v 
FIGURES 
 
1 ANC System Overview .........................................................................................................4 
2 Inputs and Outputs of the ANC Project ...............................................................................5 
3 Block Diagram of Overall Functionality .............................................................................6 
4 High-Pass Filter Circuit ....................................................................................................11 
5 Power Amplifier Circuit .....................................................................................................12 
6 Button Circuit.....................................................................................................................13 
7 LED Circuit ........................................................................................................................13 
8 Plexiglas Box Configuration ..............................................................................................14 
9 Headset Configuration .......................................................................................................15 
10 FPGA Input Output Loop...............................................................................................C-2 
11 Computational Loop ......................................................................................................C-3 
12 Control Loop ..................................................................................................................C-4 
13 FXLMS LabVIEW Implementation ............................................................................... D-2 
14 Before 200 Hz Cancellation ........................................................................................... E-2 
15 Cancellation After 200Hz .............................................................................................. E-2 
16 Before 300Hz Cancellation ............................................................................................ E-3 
17 Cancellation After 300Hz .............................................................................................. E-3 
18 Before 400 Hz Cancellation ........................................................................................... E-4 
19 Cancellation After 400 Hz ............................................................................................. E-4 
20 Before 500Hz Cancellation ............................................................................................ E-5 
21 Cancellation After 500Hz .............................................................................................. E-5 
22 ANC Project Schedule, Part 1 ....................................................................................... F-2 
23 ANC Project Schedule, Part 2 ....................................................................................... F-2

vi 
EXECUTIVE SUMMARY 
 
The Active Noise Control (ANC) Project explores real-time noise cancellation in the 50-500Hz 
frequency range by implementing and comparing two digital signal processing algorithms: the 
newly-designed Linear Systems of Phasors (LSP) algorithm and the existing Filtered-X Least 
Mean Squares (FXLMS) algorithm. The goal of the project is to experience at least a 10dB drop 
in background noise within the 50-500Hz frequency range under reasonable conditions. The 
targeted customers for this project are companies with factory work environments that have 
cyclical, low-frequency noises that can negatively affect the employee performance. 
 
The final deliverables of the project include a headset configuration, LabVIEW implementations 
of the LSP and FXLMS algorithms, a user interface, and some protective measures. This paper 
presents the project in eight major sections. To begin, the paper presents the official design 
problem statement. In this section, the design group further defines the requirements and 
specifications of the project, as well as user interfacing requirements and other criteria. This 
project features five user inputs: turning the power on, turning the power off, and selecting three 
separate frequencies to cancel using the LSP algorithm. Note that the FXLMS cancels all 
prevalent frequencies, so no frequency modes were required for this algorithm. 
 
The paper immediately shifts to discussing the project solution in Section 3.0, as well as 
subsidiary design choices. To complete the project, the design team elected to use the Single-
Board RIO from National Instruments to perform the digital signal processing and real-time 
processing because it can sample at or above 8 kHz. The team also chose to use an Audio 
Technica Omnidirectional microphone and helmet speakers both capable of sensing or emitting 
waveforms as low as 50Hz. Both of these components are small and thus ideal for headset 
construction. The team built the headset with a hardhat to reinforce the targeted customer choice. 
 
Beginning with Section 4.0, the paper discusses the design implementation and results of the 
ANC project. The design implementation is presented in three main parts: the hardware solution, 
LSP software implementation, and FXLMS software implementation. Section 5.0 discusses the 
results of testing ranging all the way from individual component testing up to higher-level 
complete system testing. The team witnessed varying results ranging all the way up to a 26dB 
drop in background noise using the LSP algorithm. The team had difficulty comparing LSP to a 
baseline performance to the FXLMS since the FXLMS algorithm required too many resources 
on the Single-Board RIO. The team also struggled with timing issues since the Single-Board RIO 
would finish late occasionally during operation. As a result, the team had to rely on MATLAB 
simulations to conclude that their results from LabVIEW were significant. Overall, the project 
exceeded the minimum requirements set in place at the beginning of the semester. 
 
The later sections of the paper discuss time and cost considerations, safety and ethical aspects of 
the design, and some recommendations for future improvement of the project. This project does 
not pose any significant safety or ethical threats to humanity, but nonetheless implements 
measures to prevent injury or project integrity loss. Perhaps the most important safety measure 
implemented is a team-designed, protective Plexiglas box. This box protects the Single-Board 
RIO lent to the design group and prevents customers from tinkering with the sensitive 
component connections between the Single-Board RIO and filtering circuits.

1.0 INTRODUCTION 
 
This report details the design implementation and results of the Active Noise Control (ANC) 
Senior Design Project created for EE 464K during the Fall 2009 semester. The main design goal 
of this project is to solve communication problems in factories by creating an active noise 
cancelling headset. We designed our headset to reduce low frequency, cyclical noise without 
impeding communication or phone use. Our sponsor, Shawn McCaslin, provided our group 
members, Jeremy Cline, Monica Lui, John Hamann, and Huy Pham, the idea to solve this 
particular problem using LabVIEW in real time. The team decided to further research his 
solution and create a prototype. Our research in the active noise control field showed that loud 
environments can hinder communication, make workers inefficient, and cause health problems 
[1]. Our project targets manufacturers with machines that produce low frequency, cyclical 
sounds. Customers will benefit from the product by having more efficient employees who can 
communicate more easily in their noisy work environments. 
 
This report contains a full analysis of our results, as well as discussion of all of the problems we 
faced during implementation.  In addition, the report includes all of the project requirements 
promised at the beginning of the semester. The report also contains the design implementation 
and testing and evaluation methods our design group used.  Finally, the report covers our 
prototype costs, project schedule, test plan, limitations, and recommendations for future 
improvement.  
 
2.0 DESIGN PROBLEM STATEMENT 
 
The primary goal of the ANC project is to cancel periodic, low-frequency background noise. 
Low frequencies in the work environment can adversely affect employees exposed to periodic 
noise for extended periods of time [1, 2]. To help workers cope with this issue, our group 
planned an approved project in EE 364D to design a simple headset to cancel noise. In EE 464, 
we designed and implemented two noise-cancelling algorithms in LabVIEW. The algorithms are 
designed to run on the National Instruments Single-Board RIO 9631 (sbRIO). The project should 
meet the requirements, specifications, and constraints detailed below.

2 
2.1 REQUIREMENTS AND SPECIFICATIONS OF THE ANC PROJECT 
To be successful, the ANC project must effectively cancel noise in the proposed frequency range 
of 50-500 Hz. We want  to reduce background noise in this frequency range by at least 10 dB 
because a 10 dB drop would be both noticeable and achievable [3]. Table 1 details the 
parameters of the primary inputs and outputs of our project. 
 
 
Table 1. ANC Quantitative Specifications 
 
 
 
 
 
 
 
 
While our device will diminish low-frequency background noise, it will not hinder normal 
conversation between factory workers. The product will reduce frequencies under 500 Hz to 
approximately the level of the white noise in the room. By eliminating frequencies less than 500 
Hz, we will not eliminate human voices because the human voice produces frequencies between 
500 Hz and 4,000 Hz [4]. 
 
2.2 CONSTRAINTS OF THE ANC PROJECT 
While having a compact headset would be ideal, there are a few constraints preventing our group 
from making a sleek headset similar to those found on the market for cell phones. The primary 
constraint is cost. As each component gets smaller, the cost increases in order to maintain the 
level of performance our project requires. In addition, we only had this semester to develop the 
headset and both algorithms. Our last constraint is component performance; our overall ability to 
cancel low-frequency noise directly depends upon what our microphones can sense and what our 
speakers can output. 
 
 
Frequency (Hz) 
Sound Pressure (dB) 
Input 
50 - 500 
100 
Output 
50 - 500 
> 10 dB drop

3 
2.3 OTHER CRITERIA 
When evaluating the system, we considered several other criteria to compare the algorithms. We 
will look at how effectively the headset cancelled noise, how long the headset took to reach the 
10 dB drop in noise level, and the number of clock cycles used by the algorithms per sample. 
Given these observations, we will evaluate how robust the systems are to changes in the noisy 
environment. For future study, these criteria could provide a good baseline comparison to 
existing ANC headsets on the market.  
 
3.0 DESIGN PROBLEM SOLUTION 
 
Below is the brief discussion of our overall ANC design. The following sections briefly describe 
the operational system-level design overview, the user’s input/output interface, the input/output 
interface of each design component, and our design choices.  
 
3.1 OPERATIONAL SYSTEM-LEVEL DESIGN 
The final product of our design is an anti-noise headset that reduces periodic, low-frequency 
noise. The headset consists of two speakers, which output the anti-noise signal, the sbRIO, which 
handles all digital signal-processing functions, and a microphone, which will serve as the input 
source for the noise. Figure 1 (next page) depicts the system overview of the hardware 
components used in the ANC project.

4 
 
 
Figure 1. ANC System Overview 
 
 
3.2 USER INTERFACE 
The user interface is one of our most important design priorities. The user interface defines how 
the system interacts with the user to provide simplicity, efficiency, and comfort. Without an 
appropriate user interface, the ANC project would be difficult to operate and understand. Figure 
2 on page 5 shows a diagram of all of the different inputs and outputs of our user interface. 
 
 
 Sample Rate > 1000 Hz 
 Sample In and Out at 8kHz 
 Algorithm completes ≤ 125 μsec 
Digital 
Signal 
Processor 
Microphone 
Analog to Digital 
Converter 
Digital to Analog 
Converter 
Single-Board RIO 
Laptop running 
LabVIEW 
interface 
Speaker

5 
 
Figure 2. Inputs and Outputs of the ANC Project 
 
 
The user interface includes mode buttons, an on/off button, a reset button, and an active LED. As 
an enhancement of our original design, the mode buttons allow the user to pick which set of pre-
defined frequency ranges they would like to cancel background noise. Also, users can activate or 
deactivate the system by using the on/off button. Once the user activates the system, the active 
LED lights up and the system outputs anti-noise waveforms to cancel the environmental 
background noise. In addition to the on/off button, the user can restart the noise cancellation 
system by pressing the reset button.  
 
3.3 FUNCTIONAL COMPONENTS 
Our ANC design consists of the microphone, analog-to-digital converter (ADC), the digital 
signal processing unit, the digital-to-analog converter (DAC), and the speaker as shown in Figure 
3 on the next page.

6 
 
Figure 3. Block Diagram of Overall Functionality 
 
 
 
Our system is largely a straight line from the error-sensing microphone to the anti-noise speaker. 
Our algorithms take in 16-bit integers and write 16-bit integers, but we will use double precision 
floating point numbers to do the calculations in order to reduce quantization errors. The DAC 
will output a signal in the ± 5V range that the speaker will output at a corresponding sound 
pressure level. Table 2 on page 7 details the input and output specifications for each component. 
 
 
 
 
 
 
 
Noise Cancelling 
Algorithm 
Microphone 
Input Signal Processing 
Analog to Digital Converter 
Digital to Analog Converter 
Output Signal Processing 
Speaker 
or 
Analog 
Digital 
Analog 
FXLMS 
LSP

7 
Table 2. I/O Specifications Chart 
 
Input 
Output 
Microphone 
< 100 dB 
± 1V 
ADC 
± 1V 
16-bit integer 
Algorithm 
16-bit integer 
16-bit integer 
DAC 
16-bit integer 
± 5V 
Speaker 
± 5V 
< 100 dB 
 
 
 
Our product runs three components in real-time to cancel our targeted background noise in the 
50-500Hz frequency range: a microphone and a speaker. Given below is a discussion of what 
each peripheral accomplishes in the overall operation of our device. 
 
3.3.1 Microphone Interface 
As stated in Table 2, the microphone senses a sound pressure less than 100 dB. This sound 
pressure serves as the analog input for our system, which consists of periodic background noises 
in the targeted 50-500Hz range, other environmental sounds, and feedback. The input signal then 
travels through the microphone to the sbRIO’s ADC where the ADC converts the signal to an 
integer relative to a voltage between ±1V. At this point, the ADC will process the signal to a 
digital output that is readable by the LSP or FXLMS algorithm to produce an anti-noise signal. 
Again referring back to Table 2, this signal will be a 16-bit integer. 
 
3.3.2 Digital Processing 
The software component of our design consists of the LabVIEW program implementing the LSP 
and FXLMS algorithms. The LSP or FXLMS algorithm processes signals received through the 
microphone interface. We will integrate these algorithms into the system by using the sbRIO to 
take in the noise and output the generated anti-noise. Both algorithms use the residual noise to 
adjust the anti-noise until it cancels the offending noise. The generated anti-noise is sent through 
the DAC to the speaker interface.

8 
3.3.3 Speaker Interface 
According to Table 2, the speaker receives a voltage between ±5V. Since the speakers connect to 
the DAC interface, the DAC is responsible for producing a ±5V anti-noise waveform to the 
speaker as an analog signal. The amplifier circuit will ensure the electrical signal can produce up 
to the 500mW needed to power the speaker. The speaker is responsible for making the anti-noise 
waveform audible; this anti-noise waveform provides the 10 dB drop in periodic background 
noise by way of destructive interference.  
 
3.4 DETAILED DESIGN DECISIONS 
For the ANC project, many design decisions concern the algorithms used to generate the anti-
noise waveforms. Hardware decisions decide the constraints under which the software operates 
and can limit the overall effectiveness of the system. In this section, we will detail some of the 
design decisions we have made and why we made them. 
 
3.4.1 Processor Choice 
The choice of processor was one of the first design decisions we made. We considered a Texas 
Instruments (TI) DSP board or running the algorithms through a computer, but our sponsor 
suggested the National Instruments (NI) sbRIO to us. We were primarily concerned about 
processor speed, analog IO and cost; in other words, the DSP must be fast enough to generate 
analog signals in real-time. A TI, NI, or any other company’s board would likely meet these 
requirements. A computer could have problems generating real-time results since the operating 
system is in control. However, National Instruments made this decision easy by offering to loan 
the sbRIO 9631 to us for the purposes of this project. The board should be sufficient for our 
purposes; the board has a 266 MHz processor, which is fast for an embedded system. The 
floating point processor allows for rapid prototyping while the field programmable gate array 
allows for fast execution. The board has thirty-two 16-bit analog inputs and four 16-bit analog 
outputs. Theoretically, the 16-bit input gives us 96 dB of dynamic range which leads to 50 dB of 
realistic dynamic range [3]. These features of the sbRIO should be sufficient for our ANC 
design.

9 
3.4.2 Speaker and Microphone Choice 
We chose the Audio Technica ATR-3350 Lavalier Omnidirectional Condenser Microphone and 
the HS24 - Iasus XSound2 Helmet Speakers as our audio components. When choosing the 
microphones and speakers, we looked at several criteria: size/fit, audio quality, frequency 
response, and cost. The speakers and microphones must be small enough to be positioned within 
2 inches away from the user’s ear. We also chose microphones and speakers with a frequency 
range that included 50–500 Hz. Costs were the major limiting factor with a budget of 30-50 
dollars. As a result, costs constrained our audio quality and frequency response. We felt the 
models that we chose best met our design criteria of operating at frequencies 50-500 Hz.  
 
3.4.3 Algorithm Choice 
The main software component of our design is the LabVIEW program implementing the new 
LSP algorithm. We will integrate this algorithm onto the sbRIO. LSP uses two unknowns, the 
noise and channel response, and two knowns, the anti-noise and residual response, to calculate 
the anti-noise waveform. LSP continuously re-estimates the phase and magnitude of the anti-
noise. Thus, the LSP algorithm reacts quickly to sudden changes in the magnitude and phase of 
the noise. We selected the LSP as our main algorithm because it is a new approach to noise 
cancellation. 
 
Another major choice was deciding which algorithms we would run in conjunction with the LSP 
algorithm. We considered the following comparison algorithms: Filtered-X Least Mean Squares 
(FXLMS); normalized FXLMS; subband FXLMS; Recursive Least Squares (RLS); and Affine 
Projection (APA). We looked at computational complexity, programming complexity, and 
overall effectiveness of the algorithm when making our decision. The normalized FXLMS 
adjusts the step size that controls the weights on the anti-noise adaptive filter. The normalized 
LMS has been shown to lead to faster convergence and a lower mean squared error [5]. Subband 
FXLMS splits the noise signal into different frequency bands such as (50–100 Hz, 100–200 Hz, 
etc.) and then runs the FXLMS algorithm on each band separately [6]. This approach allows for 
smaller adaptive filters, increases overall cancellation, decreases convergence time, and allows 
for noise cancellation at higher frequencies. The recursive least squares algorithm uses a similar 
concept to least mean squares, but updates the shaping filter using a recursive formula. RLS 
converges the fastest, but has the highest computational complexity and can be unstable [7].

10 
APA treats each tap update on the adaptive filter as an affine projection in multiple dimensions. 
APA proves faster and more complex than an LMS based filter and slower and less complex than 
RLS [7]. 
 
Looking at the algorithms made us realize that there would never be a great baseline comparison 
for the LSP algorithm since there are many ANC algorithms. We decided on using the FXLMS 
algorithm since it was the most famous algorithm in active noise control [8]. We have modeled 
the basic LSP and FXLMS algorithms in MATLAB, and the simulations confirmed that the 
algorithms should be effective and converge in a reasonable time. Thus, we decided to 
implement LSP and FXLMS as part of our software design solution. Appendices A and B 
contain a description of the LSP and FXLMS algorithms, respectively.  
 
3.4.4 Subsidiary Choices 
We chose to use LabVIEW as our programming language because it integrates with our digital 
processing unit, the sbRIO. We also decided to use wall power to drive our processing unit and 
hardware components since the sbRIO will require a steady, constant power supply. Finally, to 
protect our ANC system, we chose to build a Plexiglas box around the sbRIO.  
 
4.0 DESIGN IMPLEMENTATION 
 
 Our final system implementation differed from the system design we previously submitted in the 
design implementation plan. Unforeseen problems forced us to modify our LSP and FXLMS 
algorithms to meet the timing constraints of our processor. For LSP, this resulted in a more 
elegant program. For FXLMS, the constraints severely limited our design which may have 
caused its eventual failure. We left some sections vague in our initial design, since we did not 
know the full properties of our system. In our final implementation, we nailed down the final 
parameter values for our entire system. In this section, we will discuss our final system in detail. 
We will discuss the hardware design, the LSP design, and the FXLMS design in separate 
sections. We will also discuss any changes we made to our design and why we made those 
changes.

11 
4.1 HARDWARE COMPONENTS 
The hardware design of our headset was primarily concerned with connecting to the speakers and 
the microphone. The power amplifier provided the current necessary to power the speakers. A 
high pass filter was added to the design to remove the DC voltage from the signal received from 
the microphone. We designed and implemented circuits necessary for the user interface. We 
constructed a box to hold all the sbRIO and the breadboard. Finally, we created a headset out of a 
hardhat, speakers, a microphone, tape and some construction materials. 
 
4.1.1 Microphone 
The Audio Technica ATR-3350 Lavalier Omnidirectional Condenser Microphone receives and 
converts sound from the surrounding environment to an analog signal. The microphone operates 
within the 50-500 Hz frequency range we specified for our ANC design. The microphone is 
omnidirectional and sufficiently small, weighing only 6 grams. In our hardware implementation, 
the microphone is connected to a high-pass filter circuit described in the next section.  
 
4.1.2 High-Pass Filter 
The high-pass filter removes the DC voltage component from the signal received from the 
microphone. Our team implemented a passive high-pass filter using a 4.7 µF capacitor and 1 kΩ 
resistor. Figure 4 shows the circuit setup of the high-pass filter. 
 
 
 
Figure 4. High-Pass Filter Circuit

12 
4.1.3 Power Amplifier 
We implemented an amplifier circuit to provide the necessary power to drive the speaker, which 
has a maximum power limit of 500 mW. The circuit consists of the MC34119 audio amplifier, 
four capacitors, and two resistors. In order to keep the signal from the sbRIO unamplified, we 
selected resistor values of 5 kΩ and 10 kΩ to achieve unity gain.  Figure 5 shows the power 
amplifier circuit. 
 
 
Figure 5. Power Amplifier Circuit 
 
 
4.1.4 Speaker 
Only one speaker from the the HS24 - Iasus XSound2 Helmet Speakers is used to output the 
anti-noise signal. The speaker has a frequency response covering the 50-500 Hz range from our 
design specification. The speaker is powered by the amplifier circuit described in the previous 
section.  
 
4.1.5 Buttons 
The user button interface consists of five buttons. The first button allows the user to turn the 
ANC system on or off. The second button allows the user to reset the noise cancellation 
algorithm in case the algorithm becomes unstable.

13 
The next three buttons allow the user to select frequencies to cancel at 100, 200, and 400 Hz. 
Figure 6 presents the circuit connecting the buttons to the sbRIO . 
 
 
Figure 6. Button Circuit 
 
 
4.1.6  LED Circuit 
Our hardware design includes an LED indicating the status of noise cancellation. An active LED 
means that the system is cancelling noise. Figure 7 shows the circuit implementation of the LED. 
 
 
Figure 7. LED Circuit

14 
4.1.7  Plexiglas Box 
In order to protect the sbRIO, high-pass filter, power amplifier, button circuit, and LED circuit 
from user interference, we implemented a Plexiglas box around these hardware elements. The 
sbRIO stays fixed on the bottom surface inside the box. A breadboard consisting of the high-pass 
filter, power amplifier, button circuit, and LED circuit is fixed to the top surface inside the box. 
In addition, five holes drilled through the top surface of the box allow the user to control five 
plungers connected to the five corresponding user-interface buttons. Figure 8 presents the 
configuration of the Plexiglas box. 
 
 
 
Figure 8. Plexiglas Box Configuration 
 
 
4.1.8  Headset 
Our headset implementation consists of a hardhat, headset speakers, microphone, tape, and 
arbitrarily chosen construction materials. The sbRIO outputs the anti-noise through one speaker 
from the pair of headset speakers. The other speaker outputs no signal and is attached to the side 
of the hardhat as a dummy speaker. The functional speaker is positioned approximately 1 inch 
away from the microphone situated near the user’s right ear. The working speaker and 
microphone pair hang from metal plates attached to the right side of the hardhat. Figure 9 (next 
page) presents the overall headset configuration.

15 
 
 
Figure 9. Headset Configuration 
 
 
4.2  LINEAR SYSTEMS OF PHASORS 
We had an initial version of LSP that was based on our system design that worked in our 
simulations. This version of LSP would run a single loop at 10 kHz. During each iteration of the 
loop, the LSP algorithm takes a sample, places it in a buffer, and outputs an anti-noise sample. 
Every 0.1 seconds the algorithm calculates the magnitude and phase of the received signal in the 
buffer. The algorithm would also handle the user interface. However, a problem arose that made 
this approach of LSP impossible. In testing we discovered that the real-time operating system on 
the board could not run sample by sample input and output at clock speeds greater than 2 kHz. 
This forced us to modify our approach to the LSP algorithm. 
 
Our new LSP algorithm splits its tasks into three loops running at different speeds. This 
encapsulation separated each function of the LSP algorithm into distinct areas. A 10 kHz loop 
running on the FPGA handles the input and output. Analog input and output are handled using a

16 
first-in, first-out (FIFO) system, allowing transmission of blocks of data at a time. A 200 Hz loop 
performs most of the calculations. The loop generates a block containing 50 samples of the anti-
noise and writes the sample values to a FIFO. The loop also reads a block of 50 samples from the 
error FIFO. The 200 Hz loop also contains calculations to extract the magnitude and phase of the 
received signal. Finally, a loop running at 4 Hz handles the actual algorithm control. The 4 Hz 
loop determines the necessary anti-noise magnitude and phase and handles the user interface and 
program errors. Appendix C shows the three main loops we implemented for the LSP algorithm 
in LabVIEW. 
 
 4.2.1  Input and Output Loop 
Only one loop runs on the FPGA and handles all input and output. The loop has two inputs (anti-
noise and LED switch) and six outputs (five user interface buttons and error). This loop runs at 
10 kHz which differs slightly from the 8 kHz we originally stated. The received error signal 
connects to AI28 on the sbRIO and places the value into the Error FIFO. The FPGA shares this 
FIFO with the real-time operating system (OS). As a result, the real-time OS can read the oldest 
value from the FIFO. The loop reads a value from the Anti-Noise FIFO and writes it to AO0 on 
the sbRIO. The user interface buttons connecting to DIO0 to DIO4 on port 8 are read and written 
to the front panel, where other loops can read the data. A button on the front panel writes to 
DIO5 which is used for lighting the LED. 
 
4.2.2  Computational Loop 
The computational loop contains most of the calculations that the LSP algorithm requires. This 
loop runs at 200 Hz. Since the FPGA loop runs 50 times faster, each iteration of the 
computational loop must write 50 values to the anti-noise FIFO and read 50 values from the error 
FIFO in order to keep up with the FPGA’s timing. The computational loop has three main 
functions: generate anti-noise, handle user interface, and estimate magnitude and phase. The 
computational loop shares many variables with the control loop. These shared variables include 
A0, A1, E0, E1, all five buttons, LED, and fcase. An initialization step occurs prior to the loop to 
open the FPGA virtual instrument (VI) and prepare the FIFOs. After this loop finishes, a clean-
up step closes the FPGA VI and FIFOs.

17 
Generating the anti-noise waveform involves calculating the next 50 samples of a cosine wave 
and writing them to the anti-noise FIFO. A frequency selector chooses the frequency that the 
user wants to cancel. The cosine wave has a magnitude specified by the shared variable A1 and a 
phase specified by the variable A1 Phase. For the user interface, the loop reads ports 0 to 5 and 
logically “ors” the values with the corresponding shared variable buttons. If the resulting shared 
variable is true, then the button has been pressed but not acknowledged. If the shared variable is 
false, the button has not been pressed since it was last cleared. If the button is pressed, the shared 
variable switches to true. The LED outputs true, or activates, only when magnitude of variable 
A1 does not equal zero and the “stop loop” button has not been pressed on the host computer.  
 
Magnitude and phase estimation proved to be a surprisingly tricky part of the algorithm. The DC 
mean dominated all other parts of the signal if not removed. The magnitude and phase estimation 
consists of shifting the entire spectrum by the frequency being canceled, fc. The spectrum shift 
requires multiplying the error signal by a complex exponential with a frequency of -fc, which 
shifts the fc component of the signal to a DC value. The mean of this signal is a complex number 
with a phase and magnitude corresponding to the phase and magnitude of the fc component of 
the received error signal. 
 
4.2.3  Control Loop 
The control loop handles the user input and the LSP algorithm. The loop runs at a speed of 4 Hz, 
which could be raised to increase the overall convergence rate. The loop puts the previous anti-
noise and error values into matrix equations to determine the proper anti-noise values to output 
next as detailed in Appendix A. If the algorithm calculates an amplitude greater than 4 V, the A1 
and A1 Phase will not shift to their new values. Therefore, the algorithm becomes stuck and 
outputs a sine wave at a constant amplitude and phase. Whenever the matrix equations become 
singular and incalculable, the amplitude of A1 becomes greater than 4V, triggering an error. 
With one check, our error handling code accounts for the two main sources of algorithm error. 
 
The control loop also handles the user interface. If the power button is pressed, the loop clears 
the Power shared variable and sets both the output phase and magnitude to zero. If the reset 
button is pressed, the loop clears the Reset shared variable and sets the output phase and

18 
magnitude to one and zero respectively. If the f1, f2 or f3 buttons have been pressed, the f case 
shared variable is set to one, two or three, respectively. All frequency shared variables are 
cleared afterward. 
 
4.2.4  Problems and Improvements 
The current LSP algorithm could be improved. One persistent problem with the LSP algorithm 
deals with system timing. Intermittently (a few times a minute) the computational loop would 
finish late, rebooting the algorithm. Although the algorithm runs continuously and successfully 
cancels noise, fixing the timing problem from the algorithm would improve the sound quality of 
the ANC headset.  
 
A final version of the LSP would identify the most prevalent frequencies in the noise at startup 
and determine the frequencies it wished to cancel. A final version would also cancel multiple 
frequencies at a time, which we did not have the time to implement. Simpler and more efficient 
ways to calculate the anti-noise waveform could also be used. Our current method of phase 
estimation is accurate but computationally complex. More efficient ways to perform 
demodulation and phase estimation also exist. If we lowered the LSP’s mathematical 
computational complexity, we could cancel more frequencies and have fewer timing problems. 
 
4.3  FILTERED-X LEAST MEAN SQUARES 
Out team designed an FXLMS algorithm based on the algorithms we simulated in MATLAB. 
Appendix D contains our LabVIEW implementation of FXLMS algorithm.  The LabVIEW 
implementation follows the basic outline of the FXLMS algorithm described in Appendix D 
along with some error coding to avoid blowing out the user’s ear. The FXLMS algorithm 
transitioned through major changes to meet the 2 kHz loop rate limitation of the real-time 
processor. This 2 kHz limitation severely hindered the range of frequency we can cancel, the 
number of calculations we can complete, and the amount of data we can share with the host 
computer. We considered implementing the FXLMS on the FPGA, but our team lacked the 
expertise and time to perform this level of programming by the time the processor limitation was 
discovered. Despite this limitation, we implemented the algorithm anyway to see how effective it

19 
would prove. However, FXLMS had a number of problems and proved ineffective. FXLMS was 
a suboptimal solution for our ANC headset and we will discuss why in the next section. 
 
5.0 TEST AND EVALUATION 
 
We tested and evaluated the system throughout the design process. Each system component was 
tested individually before joining the rest of the system. Once we connected all the hardware, we 
performed input and output tests that demonstrated the hardware’s proper functionality. We then 
tested and verified active noise cancellation. We integrated and tested the algorithms with the 
software. Finally, we evaluated the algorithm based on a variety of parameters. These tests 
showed that the LSP algorithm worked and that the FXLMS algorithm did not work. 
 
5.1  INDIVIDUAL COMPONENT TESTING 
Each component underwent significant testing before we placed it into the system. We generated 
noise at a particular frequency and made sure the microphone received the proper frequency. We 
swept a series of sine waveforms through the speaker to ensure it output the proper frequency. 
We verified the power amplifier for proper voltage in order to not destroy the ports on the 
sbRIO. We also tested the button circuit and LED circuit to ensure that they worked and would 
not destroy the board. Our two main concerns were that the components did not break any other 
components if they failed and that they performed their designated functions. We also simulated 
the LSP and FXLMS algorithms in MATLAB prior to implementing them in LabVIEW. 
 
5.2  SOFTWARE AND HARDWARE INTEGRATION 
The second stage of our project was hardware and software integration. We wrote a program that 
attempted to run a timed loop at 10 kHz on the real-time operating system. The simple program 
would take an input, multiply it by two and output the scaled value. However, we discovered the 
real-time operating system cannot run timed loops at rate much higher than 2 kHz. This proved 
to be a significant setback which forced us to redesign the LSP algorithm and crippled the 
FXLMS algorithm.

20 
The fix for the LSP algorithm involved transmitting blocks of data at a lower rate to the FPGA 
that would output each element of the block of data at the 10 kHz rate. This approach worked, 
and we built effectively an arbitrary waveform generator and oscilloscope. This allowed us to 
test the entire system except for the noise cancelling algorithm. We sent sine wave signals at 
specific frequencies with specific amplitudes and recorded the current usage of the power supply. 
This allowed us to verify the resistance of the speaker to be approximately 60 ohms. We also 
verified that 4V would be an appropriate cutoff level for the speaker to avoid damaging the 
speaker and the user’s ear.  
 
5.3  NOISE CANCELLATION DEMONSTRATION 
Without using any algorithms, we wanted to demonstrate that noise cancellation works by 
cancelling a noise by adjusting the phase and amplitude of our anti-noise ourselves. We set up an 
offending noise to be output at 200 Hz. We output the anti-noise at the amplitude and phase 
listed in the chart below and recorded the magnitude of the received error signal at 200 Hz. 
 
 
Table 3. Noise-Cancellation Demonstration 
Anti-Noise Amplitude (V) Anti-Noise Phase (deg) Error Amplitude (V) 
0 
0 
.0005 
.3 
-50 
.0001 
.3 
40 
.0008 
.3 
130 
.0011 
.3 
-140 
.0007 
 
 
The offending noise had an amplitude of approximately 5 mV. We tweaked the anti-noise 
amplitude and found .3V would be roughly the same magnitude as the offending noise. We 
found that -50 degrees would produce an out of phase anti-noise waveform and lead to 
destructive interference. An output phase of approximately 130 degrees would lead to 
constructive interference. The other phase showed semi-constructive interference. This 
experiment demonstrated that noise cancellation is feasible.

21 
5.4  LSP FUNCTIONALITY TESTING 
To test the functionality of the LSP, we tested the system in a quiet environment. We output sine 
waves at various frequencies to simulate the offending noise.  We kept the system a standard 
distance away from the offending noise speaker and kept it still over all trials. We could not quite 
keep the volume constant across all frequencies, since lower frequencies are harder to hear 
meaning the volume needed to be increased. We placed the headset on the user’s head and had 
them sit still. We cycled through the frequencies in 50 Hz increments. We recorded an average of 
the magnitude of the noise and the residual noise after noise cancellation as shown in Table 4. 
These measurements were acquired and calculated from our LabVIEW vi. 
 
 
Table 4. LSP Testing Results 
Frequency (Hz) 
Noise (V) 
Residual (V) 
Decibel Change (dB) 
50 
White noise 
White noise 
- 
100 
.0009 
.0002 
-13.06 
150 
.0006 
.0001 
-15.56 
200 
.0007 
.0001 
-16.90 
250 
.0011 
.0001 
-20.82 
300 
.002 
.0002 
-20.00 
350 
.003 
.0002 
-23.52 
400 
.004 
.0002 
-26.02 
450 
.0012 
.0001 
-21.58 
500 
.0011 
.0001 
-20.83 
 
 
The ANC headset could cancel the noise down to .1 to .2 mV which is roughly the level of the 
noise floor of the microphone. The decibel drop was well above the 10 dB drop we had set as our

22 
goal. We did have problems at 50 Hz where our offending noise speaker was having problems 
with generating a frequency that low, so we could not actually test our system. We also hooked 
up the oscilloscope to the microphone and the speaker and analyzed the voltage signals we were 
sending and receiving. Appendix E shows before and after pictures for our LSP algorithms at 
200, 300, 400, and 500 Hz. The top waveform is the noise level the ear would be hearing. The 
bottom waveform is the anti-noise signal. In every case, our LSP algorithm produces the proper 
anti-noise to significantly reduce the offending noise as shown in the difference between the 
before and after pictures. 
 
5.5  LSP EVALUATION 
We evaluated the LSP algorithm on factors beyond just decibel drop using our observations. We 
looked at convergence speed, computational complexity, stability and robustness. We made these 
evaluations using largely qualitative observations. The LSP algorithm converges to a proper anti-
noise magnitude and phase within one second. This corresponds to about four cycles of our 
control loop. The LSP algorithm has generally low complexity. The generation of the anti-noise 
waveform and the phase and magnitude estimation of the received signal are the only 
computationally intensive methods, and there are probably more efficient methods of doing those 
two calculations. The LSP algorithm proved very stable; we never noticed any instances of the 
algorithm itself having an error. The algorithm proved robust to movement, talking, pulses or 
any other challenge we could envision. In every case, the change either had a negligible effect, or 
the algorithm rebooted itself and canceled the noise back down to the noise floor within a 
second. 
 
5.6  FXLMS TESTING AND EVALUATION 
The FXLMS algorithm proved unsuccessful. The FXLMS algorithm never passed any of the 
basic functionality tests. We succeeded in building an FXLMS tracker just not an FXLMS noise 
canceller. Our solution would produce an anti-noise waveform of similar shape to the received 
noise signal. However, the system became unstable when it began to reach the stage in which it 
would actually cancel the noise. This may be due to the channel changing or being estimated 
poorly. It may be due to the fact that we had an imperfect environment. Perhaps our algorithm 
would be successful in a more controlled environment. We discussed this with Shawn McCaslin

23 
who shared some of his fear of FXLMS.  FXLMS has really only been shown to work in 
controlled and isolated environments where there is a lot of fine-tuning that can be done such as 
airplane cabins. However, LSP works in our imperfect environment. FXLMS had other 
problems. We could only run the loop at speeds up to 1600 Hz which would have severely 
affected the frequencies of noise we could cancel. FXLMS also took a long time to converge to 
just the tracking stage. FXLMS has some very specific requirements that make it unsuitable for 
the environments in which we want to cancel the noise. 
 
5.7  SYSTEM EVALUATION 
Overall, our project performed as expected. At the beginning of the semester, our group expected 
to see at least a 10 dB drop in background noise as long as the background noise was 100dB or 
less. We chose this specification because it is typical of other ANC algorithms in existence. After 
thoroughly testing our final prototype, our project went above and beyond the 10 dB minimal 
requirement in several trials. Table 5 compares the performance of each algorithm based on 
noise reduction, convergence, complexity, stability, and robustness.  
 
 
Table 5. LSP and FXLMS Performance 
Features 
LSP 
FXLMS 
Noise reduction 
10 to 20 dB decrease in noise level 
No noise cancellation 
Convergence 
<1 second convergence speed 
Does not converge  
Complexity 
Low complexity, uses linear algebra 
High complexity 
Stability 
Stable 
Unstable 
Robustness 
Robust to movement, talking, pulses, etc. 
Not robust 
 
 
As mentioned in Section 5.4, LSP does not meet the required noise reduction specification for 
frequencies close to 50 Hz. However, in general, LSP operates as expected (or better), reducing 
noise by 10 - 20dB. When LSP does not meet the specification, the reason is due to the algorithm 
finishing late on the Single-Board RIO. The LSP algorithm converges in less than one second 
and is both stable and robust. On the other hand, our team was unable to test FXLMS the way we

24 
intended. Our MATLAB simulation showed that FXLMS meets the 10dB noise reduction 
specification in theoretical ideal conditions. Since our FXLMS implementation on the sbRIO 
was never perfected due to hardware speed limitations, we cannot comment on which algorithm 
performs better in a real-time environment. 
 
6.0 TIME AND COST CONSIDERATIONS 
 
The project schedule in Appendix F shows the plan our group made to complete the project 
within the allotted thirteen weeks. Every week, we alternately assigned tasks to different team 
members, and each team member spent a minimum of eight hours a week working on the 
project. Note that the eight hours was in addition to the weekly team meetings. In the end, our 
team collectively spent a total of at least 415 hours on the project. 
 
6.1 TIME CONSIDERATIONS 
Our team officially completed the ANC project on time. Throughout the semester, several 
obstacles slightly delayed our project schedule, however. Reasons such as illnesses, attending 
Engineering EXPO, preparing graduate school applications, preparing for demo, and completely 
changing our design approach in the middle of the semester all contributed to delays. The most 
time- consuming task of the project is the software and hardware integration. We have run into 
multiple issues such as power source for our auxiliary circuits and the lack of speed of the NI 
sbRIO Real Time Processor module. Fortunately, we were able to move around tasks without a 
serious compensation of our schedule because we designed our project schedule in a modular 
manner; non-critical tasks could be moved around and squeezed into a small amount of time, if 
absolutely necessary. When we had to, our team pulled together and caught up during the 
rougher parts of the semester. 
 
6.2 COST CONSIDERATIONS  
Our team officially stayed within the budget constraints associated with this project. There was 
not much change in the cost because all additional parts, such as resistors, capacitors, switches, 
and operational amplifiers, were available for check out from the ENS lab front desk.  
Throughout the entire semester, the only “unexpected cost” our group encountered was the

25 
binding requirement for this final paper. Luckily, our group did not travel much, so we did not 
use all of the planned $100. Table 6 gives a complete breakdown of all project costs. 
 
 
Table 6. ANC Project Costs  
Components  
Prototype Cost  
 Our Cost  
  NI Single-Board RIO  
$1,200  
 $0 (Loaned)  
  Speaker  
$50  
 $50  
  Microphone  
$50  
 $50  
  Hardhat  
$20  
 $0 (Donated)  
  Wires, Cords, etc.  
$50  
 $50  
  Preliminary testing materials  
$100  
 $100  
  LabVIEW  
$2,600  
 $0 (Available)  
Miscellaneous  
  Travel  
$100  
 $100  
Total Cost of Prototype  
$4,170   
 $350  
 
 
As seen in the table, the cost is significantly higher for those who wish to build a similar product, 
but are not from The University of Texas and benefitting from the generosity of National 
Instruments. The most expensive components are the Single-Board RIO and LabVIEW 
components. Our project spending amounts to only $350 because the required items for our ANC 
project were available to us at no charge. In order to reduce the cost of the project significantly, 
one could replace the NI sbRIO with a cheaper, less sophisticated processor.

26 
7.0 SAFETY AND ETHICAL ASPECTS OF DESIGN 
 
As with all other projects, maintaining project integrity and keeping the end user safe is a 
top priority for our team. In addition, one of our team’s main goals was to reduce work-
related health concerns in a factory environment. In order to accomplish these goals, our 
group ensured that our product met all electrical reliability and stability requirements, as 
well as all mechanical stability considerations. For example, during our testing phases, we 
emphasized the need for keeping an output voltage threshold that protected both the end 
user and the speaker. As a precaution, we placed all our circuit boards and the NI sbRIO 
into a Plexiglas box. The box isolates the user from the circuit components in order to 
prevent the risk of electric shock, and also helps to reduce the risk of damaging the circuit 
elements with electronic static charge. We also made sure the hardhat did not have any 
sharp edges or potentially harmful parts. Another important factor was weight; we did not 
want a heavy headset that could cause neck injury. Overall, our group tried to ensure that 
our project would not cause any significant harm under normal conditions. With these 
design safety considerations, our project serves humanity and the public in the safest way 
possible. 
 
Ethically, our project does not pose any significant threats to humanity. Our product helps 
reduce stress and addresses health concerns in factory environments where workers face 
repetitive low frequency noises. With all of the safety considerations built in, our project 
should only improve work environments; no worker should feel hesitant to try out the final 
product, nor should anyone around the product user be afraid that the product would cause 
damage to him or her. In regards to disposability and recycling ability, our project is about 
as recyclable as any other electronic project. When possible, our design team made every 
effort possible to keep the environment healthier. The use of the ANC project reduces the 
need to build large passive noise control devices because our ANC project would be 
localized, compact, and easy to use. In addition, our team conducted research to ensure that 
our project does not violate any patented or copyrighted material. To the best of our 
knowledge, our project met engineering and civil standards.

27 
8.0 CONCLUSIONS AND RECOMMENDATIONS 
 
This report detailed the design of a prototype headset that actively cancelled low frequency, 
periodic noise. Our main goal was to provide easier communication in loud environments with 
low-frequency, cyclical noises. By outputting an exactly inverse waveform, it is possible to 
destructively interfere with offending noise using a secondary speaker.  Our team compared the 
LSP and FXLMS algorithms in real-time and found that each algorithm created the inverse 
waveform in different ways with different complexity. LSP is a new algorithm that our team 
designed, and FXLMS is a popular algorithm already in existence. Using our newly-designed 
LSP algorithm, our project successfully achieved a significant 15dB drop. To achieve this goal, 
our new algorithm was able to cancel single frequencies at a time using phasors and linear 
algebra. FXLMS, on the other hand, approximates the inverse signal without breaking the signal 
into different frequencies, greatly increasing the complexity. 
 
Since the FXLMS algorithm is so complex to implement on the FPGA, our team did not have a 
good baseline comparison for the LSP algorithm. Although we did not have success with 
FXLMS, our simulated results in both MATLAB and LabVIEW still gave us a feel for the 
strengths and weakness of each algorithm. If our group could start from the beginning again, we 
would research FPGA implementation more in depth. Our collective lack of experience using 
fixed-point algebra prohibited our ability to efficiently test our algorithms in LabVIEW. 
 
Our team did meet the promised requirements, however. The final prototype consisted of the 
Single Board RIO, speaker, and a microphone attached to a headset configuration using a 
hardhat. The user was able to place the hardhat on their head and turn the system on using the 
“on/off” button found on the Plexiglas box. The prototype also implemented a reset button to 
restart the noise cancelling algorithms, in addition to three frequency modes designed for the 
LSP algorithm – an improvement above the original project standards. At the end, we realized 
that our project could be created as a smaller product using code and hardware optimization. 
Companies that have large factories with noisy environments could benefit from our device.  
Furthermore, this device does not cover the ear and allows for communication with other 
workers and other devices such as cell phones.

28 
 
Although our group found success, several improvements could make our product even better for 
future customers. The best improvement involves fixing the timing issue in LabVIEW. If there is 
a way to make a better phase estimation, our group feels less resources would be required to run 
the LSP algorithm. Using a different processor for the FXLMS algorithm, or perhaps running the 
algorithms on the FPGA completely, would also improve the ability to use FXLMS as a baseline 
comparison. With all of these changes in place, the final improvement of our product would be to 
integrate every part into a smaller and standalone system. Since our new LSP method is simple 
and easily implemented, we believe that companies could sell this product profitably if 
streamlined into a smaller headset. 
 
REFERENCES 
 
[1] 
“Low Frequency Noise Study,” Massachusetts Institute of Technology, 
http://web.mit.edu/aeroastro/partner/projects/project1-qanda.html (current 2009). 
 
[2] 
M. Berg, “Influence of Low Frequency Noise on Health and Well-Being,” Ministry of 
Environment, http://www.unece.org/trans/doc/2005/ 
wp29grb/TRANS-WP29-GRB-41-inf08e.doc (current 11 Feb. 2005). 
 
[3] 
C.H. Hansen, Understanding Active Noise Cancellation, Taylor & Francis e-Library, 
2003 
 
[4] 
N. Mansfield, “Characteristics of Noise,” The Learning Zone, 
http://www.ergonomics4schools.com/lzone/noise.htm (current 2009). 
 
[5] 
B. Widrow and S.D. Stearns, Adaptive Signal Processing, Prentice-Hall, Inc. Englewood 
Cliffs, N.J, 1985. 
 
[6] 
B. Siravara, N. Magotra, P. Loizou, “A Novel Approach for Single Microphone Active 
Noise Cancellation,” http://www.utdallas.edu/~loizou/speech/mwscas_2002.pdf (current 
14 Sept. 2009). 
 
[7] 
M. Bouchard, “Multichannel Affine and Fast Affine Projection Algorithms for Active 
 
Noise Control and Acoustic Equalization Systems,” IEEE Transactions on Speech and 
 
Audio Processing, vol. 11, no. 1, Jan. 2003, pp 54-60. 
 
[8] 
M.T. Akhtar, and W. Mitsuhashi, “Improving performance of FxLMS algorithm for 
active noise control of impulsive noise,” Journal of Sound and Vibration, vol. 327, pp. 
647-656.

A-1 
 
 
 
 
 
 
 
 
APPENDIX A – LSP ALGORITHM

A-2 
 
APPENDIX A – LSP ALGORITHM  
 
 
1) Scan noise spectrum for frequency spikes. 
2) Decide which frequencies to cancel. 
3) Choose a specific frequency (f1) that you are cancelling. These steps may be run in parallel 
for multiple frequencies. 
4) Choose an initial amplitude and phase for the anti-noise phasor (A1). 
5) Output a sine waveform at the frequency (f1) and the phasor (A1). 
6) Wait n samples to account for the channel delay. The amount of delay, n, is to be determined. 
7) Record k samples of residual noise. 
8) Calculate the amplitude and phase of the residual noise at f1. Name this phasor R1. The 
number of samples, k, should be large enough to accurately determine R1. 
9) Repeat steps 4-8 with for a different anti-noise phasor A2. Record the residual noise phasor 
R2. 
10) Calculate the noise phasor (N) and the channel phasor (C). A1 and A2 must be different, or 
the inverse matrix cannot be calculated. 
N + A1*C = R1 
 
|1  A1||N| = |R1| 
N + A2*C = R2 
 
|1  A2||C|     |R2| 
 
|1  A1|^(-1)|R1| = |N| 
|1  A2|        |R2|    |C| 
 
11) Solve for A3 using the estimates of N and C.  
N + A3*C = 0 
A3 = -N/C 
12) Output a sine waveform at the frequency (f1) and the phasor (A3). 
13) Wait n+k samples to get residual phasor R3. 
14) Solve for new estimates of N and C.  
N + A2*C = R2 
N + A3*C = R3 
15) Repeat steps 11-14 using new estimates of N and C.

B-1 
 
 
 
 
 
 
 
 
APPENDIX B – FXLMS ALGORITHM

B-2 
 
APPENDIX B – FXLMS ALGORITHM  
 
 
Notes on terminology:  
d = disturbance or noise to be cancelled. 
e = error or residual noise left over once anti-noise and noise combine. 
y = anti-noise before it is sent through the channel. 
y' = estimate of anti-noise after it is sent through channel. 
x = estimate of disturbance. 
x' = filtered x reference signal 
 
S(z) = secondary path or channel from speaker to microphone. 
S'(z) = estimation of secondary path. 
W(z) = adaptive active noise cancellation filter 
u = step size 
 
filter(A(z),b(n)) = summation from m = 0 to M-1 of Am*b(n-m) where M = length of A 
 
1) Clear buffers and adaptive filter coefficients. 
2) Output white noise through the speaker to generate an estimate of the secondary path S'(z).  
3) Output some nominal y(0) through the speakers to start the process. Further equations will use 
n as the current sample. 
4) Record e(n). The error equals d(n) plus the value of y(n) when sent through S(z). 
5) Generate an estimate of the noise. 
x(n) = e(n) + filter(S'(z),y) 
6) Filter x(n) to generate the filtered reference signal. 
x'(n) = filter(S'(z),x(n)) 
7) Update coefficients of adaptive filter. 
Wnew(m) = Wold(m) + u*x'(n-m)*e(n) for m = 0:length of W 
8) Generate y(n+1). 
y(n+1) = filter(Wnew(z),x(n)) 
9) Output y(n+1).  
10) Repeat steps 4-9 for sample n+1

C-1 
 
 
 
 
 
 
 
 
APPENDIX C – LSP ALGORITHM IMPLEMENTATION

C-2 
 
APPENDIX C – LSP ALGORITHM IMPLEMENTATION 
 
 
 
Figure 10. FPGA Input Output Loop

C-3 
 
APPENDIX C – LSP ALGORITHM IMPLEMENTATION 
 
 
 
Figure 11. Computational Loop

C-4 
 
APPENDIX C – LSP ALGORITHM IMPLEMENTATION 
 
 
 
Figure 12. Control Loop

D-1 
 
 
 
 
 
 
 
 
APPENDIX D – FXLMS ALGORITHM IMPLEMENTATION

D-2 
 
APPENDIX D – FXLMS ALGORITHM IMPLEMENTATION 
 
 
Figure 13. FXLMS LabVIEW Implementation

E-1 
 
 
 
 
 
 
 
 
APPENDIX E – LSP OSCILLOSCOPE RESULTS

E-2 
 
APPENDIX E – LSP OSCILLOSCOPE RESULTS 
 
 
 
Figure 14. Before 200 Hz Cancellation 
 
 
 
Figure 15. Cancellation After 200Hz

E-3 
 
APPENDIX E – LSP OSCILLOSCOPE RESULTS 
 
 
 
Figure 16. Before 300Hz Cancellation 
 
 
 
Figure 17. Cancellation After 300Hz

E-4 
 
APPENDIX E – LSP OSCILLOSCOPE RESULTS 
 
 
 
Figure 18. Before 400 Hz Cancellation 
 
 
 
Figure 19. Cancellation After 400 Hz

E-5 
 
APPENDIX E – LSP OSCILLOSCOPE RESULTS 
 
 
 
Figure 20. Before 500Hz Cancellation 
 
 
 
Figure 21: Cancellation After 500Hz

F-1 
 
 
 
 
 
 
 
 
APPENDIX F – ANC PROJECT SCHEDULE

F-2 
 
APPENDIX F: ANC PROJECT SCHEDULE 
 
 
Figure 22. ANC Project Schedule, Part 1 
 
 
 
Figure 23. ANC Project Schedule, Part 2