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.

Butterworth’s maximally flat filter (1930)

Butterworth's maximally flat filter (1930)

Hurewicz’s z-transform (1947)

Hurewicz's z-transform (1947)

Wiener’s optimal filter (1949)

Wiener's optimal filter (1949)

Widrow and Hoff’s LMS adaptive filter (1960)

Widrow and Hoff's LMS adaptive filter (1960)

Kaiser’s window method for FIR design (1966)

Kaiser's window method for FIR design (1966)

Jackson’s cascaded second-order sections (1970)

Jackson's cascaded second-order sections (1970)

Chebyshev’s equiripple approximation (1854)

Chebyshev's equiripple approximation (1854)

Cauer’s elliptic filter (1931)

Cauer's elliptic filter (1931)

Golden and Kaiser’s bilinear design with prewarping (1964)

Golden and Kaiser's bilinear design with prewarping (1964)

Parks and McClellan’s equiripple FIR filter (1972)

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.

Gibbs’s phenomenon (1899)

Gibbs's phenomenon (1899)

Cooley and Tukey’s fast Fourier transform (1965)

Cooley and Tukey's fast Fourier transform (1965)

Hilbert’s conjugate functions and the analytic signal (1905)

Hilbert's conjugate functions and the analytic signal (1905)

Stockham’s high-speed convolution (1966)

Stockham's high-speed convolution (1966)

Ahmed, Natarajan and Rao’s discrete cosine transform (1974)

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.

Bennett’s quantization noise (1948)

Bennett's quantization noise (1948)

Shannon’s sampling theorem and aliasing (1949)

Shannon's sampling theorem and aliasing (1949)

Schafer and Rabiner’s digital interpolation (1973)

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.

Schuster’s periodogram (1898)

Schuster's periodogram (1898)

The Wiener-Khinchin theorem (1934)

The Wiener-Khinchin theorem (1934)

Gabor’s time-frequency atoms (1946)

Gabor's time-frequency atoms (1946)

Blackman and Tukey’s spectral windows (1958)

Blackman and Tukey's spectral windows (1958)

Goertzel’s algorithm (1958)

Goertzel's algorithm (1958)

Welch’s averaged periodogram (1967)

Welch's averaged periodogram (1967)

Yule’s autoregressive model (1927)

Yule's autoregressive model (1927)

Durbin’s recursion for autoregressive fitting (1960)

Durbin's recursion for autoregressive fitting (1960)

Bogert, Healy and Tukey’s cepstrum (1963)

Bogert, Healy and Tukey's cepstrum (1963)

Wavelets#

Bases that are local in both time and scale.

Haar’s wavelet (1910)

Haar's wavelet (1910)

Gallery generated by Sphinx-Gallery