wvarchg

Найдите точки перехода отклонения

Синтаксис

[PTS_OPT,KOPT,T_EST] = wvarchg(Y,K,D)

Описание

[PTS_OPT,KOPT,T_EST] = wvarchg(Y,K,D) вычисляет оцененные точки перехода отклонения для Y сигнала для j точек перехода, с j = 0, 1, 2..., K.

Целочисленный D является минимальной задержкой между двумя точками перехода.

Целочисленный KOPT является предложенным количеством точек перехода (0 ≤ KOPTK). Векторный PTS_OPT содержит соответствующие точки перехода.

Для 1 k K, T_EST(k+1,1:k) еще содержит моменты k точек перехода отклонения и затем, если KOPT > 0, PTS_OPT = T_EST(KOPT+1,1:KOPT) PTS_OPT = [].

K и D должны быть целыми числами, таким образом что 1 <K <<длина (Y) и 1 ≤ D <<длина (Y).

Y сигнала должен быть нулевым средним значением.

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

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

Примеры

свернуть все

Добавьте две точки перехода отклонения в сигнал блоков. Обнаружьте точки перехода отклонения с помощью wvarchg.

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

x = wnoise(1,10);
rng default;
bb = 1.5*randn(1,length(x));
cp1 = 180; cp2 = 600;
x = x + [bb(1:cp1),bb(cp1+1:cp2)/4,bb(cp2+1:end)];

Получите коэффициенты вейвлета уровня 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);

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

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

Ссылки

Lavielle, M. (1999), “Обнаружение нескольких изменений в последовательности зависимых переменных”, Stoch. Proc. и их Приложения, 83, 2, стр 79–102.

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