Making a filter audible
A frequency response is easier to understand when it can be connected to a signal you can hear. This academic digital signal processing project applies a bandpass filter to a bird-chirp recording and examines the relationship between the filter design, the resulting waveform, and the saved audio.
The repository brings the design script, generated filtering function, input recording, filtered output, and project report together. It captures the full exercise from specifying a passband to inspecting the effect of filtering.
Designing the FIR filter
The design uses a finite impulse response filter with a Blackman window. The script specifies the filter order, sampling frequency, and lower and upper cutoff frequencies, then uses MATLAB's fir1 function to calculate the coefficients.
Windowing gives a finite implementation to a frequency-selective filter. The Blackman window shapes the resulting response, with a tradeoff between sidelobe attenuation and transition width. Filter order and cutoff choices therefore need to be considered together rather than treated as unrelated settings.
The generated filteringfunction stores the coefficients in a dsp.FIRFilter object. Keeping that object persistent separates initialization from the processing of an input signal and provides a reusable version of the design alongside the exploratory script.
Following the signal through the workflow
The main script reads the recording with audioread, inspects its frequency content, applies the FIR coefficients with filter, and exports the result with audiowrite. Plots place the original and filtered signals beside one another in the time domain and provide frequency-domain views for comparison.
These views answer different questions. A waveform shows how the signal changes over time; frequency analysis helps connect that change to the selected passband. The audio export adds another form of inspection, allowing the numerical processing to be related back to the original recording.
Outcome
The project produced a MATLAB filter design, a reusable filtering function, an audio output, and a written account of the exercise. Its scope is an academic demonstration of FIR filtering and signal analysis.
The work provided a concrete connection between electronics coursework and software implementation: select a response, turn that response into coefficients, apply it to real samples, and inspect the consequences. That progression remains relevant in later work involving embedded inference and speech data.
The project repository contains the scripts, audio files, saved filter design, and report.