Technology Devices Evidence SDK Docs Pricing About Blog
Request SDK Access

Signal processing stack

The signal processing stack.

Four stages from raw EEG to reliable device command. Engineered for the clinical reality that electrodes drift, brain patterns shift, and a session-1 classifier has no business running in session 5.

Abstract visualization of EEG signal waveforms being processed through a multi-stage filtering pipeline

Stage 1

Preprocessing & Artifact Rejection

Raw EEG contains broadband noise, power-line interference, EOG artifacts from eye blinks, and EMG contamination from facial muscle activity. Before any motor-imagery classification can occur, the signal must be cleaned to the 8–30Hz mu/beta band where motor cortex activity lives.

The preprocessing stage applies a fourth-order Butterworth band-pass filter (8–30Hz), followed by common-average referencing to suppress spatially uniform noise. EOG artifact detection uses a threshold on frontopolar channels to flag and reject contaminated epochs.

Common Spatial Pattern (CSP) filter bank construction follows: pairs of spatial filters that simultaneously maximize variance for one motor-imagery class while minimizing it for the other. A bank of 2–4 CSP filter pairs covers multiple frequency sub-bands, improving robustness to spectral non-stationarity.

8–30Hz band-pass 4th-order Butterworth EOG artifact rejection CSP filter bank Common-average reference

Frequency band separation — mu/beta extraction

Covariance matrices on SPD manifold

Stage 2

Riemannian Geometry Classification

EEG covariance matrices are symmetric positive definite (SPD) matrices — they live on a curved Riemannian manifold, not in flat Euclidean space. Applying standard linear classifiers (LDA, SVM) to SPD matrices ignores this geometry and produces suboptimal, unstable results.

The minimum distance to Riemannian mean (MDM) classifier computes the geometric mean of each class's covariance matrices on the manifold, then assigns new observations to the nearest class mean using the Riemannian distance metric. This produces classifiers that are intrinsically robust to scaling variations in EEG amplitude — a major source of inter-session variability.

Compared to LDA applied to log-variance CSP features, Riemannian MDM consistently shows 6–12% accuracy improvement on transfer-learning benchmarks — the difference between a classifier that degrades over a therapy course and one that stays stable.

SPD manifold Riemannian mean MDM classifier Covariance matrices Non-Euclidean geometry

Stage 3

Adaptive Drift Correction

Session-to-session non-stationarity is the unsolved problem of clinical BCI. A classifier trained on session 1 data loses accuracy with each subsequent session as electrode contact shifts, scalp-brain distance changes with posture, and physiological state varies. Without correction, accuracy drops from ~94% to below 70% within 3–4 sessions.

Synaptiq implements Euclidean alignment (He et al., 2019): before classification, each session's covariance matrix pool is re-centered by dividing by the session mean covariance matrix. This normalizes inter-session distribution shift so that session 5 data occupies the same manifold region as session 1 data — without requiring retraining.

Online Riemannian covariance updating continuously refines the classifier's reference manifold during a session using unlabeled data, further compensating for intra-session electrode drift without interrupting therapy.

Euclidean alignment Online covariance update Inter-session correction Zero retraining

Covariance distribution shift — before/after alignment

Stage 4 — Real-time performance

End-to-end latency breakdown

Every millisecond from EEG sample to device command, accounted for.

~8ms
Amplifier buffer fill (250Hz, 2-sample overlap)
~12ms
USB/LSL transmission & epoch windowing
~22ms
Band-pass filter + CSP spatial filter bank
~18ms
Covariance computation + Riemannian classification
~8ms
Command encoding + I/O output dispatch

Total: <100ms typical at 250Hz