iwsst

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

Описание

пример

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