Signal Theory
From Fourier analysis to digital filter design — the mathematics of signals and systems
Course Overview
Signal theory is the mathematical backbone of modern communications, control systems, audio engineering, medical imaging, and countless other fields. This course takes you from the fundamentals of continuous-time signals through Fourier analysis, the Laplace and Z transforms, sampling theory, and into practical digital signal processing with FFT algorithms and filter design.
What makes this course unique:
- Full MathJax equations: Every theorem is stated precisely with complete derivations
- Interactive demos: Live Fourier series visualisation with up to 50 harmonics
- Fortran backend: High-performance FFT, PSD, and filter kernels (
signal_kernels.f90) - Python wrapper: NumPy/SciPy fallback via
SignalProcessorclass - REST API: Flask endpoints for FFT, PSD, filtering, sinc reconstruction, and spectrograms
Prerequisites
Mathematics
Calculus, complex analysis, differential equations, and integral transforms
Linear Algebra
Vector spaces, eigenvalues, matrix decompositions, and inner product spaces
Probability & Statistics
Random variables, power spectral density, stochastic processes, and noise analysis
Electrodynamics
Electromagnetic waves, transmission lines, and the physical basis of signal propagation
8 Chapters
Ch 1: Signals & Systems
Classification, linearity, time-invariance, convolution integral, impulse response.
Ch 2: Fourier Series
Trigonometric & complex forms, Dirichlet conditions, Parseval's theorem, Gibbs phenomenon.
Ch 3: Fourier Transform
Continuous FT, properties, convolution theorem, Plancherel theorem, uncertainty principle.
Ch 4: Laplace Transform
Region of convergence, transfer functions, poles & zeros, inverse transform, stability.
Ch 5: Sampling & Nyquist
Shannon–Nyquist theorem, aliasing, ideal reconstruction, practical ADC/DAC.
Ch 6: DFT & FFT
Discrete Fourier transform, Cooley–Tukey radix-2 algorithm, zero-padding, spectral leakage.
Ch 7: Z-Transform
Definition, ROC, inverse Z-transform, relationship to DTFT, difference equations.
Ch 8: Digital Filters
FIR vs IIR, window method, bilinear transform, Butterworth/Chebyshev, implementation.
Backend Architecture
Fortran 90
signal_kernels.f908 optimised routines: FFT, DFT, Welch PSD, IIR/FIR filters, sinc interpolation, windowing.
Python Wrapper
signal_backend.pySignalProcessor class via f2py with graceful NumPy/SciPy fallback.
Flask API
signal_app.py6 REST endpoints: /api/fft, /api/psd, /api/filter, /api/fourier, /api/sinc, /api/spectrogram.
# Build Fortran kernels
cd backend && f2py -c signal_kernels.f90 -m signal_kernels --opt="-O3 -march=native"
# Run Flask API
cd backend && python signal_app.py