Отфильтруйте использование выбросов идентификатор Hampel
Система dsp.HampelFilter
object™ обнаруживает и удаляет выбросы входного сигнала при помощи идентификатора Hampel. Идентификатор Hampel является изменением правила с тремя сигмами статистики, которая устойчива против выбросов. Для каждой выборки входного сигнала объект вычисляет медиану окна, состоявшего из текущей выборки и смежные выборки на каждой стороне текущей выборки. Len является длиной окна, которую вы задаете через свойство WindowLength
. Объект также оценивает стандартное отклонение каждой выборки о ее медиане окна при помощи среднего абсолютного отклонения. Если выборка отличается от медианы больше, чем порог, умноженный на стандартное отклонение, фильтр заменяет выборку на медиану. Для получения дополнительной информации см. Алгоритмы.
Отфильтровать входной сигнал с помощью идентификатора Hampel:
Создайте объект dsp.HampelFilter
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
hampFilt = dsp.HampelFilter
hampFilt = dsp.HampelFilter(Len)
hampFilt = dsp.HampelFilter(Len, Lim)
hampFilt = dsp.HampelFilter(Name,Value)
возвращает объект фильтра Hampel, 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
. Незаданные свойства имеют значения по умолчанию.
y = hampFilt(x)
[y,isOutlier] = hampFilt(x)
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
Для данной выборки данных, xs, алгоритма:
Сосредотачивает окно нечетной длины на текущей выборке.
Вычисляет локальную медиану, mi, и стандартное отклонение, σi, по активному окну данных.
Сравнивает текущую выборку с nσ × σi, где nσ является пороговым значением. Если , фильтр идентифицирует текущую выборку, xs, как выброс и заменяет его на среднее значение, mi.
Рассмотрите кадр данных, которые передаются в фильтр Hampel.
В этом примере фильтр 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, не повинуется отношению для определения выбросов.
Поэтому Hampel фильтруют выходные параметры текущая входная выборка, xs = 0.
Повторите эту процедуру для каждой последующей выборки, пока алгоритм не сосредоточит окно на выборка, отмеченная как End
. Поскольку окно, сосредоточенное на последнем выборки не могут быть полными, эти выборки обрабатываются со следующим кадром входных данных.
Вот первый выходной кадр, который генерирует фильтр Hampel:
Седьмая выборка добавленного входного кадра, 23, является выбросом. Фильтр Hampel заменяет эту выборку на медиану по локальному окну [4 9 23 8 12].
[1] Боденхэм, декан. “Адаптивное обнаружение фильтрации и изменения для потоковой передачи данных”. PH.D. Тезис. Имперский колледж, Лондон, 2012.
[2] Лю, Hancong, Сириш Шах и Вэй Цзян. “Онлайновое определение выбросов и очистка данных”. Компьютеры и Химическое машиностроение. Издание 28, март 2004, стр 1635–1647.
[3] Suomela, Юкка. Средняя фильтрация эквивалентна сортировке, 2014.