wsstridge

Гребни частоты времени от вейвлета synchrosqueezing

Синтаксис

fridge = wsstridge(sst)
[fridge,iridge] = wsstridge(sst)
[___] = wsstridge(sst,penalty)
[___] = wsstridge(___,f)
[___]= wsstridge(___,Name,Value)

Описание

fridge = wsstridge(sst) извлекает максимальный энергетический гребень частоты времени в циклах на выборку от вейвлета synchrosqueezed, преобразовывают, sst. Входом sst является вывод wsst. Каждый гребень является отдельным режимом сигнала.

пример

[fridge,iridge] = wsstridge(sst) возвращает в iridge индексы строки sst. Индексы строки являются максимальным гребнем частоты времени на каждой выборке. Используйте iridge, чтобы восстановить режим сигнала вдоль гребня частоты времени использование iwsst.

[___] = wsstridge(sst,penalty) умножает квадрат расстояния между интервалами частоты значением penalty. Можно включать любой из выходных аргументов от предыдущих синтаксисов.

[___] = wsstridge(___,f) возвращает максимальный энергетический гребень частоты времени в циклах в единицу времени на основе вектора частоты входа f. f является частотным выводом wsst. Вход f и fridge вывод имеют те же модули.

пример

[___]= wsstridge(___,Name,Value) возвращает гребень частоты времени с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

Примеры

свернуть все

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

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

load quadchirp;
[sst,f] = wsst(quadchirp);

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

[fridge,iridge] = wsstridge(sst);

График synchrosqueezed преобразовывает.

pcolor(tquad,f,abs(sst))
shading interp
title('Synchrosqueezed Transform')

Наложите график максимального энергетического гребня частоты.

hold on
plot(tquad,fridge)
title('Synchrosqueezed Transform with Overlaid Ridge')

Извлеките два самых высоких энергетических режима от многокомпонентного сигнала.

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

load multicompsig;
sig = sig1+sig2;
[sst,F] = wsst(sig,sampfreq);
contour(t,F,abs(sst));
xlabel('Time'); ylabel('Hz');
grid on;
title('Synchrosqueezed Transform of Two-Component Signal');

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

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

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

свернуть все

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

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

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'NumRidges',3

Количество самых высоких энергетических гребней частоты времени, чтобы извлечь, заданный как пара, разделенная запятой, состоящая из 'NumRidges' и положительного целого числа. Если это целое число больше, чем 1, wsstridge итеративно определяет максимальный энергетический гребень частоты времени путем удаления ранее вычисленных гребней и значения по умолчанию или задал 'NumFrequencyBins' по обе стороны от каждого гребенчатого интервала.

Количество интервалов частоты, чтобы удалить из synchrosqueezed преобразовывает sst при извлечении нескольких гребней, заданных как пара, разделенная запятой, состоящая из 'NumFrequencyBins' и положительного целого числа. Это целое число должно быть меньше чем или равно round(size(sst,1)/4). Можно задать количество интервалов частоты, чтобы удалить, только если вы извлекаете больше чем один гребень. После извлечения самого высокого энергетического гребня частоты времени wsstridge удаляет значения sst, соответствующие индексам iridge на каждом временном шаге. Энергия удалена вдоль гребня частоты времени, расширенного с обеих сторон индекса iridge конкретным количеством интервалов частоты. Если индекс расширенного гребня частоты времени превышает количество интервалов частоты, в любое время продвигаются, wsstridge обрезает область удаления в первом или последнем интервале частоты. Чтобы задать 'NumFrequencyBins', необходимо задать 'NumRidges'.

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

свернуть все

Частоты гребня частоты времени, возвращенные как вектор или матрица. Частоты соответствуют гребню частоты времени на каждом временном шаге. fridge является N-by-nr матрица, где N является количеством выборок времени (столбцы) в sst, и nr является количеством гребней. Первый столбец матрицы содержит частоты для максимального энергетического гребня частоты времени в sst. Последующие столбцы содержат частоты для гребней частоты времени в уменьшающемся энергетическом порядке. По умолчанию fridge содержит частоты в циклах на выборку.

