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 objects. Axes object 1 with title Noise contains an object of type line. Axes object 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 object. The axes object 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