This project aimed to develop an active noise cancellation (ANC) algorithm to reduce the noise from leaf blowers. The goal was to improve sleep quality by cancelling out the 102-112 dB noise from leaf blowers.
To use this leaf blower noise cancellation algorithm:
- Install MATLAB on your machine.
- Clone this repository.
- Open
ANC.m
in MATLAB. - Update the
audio_file
variable with your leaf blower recording. - Run the script to preprocess data and train the filter.
- Listen to cancellation noise output!
- Leaf blowers generate 102-112 dB of noise, enough to disrupt sleep cycles.
- Active noise cancellation uses destructive interference to cancel unwanted noise.
- This project used an adaptive filter algorithm to suppress leaf blower noise.
- Collected 40 million audio data points from leaf blower experiments.
- Recorded 16 2-minute audio samples using an iPhone:
- 8 samples for a stationary leaf blower, 8 for a moving leaf blower.
- Tested leaf blower on all 4 sides of a house.
- Additional recordings taken at 4 unique outdoor locations.
- Analyzed audio signals using power spectrum graphs in MATLAB.
- Noise exhibited 80-100 dB power across 100-8000 Hz frequency range.
- Tested 5 predictive models and 3 ML classifiers for noise trends.
- Implemented a Filtered-X LMS FIR adaptive filter in MATLAB.
- Preprocessed data into 200-sample means from recordings.
- Trained filter on chunks, played cancellation noise, and repeated.
- Achieved 92% noise suppression accuracy after parameter tuning.
- Algorithm cancelled leaf blower noise from recordings.
- Output cancellation noise reduced noise without disruption.
- Physical limitations prevent >50% suppression in real environments.
- The filter algorithm achieved 92% accuracy in suppressing leaf blower noise in controlled tests.
- Further work on robustness is needed before real-world deployment.