цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Простой алгоритм фильтрации зашумленных данных



Простой алгоритм фильтрации зашумленных данных

Автор: Mike(admin) от 21-02-2014, 12:10

Ниже предлагается способ фильтрации зашумленных данных, который работает на лету и не требует хранения данных, которые должны обрабатываться как единое целое. Он удаляет до двух выбросов (минимальное и максимальное значения) и усредняет все остальные значения.


С помощью данного метода могут быть обработаны до шестнадцати 12-битных выборок, используя только четыре 16-битных ячейки ОЗУ. При 10 выборках в качестве деление представляет собой сдвиг на 3 разряда.



int16 adcval,sum,max,min;
int8 i;
#define samples 10

max=0;
min=0xFFFF; //Устанавливаем максимум и минимум в качестве границ диапазона

for (i=0;imax) max=adcval; //Обновляем на лету значения максимумов и минимумов
if (adcval sum+=adcval; //Получаем сумму со всех выборок
}
sum-=max; //Удаляем минимальное и максимальное значения
sum-=min; //как вероятные выбросы

return(sum/(samples-2)); //Усредняем все остальные значения
//Если число выборок = 10, то деление представляет собой sum<<3




Перевод © digitrode.ru


<Источник>




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий