Skip to content

๐ŸŽถ A two-phase audio processing project for a Signals & Systems courseโ€”combining FFT-based noise removal and a customizable 10-band equalizer using digital filtering.

Notifications You must be signed in to change notification settings

Amirbehnam1009/Signal-And-Systems-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽต Signal and Systems Project โ€“ Audio Denoising & Equalizer

๐Ÿ“– About

๐ŸŽ“Final Project of the Signal and Systems Course
๐Ÿ‘จโ€๐ŸซUnder the supervision of Prof. Mohammad Rahmati
๐Ÿ‚Fall 2021 โ€“ Amirkabir University of Technology (Tehran Polytechnic)

This repository contains the implementation of a two-phase audio processing project focused on noise removal and frequency band equalization using Fourier analysis and digital filtering techniques.


๐ŸŽฏ Phase 1: Audio Denoising

Objective

Remove noise from an audio signal (phaseIsample.wav) using Fourier Transform and frequency-domain filtering.

Steps Implemented

  1. ๐Ÿ”Š Load and Visualize the audio signal (time domain)
  2. ๐Ÿ“ˆ Apply Fourier Transform to analyze frequency components
  3. ๐ŸŽš๏ธ Identify Noise Frequencies โ€“ weaker amplitudes are considered noise
  4. ๐Ÿงน Filter Out Noise by zeroing out non-dominant frequency components
  5. ๐Ÿ”„ Apply Inverse Fourier Transform to reconstruct the denoised signal
  6. ๐Ÿ“Š Compare and Visualize original vs. denoised signals

Key Techniques

  • Fast Fourier Transform (FFT)
  • Frequency-domain filtering
  • Inverse FFT for reconstruction

๐ŸŽ›๏ธ Phase 2: Simple Equalizer

Objective

Build a 10-band equalizer that amplifies or attenuates specific frequency bands based on user input.

Frequency Bands Used

  • Band 1: 20โ€“50 Hz
  • Band 2: 50โ€“100 Hz
  • Band 3: 100โ€“200 Hz
  • Band 4: 200โ€“500 Hz
  • Band 5: 500โ€“1000 Hz
  • Band 6: 1000โ€“2000 Hz
  • Band 7: 2000โ€“4000 Hz
  • Band 8: 4000โ€“8000 Hz
  • Band 9: 8000โ€“12000 Hz
  • Band 10: 12000โ€“20000 Hz

Steps Implemented

  1. ๐ŸŽš๏ธ Define Gain Array โ€“ e.g., [2, 3, 1, 1, 0.2, 0.2, 0.1, 0.1, 0.1, 0.1]
  2. ๐Ÿ”ง Apply Gains to corresponding frequency bands
  3. ๐Ÿ”„ Reconstruct Signal using Inverse FFT
  4. ๐Ÿ’พ Export the modified audio file
  5. ๐ŸŽง Compare original and equalized audio

Test Cases

  • Case 1: Boost frequencies below 1200 Hz, attenuate others
  • Case 2: Boost frequencies above 2000 Hz, attenuate others

๐Ÿ“ฆ Repository Structure

๐Ÿ“‚ Signal-And-Systems-Project/
โ”œโ”€โ”€ ๐Ÿ“„ p1.py # Phase 1: Denoising
โ”œโ”€โ”€ ๐Ÿ“„ p2.py # Phase 2: Equalizer
โ”œโ”€โ”€ ๐Ÿ“„ phaseIsample.wav # Sample audio for Phase 1
โ”œโ”€โ”€ ๐Ÿ“„ phase2sample.wav # Sample audio for Phase 2
โ”œโ”€โ”€ ๐Ÿ“„ Final_Project.pdf # Project description (Persian)
โ”œโ”€โ”€ ๐Ÿ“„ README.md # This file

๐Ÿ› ๏ธ Technologies Used

  • Python ๐Ÿ
  • NumPy
  • SciPy
  • Matplotlib
  • Wave module

๐Ÿ“Š Sample Results

Signal Comparison


๐Ÿงช How to Run

  1. Clone the repository:
    git clone https://github.com/Amirbehnam1009/Signal-And-Systems-Project.git
  2. Install dependencies:
    pip install numpy scipy matplotlib
  3. Run each phase:
    python p1.py
    python p2.py

๐Ÿ“Œ Notes

  • This project was completed individually as part of the Signal and Systems course

  • The report includes detailed explanations, visualizations, and analysis of each step

  • The equalizer allows customizable gain control across 10 frequency bands

๐Ÿ“ฌ Contact

For questions or collaborations, feel free to reach out: https://img.shields.io/badge/GitHub-Amirbehnam1009-blue

๐Ÿ“œ License

This project is for educational purposes and is part of the academic curriculum at Amirkabir University of Technology.

About

๐ŸŽถ A two-phase audio processing project for a Signals & Systems courseโ€”combining FFT-based noise removal and a customizable 10-band equalizer using digital filtering.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages