Bayesian & State-Space Decoding

Velocity Kalman filter

The velocity Kalman filter is the parameterization of the Kalman decoder that made intracortical cursor control practical. Rather than decoding position directly, it treats velocity as the primary kinematic state and integrates it to move the cursor. This matters because motor-cortical firing correlates far more robustly with movement direction and speed than with absolute position, so a velocity observation model captures the neural signal better and, crucially, the integration step imposes smoothness on the output.

The state is typically position, velocity, and a constant offset; the dynamics matrix A encodes gentle velocity autocorrelation (a first-order smoothness prior) while position is the integral of velocity; the observation matrix C is fit so that firing rates load mainly on velocity. Because absolute position is never observed directly, small biases integrate into slow drift, which is why closed-loop and intention-corrected variants pin down the velocity estimate rather than trusting decoded position. The velocity KF is the base on which ReFIT and closed-loop decoder adaptation build.

Two decoders read the same array. One outputs decoded position and jumps around as the neurons flicker; the other outputs decoded velocity and, because the cursor is the smooth integral of that velocity, glides toward targets even though the underlying neural estimate is just as noisy.

Decoding velocity and integrating is a large part of why modern cursor BCIs feel controllable.

Also called
velocity KFposition–velocity Kalman decoder速度 KF