Project 2: Audio Signal Analyzer

Build a tool that loads audio, visualizes waveforms, and computes spectra.


Project Overview

Attribute Value
Difficulty Level 1: Beginner
Time Estimate Weekend
Main Language MATLAB
Alternative Languages Python (SciPy), Octave
Knowledge Area Signal processing
Tools MATLAB Signal Processing Toolbox (optional)
Main Book “The Scientist and Engineer’s Guide to DSP” by Steven W. Smith

What you’ll build: A script that loads a WAV file, plots the waveform, and displays its frequency spectrum.

Why it teaches MATLAB: It combines file I/O, plotting, and FFT in a compact, visual workflow.

Core challenges you’ll face:

  • Reading audio data and sample rates
  • Computing and scaling the FFT
  • Interpreting spectral peaks

Real World Outcome

You will load a sound file and see both the time-domain waveform and the frequency-domain spectrum.

Example Output:

>> audio_analyzer('voice.wav')
Sample rate: 44100 Hz
Duration: 3.2 s
Saved plots: waveform.png, spectrum.png

Verification steps:

  • Use a pure tone file and verify the peak frequency
  • Compare spectra for different audio clips

The Core Question You’re Answering

“How do I reveal the frequency content hidden inside a sound signal?”

This is the heart of basic DSP.


Concepts You Must Understand First

Stop and research these before coding:

  1. Sampling rate
    • How does sample rate affect frequency resolution?
    • Book Reference: “The Scientist and Engineer’s Guide to DSP” by Steven W. Smith, Ch. 3
  2. FFT basics
    • Why does the FFT reveal frequency content?
    • Book Reference: “The Scientist and Engineer’s Guide to DSP” by Steven W. Smith, Ch. 12
  3. Magnitude scaling
    • How do you scale FFT results for plotting?
    • Book Reference: “Understanding Digital Signal Processing” by Richard G. Lyons, Ch. 3

Questions to Guide Your Design

  1. Windowing
    • Will you apply a window to reduce leakage?
    • How will you pick window length?
  2. Visualization
    • Will you plot full spectrum or only positive frequencies?
    • How will you label peaks?

Thinking Exercise

FFT Resolution

If you analyze 1024 samples at 44.1kHz, what is the frequency resolution per bin?

Questions while working:

  • How does increasing N change resolution?
  • Why does window length matter?

The Interview Questions They’ll Ask

Prepare to answer these:

  1. “What does the FFT output represent?”
  2. “Why do we only plot positive frequencies?”
  3. “How does sample rate affect the spectrum?”
  4. “What is spectral leakage?”
  5. “Why might you apply a window function?”

Hints in Layers

Hint 1: Starting Point Plot the waveform before doing any FFT.

Hint 2: Next Level Compute the FFT and plot magnitude.

Hint 3: Technical Details Use a log scale for magnitude to reveal quieter components.

Hint 4: Tools/Debugging Test with a pure sine tone to verify the peak frequency.


Books That Will Help

Topic Book Chapter
Sampling “The Scientist and Engineer’s Guide to DSP” by Steven W. Smith Ch. 3
FFT “The Scientist and Engineer’s Guide to DSP” by Steven W. Smith Ch. 12
Magnitude spectra “Understanding Digital Signal Processing” by Richard G. Lyons Ch. 3

Implementation Hints

  • Normalize audio values for consistent plots.
  • Focus on a short segment to keep FFT readable.
  • Label axes with units for clarity.

Learning Milestones

  1. First milestone: You can plot audio waveforms.
  2. Second milestone: You can compute and plot spectra.
  3. Final milestone: You can interpret frequency peaks.