Я пытаюсь сгладить данные, получаемые с API-интерфейса DeviceOrientation, чтобы сделать приложение Google Cardboard в браузере.
Я передаю данные акселерометра прямо в поворот камеры ThreeJs, но мы получаем много шума на сигнале, вызывающем видение.
Кто-то предложил фильтр Калмана как лучший способ приблизиться к сглаживающим сигналам обработки сигнала, и я нашел эту простую библиотеку Javascript на gitHub
https://github.com/itamarwe/kalman
Однако он действительно освещает документацию.
Я понимаю, что мне нужно создать модель Калмана, предоставив Vector и 3 Matrices в качестве аргументов, а затем обновить модель, снова с вектором и матрицами в качестве аргументов за период.
Я также понимаю, что уравнение фильтра Калмана имеет несколько отдельных частей: текущее оценочное положение, значение усиления Кальмана, текущее считывание из API ориентации и предыдущее оценочное положение.
Я вижу, что точка в трехмерном пространстве может быть описана как вектор, поэтому любое из значений позиции, таких как оценочное положение или текущее чтение, может быть Vector.
Я не понимаю, как эти части могут быть переведены в Matrices, чтобы сформировать аргументы для библиотеки Javascript.