exponenta event banner

вес

Непрерывное вейвлет-преобразование с набором фильтров

Описание

пример

cfs = wt(fb,x) возвращает коэффициенты непрерывного вейвлет-преобразования (CWT) сигнала x, использование fb, банк фильтров CWT. x является вектором с реальными или комплексными значениями. x должен иметь не менее 4 образцов. Если x вещественно-значимый, cfs - матрица 2-D, где каждая строка соответствует одной шкале. Размер столбца cfs равна длине x. Если x является комплекснозначным, cfs является массивом 3-D, где первая страница является CWT для положительных шкал (аналитическая часть или компонент против часовой стрелки), а вторая страница является cwt для отрицательных шкал (антианалитическая часть или компонент по часовой стрелке).

[cfs,f] = wt(fb,x) возвращает частоты f соответствующие шкалам (строкам) cfs если SamplingPeriod свойство не указано в банке фильтров CWT fb. Если частота выборки не указана, f находится в циклах/образце.

[cfs,f,coi] = wt(fb,x) возвращает конус влияния coi для CWT. coi находится в тех же единицах, что и f. Если вход x является сложным, coi относится к обеим страницам cfs.

пример

[cfs,f,coi,scalcfs] = wt(fb,x) возвращает коэффициенты масштабирования scalcfs для вейвлет-преобразования. Коэффициенты масштабирования не поддерживаются для ударного импульса.

[cfs,p] = wt(fb,x) возвращает точки p соответствующие шкалам (строкам) cfs если в банке фильтров CWT указан период выборки. p имеет те же единицы и формат, что и период скалярной выборки длительности.

[cfs,p,coi] = wt(fb,x) возвращает конус влияния coi в периодах для CWT. coi - массив длительностей с тем же свойством формата, что и период выборки. Если вход x является сложным, coi относится к обеим страницам cfs.

[cfs,p,coi,scalcfs] = wt(fb,x) возвращает коэффициенты масштабирования scalcfs для вейвлет-преобразования. Коэффициенты масштабирования не поддерживаются для ударного импульса.

Примеры

свернуть все

Загрузите шумный доплеровский сигнал. Создайте банк фильтров CWT, который может быть применен к сигналу.

load noisdopp
fb = cwtfilterbank('SignalLength',numel(noisdopp));

Используйте набор фильтров для получения непрерывного вейвлет-преобразования сигнала.

[cfs,f,coi] = wt(fb,noisdopp);

Постройте график скалограммы CWT, включая конус влияния.

t = 0:numel(noisdopp)-1;
pcolor(t,f,abs(cfs))
shading flat
set(gca,'YScale','log')
hold on
plot(t,coi,'w-','LineWidth',3)
xlabel('Time (Samples)')
ylabel('Normalized Frequency (cycles/sample)')
title('Scalogram')

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

Создайте и постройте график сигнала, дискретизированного на частоте 1000 Гц. Создайте банк фильтров CWT, который может использоваться в сигнале. Поскольку сигнал является периодическим, установите для свойства расширения границы банка фильтров значение 'periodic'.

Fs = 1000;
t = 0:1/Fs:1-1/Fs;
sig = 3*sin(2*pi*20*t) + cos(2*pi*2*t);
fb = cwtfilterbank('SignalLength',length(sig),'SamplingFrequency',Fs,'Boundary','periodic');
plot(t,sig)
xlabel('Time (sec)')
title('Signal')

Figure contains an axes. The axes with title Signal contains an object of type line.

Возьмите CWT сигнала. Возвращает вейвлет и коэффициенты масштабирования.

[cfs,~,~,scalcfs] = wt(fb,sig);

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

xrec0 = icwt(cfs,'SignalMean',mean(sig));
xrec1 = icwt(cfs,'ScalingCoefficients',scalcfs);
plot(t,sig-xrec0)
hold on
plot(t,sig-xrec1)
grid on
legend('Using mean(sig)','Using scalcfs')
title('Difference Between Reconstructions')

Figure contains an axes. The axes with title Difference Between Reconstructions contains 2 objects of type line. These objects represent Using mean(sig), Using scalcfs.

