Переназначение частоты времени и экстракция режима с Synchrosqueezing

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

Во многих практических применениях через широкий спектр дисциплин происходят сигналы, которые состоят из многих колебательных компонентов или режимов. Эти компоненты часто показывают медленные изменения амплитуды и сглаживают изменения в частоте в зависимости от времени. Сигналы, состоящие из одного или нескольких таких компонентов, называются амплитудой, и частота модулировала (AM-FM). Отдельные компоненты AM-FM сигналов также упоминаются как внутренние режимы или внутренние функции режима (IMF).

Вейвлет synchrosqueezing является методом для анализа сигналов, состоящих из суммы хорошо разделенных компонентов AM-FM или IMFs. С synchrosqueezing можно увеличить резкость частотно-временного анализа сигнала, а также восстановить отдельные колебательные режимы для изолированного анализа.

Увеличьте резкость частотно-временного анализа

Synchrosqueezing может компенсировать распространение вовремя и частоту, вызванную линейными преобразованиями как кратковременный Фурье и непрерывный вейвлет преобразовывает (CWT). В CWT вейвлет действует как измерительный прибор входного сигнала. Соответственно, любой анализ частоты времени зависит не только от внутренних свойств частоты времени сигнала, но также и на свойствах вейвлета.

Чтобы продемонстрировать это, сначала получите и постройте CWT квадратичного сигнала щебета. Частота сигнала начинается на уровне приблизительно 500 Гц в t = 0, уменьшается до 100 Гц в t=2 и увеличивается назад до 500 Гц в t=4. Частота дискретизации составляет 1 кГц.

load quadchirp;
fs = 1000;
[cfs,f] = cwt(quadchirp,'bump',fs);
helperCWTTimeFreqPlot(cfs,tquad,f,'surf','CWT of Quadratic Chirp','Seconds','Hz')

Обратите внимание на то, что энергию квадратичного щебета мажет в плоскости частоты времени концентрация частоты времени вейвлета. Например, если вы фокусируетесь на концентрации частоты времени величин CWT около 100 Гц, вы видите, что это является более узким, чем наблюдаемый около 500 Гц. Это не внутреннее свойство щебета. Это - артефакт измерительного прибора (CWT). Сравните частотно-временной анализ того же сигнала, полученного с synchrosqueezed, преобразовывают.

wsst(quadchirp,1000,'bump')

synchrosqueezed преобразовывают, использует информацию о фазе в CWT, чтобы увеличить резкость частотно-временного анализа щебета.

Восстановите сигнал от Synchrosqueezed, преобразовывают

Можно восстановить сигнал от synchrosqueezed, преобразовывают. Это - преимущество synchrosqueezing, имеет по другим методам переназначения частоты времени. Преобразование не обеспечивает совершенную инверсию, но реконструкция устойчива, и результаты обычно довольно хороши. Чтобы продемонстрировать это, загрузку, график, и проигрывать запись женщины-спикера, говорящей, ", Я видел овец".

load wavsheep;
plot(tsh,sheep)
title(' "I saw the sheep." ');
xlabel('Time (secs)'); ylabel('Amplitude');
grid on;
hplayer = audioplayer(sheep,fs);
play(hplayer);

Постройте synchrosqueezed преобразование речевой выборки.

[sst,f] = wsst(sheep,fs,'bump');
contour(tsh,f,abs(sst));
title('Wavelet Synchrosqueezed Transform');
xlabel('Time (secs)'); ylabel('Hz');
grid on;

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

xrec = iwsst(sst,'bump');
plot(tsh,sheep)
hold on;
plot(tsh,sheep,'r');
xlabel('Time (secs)'); ylabel('Amplitude');
grid on;
title('Reconstruction From Synchrosqueezed Transform');
legend('Original Waveform','Synchrosqueezed Reconstruction');
sprintf('The maximum sample-by-sample difference is %1.3f', ...
    norm(abs(xrec-sheep),Inf))
hold off;
ans =

    'The maximum sample-by-sample difference is 0.004'

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

hplayerRecon = audioplayer(xrec,fs);
play(hplayerRecon)

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

Идентифицируйте гребни и восстановите режимы

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

  1. Идентификация гребней в величинах synchrosqueezed преобразовывает

  2. Восстановление вдоль гребня

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

Чтобы проиллюстрировать это, считайте импульс эхолотирования испускаемым большой коричневой битой (Eptesicus Fuscus). Интервал выборки составляет 7 микросекунд. Благодаря Кертису Кондону, Кену Вайту и Аль Фэну из Центра Бекмана в Университете Иллинойса для bat данных и разрешения использовать его в этом примере.

Загрузите данные и постройте synchrosqueezed, преобразовывают.

load batsignal;
time = 0:DT:(numel(batsignal)*DT)-DT;
[sst,f] = wsst(batsignal,1/DT);
contour(time.*1e6,f./1000,abs(sst));
grid on;
xlabel('microseconds'); ylabel('kHz');
title('Bat Echolocation Pulse');

