480-Target Hybrid SSVEP + sEMG BCI (Pang et al., 2026)
Measured by Pang, Li, Xie, Shao, Cui & Chen · Cognitive Neurodynamics 20, 167 (2026)
Inputs
The measured or assumed values behind the calculations, each with its source.
- N = 480
- 120 SSVEP flicker frequencies (12.0–23.9 Hz, JFPM-coded, 6 × 20 grid) × 4 hand gestures (wrist flexion, wrist extension, natural relaxation, hand opening) read from 2 bipolar forearm sEMG channels (Methods, Stimulus design). A trial counts as correct only if both the SSVEP frequency and the gesture are classified correctly.
- T = 1.6 s/selection
- Online trial = 1.0 s cue + 0.6 s flicker/gesture window, no rest phase (Methods, Evaluation criteria: 'T = 1.6 s in the online experiment'). The 0.6 s window was chosen offline as the ITR peak (Fig. 8).
- P = 0.8455
- Mean online hybrid accuracy across 10 healthy subjects, 84.55 ± 7.23% (Table 1). Pre-cued synchronous task: each test block cycles through all 480 targets, 2 training + 2 test blocks per subject.
- H = 1.0 bits/char
- English-text entropy (Shannon), the ~1 bit/char standard applied to every character speller in the atlas. The authors' own practical-rate conversion also maps one command to one character (Eq. 8, Discussion).
- ITR_reported = 260.07 bits/min
- Authors' mean online Wolpaw ITR (N = 480, T = 1.6 s), 260.07 ± 30.41 bits/min, averaged over per-subject ITRs (Table 1); best subject 304.02 bits/min. Recomputing at the mean accuracy gives 259.1 bits/min (4.32 bits/s); the ~1 bit/min gap comes from averaging per-subject ITRs instead of computing at mean P. The authors label all ITRs 'theoretical ITRs under the pre-cued synchronous paradigm, rather than practical ITRs when applied as a speller'.
Strictest ITR
Each scoring method is an upper bound on the channel, so the headline is the strictest (smallest) one for this entry. Use the score selector on the home page to view any single method across entries.
-
Correct characters per minute
60 / 1.6 s = 37.5 selections/min × 0.8455 accuracy = 31.7 correct char/min
Matches the authors' own conversion: 31.71 correct commands/min ≈ 6.34 correct WPM at 5 char/word (Discussion). Each selection is scored as one character even though 480 targets could hold far more than an alphabet; no text entry was actually run.
-
Bits per character
H(English) ≈ 1.0 bit/char (Shannon)
-
Information transfer rate
31.7 char/min × 1.0 bit/char ÷ 60 s/min = 0.53 bits/s
What counts as a bit depends on the action space. The number of distinguishable actions and how likely each one is are design choices of the task, not the sensing hardware. The same modality can present a fixed set of targets, a set pruned per step by a grammar or language model, or a continuous control space. Each of these changes how many actions are live and how the probability mass is spread, and therefore the information per selection. Read the action space below before comparing headline numbers across entries.
Action space
What the user can produce at each step, and how those options are distributed.
- Structure
- Fixed set of targets
- Size
- 480 distinguishable actions
- Prior
- Uniform: all actions assumed equally likely
- Notes
- A cue-guided 480-command classifier, not a demonstrated speller: no text was composed, and the authors assign no meaning to the commands. It extends Chen-lineage JFPM SSVEP (Chen 2015, Nakanishi 2018) by crossing 120 flicker targets with 4 sEMG gestures, so the gesture channel is a second, non-neural input read in parallel with gaze. The task's uniform prior over 480 targets does satisfy Wolpaw's assumption, but that bound grows with log2(N) and is not comparable to 40-target spellers on text. For consistency with the other SSVEP spellers, the ranked figure credits each command as one English character, the same conversion the authors use for their 7.5 WPM (6.34 correct WPM) estimate. That estimate excludes visual search across 480 cells, error correction, and fatigue (comfort 3.70/6), so it is itself optimistic.
Comparability The strictest bound here is the Shannon entropy of the output text, under one predictor held constant across the whole atlas (≈1 bit per character). That shared predictor makes it directly comparable to every other text entry (keyboards, spellers, silent speech and speech BCIs) regardless of prior or vocabulary size. For most text interfaces it comes out tighter than the raw-selection bounds, but not always. Where a small vocabulary makes Wolpaw tighter, that wins instead. Any Fitts, Wolpaw or log₂(N) figure shown below is another bound on the same channel. Switch the home-page score selector to compare one across entries.
Other score types
Bounds the atlas keeps out of the default strictest headline: as-reported figures, alternate task conditions, or raw-channel ceilings that shouldn't win the headline by default. Each still carries a score type, so the home-page selector ranks this entry on it when you choose that type. Read its derivation before comparing across entries.
-
Bits per selection (Wolpaw formula)
B = log2(N) + P*log2(P) + (1-P)*log2((1-P)/(N-1)) = log2(480) + 0.8455*log2(0.8455) + 0.1545*log2(0.1545/479) = 6.91 bits / selection
Term 1 is the information if every choice were correct; terms 2-3 subtract the bits lost to the error rate, assumed spread evenly over the other N-1 targets.
-
Selections per second
T = 1.6 s/selection -> 1 / 1.6 = 0.625 selections/s
-
Information transfer rate
ITR = B * selections/s = 6.91 * 0.625 = 4.319 bits/s
-
Achieved-bitrate credit per net-correct selection
N = 480 → log2(N − 1) = log2(479) = 8.904 bits per net-correct selection (field-standard achieved bitrate).
-
Net-correct selection rate
net-correct = 2P − 1 = 2(0.8455) − 1 = 0.691 of selections. At 1 / 1.6 s → 0.691 / 1.6 = 0.432 correct/s.
A misclassification commits the wrong command rather than timing out, so incorrect = 1 − P. Same N, mean accuracy and trial time as the Wolpaw calc.
-
Achieved bitrate
8.904 bits × 0.432 correct/s = 3.85 bits/s
Source
- Authors
- Pang, Li, Xie, Shao, Cui & Chen
- Publication
- Cognitive Neurodynamics 20, 167, 2026
- Reference
- Dataset (figshare)
- Reference
- Code (GitHub)