Этот пример показывает, как использовать когерентность вейвлета и поперечный спектр вейвлета, чтобы идентифицировать локализованное во времени общее колебательное поведение в двух временных рядах. Пример также сравнивает когерентность вейвлета и поперечный спектр с их аналогами Фурье. Вы должны иметь Signal Processing Toolbox™, чтобы запустить примеры с помощью mscohere
(Signal Processing Toolbox) и cpsd
(Signal Processing Toolbox).
Многие приложения включают идентификацию и характеристику общих шаблонов в двух временных рядах. В некоторых ситуациях общее поведение в двух временных рядах является результатом одного временного ряда, ведущего или влияющего на другое. В других ситуациях общие шаблоны возникают из-за некоторого незабываемого механизма, влияющего на оба временных рядов.
Для совместно стационарных временных рядов стандартными методами для характеристики коррелированного поведения во времени или частоте являются перекрестная корреляция, (Фурье) перекрестный спектр и когерентность. Однако многие временные ряды являются нестационарными, что означает, что их частотное содержимое изменяется с течением времени. Для этих временных рядов важно иметь меру корреляции или когерентности в частотно-временной плоскости.
Можно использовать когерентность вейвлета, чтобы обнаружить общие локализованные во времени колебания в нестационарных сигналах. В ситуациях, когда естественно рассматривать один временной ряд как влияющий на другой, можно использовать фазу вейвлет спектра, чтобы идентифицировать относительную задержку между двумя временными рядами.
В первом примере используйте два сигнала, состоящих из локализованных во времени колебаний на 10 и 75 Гц. Сигналы имеют длительность шесть секунд и дискретизируются с частотой дискретизации 1000 Гц. Колебание 10-Hz в двух сигналах перекрывается между 1,2 и 3 секундами. Перекрытие для 75-Hz колебаний происходит между 0,4 и 4,4 секундами. 10 и 75-Hz компоненты задерживаются 1/4 цикла в сигнале Y. Это означает, что существует (90 степени) задержка фазы между 10 и 75-Hz компонентами в двух сигналах. Оба сигнала повреждены аддитивным белым Гауссовым шумом.
load wcoherdemosig1 subplot(2,1,1) plot(t,x1) title('X Signal') grid on ylabel('Amplitude') subplot(2,1,2) plot(t,y1) title('Y Signal') ylabel('Amplitude') grid on xlabel('Seconds')
Получите когерентность вейвлета и отобразите результат. Введите частоту дискретизации (1000 Гц), чтобы получить частотно-временной график когерентности вейвлета. В областях частотно-временной плоскости, где когерентность превышает 0,5, фаза от вейвлет спектра используется для указания относительной задержки между когерентными компонентами. Фаза обозначена стрелами, ориентированными в конкретном направлении. Обратите внимание, что задержка цикла 1/4 в сигнале Y на конкретной частоте обозначена стрелой, указывающим вертикально.
figure wcoherence(x1,y1,1000)
Две локализованные по времени области когерентного колебательного поведения при 10 и 75 Гц очевидны на графике вейвлет. Зависимость фазы показана ориентацией стрел в областях с высокой когерентностью. В этом примере вы видите, что вейвлет захватывает (1/4 цикла) задержка фазы между двумя сигналами при 10 и 75 Гц.
Белая штриховая линия показывает конус влияния, где эффекты ребра становятся значительными на разных частотах (шкалы). Области высокой когерентности, происходящие вне или перекрывающие конус влияния, должны интерпретироваться с осторожностью.
Повторите тот же анализ с использованием квадрата когерентности Фурье и перекрестного спектра.
figure mscohere(x1,y1,500,450,[],1000)
[Pxy,F] = cpsd(x1,y1,500,450,[],1000); Phase = (180/pi)*angle(Pxy); figure plot(F,Phase) title('Cross-Spectrum Phase') xlabel('Hz') ylabel('Phase (Degrees)') grid on ylim([0 180]) xlim([0 200]) hold on plot([10 10],[0 180],'r--') plot([75 75],[0 180],'r--') plot(F,90*ones(size(F)),'r--') hold off
Квадрат когерентности Фурье, полученная из mscohere
(Signal Processing Toolbox) четко определяет когерентные колебания на частотах 10 и 75 Гц. На фазовом графике поперечного спектра Фурье вертикальные красные штриховые линии маркируют 10 и 75 Гц, в то время как горизонтальная линия помечает угол 90 степеней. Вы видите, что фаза перекрестного спектра делает разумную задачу захвата относительной фазовой задержки между компонентами.
Однако зависящая от времени природа когерентного поведения полностью затенена этими методами. Для нестационарных сигналов характеристика когерентного поведения в частотно-временной плоскости намного более информативна.
Следующий пример повторяет предыдущий, изменяя соотношение фаз между этими двумя сигналами. В этом случае 10-Hz компонент в Y-сигнале задерживается на 3/8 цикла ( радианы). Компонент 75-Hz в сигнале Y задерживается на 1/8 цикла ( радианы). Постройте график когерентности вейвлета и порога отображения фазы, чтобы показать только области, где когерентность превышает 0,75.
load wcoherdemosig2 wcoherence(x2,y2,1000,'phasedisplaythreshold',0.75)
Оценки фазы, полученные из вейвлет спектра, захватывают относительную задержку между двумя временными рядами при 10 и 75 Гц.
Если вы предпочитаете просматривать данные в терминах периодов, а не частоты, можно использовать объект длительности MATLAB, чтобы предоставить wcoherence
со шаг расчета.
wcoherence(x2,y2,seconds(0.001),'phasedisplaythreshold',0.75)
Обратите внимание, что конус влияния перевернулся, потому что когерентность вейвлета теперь строится с точки зрения периодов.
Загрузка и построение данных по области 3 Эль-Нино и десеасонизация всего индийского индийского индекса с 1871 по конец 2003 года. Данные отбираются ежемесячно. Временные ряды Nino 3 являются рекордом месячных аномалий температуры поверхности моря в градусах Цельсия, зарегистрированных из экваториальной части Тихого океана в долготах 90 градусов к западу до 150 градусов к западу и широтах 5 градусов к северу до 5 градусов к югу.
load ninoairdata figure subplot(2,1,1) plot(datayear,nino) title('El Nino Region 3 -- SST Anomalies') ylabel('Degrees Celsius') axis tight subplot(2,1,2) plot(datayear,air) axis tight title('Deseasonalized All Indian Rainfall Index') ylabel('Millimeters') xlabel('Year')
Постройте график когерентности вейвлета с оценками фазы. Для этих данных более естественно смотреть на колебания с точки зрения их периодов в годах. Введите интервал дискретизации (период) как объект длительности с модулями измерения лет так, чтобы выходные периоды были в годах. Показать относительную задержку между двумя временными рядами климата можно только там, где квадрат когерентности превышает 0,7.
figure
wcoherence(nino,air,years(1/12),'phasedisplaythreshold',0.7)
График показывает локализованные во времени области сильной когерентности, происходящие в периоды, которые соответствуют типичным циклам Эль-Нино от 2 до 7 лет. График также показывает, что существует приблизительная задержка цикла 3/8-1/2 между двумя временными рядами в этих периодах. Это указывает на то, что периоды потепления моря в соответствии с Эль-Нино, зарегистрированными у побережья Южной Америки, коррелируют с количеством осадков в Индии приблизительно в 17 000 км, но этот эффект задерживается примерно на 1/2 цикла (от 1 до 3,5 лет).
В предыдущих примерах было естественно рассматривать один временные ряды как влияющий на другой. В этих случаях изучение зависимости задержки между данными является информативным. В других случаях более естественно изучать только согласованность.
Для примера рассмотрим данные ближней инфракрасной спектроскопии (NIRS), полученные у двух людей. NIRS измеряет активность мозга, используя различные характеристики абсорбции оксигенированного и дезоксигенированного гемоглобина. Данные взяты из Cui, Bryant, & Reiss [1] и были любезно предоставлены авторами для этого примера. Сайт записи был верхней лобной корой для обоих субъектов. Данные отбираются с частотой дискретизации 10 Гц. В эксперименте субъекты альтернативно сотрудничали и конкурировали по задаче. Период выполнения задачи составил примерно 7,5 секунд.
load NIRSData figure plot(tm,NIRSData(:,1)) hold on plot(tm,NIRSData(:,2),'r') legend('Subject 1','Subject 2','Location','NorthWest') xlabel('Seconds') title('NIRS Data') grid on hold off
Получите когерентность вейвлета как функцию времени и частоты. Можно использовать wcoherence
для вывода когерентности вейвлет, преобразования поперечного спектра, масштаба в частоту или масштаба в период, а также конуса влияния. В этом примере функция helper helperPlotCoherence
упакует некоторые полезные команды для графического изображения выходов wcoherence
.
[wcoh,~,F,coi] = wcoherence(NIRSData(:,1),NIRSData(:,2),10,'numscales',16); helperPlotCoherence(wcoh,tm,F,coi,'Seconds','Hz')
На графике вы видите область сильной согласованности в течение периода набора данных около 1 Гц. Это происходит из-за сердечных ритмов двух субъектов. Кроме того, вы видите области сильной когерентности около 0,13 Гц. Это представляет когерентные колебания в мозге субъектов, вызванные задачей. Если более естественно просмотреть когерентность вейвлета с точки зрения периодов, а не частот, можно ввести интервал дискретизации как объект длительности. wcoherence
обеспечивает преобразование масштаба в период.
[wcoh,~,P,coi] = wcoherence(NIRSData(:,1),NIRSData(:,2),seconds(0.1),... 'numscales',16); helperPlotCoherence(wcoh,tm,seconds(P),seconds(coi),... 'Time (secs)','Periods (Seconds)')
Снова обратите внимание на когерентные колебания, соответствующие сердечной активности субъектов, происходящей на протяжении всех записей с периодом приблизительно одну секунду. Активность, связанная с задачей, также очевидна с периодом приблизительно 8 секунд. Для получения более подробного вейвлета анализа этих данных обратитесь к Cui, Bryant, & Reiss [1].
В этом примере вы научились использовать когерентность вейвлета для поиска локализованного во времени когерентного колебательного поведения в двух временных рядах. Для нестационарных сигналов часто более информативно, если у вас есть мера когерентности, которая обеспечивает одновременную информацию времени и частоты (периода). Относительная информация фазы, полученная из поперечного спектра вейвлета, может быть информативной, когда один временные ряды непосредственно влияет на колебания в другом.
В этом примере используется следующая вспомогательная функция.
[1] Cui, X., D. M. Bryant, and A. L. Reiss. «Гиперсканирование на основе NIRS обнаруживает повышенную межличностную когерентность в верхней лобной коре во время сотрудничества». Нейроизображение. Том 59, № 3, 2012, стр. 2430-2437.
[2] Grinsted, A., J. C. Moore, and S. Jevrejeva. Применение поперечного вейвлет и вейвлет к геофизическим временным рядам. Нелинейные процессы в геофизике. Том 11, 2004, стр. 561-566. doi: 10.5194/npg-11-561-2004.
[3] Maraun, D., J. Kurths, and M. Holschneider. Нестационарные Гауссовы процессы в вейвлет области: синтез, оценка и проверка значимости. Физический обзор E. Vol. 75, 2007, pp. 016707 (1) -016707 (14). doi:10.1103/PhysRevE.75.016707.
[4] Торренс, К. и П. Уэбстер. Междекадные изменения в системе ENSO-Monsoon. Журнал климата. Том 12, № 8, 1999, стр. 2679-2690. doi: 10,1175/1520-0442 (1999) 012 < 2679: ICITEM > 2,0 .CO; 2.