ADR-006: Stay in DSP, skip pattern-recognition / ML topics

Status

Accepted

Context

Exposure to a real time-series pattern recognition curriculum (a 2nd-year BSc Signal Processing Systems elective) made it visible which feature-extraction topics the dsp-workshop is missing compared to a typical PR course:

  • Time-frequency: STFT, wavelets, MFCC
  • Spectral features: centroid, bandwidth, rolloff, flux
  • Statistical descriptors of windowed time-series
  • Dimensionality reduction: PCA
  • Classifiers: k-NN, DTW
  • Deep learning: RNN / LSTM / GRU / CNN
  • Evaluation metrics: precision, recall, F1

This raises the question of how far the workshop should extend into pattern recognition territory.

Constraints: - ADR-003 frames the workshop as DSP, with basics (learning path) and topics (research-flavoured reference). The tagline is “DSP, from math to metal”, not “Pattern Recognition, from math to metal”. - The repo is maintained by one author whose centre of gravity is classical DSP, multirate, and embedded signal processing, not deep learning. - Topic pages are written at a quality bar (math, Python, embedded companion, open questions) that does not scale to fashionable-but-shallow ML coverage.

Decision

1. Extend in DSP-flavoured feature extraction only

Add the following topic pages, in this priority order. Each fits the existing “math + Python + (optional) embedded.qmd + open questions” template:

  1. STFT (foundational time-frequency transform)
  2. Spectral features (centroid, bandwidth, rolloff, flux; small consolidation topic)
  3. Wavelets (PhD-era source material available in _raw/)
  4. MFCC (with a wakeword + DTW running example as the embedded companion)
  5. Statistical features for windowed time-series (mean, variance, skew, kurtosis, energy; short consolidation page)

See docs/topic-roadmap.md for sources, sections, and demo ideas per topic.

2. Do NOT add standalone PR / ML topics

The following are explicitly out of scope as standalone topic pages:

  • Classifiers: k-NN, SVM, decision trees, and similar
  • Dimensionality reduction: PCA, t-SNE, UMAP (despite their usefulness in feature analysis)
  • Deep learning: RNN, LSTM, GRU, CNN
  • Evaluation metrics: precision, recall, F1, ROC

The justification is identity, scope, and authority: this is a DSP workshop, the maintainer’s strongest contribution is on the signal side, and good treatments of these topics already exist elsewhere (scikit-learn docs, fast.ai, Pete Warden’s TinyML book).

3. Classical, training-free PR is allowed as supporting material

Methods that are training-free, template-based, and DSP-adjacent (DTW, matched filtering, simple thresholding rules, hand-crafted classifiers built from spectral or statistical features) MAY appear inside an embedded.qmd or topic page as part of an end-to-end example. They do not get their own dedicated topic pages. The wakeword + DTW example under MFCC is the reference case.

4. Pointers, not coverage, for ML topics

Where a topic naturally invites a deep-learning continuation (MFCC + CNN for keyword spotting, PPG + LSTM for arrhythmia, anomaly detection + autoencoder), the topic page ends with a “What next” or “Open questions” section that names the technique and points at an authoritative external reference. No tutorials, no code, no claims of expertise we do not have.

Consequences

  • Positive: the workshop gains credible PR-adjacency without losing its DSP identity; pages can be used as companion material for PR courses that build on DSP fundamentals.
  • Positive: scope stays bounded; five new topics is a finite amount of work and each one stands alone.
  • Positive: the maintainer writes in their strongest idiom, keeping the quality bar where it has been.
  • Negative: students wanting a complete PR pipeline must read elsewhere for the classifier and deep-learning halves; the workshop is openly half a story for that audience.
  • Negative: requires discipline to refuse drift toward “just one more ML topic” when a related opportunity (lecture, contribution, request) presents itself.