dsp.MovingVariance

Движущиеся отклонения

Описание

The dsp.MovingVariance Система object™ вычисляет отклонение входного сигнала по каждому каналу независимо с течением времени. Объект использует метод скользящего окна или экспоненциала метод взвешивания, чтобы вычислить движущееся отклонение. В методе раздвижного окна окно заданной длины перемещается по данным, выборке за выборкой, и отклонение вычисляется по данным в окне. В экспоненциальном методе взвешивания объект вычитает каждую выборку данных из среднего значения, квадратов различия и умножает квадратный результат на весовой коэффициент. Затем объект вычисляет отклонение, добавляя все взвешенные данные. Для получения дополнительной информации об этих методах см. «Алгоритмы».

Чтобы вычислить скользящее отклонение входа:

  1. Создайте dsp.MovingVariance Объекту и установите его свойства.

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

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

Создание

Описание

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

пример

MovVar = dsp.MovingVariance(Len) устанавливает WindowLength свойство к Len.

пример

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

Пример: MovVar = dsp.MovingVariance('Method','Exponential weighting','ForgettingFactor',0.9);

Свойства

расширить все

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.

  • 'Sliding window' - Окно длины, заданное как SpecifyWindowLength перемещается по входным данным вдоль каждого канала. Для каждой выборки, по которой перемещается окно, объект вычисляет отклонение по данным в окне.

  • 'Exponential weighting' - Объект вычитает каждую выборку данных из среднего значения, квадратов различия и умножает квадратный результат с коэффициентом взвешивания. Затем объект вычисляет отклонение, добавляя все взвешенные данные. Величина весовых коэффициентов уменьшается экспоненциально, когда возраст данных увеличивается, никогда не достигая нуля.

Для получения дополнительной информации об этих методах см. «Алгоритмы».

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

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

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

Зависимости

Это свойство применяется при установке Method на 'Sliding window'.

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

Зависимости

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

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

Экспоненциальный весовой коэффициент, заданный как положительный действительный скаляр в области значений (0,1].

Коэффициент забывания 0,9 дает больший вес старшим данным, чем коэффициент забывания 0,1. Коэффициент забывания 1,0 указывает на бесконечную память. Всем прошлым выборкам придают одинаковый вес.

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

Настраиваемый: Да

Зависимости

Это свойство применяется при установке Method на 'Exponential weighting'.

Типы данных: single | double

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

Синтаксис

Описание

пример

y = movVar(x) вычисляет отклонение движения входного сигнала, x, с использованием метода скользящего окна или экспоненциального взвешивания.

Входные параметры

расширить все

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

Типы данных: single | double
Поддержка комплексного числа: Да

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

расширить все

Движущееся отклонение входного сигнала, возвращенная как вектор или матрица.

Типы данных: single | double
Поддержка комплексного числа: Да

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

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

release(obj)

расширить все

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

Примеры

свернуть все

Вычислите подвижное отклонение сигнала шумной квадратной волны с изменяющейся амплитудой, используя dsp.MovingVariance объект.

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

Настройка movvarWindow и movvarExp объекты. movvarWindow использует метод раздвижного окна с длиной окна 800. movvarExp использует метод экспоненциального взвешивания с коэффициентом забывания 0,999. Создайте временные возможности для просмотра выхода.

FrameLength = 100;
Fs = 100;
movvarWindow = dsp.MovingVariance(800);
movvarExp = dsp.MovingVariance('Method','Exponential weighting',...
    'ForgettingFactor',0.999);
scope  = timescope('SampleRate',Fs,...
    'TimeSpanOverrunAction','Scroll',...
    'TimeSpanSource','Property',...
    'TimeSpan',1000,...
    'ShowGrid',true,...
    'BufferLength',1e7,...
    'YLimits',[0 7e-4]);
title = 'Actual (yellow) Sliding Window (blue) Exponentially Weighted (red) variance';
scope.Title = title;

Вычислите отклонение

Сгенерируйте шумный сигнал квадратной волны. Изменяйте амплитуду квадратной волны после заданного количества систем координат. Примените метод раздвижного окна и метод экспоненциального взвешивания к этому сигналу. Фактическое отклонение np. Это значение используется при добавлении шума к данным. Сравните фактическое отклонение с вычисленными отклонениями во временных возможностях.

count = 1;
noisepower = 1e-4 * [1 2 3 4];
index = 1;
for index = 1:length(noisepower)
    np = noisepower(index);
    yexp = np*ones(FrameLength,1);
    for i = 1:250
        x = 1 + sqrt(np) * randn(FrameLength,1);
        y1 = movvarWindow(x);
        y2 = movvarExp(x);
        scope([yexp,y1,y2]);
    end
end

Алгоритмы

расширить все

Ссылки

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

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

.
Введенный в R2016b