Обратите внимание на то, что существует два модулируемых режима, которые прослеживают изогнутые контуры в плоскости частоты времени. Попытка разделить эти компоненты обычной полосовой фильтрацией не работает, потому что фильтр должен был бы действовать изменяющимся во времени способом. Например, обычный фильтр с полосой пропускания 18 - 40 кГц получил бы энергию в происходящем самым ранним образом импульсе, но также получит энергию от более позднего импульса.

Synchrosqueezing может разделить эти компоненты путем фильтрации, и восстановление synchrosqueezed преобразовывает в изменяющийся во времени способ.

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

[fridge,iridge] = wsstridge(sst,5,f,'NumRidges',2);
hold on;
plot(time.*1e6,fridge./1e3,'k--','linewidth',2);
hold off;

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

xrec = iwsst(sst,iridge);
subplot(2,1,1)
plot(time.*1e6,batsignal); hold on;
plot(time.*1e6,xrec(:,1),'r');
grid on; ylabel('Amplitude');
title('Bat Echolocation Pulse with Reconstructed Modes');
legend('Original Signal','Mode 1','Location','SouthEast');
subplot(2,1,2);
plot(time.*1e6,batsignal); hold on;
grid on;
plot(time.*1e6,xrec(:,2),'r');
xlabel('microseconds'); ylabel('Amplitude');
legend('Original Signal','Mode 2','Location','SouthEast');

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

Термин штрафа на гребенчатой экстракции

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

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

Чтобы продемонстрировать это, рассмотрите двухкомпонентный сигнал, состоящий из амплитудного и модулируемого частотой сигнала плюс синусоида. Сигнал производится на уровне 1 000 Гц. Частота синусоиды составляет 18 Гц. Сигнал AM-FM задан:

$(2+\cos(4\pi t))\sin(2\pi 231t+90\sin(3\pi t))$

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

load multicompsig;
sig = sig1+sig2;
[sst,f] = wsst(sig,sampfreq);
figure;
contour(t,f,abs(sst));
grid on;
title('Synchrosqueezed Transform of AM-FM Signal Plus Sine Wave');
xlabel('Time (secs)'); ylabel('Hz');

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

[fridge,iridge] = wsstridge(sst,f,'NumRidges',2);
hold on;
plot(t,fridge,'k--','linewidth',2);

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

[fridge,iridge] = wsstridge(sst,5,f,'NumRidges',2);
figure;
contour(t,f,abs(sst));
grid on;
title('Synchrosqueezed Transform of AM-FM Signal Plus Sine Wave');
xlabel('Time (secs)'); ylabel('Hz');
hold on;
plot(t,fridge,'k--','linewidth',2);
hold off;

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

xrec = iwsst(sst,iridge);

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

subplot(2,2,1)
plot(t,xrec(:,1)); grid on;
ylabel('Amplitude');
title('Reconstructed Mode');
ylim([-1.5 1.5]);
subplot(2,2,2);
plot(t,sig2); grid on;
ylabel('Amplitude');
title('Original Component');
ylim([-1.5 1.5]);
subplot(2,2,3);
plot(t,xrec(:,2)); grid on;
xlabel('Time (secs)'); ylabel('Amplitude');
title('Reconstructed Mode');
ylim([-1.5 1.5]);
subplot(2,2,4);
plot(t,sig1); grid on;
xlabel('Time (secs)'); ylabel('Amplitude');
title('Original Component');
ylim([-1.5 1.5]);

Заключения

В этом примере вы изучили, как использовать вейвлет synchrosqueezing, чтобы получить частотно-временной анализ более высокого разрешения.

Вы также изучили, как идентифицировать, что гребни максимумов в synchrosqueezed преобразовывают и восстанавливают формы волны времени, соответствующие тем режимам. Экстракция режима от synchrosqueezing преобразовывает, может помочь вам изолировать компоненты сигнала, которые затрудняют или невозможны изолировать с обычной полосовой фильтрацией.

Ссылки

Daubechies, я., Лютеций, J. и Ву, H-T. "Вейвлет Synchrosqueezed преобразовывает: подобный эмпирическому разложению моды инструмент". Прикладной. Comput. Анальная гармоника., 30 (2):243-261, 2011.

Thakur, G., Brevdo, E., Fuckar, Н.С. и Ву H-T. "synchrosqueezing алгоритм для изменяющегося во времени спектрального анализа: свойства робастности и новые приложения палеоклимата". Обработка сигналов, 93 (5), 1079-1094, 2013.

Meignen, S., Оберлин, T. и Мак-Лафлин, S. "Новый алгоритм для многокомпонентного анализа сигналов на основе synchrosqueezing: с приложением, чтобы сигнализировать о выборке и шумоподавлении". Транзакции IEEE на Обработке сигналов, издании 60, № 12, стр 5787-5798, 2012.

Приложение

Следующая функция помощника используется в этом примере.