Noise Reduction
Developing an adaptive noise-reduction algorithm in MATLAB to reduce background noise while preserving important environmental sounds.
Overview
In a team of four, we implemented a Least Mean Squares (LMS) adaptive filter in MATLAB and evaluated it on recordings from Carnegie Mellon’s campus. The goal was to reduce background noise while keeping important environmental sounds distinguishable.
Algorithm Development
We first explored cancellation using an inverted waveform. This illustrated destructive interference, but a fixed waveform would not track changing background noise.

We instead implemented an LMS filter that updates its coefficients using an error signal. Unlike the initial fixed-waveform approach, the filter can adapt its response over time.

MATLAB Implementation
We converted the recordings to single-channel signals, generated a representative noise signal, and applied the LMS filter to produce processed audio.
We varied filter length and step size to explore convergence speed, stability, and filtering performance. Plots and audio playback supported comparison of the original and processed recordings.
Testing
We evaluated recordings from the gym, buses, lawn, and study areas to examine performance across different background sounds.
We compared waveform amplitudes and listened to the processed recordings to assess whether important sounds remained distinguishable. These checks provided an initial evaluation rather than a controlled measure of selective noise removal.

Results
The project reported up to 95% reduction in waveform amplitude, with important sounds remaining distinguishable in listening checks. Amplitude reduction alone does not establish improved signal-to-noise ratio; a stronger evaluation would define the amplitude metric and compare noise attenuation with distortion of the desired signal.