Эта тема объясняет конус влияния (COI) и конвенцию, которую Wavelet Toolbox™ использует для его вычисления. Тема также объясняет, как интерпретировать COI в скалограммном графике, и как именно вычисляется COI в cwtfilterbank
и cwt
.
Загрузка сигнала сейсмографа землетрясения Кобе. Постройте график скалограммы сигнала сейсмографа землетрясения Кобе. Данные дискретизированы в 1 герц.
load kobe
cwt(kobe,1)
В сложение к скалограмме график также имеет штриховую белую линию и затененные серые области от ребра белой линии до осей времени и частоты. Постройте график тех же данных с использованием интервала дискретизации вместо частоты дискретизации. Теперь скалограмма отображается в периодах вместо частоты.
cwt(kobe,seconds(1))
Ориентация штриховой белой линии перевернулась, но линия и затененные области все еще присутствуют.
Белая линия помечает то, что известно как конус влияния. Конус влияния включает линию и затененную область от ребра линии до частоты (или периода) и временных осей. Конус влияния показывает области в скалограмме, потенциально затронутые программными продуктами эффекта края. Это эффекты в скалограмме, которые возникают из областей, где растянутые вейвлеты проходят за ребра интервала наблюдения. В незакрашенной области, очерченной белой линией, вы уверены, что информация, предоставленная скалограммой, является точным частотно-временным представлением данных. За пределами белой линии в затененной области информация в скалограмме должна рассматриваться как подозрительная из-за потенциала ребро эффектов.
Чтобы начать понимать конус влияния, создайте центрированный импульсный сигнал длины 1024 выборки. Создайте банк фильтров CWT с помощью cwtfilterbank
со значениями по умолчанию. Использование wt
для возврата коэффициентов CWT и частот импульса. Для лучшей визуализации нормализуйте коэффициенты CWT так, чтобы максимальное абсолютное значение на каждой частоте (для каждой шкалы) равнялось 1.
x = zeros(1024,1); x(512) = 1; fb = cwtfilterbank; [cfs,f] = wt(fb,x); cfs = cfs./max(cfs,[],2);
Используйте функцию helper helperPlotScalogram
на скалограмму. Код для helperPlotFunction
находится в конце этого примера. Отметьте местоположение импульса линией.
ax = helperPlotScalogram(f,cfs); hl = line(ax,[512 512],[min(f) max(f)],... [max(abs(cfs(:))) max(abs(cfs(:)))]); title('Scalogram of Centered Impulse')
Сплошная черная линия показывает положение импульса во времени. Обратите внимание, что когда частота уменьшается, ширина коэффициентов CWT во времени, которые являются ненулевыми и центрированы на импульсе, увеличивается. И наоборот, когда частота увеличивается, ширина коэффициентов CWT, которые ненулевые, уменьшается и становится все более центрированной на импульсе. Низкие частоты соответствуют вейвлетам большей шкалы, в то время как более высокие частоты соответствуют вейвлетам меньшей шкалы. Эффект импульса сохраняется дольше во времени с более длинными вейвлетами. Другими словами, чем больше вейвлет, тем больше длительность влияния сигнала. Для вейвлета, центрированного в определенный момент времени, растяжение или усадка вейвлета приводит к тому, что вейвлет «видит» больше или меньше сигнала. Это упоминается как конус влияния вейвлета.
Предыдущий раздел иллюстрирует конус влияния для импульса в центре наблюдения или интервала данных. Но что происходит, когда вейвлеты расположены вблизи начала или конца данных? При вейвлет-преобразовании мы не только расширяем вейвлет, но и переводим его во времени. Вейвлеты около начала или конца данных неизбежно «видят» данные за пределами интервала наблюдения. Различные методы используются, чтобы компенсировать тот факт, что вейвлет-коэффициенты около начала и конца данных затрагиваются вейвлетами, проходящими вне контура. The cwtfilterbank
и cwt
функции предлагают опцию обработки контуров путем симметричного отражения сигнала или периодического его расширения. Однако, независимо от того, какой метод используется, вы должны проявлять осторожность при интерпретации коэффициентов вейвлета вблизи контуров, потому что коэффициенты вейвлета зависят от значений, выходящих за пределы сигнала под фактор. Кроме того, степень коэффициентов вейвлета, на которые влияют данные за пределами интервала наблюдения, зависит от шкалы (частоты). Чем больше шкала, тем больше конус влияния.
Повторите пример импульса, но поместите два импульса, один в начале данных и один в конце. Также вернём конус влияния. Для лучшей визуализации нормализуйте коэффициенты CWT так, чтобы максимальное абсолютное значение на каждой частоте (для каждой шкалы) равнялось 1.
dirac = zeros(1024,1);
dirac([1 1024]) = 1;
[cfs,f,coi] = wt(fb,dirac);
cfs = cfs./max(cfs,[],2);
helperPlotScalogram(f,cfs)
title('Scalogram of Two-Impulse Signal')
Здесь ясно, что конус влияния на крайние контуры интервала наблюдений простирается в интервал до степени, которая зависит от шкалы вейвлета. Поэтому коэффициенты вейвлета, хорошо находящиеся в интервале наблюдения, могут быть затронуты данными, которые вейвлет видит на контурах сигнала или даже перед фактическими контурами сигнала, если вы расширяете сигнал каким-либо образом.
На предыдущем рисунке вы уже должны увидеть поразительное сходство между конусом влияния, возвращаемым cwtfilterbank
или нанесенный на график cwt
функция и области, где коэффициенты скалограммы для двухимпульсного сигнала ненулевые.
Хотя важно понимать эти краевые эффекты на интерпретацию вейвлета коэффициентов, нет математически точного правила для определения степени влияния конуса в каждой шкале. Nobach et al. [2] задайте степень конуса влияния в каждой шкале как точку, где вейвлет преобразования величины распадается до 2% от его пикового значения. Поскольку многие вейвлеты, используемые в непрерывном вейвлет-анализе, распадаются экспоненциально во времени, Торренс и Компо [3] используют постоянную времени разграничение границ конуса влияния в каждой шкале. Для вейвлетов Морса Лилли [1] использует концепцию «следа волны», которая является временным интервалом, который охватывает приблизительно 95% энергии вейвлета. Лилли определяет COI путем добавления 1/2 следа вейвлет к началу интервала наблюдения и вычитания 1/2 следа из конца интервала в каждой шкале.
The cwtfilterbank
и cwt
функции используют приближение к правило для разграничения COI. Приближение включает добавление одного стандартного отклонения во временной области в каждой шкале к началу интервала наблюдения и вычитание одного стандартного отклонения во временной области в каждой шкале из конца интервала. Прежде чем мы покажем это соответствие, добавьте вычисленный COI к предыдущему графику.
helperPlotScalogram(f,cfs,coi)
title('Scalogram with Cone of Influence')
Вы видите, что вычисленный COI является хорошим приближением к контурам значимых эффектов импульса в начале и конце сигнала.
Чтобы показать, как cwtfilterbank
и cwt
вычислите это правило явно, рассмотрим два примера, один для аналитического вейвлета Морле и один для вейвлета Морса по умолчанию. Начнем с аналитического вейвлета Морле, где наше правило стандартного отклонения в одной временной области согласуется в точности с выражением времени складывания, используемого Torrence и Compo [3].
fb = cwtfilterbank('Wavelet','amor'); [~,f,coi] = wt(fb,dirac);
Выражение COI в Torrence и Compo является где - шкала. Для аналитического вейвлета Морле в cwtfilterbank
и cwt
, это определяется:
cf = 6/(2*pi); predtimes = sqrt(2)*cf./f;
Постройте график COI, возвращенный cwtfilterbank
наряду с выражением, используемым в Torrence и Compo.
plot(1:1024,coi,'k--','linewidth',2) hold on grid on plot(predtimes,f,'r*') plot(1024-predtimes,f,'r*') set(gca,'yscale','log') axis tight legend('COI','Predicted COI','Location','best') xlabel('Samples') ylabel('Hz') title('Cone of Influence - Analytic Morlet Wavelet')
В последнем примере показано то же соответствие для вейвлет Морса по умолчанию в cwtfilterbank
и cwt
. Стандартное отклонение вейвлета Морса по умолчанию во временной области составляет 5,5008, а пиковая частота - 0,2995 циклов/выборка. Используйте центральные частоты вейвлет фильтров, а также правило стандартного отклонения во временной области, чтобы получить предсказанный COI и сравнить со значениями, возвращаемыми cwtfilterbank
.
fb = cwtfilterbank; [~,f,coi] = wt(fb,dirac); sd = 5.5008; cf = 0.2995; predtimes = cf./f*sd; figure plot(1:1024,coi,'k--','linewidth',2) hold on grid on plot(predtimes,f,'r*') plot(1024-predtimes,f,'r*') set(gca,'yscale','log') axis tight legend('COI','Predicted COI','Location','best') xlabel('Samples') ylabel('Hz') title('Cone of Influence - Default Morse Wavelet')
В этом примере используется следующая вспомогательная функция.
helperPlotScalogram
function varargout = helperPlotScalogram(f,cfs,coi) nargoutchk(0,1); ax = newplot; surf(ax,1:1024,f,abs(cfs),'EdgeColor','none') ax.YScale = 'log'; caxis([0.01 1]) colorbar grid on ax.YLim = [min(f) max(f)]; ax.XLim = [1 size(cfs,2)]; view(0,90) xlabel('Time') ylabel('Cycles/Sample') if nargin == 3 hl = line(ax,1:1024,coi,ones(1024,1)); hl.Color = 'k'; hl.LineWidth = 2; end if nargout > 0 varargout{1} = ax; end end
[1] Lilly, J. M «. Element analysis: a wavelet-based method for analysing time-localized events in шумные временные ряды». Труды Королевского общества А. Том 473:20160776, 2017, стр. 1-28. dx.doi.org/10.1098/rspa.2016.0776.
[2] Nobach, H., Tropea, C., Cordier, L., Bonnet, J. P., Delville, J., Lewalle, J., Farge, M., Schneider, K., and R. J. Adrian. «Обзор некоторых основ обработки данных». Springer Handbook of Experimental Fluid Mechanics (C. Tropea, A. L. Yarin, and J. F. Foss, eds.). Берлин, Гейдельберг: Springer, 2007, pp. 1337-1398.
[3] Торренс, С. и Г. Компо. Практическое руководство по Вейвлету анализу. Бюллетень Американского метеорологического общества. Том 79, № 1, 1998, стр. 61-78.
cwt
| cwtfilterbank
| pspectrum
(Signal Processing Toolbox)