wvarchg

Найдите точки изменения отклонения

Описание

пример

[chgpts,kopt,est] = wvarchg(Y) вычисляет оцененные точки изменения изменения для сигнала Y для шести точек изменения, где минимальная задержка между двумя точками изменения равна 10.

[___] = wvarchg(Y,K) вычисляет предполагаемые точки изменения отклонений для j изменить точки, где j = 0, 1, 2, …, K, и минимальная задержка между двумя точками изменения равна 10.

[___] = wvarchg(Y,K,D) вычисляет предполагаемые точки изменения изменения, где минимальная задержка между двумя точками изменения D.

  • wvarchg(Y,6,10) эквивалентно wvarchg(Y).

  • wvarchg(Y,K,10) эквивалентно wvarchg(Y,K).

Примеры

свернуть все

Для повторяемости установите значение случайного seed по умолчанию. Загрузите blocks вейвлет-тестовый сигнал. Добавьте белый шум с двумя точками изменения отклонения, расположенными в индексах 180 и 600. Постройте график шума и сигнала с шумом.

rng default
x = wnoise(1,10);
cp1 = 180;
cp2 = 600;
bb = 1.5*randn(1,length(x));
seg1 = bb(1:cp1);
seg2 = bb(cp1+1:cp2)/4;
seg3 = bb(cp2+1:end);
wn = [seg1 seg2 seg3];
x = x+wn;
subplot(2,1,1)
plot(wn)
title('Noise')
subplot(2,1,2)
plot(x)
title('Noisy Signal')

Figure contains 2 axes. Axes 1 with title Noise contains an object of type line. Axes 2 with title Noisy Signal contains an object of type line.

Используйте db3 вейвлет и выполните вейвлет-разложение сигнала уровня 1. Восстановите коэффициенты детализации. Замените верхние 2% значений средним значением коэффициентов вейвлета, чтобы удалить большую часть сигнала. Постройте график значений.

wname = 'db3';
lev = 1;
[c,l] = wavedec(x,lev,wname);
det = wrcoef('d',c,l,wname,1);
y = sort(abs(det));
v2p100 = y(fix(length(y)*0.98));
ind = find(abs(det)>v2p100);
det(ind) = mean(det);
figure
plot(det)
title('Reconstructed Details')

Figure contains an axes. The axes with title Reconstructed Details contains an object of type line.

Оцените точки изменения отклонения с помощью коэффициентов вейвлета.

[pts_Opt,kopt,t_est] = wvarchg(det,5);
fprintf('The estimated change points are %d and %d.',pts_Opt)
The estimated change points are 181 and 601.

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

свернуть все

Входной сигнал, заданный как действительный вектор. Входной сигнал Y должно иметь нулевое среднее.

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

Количество точек изменения, заданное в виде целого числа. K удовлетворяет неравенствам 1 < K ≪ length(Y).

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

Количество точек изменения, заданное в виде целого числа. D удовлетворяет неравенствам 1 ≤ D ≪ length(Y).

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

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

свернуть все

Предполагаемые точки изменения отклонения, возвращенные как вектор. chgpts - пустой вектор [] если точки изменения не найдены.

Предлагаемое количество точек изменения, возвращаемое в виде неотрицательного целого числа в интервале [0, k].

Моменты точек изменения вариации, возвращенные как вещественная матрица. Для 1 ≤ k ≤ K, est(k+1,1:k) содержит k моменты точек изменения отклонений. Если kopt > 0, затем chgpts = est(kopt+1,1:kopt), иначе chgpts = [].

Ссылки

[1] Lavielle, M. «Обнаружение нескольких изменений в последовательности зависимых переменных». Стохастические процессы и их приложения. Том 83, № 1, 1999, стр. 79-102.

Представлено до R2006a