wcoherence

Когерентность вейвлета и поперечный спектр

Описание

пример

wcoh = wcoherence(x,y) возвращает квадратную амплитуду когерентности вейвлета, которая является мерой корреляции между сигналами x и y в частотно-временной плоскости. Когерентность вейвлета полезна для анализа нестационарных сигналов. Входы x и y должны быть равной длины, 1-D, реальные сигналы. Когерентность вычисляется с помощью аналитического вейвлета Морле.

[wcoh,wcs] = wcoherence(x,y) возвращает вейвлет спектр x и y. Можно использовать фазу значений поперечного спектра вейвлета, чтобы идентифицировать относительную задержку между входными сигналами.

пример

[wcoh,wcs,period] = wcoherence(x,y,ts) использует положительный duration ts в качестве интервала дискретизации. Длительность ts используется для вычисления преобразования шкалы в период, period. Массив длительности period имеет тот же формат, что и указанный в ts.

пример

[wcoh,wcs,f] = wcoherence(x,y,fs) использует положительную частоту дискретизации, fs, для вычисления преобразования масштаба в частоту, f. Частота дискретизации fs находится в Гц.

[wcoh,wcs,f,coi] = wcoherence(___) возвращает конус влияния, coi, для когерентности вейвлет в циклах на выборку. Если вы задаете частоту дискретизации, fs, конус влияния находится в Гц.

пример

[wcoh,wcs,period,coi] = wcoherence(___,ts) возвращает конус влияния, coi, в циклах в единицу времени.

[___,coi,wtx,wty] = wcoherence(___) возвращает непрерывные вейвлет (CWT) x и y в wtx, wty, соответственно. wtx и wty используются в формировании поперечного спектра вейвлет и оценках когерентности.

