Документация Engee

EngeeDSP.MedianFilter

Медианный фильтр.

Библиотека

EngeeDSP

Блок

Median Filter

Описание

Системный объект EngeeDSP.MedianFilter вычисляет скользящую медиану входного сигнала для каждого канала независимо во времени. Для вычисления скользящей медианы объект использует метод скользящего окна. В рамках этого метода окно заданной длины перемещается по каждому каналу с шагом в один отсчет, и объект вычисляет медиану данных, попавших в окно. Дополнительные сведения см. в разделе Алгоритмы.

И объект EngeeDSP.MedianFilter, и функция movmedian вычисляют скользящую медиану входного сигнала. Однако объект способен обрабатывать большие потоки данных в режиме реального времени и автоматически управлять состоянием системы. Функция же выполняет разовые вычисления над уже имеющимися данными и не поддерживает управление состояниями системы.

Чтобы вычислить скользящую медиану, выполните следующие действия:

  1. Создайте объект EngeeDSP.MedianFilter и установите его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.

Синтаксис

Создание

  • medFilt = EngeeDSP.MedianFilter() — возвращает системный объект медианного фильтра medFilt с использованием свойств по умолчанию.

  • medFilt = EngeeDSP.MedianFilter(len) — возвращает системный объект медианного фильтра medFilt, у которого для свойства WindowLength установлено значение len.

  • medFilt = EngeeDSP.MedianFilter(Name=Value) — возвращает системный объект медианного фильтра medFilt с заданными свойствами в виде пары Name=Value, где Name — имя свойства, а Value — соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.

Использование

  • y = medFilt(x) — вычисляет скользящую медиану входного сигнала x методом скользящего окна.

Аргументы

Входные аргументы

# x — входной сигнал
вектор | матрица

Details

Входной сигнал, заданный как вектор или матрица. Если x — матрица, каждый ее столбец рассматривается как независимый канал. Скользящая медиана вычисляется для каждого канала. Объект поддерживает многоканальные входные данные размером на , где — количество отсчетов в каждом кадре (или канале), а — количество каналов.

Входной сигнал может иметь переменный размер. После блокировки объекта можно изменять размер каждого входного канала, но нельзя изменить количество каналов.

Типы данных

Float32, Float64

Выходные аргументы

# y — отфильтрованный выходной сигнал
вектор | матрица

Details

Отфильтрованный выходной сигнал, возвращаемый в виде вектора или матрицы. Размерность и тип данных выходного сигнала соответствуют размерности и типу данных входного сигнала.

Типы данных

Float32, Float64

Свойства

# WindowLength — длина скользящего окна
Int64 integer

Details

Длина скользящего окна в отсчетах, заданная как положительное целое число.

Значение по умолчанию — 5.

Методы

Общие для всех системных объектов

step!

Запустить алгоритм работы системного объекта

release!

Разрешить изменение значения свойства системного объекта

reset!

Сброс внутренних состояний системного объекта

Алгоритмы

Метод скользящего окна

Details

В методе скользящего окна выходным значением для каждого входного отсчета является медиана на основе текущего отсчета и предыдущих отсчетов, где — это длина окна в отсчетах.

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

Рассмотрим пример вычисления скользящей медианы потоковых входных данных с использованием метода скользящего окна. Алгоритм использует окно длиной 4. При поступлении каждого нового входного отсчета окно размером 4 перемещается вдоль последовательности данных.

median filter ru

Литература

  1. Bodenham, Dean. Adaptive Filtering and Change Detection for Streaming Data. Ph.D. Thesis. Imperial College, London, 2012.