Raspberry Pi Pico 2 FFT sound spectrum analyzer visualizes audio via OLED display

Raspberry Pi
(Image credit: Dan McCreary)
1

There are all sorts of cool audio-based Raspberry Pi projects out there but sometimes you need something a little more niche. Today we're sharing a really cool creation put together by Dan McCreary that uses a Raspberry Pi Pico 2 to drive a custom FFT sound spectrum analyzer. This gadget provides real time visual output of soundwaves and best of all, you can make it yourself!

Spectrum Analyzer using FFT running on Raspberry Pi Pico 2 - YouTube Spectrum Analyzer using FFT running on Raspberry Pi Pico 2 - YouTube
Watch On
Latest Videos FromTom's Hardware
Ash Hill
Contributing Writer

Ash Hill is a contributing writer for Tom's Hardware with a wealth of experience in the hobby electronics, 3D printing and PCs. She manages the Pi projects of the month and much of our daily Raspberry Pi reporting while also finding the best coupons and deals on all tech.

  • bit_user
    The article said:
    If you're not familiar with the term, FFT stands for "Fast Fourier Transform". This is an algorithm that can be used to take sound data from input devices like microphones and transforms it into a visual sound wave that you can see in real time on a screen.
    The Fourier transform converts a periodic signal into the equivalent amplitude and phase values that you could use to synthesize it from a mathematical series of sin functions. When you graph the amplitude of these terms, you can see the frequency distribution of the input signal. Also, when applied to a non-periodic signal (or one with a different period than your window size), the results are merely approximate.

    Fast Fourier transform is an computational optimization that exploits the properties of a window with a number of samples that's an integral power of 2. There are also variants which support different radix values.

    One key detail, which it looks like they probably got right, is to plot the histogram on a log/log scale.
    Reply