dsp.MovingStandardDeviation

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

Описание

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

Вычислить движущееся стандартное отклонение входа:

  1. Создайте dsp.MovingStandardDeviation объект и набор его свойства.

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

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

пример

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

MovStd = dsp.MovingStandardDeviation(Len,Overlap) устанавливает WindowLength свойство к Len и OverlapLength свойство к Overlap.

пример

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

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

Свойства

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

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

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

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

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

  • 'Exponential weighting' — Объект вычисляет экспоненциально взвешенное движущееся отклонение и пускает квадратный корень.

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

Отметьте, чтобы задать длину окна в виде скалярного boolean.

  • true — Длина раздвижного окна равна значению, которое вы задаете в WindowLength свойство.

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

Зависимости

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

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

Зависимости

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

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

Перекройте длину между раздвижными окнами в виде неотрицательного целого числа. Значение длины перекрытия варьируется по области значений [0, WindowLength − 1]. Если не заданный, длиной перекрытия является WindowLength − 1.

Зависимости

Это свойство применяется, когда вы устанавливаете 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
Поддержка комплексного числа: Да

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

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

release(obj)

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

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

Примеры

свернуть все

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

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

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

Создайте осциллограф времени для того, чтобы просмотреть вывод.

FrameLength = 100;
Fs = 100;
movstdWindow = dsp.MovingStandardDeviation(800);
movstdWindow_overlap = dsp.MovingStandardDeviation(800,700);
movstdExp = dsp.MovingStandardDeviation(...
    'Method','Exponential weighting',...
    'ForgettingFactor',0.999);
scope  = timescope('SampleRate',[Fs,Fs,Fs/(800-700),Fs],...
    'TimeSpanOverrunAction','Scroll',...
    'TimeSpanSource','Property',...
    'TimeSpan',1000,...
    'ShowGrid',true,...
    'BufferLength',1e7,...
    'YLimits',[0 3e-2]);
title = 'Moving Standard Deviation';
scope.Title = title;
scope.ChannelNames = {'Original Signal',...
    'Sliding window of 800 samples with default overlap',...
    'Sliding window of 800 samples with an overlap of 700 samples',...
    'Exponential weighting with forgetting factor of 0.999'};

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

Сгенерируйте шумный сигнал прямоугольной волны. Варьируйтесь амплитуда прямоугольной волны после данного количества кадров. Примените метод раздвижного окна и экспоненциальный метод взвешивания к этому сигналу. Фактическим стандартным отклонением является 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 = movstdWindow_overlap(x);
        y3 = movstdExp(x);
        scope(yexp,y1,y2,y3);
    end
end

Алгоритмы

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

Ссылки

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

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

Введенный в R2017b