// sigprolabs.com · online course

Digital Filters for
Embedded Systems

Design FIR, IIR, and adaptive filters from first principles, then run them live on the RadioSonic ESP32-S3 DSP board with I²S audio codec.

// 5 modules · 15 lessons · 3 lab projects · live hardware
Next Cohort Starts
[Dan to fill in date]
Duration
5 weeks · 1 session/week
Format
Weekly · Live sessions
See enrollment options
5
Learning Modules
15
Video Lessons
3
Lab Projects
ESP32-S3
Live Hardware
Python
+ C / Jupyter
48 kHz
I²S Audio Codec

Who this course is for

🎯

Target Audience

[Dan to fill in] — e.g. working engineers, embedded developers, graduate students who have completed a signals and systems course and want hands-on DSP experience.

📋

Prerequisites

[Dan to fill in] — e.g. undergraduate signals and systems course, basic familiarity with C, no RF license needed.

💻

What You'll Need

  • Computer: [Dan to fill in] — OS versions (Windows 10+, macOS 12+, Ubuntu 20.04+?)
  • Python 3.9+ with Jupyter Notebook
  • Audio source: [Dan to fill in] — e.g. line-in source, headphones, or use onboard mics
  • RadioSonic board (included in course bundle)

Where filter theory meets
the hardware it runs on

Every concept in this course is grounded in math, implemented in Python, and then deployed to the RadioSonic board so you can hear it work.

Real-time on ESP32-S3
Push filter coefficients to the board over Wi-Fi and hear your design running at 48 kHz through the TLV320AIC3204 I²S audio codec in real time.
📓
Jupyter Notebook Labs
All filter design and analysis lives in interactive Jupyter notebooks using scipy, numpy, and matplotlib, with built-in frequency response and pole-zero plots.
🎯
Two Learning Paths
Choose Guided for weekly instructor sessions and graded feedback, or Self-Paced for lifetime access on your own schedule. Same content, same hardware labs.

Design a filter in Python.
Run it on real hardware.

Labs use Jupyter notebooks for all filter design, analysis, and visualization, then you push the same coefficients to the RadioSonic board over Wi-Fi and hear the result through the audio codec.

  • scipy.signal : FIR/IIR design, frequency response, bode plots
  • numpy : coefficient math, convolution, fixed-point rounding
  • matplotlib : magnitude / phase / pole-zero plots
  • Board SDK : push coefficients via Wi-Fi, capture mic audio
  • C deployment : fixed-point biquad chains in the ESP-IDF firmware
lab_02_fir_design.ipynb
In [1]:
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
from radiosonic import Board, push_coeffs   # board SDK
In [2]:
# FIR lowpass, Hamming window method
fs  = 48_000   # sample rate Hz, TLV320AIC3204
fc  = 1_200    # cutoff Hz
N   = 63       # filter length (odd → linear phase)

h = signal.firwin(N, fc, fs=fs, window='hamming')
f, H = signal.freqz(h, fs=fs, worN=8192)
In [3]:
fig, ax = plt.subplots(figsize=(7, 3))
ax.plot(f, 20*np.log10(np.abs(H)+1e-12), '#D42B2B', lw=1.5)
ax.axvline(fc, color='#61afef', lw=1, ls='--')
ax.set(xlabel='Hz', ylabel='dB', xlim=[0,8000], ylim=[-80,5])
plt.tight_layout()
Out:
0 1.2k 4k 8k Hz 5 -20 -40 -60 -72 fc=1.2k
In [4]:
# Push to RadioSonic board over Wi-Fi
board = Board('radiosonic.local')
push_coeffs(board, h, channel='left')
print(f"✓ {len(h)}-tap FIR loaded, listen now")
Out:
✓ 63-tap FIR loaded, listen now

A structured path from fundamentals
to real-time deployment

Each module pairs video lessons and Jupyter notebook labs with a hands-on board assignment. 5 modules, 15 lessons, 3 hardware lab projects.

Module 01
Hardware Bring-Up
Configure the RadioSonic ESP32-S3 board, bring up the TLV320AIC3204 I²S audio codec, verify the dual-mic array, and connect the Python SDK over Wi-Fi. By the end you're capturing and playing back audio in code.
ESP32-S3I²STLV320AIC3204Wi-FiESP-IDF
Module 02
DSP Foundations
Sampling theory, DFT, DTFT, convolution, and linear time-invariant systems. Build intuition for how digital filters shape signals in both the time and frequency domains before any design work begins.
DFT / FFTconvolutionLTI systemsz-transformDTFT
Module 03
FIR Filter Design
Window method, frequency sampling, and Parks-McClellan (equiripple) design. Design lowpass, bandpass, and highpass FIR filters with controlled ripple and transition width, then deploy coefficients to the board.
firwinParks-McClellanlinear phasewindowingequiripple
Module 04
IIR Filter Design
Butterworth, Chebyshev I/II, and elliptic prototypes with bilinear transform. Understand stability, pole-zero placement, fixed-point quantization effects, and second-order section (SOS) cascade implementations.
ButterworthChebyshevbilinearpole-zeroSOS
Module 05
Practical Design & Capstone
End-to-end projects: design filters to spec, optimize for fixed-point arithmetic, and deploy to the board for real-time audio processing. Includes a beamforming lab using the 6-mic expansion array for direction-of-arrival estimation.
fixed-pointreal-time audiobeamformingAoAC deployment

Meet the instructors

👤
[Dan to fill in: Instructor name]
[Title / Role]

[Dan to fill in: instructor bio — background, industry experience, why they teach this material.]

👤
[Dan to fill in: Instructor name]
[Title / Role]

[Dan to fill in: instructor bio — background, industry experience, why they teach this material.]

Choose your learning path

Same five modules, same Jupyter notebooks, same live hardware labs, two formats to fit how you learn.

GUIDED
Weekly cohort
Digital Filters: Guided

Live weekly sessions with the instructor, graded lab feedback, and a cohort of peers working through the material together. Ideal for structured accountability and direct Q&A.

  • Weekly live instructor sessions
  • Graded lab assignment feedback
  • Cohort discussion forums
  • All 5 modules + 3 lab projects
  • Certificate of completion
EARLY ENROLLMENT
$249
REGULAR
$299
Enroll in Guided Course →

// enrollment key delivered by email after checkout

SELF-PACED
Lifetime access
Digital Filters: Self-Paced

All the same content, labs, and notebooks, on your own schedule. Work through each module whenever it suits you with no deadlines and no cohort timing.

  • Flexible, learn at your own pace
  • Community discussion forums
  • All 5 modules + 3 lab projects
  • Downloadable Jupyter notebooks
  • Lifetime access to updates
EARLY ENROLLMENT
$99
REGULAR
$149
Enroll Self-Paced →

// enrollment key delivered by email after checkout

🔑
Already have an enrollment key?
Buy the RadioSonic board bundle on the hardware site to receive your key by email. Enter it when you enroll below.
Student Login →

Hear your filter
on real hardware.

The RadioSonic board ships with the SDK and all lab firmware pre-loaded. Pick a course and start designing the same day it arrives.