Skip to content

spatial-monorepo


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

Released under commercial licensing.