exponenta event banner

dsp. MovingStandardDeviation

Перемещение стандартного отклонения

Описание

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

Для вычисления скользящего стандартного отклонения входного сигнала:

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

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

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

Создание

Описание

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

пример

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

пример

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

Пример: MovStd = dsp.MovingStandardDeviation('Method','Exponential weighting','ForgettingFactor',0.999);

Свойства

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

Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и 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].

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

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

Зависимости

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

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

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

Синтаксис

Описание

пример

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

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

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

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

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

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

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

FrameLength = 100;
Fs = 100;
movstdWindow = dsp.MovingStandardDeviation(800);
movstdExp = dsp.MovingStandardDeviation(...
    'Method','Exponential weighting',...
    'ForgettingFactor',0.999);
scope  = timescope('SampleRate',Fs,...
    'TimeSpanOverrunAction','Scroll',...
    'TimeSpanSource','Property',...
    'TimeSpan',1000,...
    'ShowGrid',true,...
    'BufferLength',1e7,...
    'YLimits',[0 3e-2]);
title = 'Actual (yellow) Sliding Window (blue) Exponentially Weighted (red) standard deviation';
scope.Title = title;

Вычисление стандартного отклонения

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

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

Алгоритмы

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

Ссылки

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

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

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