iwsst

Обратный вейвлет synchrosqueezed преобразовывает

Синтаксис

xrec = iwsst(sst)
xrec = iwsst(sst,f,freqrange)
xrec = iwsst(sst,iridge)
xrec = iwsst(___,wav)
xrec = iwsst(___,iridge,'NumFrequencyBins',numBins)

Описание

пример

xrec = iwsst(sst) инвертирует вход synchrosqueezed, преобразовывают, sst, и возвращает инверсию в векторном xrec. Чтобы получить вход sst, используйте функцию wsst. Функция iwsst принимает, что вы получаете sst с помощью аналитического вейвлета Morlet.

Примечание

Вейвлет преобразовывает, не сохраняет ненулевое среднее значение. После инвертирования synchrosqueezed преобразовывают, необходимо добавить назад исходное среднее значение сигнала.

пример

xrec = iwsst(sst,f,freqrange) инвертирование synchrosqueezed преобразовывает для заданной области значений частот, freqrange, содержавшегося в векторе частоты, f. Вектором частоты, f, является вывод wsst.

пример

xrec = iwsst(sst,iridge) инвертирование synchrosqueezed преобразовывает вдоль гребней частоты времени, заданных iridge, вектором столбца индекса. iridge является вывод wsstridge. xrec вывод одного размера как iridge.

пример

xrec = iwsst(___,wav) использование аналитический вейвлет, заданный wav, чтобы инвертировать synchrosqueezed, преобразовывает. Этот вейвлет должен быть тем же вейвлетом, как используется в wsst. Можно включать любой из входных параметров от предыдущих синтаксисов.

пример

xrec = iwsst(___,iridge,'NumFrequencyBins',numBins) возвращается инверсия synchrosqueezed преобразовывают с numBins - много дополнительных интервалов частоты, включенных по обе стороны от каждого индексного интервала iridge.

Примеры

свернуть все

Получите вейвлет synchrosqueezed преобразование квадратичного щебета с помощью значений по умолчанию. Затем восстановите сигнал с помощью обратного вейвлета synchrosqueezed, преобразовывают.

load quadchirp;
sst = wsst(quadchirp);
xrec = iwsst(sst);

Получите вейвлет synchrosqueezed преобразование квадратичного щебета, выбранного на уровне 1 000 Гц. Затем восстановите щебет.

Загрузите щебет и получите synchrosqueezed, преобразовывают.

load quadchirp;
sstchirp = wsst(quadchirp,'ExtendSignal',true);

Извлеките максимальный энергетический гребень частоты времени и восстановите режим сигнала вдоль гребня.

[~,iridge] = wsstridge(sstchirp);
xrec = iwsst(sstchirp,iridge);

Постройте и увеличьте масштаб исходного и восстановленного сигнала.

plot(tquad,xrec,'r');
hold on;
plot(tquad,quadchirp,'b--');
xlabel('Time'); ylabel('Amplitude');
set(gca,'ylim',[-1.5 1.5]);
legend('Reconstruction','Original');
grid on;
title('Reconstruction of Chirp Along Maximum Time-Frequency Ridge');
zoom xon
zoom(50)

Получите инверсию synchrosqueezed, преобразовывают для заданного частотного диапазона двухкомпонентного сигнала. Вход является комбинацией модулируемого амплитудой и модулируемого частотой сигнала.

Создайте сигнал.

t = 0:0.001:0.1;
x1 = (2+0.5*cos(2*pi*10*t)).*cos(2*pi*200*t+10*sin(2*pi*5*t));
x2 = cos(2*pi*50*t);
sig = x1+x2;

Получите вейвлет synchrosqueezed, преобразовывают и строят получившиеся две частотных составляющие.

[sst,f] = wsst(sig,1000,'ExtendSignal',true);
contour(t,f,abs(sst));
grid on;
title('Wavelet Synchrosqueezed Transform');
ylabel('Frequency');
xlabel('Time');
hold on
plot(t,140*ones(size(t)),'r--');
plot(t,260*ones(size(t)),'r--');

Получите инверсию synchrosqueezed, преобразовывают для частот от 140 Гц до 260 Гц. Постройте результат.

xrec = iwsst(sst,f,[140,260]);
subplot(2,1,1);
plot(t,x1);
title('Original Signal');
subplot(2,1,2);
plot(t,xrec,'r');
title('Reconstructed Signal');

Получите вейвлет synchrosqueezed, преобразовывают и инверсия synchrosqueezed преобразование речевой выборки использование вейвлета удара.

