This is the 2D sibling of the 3D neuroadaptive automation model, and it measures band power differently on purpose. The 3D version reads θ/α/β power off a hand-tuned formula of task load, e.g. β = 3 + 5.5·load + noise — a plausible shape, but not actually filtered from a signal. This 2D version instead synthesizes a genuine raw EEG-like time series and measures its spectrum for real: three independent digital resonant filters — each a discretized damped harmonic oscillator y[n] = 2r·cos(ω₀)y[n−1] − r²y[n−2] + (1−r)·drive[n], the same difference equation that describes a driven mass-spring-damper — are excited by noise scaled to task load, one centered on each band (θ≈5.5 Hz, α≈10 Hz, β≈21 Hz). Their sum is the raw signal you see scrolling at the top of the display.
resonator: y[n] = 2r·cos(ω₀)·y[n-1] − r²·y[n-2] + (1−r)·drive[n]
raw EEG: e[n] = y_θ[n] + y_α[n] + y_β[n]
drive gains (real ERD/ERS direction, from effective load L):
driveθ = 0.6 + 1.1·L (theta rises with workload)
driveα = 0.9 − 0.65·L (alpha desynchronizes/suppresses with workload)
driveβ = 0.4 + 1.0·L (beta rises with workload)
Every ~125 ms a sliding 1-second window of e[n] is fed through the Goertzel algorithm — an efficient single-bin DFT — evaluated at each band's center frequency, producing a genuinely spectral power estimate rather than a read-out value. Those three numbers feed the identical downstream pipeline as the 3D model: Pope's engagement index, an exponential moving average (τ≈1.5 s), and a 3-level hysteresis controller with cooldown that hands control between operator and automation.
Goertzel power at bin k (N-sample window, coeff = 2cos(2πk/N)):
s[n] = x[n] + coeff·s[n-1] − s[n-2] (n = 0..N-1, s[-2]=s[-1]=0)
power = s[N-1]² + s[N-2]² − coeff·s[N-1]·s[N-2]
EI = β_power / (α_power + θ_power) (Pope, 1995)
EMA(t) = EMA(t-dt) + (EI(t) − EMA(t-dt))·(1 − e^(−dt/τ))
upperTh = 0.55 + sensitivity, lowerTh = 0.30 − sensitivity
Because the loop is genuinely closed — automation offload lowers effective load, which lowers the resonator drive, which lowers measured EI — you can watch the same limit-cycle behaviour real adaptive-automation systems exhibit: sustained high difficulty pushes the controller to Auto, offload then cools the (synthesized) EEG back down, and the controller can hand control back before difficulty pushes it up again.
- Task difficulty — the demand placed on the operator before any automation offload; it scales all three resonators' drive gains.
- Controller sensitivity — widens or narrows the hysteresis band around the EMA-smoothed EI.
- EEG noise — amplitude of the stochastic drive injected into each resonator every sample.
- Loop toggle — switching it off freezes automation at "Assisted" so you can compare a closed loop against fixed automation, exactly as in the 3D twin.