JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Optimal Feedback Control, Latency and Throughput

The control theory of BCI performance: the user as an optimal feedback controller, why latency is the real ceiling, and how to measure throughput and information rate honestly.

The user as an optimal feedback controller

Once the user is inside the loop, they are not a passive signal source — they are a controller, and a very good one. Optimal feedback control (OFC), the leading theory of biological movement, models the motor system as estimating state from delayed, noisy feedback and applying the control that minimises a task cost, correcting only deviations that matter for the goal (the minimum-intervention principle). Ported to BCI, OFC predicts how users will drive a given decoder: they exploit its dynamics, tolerate task-irrelevant error, and fight only what threatens the goal.

J = \mathbb{E}\!\left[\sum_{k} \big(x_k - x_k^{\star}\big)^{\top} Q\,\big(x_k - x_k^{\star}\big) + u_k^{\top} R\,u_k\right]

The LQG cost the user is (approximately) minimising: weighted task error via Q against control effort via R. Design implication — make the decoder's plant dynamics smooth and predictable so this optimisation is easy for the human.

The user is (roughly) minimizing a scorecard that trades task error, weighted by Q, against control effort, weighted by R. The design lesson: make the decoder's dynamics smooth and predictable so this optimization is easy for the human to solve.

J
The total LQG cost the user is minimizing.
x_k - x_k^{\star}
The task error — gap between state and target at step k.
Q
Weight on task error — how much missing the target costs.
R
Weight on control effort — how much using the controls costs.

A large R pushes the user toward gentle, economical movements rather than sharp, effortful ones.

The design lesson is inverted from the offline mindset: you are not building a decoder to be read passively, you are shaping a plant for a human controller to drive. Smoothness, low and predictable lag, and a monotonic response often matter more than squeezing out the last bit of decode accuracy — because they let the user's own optimal controller do its job.

Loop latency: the hidden performance ceiling

Every controller is delay-limited, and BCIs are delay-rich. Loop latency accumulates at every stage: acquisition buffering, filter group delay, feature-window length, decode compute, rendering, display refresh, and the user's own visuomotor delay of roughly 100–200 ms. Total round-trip delay erodes the phase margin of the human-in-the-loop controller, forcing lower gains and slower, more cautious movements. It is often the true ceiling on usable performance — and unlike accuracy, you cannot train your way past it.

Fitts's law and throughput

How do we measure control quality in a way that respects the loop? For continuous pointing, the right yardstick is Fitts's law: the time to acquire a target grows with its index of difficulty, the log of distance over width. The slope gives a throughput in bits per second that is comparable across tasks and, crucially, captures the speed–accuracy trade a human controller is always making.

MT = a + b\,\log_2\!\left(\frac{D}{W} + 1\right), \qquad ID = \log_2\!\left(\frac{D}{W}+1\right), \qquad TP = \frac{ID}{MT}

Fitts's law: movement time MT is affine in the index of difficulty ID (distance D, target width W). Throughput TP (bits/s) summarises pointing performance and is comparable across cursors and effectors.

Pointing at a far, small target takes longer — and the time grows with the log of the distance-to-width ratio (the difficulty). Throughput squeezes speed and accuracy into a single bits-per-second number you can compare across cursors and effectors.

MT
Movement time — how long the pointing motion takes.
a,\ b
Fitted intercept and slope of the speed–difficulty line.
D / W
Distance to the target over its width — the raw difficulty ratio.
ID
Index of difficulty, \log_2(D/W + 1), measured in bits.
TP
Throughput — bits of difficulty conquered per second.

A target twice as far away, or half as wide, adds about one bit to the index of difficulty.

Information transfer rate

For discrete BCIs — spellers, menu selection — the standard currency is information transfer rate (ITR), Wolpaw's bits-per-selection formula scaled by selection rate. It rewards more classes and higher accuracy and penalises slow selections, giving a single bits/min number. Treat it with care: it assumes uniformly confusable classes and independent selections, and it is not comparable across paradigms or with continuous-control throughput. Two systems with the same ITR can feel utterly different to use.

B = \log_2 N + P\log_2 P + (1-P)\log_2\!\frac{1-P}{N-1}, \qquad \text{ITR} = \frac{60}{T}\,B \ \ \text{[bits/min]}

Wolpaw ITR: bits per selection B for N equally-likely, equally-confusable classes at accuracy P, times selections per minute 60/T. Note the steep, nonlinear reward for accuracy near P=1.

Each selection carries some bits, depending on how many choices N you have and how accurate P you are; multiply by selections per minute for a rate. Accuracy matters enormously — the payoff climbs steeply as P nears 1.

B
Bits of information conveyed per single selection.
N
Number of equally-likely, equally-confusable choices.
P
Accuracy — the probability a selection is correct.
\mathrm{ITR} = \frac{60}{T}\,B
Information transfer rate: bits per selection times selections per minute.

With perfect accuracy across N choices you get \log_2 N bits per selection; a few errors drop that fast.

Move the sliders for number of classes, accuracy and selection time to watch the Wolpaw bits/min surface — and feel how brutally ITR punishes the last few percent of accuracy.