Audio Signal Processing & Analysis
This project tackles the intricate challenge of analyzing music and recorded speech by designing a system to process and refine audio signals. We aim to demonstrate how to effectively isolate desired signals from unwanted noise.
Objectives: Signal Analysis and Noise Reduction
Music & Speech Analysis
Design code to analyze recorded music or speech, extracting meaningful information.
Signal Design & Noise Addition
Create a signal, intentionally add noise, then process it to recover the original signal.
Digital Filters: FIR vs. IIR
Finite Impulse Response (FIR)
FIR filters have a finite number of non-zero samples in their impulse responses. They offer linear phase, but typically require higher order for similar performance to IIR filters.
Infinite Impulse Response (IIR)
IIR filters have an infinite number of samples. They achieve similar performance with lower order, are easier to design, but cannot achieve linear phase and have stability concerns due to feedback.
Proposed System Analysis & Design
Our system filters signals using appropriate filter approximations. The design leverages random and sine signals, Butterworth low-pass filters, and Equiripple FIR filters, with plotting done in MATLAB.
Random Signal
Used for simulating unpredictable noise.
Sine Signal
Represents a pure, distinct frequency.
Butterworth Filter
Maximally flat response, ideal for low-pass filtering without linear phase.
Equiripple FIR
Offers precise control over frequency response.
Prototypes
Two prototypes were developed: one involving a recorded speech signal mixed with a sine wave, and another using a music signal combined with a random signal, both filtered using MATLAB tools.
Task: Signal Generation and Filtering
Sampling Frequency & Time
A sampling frequency of 10,000-15,000 samples/sec (specifically 12,000 Hz) was chosen for optimal clarity, avoiding distortion from oversampling. Time was set from 0 to 0.1 seconds to observe frequency waves effectively.
Generating Sinusoidal Signals
Sine waves at 50Hz, 500Hz, 1000Hz, and 5000Hz were generated using the sin(2*pi*f*t) function. These signals were then plotted using MATLAB's subplot and stem commands for discrete time representation.
Frequency Domain Analysis & Filter Design
Signals were analyzed in the frequency domain using FFT, with fftshift for centering. Filter design was performed using MATLAB's filterDesigner, exporting the filter as a system object. A Butterworth low-pass IIR filter was selected for its versatility and superior response, with specifications of fc = 100Hz and order = 8.
Speech Signal Processing
A recorded speech signal was mixed with a high-frequency sine wave to simulate noise. This mixed signal was then passed through the designed low-pass filter to recover the original speech, demonstrating effective noise reduction.
Recorded Speech Signal Noise Signal
Frequency Plot of Recorded Signal Added Speech and Noise Signal
Filtered Signal
Music Signal Processing
Similarly, a music signal was corrupted with random noise and then filtered. The Butterworth filter effectively removed the unwanted noise, yielding a cleaner music signal. This process highlights the filter's ability to restore audio quality.
A music player interface was also developed to demonstrate the functionality, allowing users to select and process audio files.
Music Signal Noise Signal
Noisy Signal (Music + Noise) Frequency Plot of Noisy Signal
Filtered Signal
Conclusion: Effective Signal Filtering
This project successfully demonstrated the design and application of digital filters to process real-time signals. By adding noise and then applying appropriate filtering techniques, we effectively isolated and recovered the desired signal content, proving the system's capability to enhance audio clarity and remove unwanted interference.
Made with