exponenta event banner

dsp. MovingMaximum

Скользящий максимум

Описание

dsp.MovingMaximum Система object™ определяет подвижный максимум входного сигнала по каждому каналу независимо во времени. Объект использует метод скользящего окна для определения скользящего максимума. В этом методе окно заданной длины перемещается по каждому каналу, выборка за выборкой, и объект определяет максимум данных в окне. Дополнительные сведения см. в разделе Алгоритмы.

Для определения подвижного максимума входного сигнала:

  1. Создать dsp.MovingMaximum и задайте его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

movMax = dsp.MovingMaximum возвращает перемещаемый максимальный объект, movMax, используя свойства по умолчанию.

пример

movMax = dsp.MovingMaximum(Len) устанавливает WindowLength свойство для Len.

movMax = dsp.MovingMaximum(Name,Value) задает дополнительные свойства с помощью Name,Value пар. Неопределенные свойства имеют значения по умолчанию.

Пример: movMax = dsp.MovingMaximum('SpecifyWindowLength',1,'WindowLength',10);

Свойства

развернуть все

Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.

Если свойство настраивается, его значение можно изменить в любое время.

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

Флаг для указания длины окна, заданного как скалярное логическое значение.

  • true - Длина скользящего окна равна значению, указанному в WindowLength собственность.

  • false - Длина скользящего окна бесконечна. В этом режиме объект определяет максимум текущей выборки и всех прошлых выборок.

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

Зависимости

Это свойство применяется при установке SpecifyWindowLength кому true.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Синтаксис

Описание

пример

y = movMax(x) определяет подвижный максимум входного сигнала, x, используя метод скользящего окна.

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

развернуть все

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

развернуть все

Максимальное перемещение входного сигнала, возвращаемого в виде вектора или матрицы.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Функции объекта

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

release(obj)

развернуть все

stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System

Примеры

свернуть все

Вычислите максимум движения суммы трех синусоидальных волн с изменяющейся амплитудой. Используйте скользящее окно длиной 30.

Инициализация

Установите входной сигнал, который представляет собой сумму трех синусоидальных волн с частотами 2 Гц, 5 Гц и 10 Гц. Частота дискретизации составляет 100 Гц. Создать dsp.MovingMaximum объект с длиной окна 30. Создайте область времени для просмотра выходных данных.

sin = dsp.SineWave('SampleRate',100,...
    'Frequency',[2 5 10],...
    'SamplesPerFrame',100);
movMax = dsp.MovingMaximum(30);
scope  = timescope('SampleRate',100,...
    'TimeSpanOverrunAction','Scroll',...
    'TimeSpanSource','Property',...
    'TimeSpan',10,'ShowGrid',true,...
    'YLimits',[-4.5 4.5]);

Вычисление движущегося максимума

Каждая синусоидальная составляющая входного сигнала имеет различную амплитуду, которая изменяется в зависимости от итерации. Используйте movMax задание максимального значения текущей выборки и последних 29 выборок входного сигнала.

for index = 1:100
    sin.Amplitude = rand(1,3);
    x = sum(sin(),2);
    xmax = movMax(x);
    scope([x,xmax])
end

Алгоритмы

развернуть все

Ссылки

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

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

.
Представлен в R2016b