UNPKG

kalman-filter

Version:

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

32 lines (25 loc) 766 B
const {identity} = require('simple-linalg'); const {buildObservation} = require('../model-collection'); /** * @param {Object} options * @param {Number} options.sensorDimension * @param {CovarianceParam} options.sensorCovariance * @param {Number} options.nSensors * @returns {ObservationConfig} */ const nullableSensor = function (options) { const {dimension, observedProjection, covariance: baseCovariance} = buildObservation(Object.assign({}, options, {name: 'sensor'})); return { dimension, observedProjection, covariance(o) { const covariance = identity(dimension); const {variance} = o; variance.forEach((v, i) => { covariance[i][i] = v * baseCovariance[i][i]; }); return covariance; }, }; }; module.exports = nullableSensor;