Индексы строки гребня частоты времени sst, возвращенного как вектор или матрица. Индексы строки в iridge соответствуют индексу строки максимального гребня частоты времени для каждого столбца sst. iridge является N-by-nr матрица, где N является количеством выборок времени (столбцы) в sst, и nr является количеством гребней. Первый столбец матрицы содержит индексы для максимального энергетического гребня частоты времени в sst. Последующие столбцы содержат индексы для гребней частоты времени в уменьшающемся энергетическом порядке.

Алгоритмы

Функция использует оштрафованный прямой обратный жадный алгоритм, чтобы извлечь гребни максимальной энергии из матрицы частоты времени. Алгоритм находит максимальный гребень частоты времени путем минимизации –ln A в каждом моменте времени, где A является абсолютным значением матрицы. Минимизация –ln A эквивалентна максимизации значения A. Алгоритм опционально ограничивает скачки в частоте со штрафом, который пропорционален расстоянию между интервалами частоты.

Следующий пример иллюстрирует алгоритм гребня частоты времени с помощью штрафа, который является два раза расстоянием между интервалами частоты. А именно, расстояние между элементами (j,k) и (m,n) задано как (j-m)2. Матрица частоты времени имеет три интервала частоты и три временных шага. Столбцы матрицы соответствуют временным шагам, и строки матрицы соответствуют интервалам частоты. Значения во второй строке представляют синусоиду.

  1. Предположим, что у вас есть матрица:

    1   4   4
    2   2   2
    5   5   4

  2. Обновите значение для (1,2) элемент можно следующим образом.

    1. Оставьте значения в первом моменте времени неизменными. Начните алгоритм с (1,2) элемент матрицы, которая представляет первый интервал частоты в точке второго раза. Значение интервала равняется 4. Оштрафуйте значения в первом столбце на основе их расстояния от (1,2) элемент. Применение штрафа первому столбцу производит

      original value + penalty × distance
      
      1 + 2 × 0 =  1
      2 + 2 × 1 =  4
      5 + 2 × 4 = 13
      
       1   4
       4   2
      13   5
      Минимальное значение первого столбца равняется 1, который находится в интервале 1.

    2. Добавьте минимальное значение в столбце 1 к текущему значению интервала, 4. Обновленное значение для (1,2) становится 5, который прибыл из интервала 1.

  3. Обновите значения для остающихся элементов в столбце 2 можно следующим образом.

    Повторно вычислите первоначальный столбец 1 значение с фактором штрафа использование того же процесса как на Шаге 2a. Получите остающиеся вторые значения столбцов с помощью того же процесса в качестве на Шаге 2b. Например, при обновлении (2,2) элемент, который имеет значение интервала 2, применяя штраф урожаям столбца

    original value + penalty × distance
    
    1 + 2 × 1 =  3
    2 + 2 × 0 =  2
    5 + 2 × 1 =  7
    
    Добавьте минимальное значение, 2, к текущему значению интервала. Обновленное значение для (2,2) становится 4. После обновления (3,2) элемент, матрица
    1   5(1)  4
    2   4(2)  2
    5   9(2)  4
    Только второй столбец был обновлен. Индексы указывают на индекс интервала в предыдущем столбце, из которого прибыло значение.

  4. Повторите Шаг 2 для третьего столбца. Но теперь штраф применяется к обновленному второму столбцу. Например, при обновлении (1,3) элемент, штраф

    5 + 2 × 0 =  5
    4 + 2 × 1 =  6
    9 + 2 × 4 = 17
    
    Минимальное значение, 5, который находится в первом интервале, добавляется к (1,3) значение интервала. После обновления всех значений в третьем столбце конечная матрица
    1   5(1)   9(1)
    2   4(2)   6(2)
    5   9(2)  10(2)

  5. При запуске в последнем столбце матрицы найдите минимальное значение. Идите назад вовремя через матрицу путем движения от текущего интервала до источника того интервала в предыдущем моменте времени. Отслеживайте индексы интервала, которые формируют путь, составляющий гребень. Алгоритм сглаживает переход при помощи интервала источника вместо интервала с минимальным значением. В данном примере гребенчатыми индексами является 2, 2, 2, который совпадает с энергетическим путем синусоиды в строке 2 матрицы, показанной на Шаге 1.

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

Ссылки

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

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

Введенный в R2016a