Hampel Filter

Фильтруйте выбросы с помощью идентификатора Хампеля

  • Библиотека:
  • DSP System Toolbox/Фильтрация/Проекты фильтров

  • Hampel Filter block

Описание

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

Порты

Вход

расширить все

Блок принимает многоканальные входы, то есть m -by - 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. Когда вы снимаете этот флажок, порог задается в диалоговом окне блока посредством параметра Threshold for outlier detection (standard deviations).

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

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

Зависимости

Этот параметр появляется при снятии флажка Specify threshold from input port.

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

  • Interpreted execution

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

  • Code generation

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

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

Типы данных

double | single

Прямое сквозное соединение

no

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

no

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

yes

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

no

Подробнее о

расширить все

Алгоритмы

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

  • Центрирует окно нечетной длины в текущей выборке.

  • Вычисляет локальную медиану, mi и стандартное отклонение, σi, над активным окном данных.

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

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

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

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

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

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

  • Срединное абсолютное отклонение: madi=median(|xikmi|,,|xi+kmi|). Для этого окна данных, mad=median(|00|,,|10|)=0.

  • Стандартное отклонение: σi = κ × madi = 0, где κ=12erfc1(1/2)1.4826.

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

    [|xsmi|=0]>[(nσ×σi)=0]

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

Повторите эту процедуру для каждой последующей выборки, пока алгоритм не центрирует окно на [EndLen12]th выборка, отмеченный как End. Потому что окно с центром на последнем Len12 выборки не могут быть полными, эти выборки обрабатываются следующей системой координат входных данных.

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

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

Ссылки

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

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

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

См. также

Функции

Объекты

Блоки

Введенный в R2017a