UNPKG

kalman-filter

Version:

Kalman filter (and Extended Kalman Filter) Multi-dimensional implementation in Javascript

30 lines (26 loc) 953 B
const {identity} = require('simple-linalg'); /** *Creates a dynamic model, following constant position model with respect with the dimensions provided in the observation parameters * @param {DynamicConfig} dynamic * @param {ObservationConfig} observation * @returns {DynamicConfig} */ module.exports = function (dynamic, observation) { let {dimension} = dynamic; const observationDimension = observation.dimension; const {observedProjection} = observation; const {stateProjection} = observation; let {covariance} = dynamic; if (!dynamic.dimension) { if (observationDimension) { dimension = observationDimension; } else if (observedProjection) { dimension = observedProjection[0].length; } else if (stateProjection) { dimension = stateProjection[0].length; } } const transition = identity(dimension); covariance = covariance || identity(dimension); return Object.assign({}, dynamic, {dimension, transition, covariance}); };