wcoherence

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

Синтаксис

wcoh = wcoherence(x,y)
[wcoh,wcs] = wcoherence(x,y)
[wcoh,wcs,period] = wcoherence(x,y,ts)
[wcoh,wcs,f] = wcoherence(x,y,fs)
[wcoh,wcs,f,coi] = wcoherence(___)
[wcoh,wcs,period,coi] = wcoherence(___,ts)
wcoherence(___)

Описание

пример

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

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

пример

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

пример

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

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

пример

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

пример

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

Примеры

свернуть все

Используйте настройки 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);

Вычисление когерентности по умолчанию использует аналитический вейвлет Morlet, 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));
[wcoh,~,period,coi] = wcoherence(x,y,seconds(0.001));

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

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);

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

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

Получите когерентность вейвлета для двух сигналов, задав частоту дискретизации 1 000 Гц. Оба сигнала состоят из двух синусоид (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)

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

Получите преобразование шкалы к частоте вывод в 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);

Определите номер шкал, чтобы сглаживать к 16. Увеличенное сглаживание вызывает уменьшаемое низкочастотное разрешение.

wcoherence(x,y,'NumScalesToSmooth',16);

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

Количество шкал, чтобы сглаживать вовремя и масштабироваться, заданный как положительное целое число. Это значение должно составить меньше чем одну половину общего количества шкал. Функция использует фильтр скользящего среднего значения, чтобы сглаживать через шкалу. Если вы не задаете количество шкал, чтобы сглаживать, значение значений по умолчанию NumScalesToSmooth к количеству речи на октаву. Если ваша когерентность является шумной, можно задать большее значение NumScalesToSmooth, чтобы сглаживать когерентность больше.

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

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

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

свернуть все

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

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

Типы данных: double
Поддержка комплексного числа: Да

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

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

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

Больше о

свернуть все

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

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

Перекрестный спектр вейвлета двух временных рядов, 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)|2S(|Cy(a,b)|2

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

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

Ссылки

[1] Grinsted, A, J., К. Мур и С. Йеврейева. “Приложение перекрестного вейвлета преобразовывает и когерентность вейвлета к геофизическим временным рядам”. Нелинейные Процессы в Геофизике. Издание 11, Выпуск 5/6, 2004, стр 561–566.

[2] Maraun, D., Дж. Кертс и М. Холшнайдер. "Неустановившиеся Гауссовы процессы в области вейвлета: Синтез, оценка и тестирование значения”. Физический E 75 Анализа. 2007, стр 016707-1–016707-14.

[3] Торренс, C. и П. Уэбстер. "Межпроисходящие каждые десять лет изменения в Системе ESNO-муссона". Журнал Климата. Издание 12, 1999, стр 2679–2690.

Смотрите также

| | | | | |

Введенный в R2016a