Фильтруйте выбросы с помощью идентификатора Хампеля
DSP System Toolbox/Фильтрация/Проекты фильтров
Блок Hampel Filter обнаруживает и удаляет выбросы входного сигнала с помощью идентификатора Хампеля. Этот Идентификатор Хампеля является изменением правила статистики с тремя сигмами, которое устойчиво против выбросов. Для каждой выборки входного сигнала блок вычисляет медиану окна, состоящего из текущей выборки и смежные образцы на каждой стороне текущей выборки. Len - длина окна, заданная параметром Window length. Блок также оценивает стандартное отклонение каждой выборки относительно ее медианы окна с помощью медианного абсолютного отклонения. Если выборка отличается от медианы больше, чем порог, умноженный на стандартное отклонение, фильтр заменяет выборку на медиану. Для получения дополнительной информации см. «Алгоритмы».
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Для заданной выборки данных, xs, алгоритм:
Центрирует окно нечетной длины в текущей выборке.
Вычисляет локальную медиану, mi и стандартное отклонение, σi, над активным окном данных.
Сравнивает текущую выборку с nσ × σi, где nσ - пороговое значение. Если фильтр идентифицирует текущую выборку, xs, как выбросы и заменяют ее медианным значением, mi.
Рассмотрим систему координат данных, которая передается в фильтр Хэмпеля.
В этом примере фильтр Hampel скользит по данным окном длины 5 (Len). Фильтр имеет порог значение 2 (nσ). Чтобы иметь полное окно в начале системы координат, алгоритм фильтра готовит систему координат с Len - 1 нулями. Чтобы вычислить первую выборку выхода, окно центрируется на выборка в добавленной системе координат, третий нуль в этом случае. Фильтр вычисляет медиану, среднее абсолютное отклонение и стандартное отклонение по данным в локальном окне.
Текущая выборка: xs = 0.
Окно данных: win = [0 0 0 0 1].
Локальная медиана: mi = медиана ([0 0 0 0 1]) = 0.
Срединное абсолютное отклонение: . Для этого окна данных, .
Стандартное отклонение: σi = κ × madi = 0, где .
Текущая выборка xs = 0 не подчиняется отношению для определения выбросов.
Поэтому фильтр Хэмпела выводит текущую входную выборку, xs = 0.
Повторите эту процедуру для каждой последующей выборки, пока алгоритм не центрирует окно на выборка, отмеченный как End
. Потому что окно с центром на последнем выборки не могут быть полными, эти выборки обрабатываются следующей системой координат входных данных.
Вот первый выходной кадр, который генерирует фильтр Хэмпеля:
Седьмая выборка добавленного входного кадра 23 является выбросами. Фильтр Хэмпела заменяет эту выборку медианой над локальным окном [4 9 23 8 12].
[1] Боденем, Дин. «Адаптивная фильтрация и обнаружение изменений для потоковых данных». Доктор философии. Дипломная работа. Имперский колледж, Лондон, 2012.
[2] Лю, Ханьсун, Сириш Шах и Вэй Цзян. «Оперативное определение выбросов и очистка данных». Компьютеры и химическая техника. Том 28, 2004 марта, с. 1635-1647.
[3] Суомела, Юкка. Медианная фильтрация эквивалентна сортировке, 2014.