Масштабные коэффициенты приводят к значительно более точной реконструкции. Чтобы исследовать источник резкого улучшения, создайте второй сигнал, состоящий из составляющей 2 Гц исходного сигнала. Сравните коэффициенты масштабирования с сигналом 2 Гц. Коэффициенты масштабирования и сигнал 2 Гц практически идентичны. Использование коэффициентов масштабирования помогает при реконструкции, поскольку компонент 2 Гц не представляется вейвлетом с такой частотой и длиной дискретизации.

figure
sig2hz = cos(2*pi*2*t);
plot(t,sig2hz)
hold on
plot(t,scalcfs)
grid on
title('Comparing Scaling Coefficients with 2 Hz Component')
xlabel('Time (sec)')
legend('2 Hz Component', 'Scaling Coefficients')

Figure contains an axes. The axes with title Comparing Scaling Coefficients with 2 Hz Component contains 2 objects of type line. These objects represent 2 Hz Component, Scaling Coefficients.

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

Загрузить сейсмографические данные, зарегистрированные во время землетрясения в Кобе в 1995 году. Данные являются сейсмографическими (вертикальное ускорение, нм/кв.сек) измерениями, зарегистрированными в Университете Тасмании, Хобарт, Австралия, 16 января 1995 начиная с 20:56:51 (GMT) и продолжающимися в течение 51 минут 1 секундными интервалами. Создайте банк фильтров CWT, который можно применить к данным.

load kobe
fb = cwtfilterbank('SignalLength',numel(kobe),'SamplingFrequency',1);

Используйте cwt и 250 раз возьмем CWT данных. Отображение затраченного времени.

num = 250;
tic;
for k=1:num
    cfs = cwt(kobe);
end
toc
Elapsed time is 6.551628 seconds.

Теперь используйте wt объектная функция банка фильтров для получения CWT данных. Подтвердите, что использование банка фильтров выполняется быстрее.

tic;
for k=1:num
    cfs = wt(fb,kobe);
end
toc
Elapsed time is 3.782376 seconds.

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

свернуть все

Банк фильтров непрерывного вейвлет-преобразования (CWT), указанный как cwtfilterbank объект.

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

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

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

свернуть все

Непрерывное вейвлет-преобразование, возвращаемое как матрица или 3-D массив комплексных значений. Если x вещественно-значимый, cfs - матрица 2-D, где каждая строка соответствует одной шкале. Размер столбца cfs равна длине x. Если x является комплекснозначным, cfs является массивом 3-D, где первая страница является CWT для положительных шкал (аналитическая часть или компонент против часовой стрелки), а вторая страница является CWT для отрицательных шкал (антианалитическая часть или компонент по часовой стрелке).

Частоты, возвращаемые как вектор, соответствующие масштабам (строкам) cfs если 'SamplingPeriod' не указан в fb. Если указана частота выборки, f в герцах. Если частота не указана, f находится в циклах/образце.

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

Периоды, возвращаемые в виде массива длительностей, соответствующих масштабам (строкам) cfs если fb имеет указанный период выборки. p имеет те же единицы и формат, что и период скалярной выборки длительности.

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

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

Дополнительные сведения см. в разделе Граничные эффекты и конус влияния.

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

Коэффициенты масштабирования для вейвлет-преобразования, возвращаемые как вектор с той же длиной, что и x. Если x вещественно-значимый, scalcfs реально ценится. Если x является комплексно-значимым, scalcfs является комплексно-значимым.

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

Совет

  • При первом использовании набора фильтров для определения CWT сигнала вейвлет-фильтры создаются с тем же типом данных, что и сигнал. Предупреждающее сообщение генерируется при применении того же банка фильтров к сигналу с другим типом данных. Изменение типов данных связано со стоимостью перепроектирования или изменения точности набора фильтров. Для обеспечения оптимальной производительности используйте согласованный тип данных.

  • При выполнении нескольких CWT, например, в цикле for, рекомендуется сначала создать cwtfilterbank и затем используйте wt объектная функция. Этот рабочий процесс сводит к минимуму накладные расходы и повышает производительность. См. Использование банка фильтров CWT для нескольких временных рядов.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2018a