Фильтрация отклонений по идентификатору Hampel
dsp.HampelFilter Система object™ обнаруживает и удаляет отклонения входного сигнала с помощью идентификатора Хампеля. Идентификатор Хампеля - это разновидность правила статистики с тремя сигмами, которая надежна против отклонений. Для каждой выборки входного сигнала объект вычисляет медиану окна, составленного из текущей выборки и Len 12 смежных выборок на каждой стороне текущей выборки. Len - длина окна, заданная через WindowLength собственность. Объект также оценивает стандартное отклонение каждого образца относительно его оконной медианы, используя медианное абсолютное отклонение. Если выборка отличается от медианы более чем на пороговое значение, умноженное на стандартное отклонение, фильтр заменяет выборку на медиану. Дополнительные сведения см. в разделе Алгоритмы.
Для фильтрации входного сигнала по идентификатору Хампеля:
Создать dsp.HampelFilter и задайте его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.
возвращает объект фильтра Хампеля, hampFilt = dsp.HampelFilterhampFilt, используя свойства по умолчанию.
устанавливает hampFilt = dsp.HampelFilter(Len)WindowLength свойство для Len.
устанавливает hampFilt = dsp.HampelFilter(Len, Lim)WindowLength свойство для Len и Threshold свойство для Lim.
hampFilt = dsp.HampelFilter(11,2); задает свойства с помощью hampFilt = dsp.HampelFilter(Name,Value)Name,Value пар. Неопределенные свойства имеют значения по умолчанию.
Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:
release(obj)

Для данной выборки данных xs алгоритм:
Центрирует окно нечетной длины по текущему образцу.
Вычисляет локальное медианное значение, mi и стандартное отклонение по текущему окну данных.
Сравнивает текущую выборку с n Если nstart× × i, фильтр идентифицирует текущий образец, xs, как выброс и заменяет его медианным значением, mi.
Рассмотрим кадр данных, который передается в фильтр Хампеля.

В этом примере фильтр Хампеля перемещает окно длиной 5 (Len) по данным. Фильтр имеет пороговое значение 2 (nλ). Чтобы иметь полное окно в начале кадра, алгоритм фильтра дополняет кадр нулями Len - 1. Для вычисления первой выборки выходного сигнала окно центрируется на 1] -й выборке в добавленном кадре, третий ноль в данном случае. Фильтр вычисляет медиану, среднее абсолютное отклонение и стандартное отклонение по данным в локальном окне.

Текущая выборка: xs = 0.
Окно данных: win = [0 0 0 0 1].
Локальная медиана: mi = медиана ([0 0 0 0 1]) = 0.
Медианное абсолютное отклонение: , | xi + k − mi |). Для медиана (| 0 − 0 |,..., | 1 − 0 |) = 0.
Среднеквадратическое отклонение: starti = start× madi = 0, где ≈1.4826.
Текущая выборка, xs = 0, не подчиняется отношению для обнаружения отклонений.
n
Поэтому фильтр Хампеля выводит текущую входную выборку, xs = 0.
Повторите эту процедуру для каждого последующего образца, пока алгоритм не центрирует окно на 12] -м образце, помеченном какEnd. Поскольку окно с центром на последних выборках Лен − 12 не может быть заполнено, эти выборки обрабатываются следующим кадром входных данных.
Вот первый выходной кадр, который генерирует фильтр Хампеля:

Седьмая выборка добавленного входного кадра 23 является отклонением. Фильтр Хампеля заменяет этот образец медианой над локальным окном [4 9 23 8 12].
[1] Боденем, Дин. «Адаптивная фильтрация и обнаружение изменений потоковых данных». PH.D. Дипломная работа. Имперский колледж, Лондон, 2012 год.
[2] Лю, Ханьчун, Сириш Шах и Вэй Цзян. «Обнаружение и очистка данных в режиме реального времени». Компьютеры и химическая инженерия. т. 28, март 2004, с. 1635-1647.
[3] Суомела, Юкка. Фильтрация медианы эквивалентна сортировке, 2014.