spatial-monorepo / rtls/src / KalmanFilter1D
Class: KalmanFilter1D
Defined in: packages/rtls/src/kalman.ts:24
KalmanFilter1D — 1D scalar Kalman filter.
Default process noise Q=0.05, measurement noise R=0.5. Dead-reckoning timeout: if more than 3000ms elapses between calls to update(), the filter state is reset so the next measurement is treated as a fresh start (no decay curve — just a clean reset per PRD spec).
The gap check is keyed on the measurement timestamp (ts), not wall-clock time — callers should pass the source update's ts so replayed or batch-delivered feeds (whose measurements may be processed well after the fact, or all in one tick) reset based on when the reading was actually taken rather than when update() happened to be called. When ts is omitted, Date.now() is used (live/real-time usage).
Standard update equations: P_pred = P + Q K = P_pred / (P_pred + R) x = x + K * (z - x) P = (1 - K) * P_pred
First measurement: initialize x = z, P = R.
Constructors
Constructor
new KalmanFilter1D(
Q?,R?,deadReckoningMs?):KalmanFilter1D
Defined in: packages/rtls/src/kalman.ts:33
Parameters
Q?
number = 0.05
R?
number = 0.5
deadReckoningMs?
number = 3000
Returns
KalmanFilter1D
Accessors
estimate
Get Signature
get estimate():
number|null
Defined in: packages/rtls/src/kalman.ts:101
Returns current estimate without consuming a measurement, or null if uninitialized
Returns
number | null
Methods
reset()
reset():
void
Defined in: packages/rtls/src/kalman.ts:94
Returns
void
update()
update(
measurement,ts?):number
Defined in: packages/rtls/src/kalman.ts:44
Parameters
measurement
number
raw scalar reading
ts?
number
epoch ms the measurement was taken; defaults to Date.now() when omitted
Returns
number
