EngeeDSP.MedianFilter
Медианный фильтр.
| Библиотека |
|
| Блок |
Описание
Системный объект EngeeDSP.MedianFilter вычисляет скользящую медиану входного сигнала для каждого канала независимо во времени. Для вычисления скользящей медианы объект использует метод скользящего окна. В рамках этого метода окно заданной длины перемещается по каждому каналу с шагом в один отсчет, и объект вычисляет медиану данных, попавших в окно. Дополнительные сведения см. в разделе Алгоритмы.
И объект EngeeDSP.MedianFilter, и функция movmedian вычисляют скользящую медиану входного сигнала. Однако объект способен обрабатывать большие потоки данных в режиме реального времени и автоматически управлять состоянием системы. Функция же выполняет разовые вычисления над уже имеющимися данными и не поддерживает управление состояниями системы.
Чтобы вычислить скользящую медиану, выполните следующие действия:
-
Создайте объект EngeeDSP.MedianFilter и установите его свойства.
-
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
-
medFilt = EngeeDSP.MedianFilter()— возвращает системный объект медианного фильтраmedFiltс использованием свойств по умолчанию. -
medFilt = EngeeDSP.MedianFilter(len)— возвращает системный объект медианного фильтраmedFilt, у которого для свойства WindowLength установлено значениеlen. -
medFilt = EngeeDSP.MedianFilter(Name=Value)— возвращает системный объект медианного фильтраmedFiltс заданными свойствами в виде парыName=Value, гдеName— имя свойства, аValue— соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.
Аргументы
Входные аргументы
#
x —
входной сигнал
вектор | матрица
Details
Входной сигнал, заданный как вектор или матрица. Если x — матрица, каждый ее столбец рассматривается как независимый канал. Скользящая медиана вычисляется для каждого канала. Объект поддерживает многоканальные входные данные размером на , где — количество отсчетов в каждом кадре (или канале), а — количество каналов.
Входной сигнал может иметь переменный размер. После блокировки объекта можно изменять размер каждого входного канала, но нельзя изменить количество каналов.
| Типы данных |
|
Выходные аргументы
#
y —
отфильтрованный выходной сигнал
вектор | матрица
Details
Отфильтрованный выходной сигнал, возвращаемый в виде вектора или матрицы. Размерность и тип данных выходного сигнала соответствуют размерности и типу данных входного сигнала.
| Типы данных |
|
Свойства
#
WindowLength —
длина скользящего окна
Int64 integer
Details
Длина скользящего окна в отсчетах, заданная как положительное целое число.
Значение по умолчанию — 5.
Алгоритмы
Метод скользящего окна
Details
В методе скользящего окна выходным значением для каждого входного отсчета является медиана на основе текущего отсчета и предыдущих отсчетов, где — это длина окна в отсчетах.
Для вычисления первых выходных значений, когда в окне еще недостаточно данных, алгоритм заполняет окно нулями. Например, чтобы вычислить медианное значение при поступлении второго входного отсчета, алгоритм заполняет окно нулями; таким образом, вектор данных состоит из двух отсчетов данных, за которыми следуют нуля. Данный объект выполняет медианную фильтрацию входных данных в режиме реального времени.
Рассмотрим пример вычисления скользящей медианы потоковых входных данных с использованием метода скользящего окна. Алгоритм использует окно длиной 4. При поступлении каждого нового входного отсчета окно размером 4 перемещается вдоль последовательности данных.