Signal Processing Platform

Real DSP.
Real Hardware.
Real Results.

RadioSonic is a portable, low-cost platform for hands-on digital signal processing education, operating in the acoustic domain, no RF license required.

View courses
RadioSonic PCB SPS-RL-01-01
ESP32-S3
Dual-core Xtensa LX7
TLV320AIC3204
I²S streaming ADC/DAC
2–6mics
Beamforming & angle of arrival
20Hz–20kHz
Line In bandwidth
Wi-Fi
2.4 GHz + USB 2.0
8MB+8MB
Flash + PSRAM
65×56mm
Raspberry Pi HAT form

A complete platform for learning real DSP

No prior programming experience required. Students focus on signal-processing concepts using integrated firmware and structured lesson plans.

🎙️
2–6 microphones
Onboard mics at 35 mm spacing, expandable to 6 via codec port, for beamforming and angle-of-arrival demos.
🔊
I²S streaming ADC/DAC
TLV320AIC3204 codec with stereo line in, line out, and headphone out. Real-time DMA ping-pong buffering.
🧩
Drop-in lesson firmware
DMA framework included. Lessons slot in as self-contained C include files, with no low-level driver work.
🔬
Jupyter Notebook labs
Post-processing in Python. Notebooks expose code for curious students; no programming expertise required to run them.
📡
"RF in slow motion"
Creative approach for wavelength-consistent SDR-style experiments using audio-frequency propagation.
💾
8 MB flash + 8 MB PSRAM
Ample memory for audio recording, long filter pipelines, and buffering experiments. Wi-Fi enables PC streaming.

Signal processing code crafted for learning.

The open source firmware provides real-time DMA sample streaming between ADC and DAC. Each lesson is a drop-in processing block that students implement directly, working at the algorithm level rather than wrestling with drivers or hardware setup.

FIR & IIR digital filters: windowed, least-squares, biquad, Direct Form I & Transformed DFI I
Spectral analysis: FFT, convolution, correlation, transfer functions, spectrograms
Modulation: BPSK, QPSK, QAM, OFDM at acoustic frequencies
Beamforming & array processing: angle of arrival with 2–6 mic configurations
SigPro Labs

RadioSonic Store

RadioSonic board
// board · PN: SPS-RL-01-01
RadioSonic Signal Processing Platform
ESP32-S3 (8MB flash, 8MB PSRAM), TLV320AIC3204 I²S ADC/DAC, dual mics, Wi-Fi, USB-C, Li-Po connector, Raspberry Pi HAT. 65×56 mm.
🎓
POPULAR
// bundle
RadioSonic Starter Bundle
Board + Guided Digital Filters Course + Audio Cable Kit + Li-Po Battery + Snap-on Case. Everything to start day one.
📦
ACC
// accessory
Snap-on Protective Case
Lightweight 3D-printed snap-on enclosure with cutouts for all connectors. Ideal for lab and field use.
🔌
ACC
// accessory
Audio Cable Kit
Two 3.5 mm TRS cables (1 m), 3.5 mm to RCA adapters, and USB-C cable. Covers all course lab exercises.
🔋
ACC
// accessory
Li-Po Battery Pack (2000 mAh)
JST-PH compatible 3.7V lithium pack. Charges via USB-C through the onboard charger. Run untethered.
🎙️
ACC
// accessory
Microphone Expansion Board
Two additional mics at 35 mm spacing via the codec expansion port. Enables 4-element beamforming labs.
📖
GUIDED
// course · quarterly cohort
Digital Filters: Guided
Live quarterly cohort with instructor Q&A sessions via Zoom and a cohort discussion forum. 5 classes + labs.
🎬
SELF-PACED
// course · self-paced
Digital Filters: Self-Paced
Full video course, demo code, Jupyter Notebooks, and lab guides. Permanent access to all materials.
🎬

Fourier & Z transform review

Section 2 of 5 Video · 18 min ~45 min total with lab Jupyter Notebook included
Mark as complete ; Moodle will track your progress automatically once you finish the video.
Section 2.1: Fourier & Z transform review · 18 min · hosted on Vimeo / S3

Before we can describe what a digital filter does, we need two transforms. The Fourier transform decomposes a signal into frequency components. The Z transform generalizes this to discrete-time systems, mapping filter coefficients directly to frequency-domain behavior, connecting the numbers you write in C to the response you hear on the RadioSonic board.

This lesson focuses on building intuition, not re-deriving the mathematics. By the end you should be able to look at a pole-zero plot and make a reasonable prediction about a filter's frequency response before running a single line of code.

Demo code: FFT of a two-tone test signal

Python
import numpy as np
import matplotlib.pyplot as plt

Fs = 44100        # RadioSonic sample rate (Hz)
N  = 4096         # FFT length
t  = np.arange(N) / Fs

x = np.sin(2*np.pi*500*t) + 0.5*np.sin(2*np.pi*2000*t)
X   = np.fft.rfft(x, N)
f   = np.fft.rfftfreq(N, 1/Fs)
mag = 20*np.log10(np.abs(X)/N + 1e-12)

plt.plot(f, mag)
plt.xlabel("Frequency (Hz)"); plt.ylabel("Magnitude (dBFS)")
plt.show()

The Z transform and what poles & zeros mean

For a discrete-time filter, the Z transform produces a rational function H(z). Numerator roots are zeros, frequencies the filter nulls. Denominator roots are poles, frequencies it resonates at. For a stable IIR filter, all poles must lie strictly inside the unit circle. This is the geometric picture you will use in Section 4 when we implement biquad sections on the board.

🔬

Lab 2: Convolution & correlation on the RadioSonic platform

Use the Jupyter Notebook to compute convolution and correlation on signals captured live from your board. Observe impulse and frequency response from real measured audio, not simulated signals.

Get in touch

Questions about the platform, orders, or course enrollment? We'll get back to you within one business day.

Emailinfo@sigprolabs.com
LocationBeverly, MA
Response timeWithin 1 business day
Your Cart 0
🛒

Your cart is empty.
Add a product to get started.