Граничные эффекты и конус влияния

Эта тема объясняет конус влияния (COI) и соглашение использование Wavelet Toolbox™, чтобы вычислить его. Тема также объясняет, как интерпретировать COI в графике scalogram, и точно как COI вычисляется в cwtfilterbank и cwt.

Загрузите сигнал сейсмографа землетрясения Кобе. Постройте scalogram сигнала сейсмографа землетрясения Кобе. Данные выбираются на уровне 1 герц.

load kobe
cwt(kobe,1)

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

cwt(kobe,seconds(1))

Ориентация пунктирной белой строки инвертировала вверх тормашками, но строка и теневые области все еще присутствуют.

Белая строка отмечает то, что известно как конус влияния. Конус влияния включает строку и теневую область от ребра строки к частоте (или период) и оси времени. Конус влияния показывает области в scalogram, потенциально затронутом артефактами краевого эффекта. Это эффекты в scalogram, которые являются результатом областей, где расширенные вейвлеты расширяют вне ребер интервала наблюдения. В незаштрихованной области, очерченной белой строкой, вы уверены, что информацией, предоставленной scalogram, является точное представление частоты времени данных. Вне белой строки в теневой области информация в scalogram должна быть обработана как подозреваемый из-за потенциала для краевых эффектов.

CWT импульса в центре

Чтобы начать понимать конус влияния, создайте импульсный сигнал в центре длины 1 024 выборки. Создайте набор фильтров 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);

Используйте функцию помощника helperPlotScalogram для scalogram. Код для 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, которые являются ненулевыми уменьшениями и все больше становятся сосредоточенными на импульсе. Низкие частоты соответствуют вейвлетам более длинной шкалы, в то время как более высокие частоты соответствуют вейвлетам более короткой шкалы. Эффект импульса сохраняется дольше вовремя с более длинными вейвлетами. Другими словами, чем дольше вейвлет, тем дольше длительность влияния сигнала. Для вейвлета, сосредоточенного в определенный момент вовремя, простираясь или уменьшая вейвлет, приводит к вейвлету, "видящему" более или менее сигнала. Это упоминается как конус вейвлета влияния.

Граничные эффекты

Предыдущий раздел иллюстрирует конус влияния за импульс в центре наблюдения или интервал данных. Но что происходит, когда вейвлеты расположены около начала или конца данных? В вейвлете преобразовывают, мы не только расширяем вейвлет, но также и переводим его вовремя. Вейвлеты около начала или конца данных неизбежно "видят" данные вне интервала наблюдения. Различные методы используются, чтобы компенсировать то, что коэффициенты вейвлета около начала и конца данных затронуты вейвлетами, расширяющими вне контура. 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 и областями, где scalogram коэффициенты для 2D импульсного сигнала являются ненулевыми.

В то время как важно понять эти граничные эффекты на интерпретации коэффициентов вейвлета, нет никакого математически точного правила, чтобы определить степень конуса влияния в каждой шкале. Nobach и др. [2] (Wavelet Toolbox) задают степень конуса влияния в каждой шкале как точка, где вейвлет преобразовывает затухания значения к 2% его пикового значения. Поскольку многие вейвлеты, используемые в непрерывном анализе вейвлета, затухают экспоненциально вовремя, Торренс и Композит [3] (Wavelet Toolbox) использование временная константа 1/e формировать рисунок границ конуса влияния в каждой шкале. Для вейвлетов Азбуки Морзе Лилли [1] (Wavelet Toolbox) использует концепцию "места вейвлета", которое является временным интервалом, который охватывает приблизительно 95% энергии вейвлета. Лилли формирует рисунок COI путем добавления 1/2 места вейвлета в начало интервала наблюдения и вычитания 1/2 место от конца интервала в каждой шкале.

cwtfilterbank и функции cwt используют приближение для 1/e управляйте, чтобы формировать рисунок COI. Приближение включает добавление одного стандартного отклонения временного интервала в каждой шкале к началу интервала наблюдения и вычитания одного стандартного отклонения временного интервала в каждой шкале от конца интервала. Прежде чем мы продемонстрируем это соответствие, добавьте вычисленный COI в предыдущий график.

helperPlotScalogram(f,cfs,coi)
title('Scalogram with Cone of Influence')

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

Чтобы показать, как cwtfilterbank и cwt вычисляют это правило явным образом, рассмотрите два примера, один для аналитического вейвлета Morlet и один для значения по умолчанию вейвлет Морзе. Начните с аналитического вейвлета Morlet, где наше одно правило стандартного отклонения временного интервала соглашается точно с выражением складного времени, используемого Торренсом и Композитом [3] (Wavelet Toolbox).

fb = cwtfilterbank('Wavelet','amor');
[~,f,coi] = wt(fb,dirac);

Выражение для COI в Торренсе и Композите 2s где s шкала. Для аналитического вейвлета Morlet в cwtfilterbank и cwt, этим дают:

cf = 6/(2*pi);
predtimes = sqrt(2)*cf./f;

Постройте COI, возвращенный cwtfilterbank наряду с выражением, используемым в Торренсе и Композите.

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

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

Приложения

Функции

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте