exponenta event banner

Фильтр Хампеля

Фильтрация отклонений по идентификатору Hampel

  • Библиотека:
  • Панель системных инструментов DSP/Проекты фильтров/фильтров

  • Hampel Filter block

Описание

Блок Hampel Filter обнаруживает и удаляет отклонения входного сигнала с помощью идентификатора Hampel. Идентификатор Хампеля - это разновидность правила статистики с тремя сигмами, которое устойчиво к отклонениям. Для каждой выборки входного сигнала блок вычисляет медиану окна, составленного из текущей выборки и Len 12 смежных выборок на каждой стороне текущей выборки. Len - длина окна, заданная параметром Длина окна (Window length). Блок также оценивает стандартное отклонение каждого образца относительно его оконной медианы, используя медианное абсолютное отклонение. Если выборка отличается от медианы более чем на пороговое значение, умноженное на стандартное отклонение, фильтр заменяет выборку на медиану. Дополнительные сведения см. в разделе Алгоритмы.

Порты

Вход

развернуть все

Блок принимает многоканальные входы, то есть входы размера m на n, где m ≥ 1, и n ≥ 1. m - число выборок в каждом кадре (канале), а n - число каналов. Блок также принимает входные данные переменного размера. То есть во время моделирования можно изменить размер каждого входного канала. Однако количество каналов не может изменяться.

Этот порт не называется, пока не будет выбран параметр Specify threshold from input port.

Типы данных: single | double

Порог обнаружения отклонений, заданный как действительный скаляр, больший или равный 0. Сведения о том, как этот параметр используется для обнаружения отклонений, см. в разделе Алгоритмы.

Зависимости

Этот порт появляется при выборе параметра Specify threshold from input port.

Типы данных: single | double

Продукция

развернуть все

Размер и тип данных этих выходных данных соответствуют размеру и типу данных входных данных.

Этот порт не называется, пока не будет установлен флажок Output outlier status.

Типы данных: single | double

Значение 1 в этом выводе указывает, что соответствующий элемент на входе является отклонением. Этот выход имеет тот же размер, что и вход.

Зависимости

Чтобы включить этот порт, установите флажок Output outlier status.

Типы данных: Boolean

Параметры

развернуть все

Если параметр указан как настраиваемый, его значение можно изменить во время моделирования.

Длина скользящего окна, заданная как положительное нечетное скалярное целое число. Окно конечной длины скользит по данным, и блок вычисляет среднее и среднее абсолютное отклонение данных в окне.

Если этот флажок установлен, пороговое значение вводится через порт T. При снятии этого флажка пороговое значение задается в диалоговом окне блока с помощью параметра «Пороговое значение для обнаружения отклонений (стандартные отклонения)».

Порог обнаружения отклонений, заданный как действительный скаляр, больший или равный 0. Сведения о том, как этот параметр используется для обнаружения отклонений, см. в разделе Алгоритмы.

Настраиваемый: Да

Зависимости

Этот параметр появляется при снятии флажка Specify threshold from input port (Указать порог из входного порта).

Выберите этот параметр для вывода матрицы boolean значения, которые имеют тот же размер, что и входные данные. Каждый элемент в этой матрице указывает, является ли соответствующий элемент на входе отклонением. Значение 1 указывает на отклонение.

  • Interpreted execution

    Моделирование модели с помощью  интерпретатора MATLAB ®. Этот параметр сокращает время запуска и обеспечивает более высокую скорость моделирования, чем Code generation.

  • Code generation

    Моделирование модели с использованием сгенерированного кода C. При первом запуске моделирования Simulink ® генерирует код C для блока. Код C используется повторно для последующего моделирования, если модель не изменяется. Этот параметр требует дополнительного времени запуска и имеет более низкую скорость моделирования,  чемInterpreted execution.

Характеристики блока

Типы данных

double | single

Прямой проход

no

Многомерные сигналы

no

Сигналы переменного размера

yes

Обнаружение пересечения нулей

no

Подробнее

развернуть все

Алгоритмы

Для данной выборки данных xs алгоритм:

  • Центрирует окно нечетной длины по текущему образцу.

  • Вычисляет локальное медианное значение, mi и стандартное отклонение по текущему окну данных.

  • Сравнивает текущую выборку с n Если | xs mi | > nstart× × i, фильтр идентифицирует текущий образец, xs, как выброс и заменяет его медианным значением, mi.

Рассмотрим кадр данных, который передается в фильтр Хампеля.

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

  • Текущая выборка: xs = 0.

  • Окно данных: win = [0 0 0 0 1].

  • Локальная медиана: mi = медиана ([0 0 0 0 1]) = 0.

  • Медианное абсолютное отклонение: мади = медиана (| xi k mi |,..., | xi + k − mi |). Для этого окна данных mad = медиана (| 0 − 0 |,..., | 1 − 0 |) = 0.

  • Среднеквадратическое отклонение: starti = start× madi = 0, где start= = 12erfc 1 (1/2) ≈1.4826.

  • Текущая выборка, xs = 0, не подчиняется отношению для обнаружения отклонений.

    [| xs mi | = 0] > [(n

    Поэтому фильтр Хампеля выводит текущую входную выборку, xs = 0.

Повторите эту процедуру для каждого последующего образца, пока алгоритм не центрирует окно на [End Len 12] -м образце, помеченном какEnd. Поскольку окно с центром на последних выборках Лен − 12 не может быть заполнено, эти выборки обрабатываются следующим кадром входных данных.

Вот первый выходной кадр, который генерирует фильтр Хампеля:

Седьмая выборка добавленного входного кадра 23 является отклонением. Фильтр Хампеля заменяет этот образец медианой над локальным окном [4 9 23 8 12].

Ссылки

[1] Боденем, Дин. «Адаптивная фильтрация и обнаружение изменений потоковых данных». Доктор философии. Дипломная работа. Имперский колледж, Лондон, 2012 год.

[2] Лю, Ханьчун, Сириш Шах и Вэй Цзян. «Обнаружение и очистка данных в режиме реального времени». Компьютеры и химическая инженерия. т. 28, март 2004, с. 1635-1647.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2017a