Загрузите речь, сигнализируют и получают synchrosqueezed, преобразовывают, и инверсия synchrosqueezed преобразовывают.

load mtlb
dt = 1/Fs;
t = 0:dt:numel(mtlb)*dt-dt;
Txmtlb = wsst(mtlb,'bump');
xrec = iwsst(Txmtlb,'bump');

Получите L-норму-бесконечности различия между исходной формой волны и реконструкцией. Постройте график результатов.

Linf = norm(abs(mtlb-xrec),Inf);
plot(t,mtlb)
hold on
xlabel('Seconds')
ylabel('Amplitude')
plot(t,xrec,'r')
title({'Reconstruction of Wavelet Synchrosqueezed Transform';...
    ['Largest Absolute Difference: ' num2str(Linf,'%1.2f')]})

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

load quadchirp;
sstchirp = wsst(quadchirp,'ExtendSignal',true);

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

[~,iridge] = wsstridge(sstchirp);
xrec = iwsst(sstchirp,iridge,'NumFrequencyBins',10);

Постройте исходный и восстановленный сигнал.

plot(tquad,xrec,'r');
hold on;
plot(tquad,quadchirp,'b--');
xlabel('Time'); ylabel('Amplitude');
set(gca,'ylim',[-1.5 1.5]);
legend('Reconstruction','Original');
grid on;
title('Reconstruction of Chirp Along Maximum Time-Frequency Ridge');

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

свернуть все

Synchrosqueezed преобразовывают, заданный как матрица. sst является вывод от функции wsst.

Synchrosqueezed преобразовывают частоты, соответствующие строкам synchrosqueezed, преобразовывают, заданный как вектор. Число элементов в векторе частоты равно количеству строк во входе sst. Если вы задаете f, необходимо также задать freqrange.

Частотный диапазон, для которого можно возвратить инверсию synchrosqueezed, преобразовывает значения, заданные как двухэлементный вектор. Значения freqrange должны быть в области значений значений частот, f. Первые и вторые элементы freqrange задают запуск и конец частотного диапазона, где значения частоты в той области значений должны быть положительными и строго увеличиться. Если вы задаете freqrange, необходимо также задать f.

Индексы строки гребня частоты времени synchrosqueezed преобразовывают заданный как вектор или матрица. iridge является вывод функции wsstridge. Если iridge является матрицей, инвертирование iwsst, synchrosqueezed преобразовывают вдоль первого столбца iridge. Затем это итеративно восстанавливает вдоль последующих столбцов iridge. Размеры iridge и xrec вывод являются тем же самым.

Аналитический вейвлет раньше вычислял инверсию synchrosqueezed, преобразовывают, заданный как одно из следующего:

  • 'amor' — Аналитический вейвлет Morlet

  • 'bump' — Ударьте вейвлет

Необходимо использовать тот же вейвлет в реконструкции, что вы раньше вычисляли synchrosqueezed, преобразовывают, sst.

Количество дополнительных интервалов частоты, чтобы включать по обе стороны от каждого iridge индексирует интервал, заданный как положительное целое число. Если количество дополнительных интервалов превышает количество интервалов частоты, доступных на шаге определенного времени, iwsst обрезает реконструкцию в первом или последнем интервале частоты. Значением по умолчанию, 16, является одна половина количества по умолчанию речи на октаву.

Чтобы задать этот аргумент, вы также задаете iridge, который является выводом wsstridge. Вы не можете включать частоту f и частотный диапазон freqrange, если вы включаете количество интервалов частоты.

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

свернуть все

Инверсия synchrosqueezed преобразовывает, возвращенный как вектор или матрица. Если вы не задаете вход iridge, xrec является вектор-столбцом с одинаковым числом строк как sst. Если вы задаете вход iridge, xrec одного размера как iridge.

Ссылки

[1] Daubechies, я., Дж. Лу и Х. Т. Ву. "Преобразования Вейвлета Synchrosqueezed: Эмпирический Режим подобный Разложению Инструмент". Примененный и Вычислительный Гармонический Анализ, Издание 30, Номер 2, 2011, стр 243–261.

[2] Thakur, G., Э. Бревдо, N. S. Fučkar и Х. Т. Ву. "Алгоритм Synchrosqueezing для изменяющегося во времени спектрального анализа: свойства робастности и новые приложения палеоклимата". Обработка сигналов, Издание 93, Номер 5, 2013, стр 1079–1094.

Введенный в R2016a