Background noise sucks. We all hate it when we are gaming or talking online and annoying background noise ruins the experience. This project filters out unwanted noise for a smoother audio experience.

The bane of our existence in the residence halls is how obnoxiously loud the toilets are. Many of us play games over discord, while some of us are musicians, and some are even content creators. It is simply terrible when a perfectly good music recording or gaming session goes to waste because of the loudest toilet flush on the planet. In addition to the ungodly toilet flush, other background noises can be very annoying too, such as a noisy roommate or a creaky chair. To circumvent this, our project is meant to filter out all the unwanted noise from said recordings to provide clean audio free of static.

We used MATLAB to create a band pass filter that will removes the unwanted noise from the input audio sample. The script we have developed asks for user input to decide the upper and lower limits of the filter, allowing for more complex and comprehensive signal processing.

We had a few problems in figuring out how to implement the high and low pass filters within MATLAB and how to allow the program to accept the audio files that we wanted to clean. We also had a bit of trouble calculating the required passband frequencies for different audio, but we powered through with some trial and error. Lastly, the spectrogram that came default with MATLAB did not meet our needs, so implementing one that did was a challenge. we needed to find an outside source and integrate it into our own design.

We are proud of our systems customizability with user input. While user input is not a hard thing within itself to implement, we believe this is a small feature that greatly improves our project. In addition, we discovered the perfect frequency range (80Hz to 8000Hz) to turn normal music into a low-fi version of itself.

We learned that FFTs can be used to translate individual signals from the time domain to the frequency domain. A collection of FFTs over time can be displayed as a spectrogram. These spectrograms are useful in filter analysis and construction. While the math behind these graphs is challenging, debugging the code we wrote has given us a greater understanding of it.

We found that our project ended up having uses outside of what we originally intend it to be. Our project can be expanded upon to make a more comprehensive audio cleaner that could be more publicly used. Another possibility is that it could be used to dampen loud, unruly background noises in real time, perhaps during a Microsoft teams meeting. At the very least, it can be used to make really chilled out low-fi beats.

Built With

Share this project:

Updates