ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
327737 Топик полностью
rezident (11.05.2012 11:48, просмотров: 115) ответил mrengineer на Осреднение данных. Раньше я каждый раз осреднял весь буффер. Теперь ушел от этого и сильно выиграл по времени. Но значение, полученное N вызовов назад по-прежнему нужно.
Если у вас считается скользящее среднее, то от буфера никуда не деться. Можно лишь применить некоторые приемы, сокращающие время вычислений. Во-первых, весь массив сдвигать не нужно. Изменяется лишь указатель (индекс) элемента буфера, указывающий на самый старый элемент (когда буфер уже заполнен полностью). Если данные целочисленные, то можно отдельно хранить сумму элементов буфера. При добавлении нового элемента в буфер нужно из имеющейся суммы вычесть значение самого старого, записать новое значение и добавить его к сумме. Но это для целочисленных значений, для плавучки не подойдет, т.к. в сумме быстро накапливаются ошибки округления.