[___] = wcoherence(___,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение". Этот синтаксис может использоваться в любом из предыдущих синтаксисов.

пример

wcoherence(___) без выходных аргументов строит графики когерентности вейвлет и конуса влияния на текущей фигуре. Из-за обратной зависимости между частотой и периодом график, который использует интервал дискретизации, является обратным графику, который использует частоту дискретизации. Для областей, где когерентность превышает 0,5, графики, которые используют стрелы отображения частоты дискретизации, чтобы показать задержку фазы y относительно x. Стрелы разнесены во времени и шкале. Направление стрел соответствует задержке фазы на окружности модуля. Для примера вертикальная стрела указывает на задержку в фазе Соответствующая задержка во времени зависит от длительности цикла.

Примеры

свернуть все

Используйте wcoherence по умолчанию настройки для получения когерентности вейвлета между синусоидой со случайным шумом и частотно-модулированным сигналом с уменьшением частоты с течением времени.

t  = linspace(0,1,1024);
x = -sin(8*pi*t) + 0.4*randn(1,1024);
x = x/max(abs(x));
y = wnoise('doppler',10);
wcoh = wcoherence(x,y);

По умолчанию расчет когерентности использует аналитический вейвлет Морле, 12 голосов на октаву и сглаживает 12 шкал. Число октав по умолчанию равно floor(log2(numel(x)))-1, что в данном случае составляет 9.

Получите данные когерентности вейвлета для двух сигналов, задав интервал дискретизации 0,001 секунды. Оба сигнала состоят из двух синусоид (10 Гц и 50 Гц) в белом шуме. Синусоиды имеют различные временные поддержки.

Установите генератор случайных чисел в настройки по умолчанию для воспроизводимости. Затем создайте два сигнала.

rng default;
t = 0:0.001:2;
x = cos(2*pi*10*t).*(t>=0.5 & t<1.1)+ ...
cos(2*pi*50*t).*(t>= 0.2 & t< 1.4)+0.25*randn(size(t));
y = sin(2*pi*10*t).*(t>=0.6 & t<1.2)+...
sin(2*pi*50*t).*(t>= 0.4 & t<1.6)+ 0.35*randn(size(t));
subplot(2,1,1)
plot(t,x)
title('X')
subplot(2,1,2)
plot(t,y)
title('Y')
xlabel('Time (seconds)')

Figure contains 2 axes. Axes 1 with title X contains an object of type line. Axes 2 with title Y contains an object of type line.

Получите когерентность двух сигналов.

[wcoh,~,period,coi] = wcoherence(x,y,seconds(0.001));

Используйте pcolor команда для построения графика когерентности и конуса влияния.

figure
period = seconds(period);
coi = seconds(coi);
h = pcolor(t,log2(period),wcoh);
h.EdgeColor = 'none';
ax = gca;
ytick=round(pow2(ax.YTick),3);
ax.YTickLabel=ytick;
ax.XLabel.String='Time';
ax.YLabel.String='Period';
ax.Title.String = 'Wavelet Coherence';
hcol = colorbar;
hcol.Label.String = 'Magnitude-Squared Coherence';
hold on;
plot(ax,t,log2(coi),'w--','linewidth',2)

Figure contains an axes. The axes with title Wavelet Coherence contains 2 objects of type surface, line.

Использование wcoherence(x,y,seconds(0.001)) без каких-либо выходов аргументов. Этот график включает стрелы фазы и конус влияния.

wcoherence(x,y,seconds(0.001));

Figure contains an axes. The axes with title Wavelet Coherence contains 242 objects of type image, line, patch.

Получите когерентность вейвлета для двух сигналов, задавая частоту дискретизации 1000 Гц. Оба сигнала состоят из двух синусоид (10 Гц и 50 Гц) в белом шуме. Синусоиды имеют различные временные поддержки.

Установите генератор случайных чисел в настройки по умолчанию для воспроизводимости и создайте два сигнала.

rng default
t = 0:0.001:2;
x = cos(2*pi*10*t).*(t>=0.5 & t<1.1)+...
    cos(2*pi*50*t).*(t>= 0.2 & t< 1.4)+0.25*randn(size(t));
y = sin(2*pi*10*t).*(t>=0.6 & t<1.2)+...
    sin(2*pi*50*t).*(t>= 0.4 & t<1.6)+ 0.35*randn(size(t));

Получите когерентность вейвлета. График когерентности перевернут относительно графика в предыдущем примере, который задает интервал дискретизации вместо частоты дискретизации.

wcoherence(x,y,1000)

Figure contains an axes. The axes with title Wavelet Coherence contains 242 objects of type image, line, patch.

Получите выход преобразования масштаба в частоту в f.

[wcoh,wcs,f] = wcoherence(x,y,1000);

Получите когерентность вейвлета для двух сигналов. Оба сигнала состоят из двух синусоид (10 Гц и 50 Гц) в белом шуме. Используйте количество шкал по умолчанию для сглаживания. Это значение эквивалентно количеству голосов на октаву. Оба значения по умолчанию равны 12.

Установите генератор случайных чисел в настройки по умолчанию для воспроизводимости. Затем создайте два сигнала и получите когерентность.

rng default;
t = 0:0.001:2;
x = cos(2*pi*10*t).*(t>=0.5 & t<1.1)+ ...
cos(2*pi*50*t).*(t>= 0.2 & t< 1.4)+0.25*randn(size(t));
y = sin(2*pi*10*t).*(t>=0.6 & t<1.2)+...
sin(2*pi*50*t).*(t>= 0.4 & t<1.6)+ 0.35*randn(size(t));
wcoherence(x,y)

Figure contains an axes. The axes with title Wavelet Coherence contains 242 objects of type image, line, patch.

Установите количество шкал равным 18. Увеличение сглаживания приводит к снижению низкого разрешения частоты.

wcoherence(x,y,'NumScalesToSmooth',18)

Figure contains an axes. The axes with title Wavelet Coherence contains 242 objects of type image, line, patch.

Сравните эффекты использования различных порогов отображения фазы на когерентности вейвлета.

Постройте график вейвлета когерентности между временными рядами Эль-Нино и Всеиндийским индексом Среднего значения осадков. Данные отбираются ежемесячно. Укажите интервал дискретизации как 1/12 года, чтобы отобразить периоды в годах. Используйте порог отображения фазы по умолчанию 0,5, который показывает стрелы фазы только там, где когерентность больше или равна 0,5.

load ninoairdata;
wcoherence(nino,air,years(1/12));

Figure contains an axes. The axes with title Wavelet Coherence contains 190 objects of type image, line, patch.

Установите порог отображения фазы равным 0,7. Количество стрел фазы уменьшается.

wcoherence(nino,air,years(1/12),'PhaseDisplayThreshold',0.7);

Figure contains an axes. The axes with title Wavelet Coherence contains 61 objects of type image, line, patch.

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

свернуть все

Входной сигнал, заданный как вектор вещественных значений. x должен быть 1-D, реальным сигналом. Два входных сигналов, x и y, должна быть одинаковой длины и должна иметь не менее четырех выборки.

Входной сигнал, заданный как вектор вещественных значений. y должен быть 1-D, реальным сигналом. Два входных сигналов, x и y, должна быть одинаковой длины и должна иметь не менее четырех выборки.

Интервал дискретизации, также известный как период дискретизации, задается как duration с положительным скалярным входом. Допустимые длительности: years, days, hours, seconds, и minutes. Вы также можете использовать duration функция для задания ts. Вы не можете использовать календарные длительности (caldays, calweeks, calmonths, calquarters, или calyears).

Вы не можете задать обе частоты дискретизации fs и период дискретизации ts.

Частота дискретизации, заданная как положительная скалярная величина.

Если вы задаете fs как пустой, wcoherence использует нормированную частоту в циклах/выборке. Частота Найквиста ½.

Вы не можете задать обе частоты дискретизации fs и период дискретизации ts.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'PhaseDisplayThreshold',0.7; задает порог для отображения векторов фазы.

Пределы частоты для использования в wcoherence, заданный как двухэлементный вектор с положительными строго увеличивающимися элементами. Первый элемент задает самую низкую пиковую частоту полосы пропускания и должен быть больше или равен продукту пиковой частоты вейвлета в герце и двум временным стандартным отклонениям, разделенным на длину сигнала. Второй элемент задает самую высокую пиковую частоту полосы пропускания и должен быть меньше или равен частоте Найквиста. Основа 2 отношения максимальной частоты к минимальной частоте должен быть больше или равен 1/NV где NV - количество голосов на октаву.

Если вы задаете пределы частоты вне допустимой области значений, wcoherence обрезает пределы до минимального и максимального допустимых значений. Использовать cwtfreqbounds с набором вейвлет, равным 'amor' для определения пределов частоты для различных параметризаций когерентности вейвлета.

Пример: 'FrequencyLimits',[0.1 0.3]

Пределы периода для использования в wcoherence, заданный как двухэлементный массив длительности со строго увеличивающимися положительными элементами. Первый элемент должен быть больше или равен 2 × ts где ts - период дискретизации. Основа 2 отношения минимального периода к максимальному периоду должен быть меньше или равен -1/NV где NV - количество голосов на октаву. Максимальный период не может превысить длину сигнала, разделенную на продукт двух временных стандартных отклонений вейвлет и пиковой частоты вейвлета.

Если вы задаете пределы периода вне допустимой области значений, wcoherence обрезает пределы до минимального и максимального допустимых значений. Использовать cwtfreqbounds с набором вейвлет, равным 'amor' для определения пределов периода для различных параметризаций когерентности вейвлета.

Пример: 'PeriodLimits',[seconds(0.2) seconds(1)]

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

Количество голосов на октаву для использования в когерентности вейвлета, заданное в виде четного целого числа от 10 до 32.

Количество шкал для сглаживания во времени и масштабе, заданное как положительное целое число, меньше или равное одной половине N, где N количество шкал в вейвлет. Если не задано, NumScalesToSmooth по умолчанию равен минимуму floor(N/2) и VoicesPerOctave. Функция использует фильтр скользящего среднего для сглаживания по шкале. Если ваша когерентность шумная, можно задать большую NumScalesToSmooth значение для большего сглаживания когерентности.

Количество октав для использования в когерентности вейвлета, заданное как положительное целое число между 1 и floor(log2(numel(x)))-1. Если вам не нужно исследовать более низкие значения частоты, используйте меньшую NumOctaves значение.

The 'NumOctaves' пары "имя-значение" не рекомендуется и будет удалена в следующем релизе. Рекомендуемый способ изменения частоты или периодической области значений когерентности вейвлета - это 'FrequencyLimits' или 'PeriodLimits' Пары "имя-значение". Вы не можете задать оба 'NumOctaves' и 'FrequencyLimits' или 'PeriodLimits' Пары "имя-значение". Посмотрите cwtfreqbounds.

Порог для отображения векторов фазы, заданное как действительный скаляр между 0 и 1. Эта функция отображает векторы фазы для областей с когерентностью, большей или равной заданному пороговому значению. Понижение порогового значения отображает больше векторов фазы. Если вы используете wcoherence с любыми выходными аргументами, PhaseDisplayThreshold значение проигнорировано.

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

свернуть все

Вейвлет когерентности, возвращается как матрица. Когерентность вычисляется с помощью аналитического вейвлета Морле по логарифмическим шкалам со значением по умолчанию 12 голосов на октаву. Число октав по умолчанию равно floor(log2(numel(x)))-1. Если вы не задаете интервал дискретизации, принимается частота дискретизации.

Вейвлет-кросс-спектр, возвращается как матрица комплексных чисел. Можно использовать фазу значений поперечного спектра вейвлета, чтобы идентифицировать относительную задержку между входными сигналами.

Преобразование масштаба в период, возвращенное как массив длительностей. Значения преобразования вычисляются из периода дискретизации, указанного в ts. Каждый period элемент имеет тот же формат, что и ts.

Масштабное преобразование в частоту, возвращаемое как вектор. Вектор содержит пиковые значения частоты для вейвлетов, используемых для вычисления когерентности. Если вы хотите вывести f, но не задайте частотный вход дискретизации, fsвозвращенная когерентность вейвлет находится в циклах на выборку.

Конус влияния на когерентность вейвлета, возвращенный как массив типа double или массив длительностей. Конус влияния указывает, где эффекты ребра происходят в данных когерентности. Если вы задаете частоту дискретизации, fs, конус влияния находится в Гц. Если вы задаете интервал или период дискретизации, ts, конус влияния в периоды. Из-за эффектов ребра придайте меньше достоверности областям с кажущейся высокой когерентностью, которые находятся снаружи или перекрывают конус влияния. Конус влияния обозначается штриховой линией.

Для получения дополнительной информации см. «Граничные Эффекты и конус влияния».

Непрерывное вейвлет x, возвращается как матрица.

Непрерывное вейвлет y, возвращается как матрица.

Подробнее о

свернуть все

Поперечный спектр вейвлета

Вейвлет является мерой распределения степени двойки сигналов.

Вейвлет спектр двух временных рядов, x и y, является:

Cxy(a,b)=S(Cx*(a,b)Cy(a,b))

Cx(a,b) и Cy(a,b) обозначают непрерывные вейвлеты x и y в шкалах a и положениях b. Надстрочный * является комплексным сопряженным, а S - оператором сглаживания во времени и шкале.

Для реальных временных рядов поперечный спектр вейвлета является реальным, если вы используете реальный анализирующий вейвлет, и комплексным, если вы используете комплексный анализирующий вейвлет.

Когерентность вейвлета

Когерентность вейвлета является мерой корреляции между двумя сигналами.

Вейвлет двух временных рядов x и y является:

|S(Cx*(a,b)Cy(a,b))|2S(|Cx(a,b)|2)·S(|Cy(a,b)|2)

Cx(a,b) и Cy(a,b) обозначают непрерывные вейвлеты x и y в шкалах a и положениях b. Верхний * является комплексным сопряженным, а S является оператором сглаживания во времени и шкале.

Для реальных временных рядов когерентность вейвлета является реальной, если вы используете реальный анализирующий вейвлет, и комплексной, если вы используете комплексный анализирующий вейвлет.

Вопросы совместимости

расширить все

Не рекомендуемый запуск в R2020a

Ссылки

[1] Grinsted, A, J., C. Moore, and S. Jevrejeva. Применение поперечного вейвлет и вейвлет к геофизическим временным рядам. Нелинейные процессы в геофизике. Том 11, Выпуск 5/6, 2004, стр. 561-566.

[2] Maraun, D., J. Kurths, and M. Holschneider. Нестационарные Гауссовы процессы в вейвлет области: Синтез, оценка и проверка значимости. Физический обзор E 75. 2007, с. 016707-1-016707-14.

[3] Торренс, К. и П. Уэбстер. Междекадные изменения в системе ESNO-Monsoon. Журнал климата. Том 12, 1999, стр. 2679-2690.

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

.

См. также

| |

Введенный в R2016a