Examples#
This gallery walks through every public feature of
engineeringkit.signal_processing, one breakthrough per script: Fourier
series, the FFT, the DCT and the Hilbert transform, spectral estimation
and autoregressive models, sampling, quantization and rate conversion,
digital filter design, optimal and adaptive filters, and wavelets.
Units, assumptions and numerical validation
gives the validity limits. Each script is self-contained and can be run
directly with python examples/signal_processing/<section>/<script>.py.
Sections#
spectral – Schuster’s periodogram, the Wiener-Khinchin theorem, Gabor’s short-time transform, Blackman and Tukey’s windows, Goertzel’s algorithm, Welch’s averaged periodogram, Yule’s autoregressive model, Durbin’s recursion and the cepstrum.
fourier – Gibbs’s phenomenon, the Cooley-Tukey FFT, Hilbert’s transform and the analytic signal, Stockham’s fast convolution and the DCT.
wavelets – Haar’s wavelet.
filters – Butterworth’s filter, Hurewicz’s z-transform, Wiener’s optimal filter, the LMS adaptive filter, Kaiser’s FIR design, second-order sections, Chebyshev and elliptic filters, bilinear design with prewarping and Parks-McClellan equiripple design.
sampling – Bennett’s quantization noise, Shannon’s sampling theorem and Schafer and Rabiner’s interpolation and decimation.
Filters#
Designing, analysing and implementing digital filters, from fixed designs to adaptive ones.
Golden and Kaiser’s bilinear design with prewarping (1964)
Parks and McClellan’s equiripple FIR filter (1972)
Fourier analysis#
Fourier series, the fast Fourier transform and fast convolution, the Hilbert transform and the discrete cosine transform.
Hilbert’s conjugate functions and the analytic signal (1905)
Ahmed, Natarajan and Rao’s discrete cosine transform (1974)
Sampling#
What is kept and what is lost when a signal is sampled and quantized, and how its sampling rate is changed.
Schafer and Rabiner’s digital interpolation (1973)
Spectral analysis#
Estimating how a signal’s power is spread over frequency, and how that spread changes in time.
Durbin’s recursion for autoregressive fitting (1960)
Wavelets#
Bases that are local in both time and scale.