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.

В этом примере фильтр 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]

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

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

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

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

Ссылки

[1] Боденхэм, декан. “Адаптивное обнаружение фильтрации и изменения для потоковой передачи данных”. Ph.D. Тезис. Имперский колледж, Лондон, 2012.

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

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

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

Смотрите также

Функции

Объекты

Блоки

Введенный в R2017a