wsstridge

Частотно-временные гребни от вейвлета synchrosqueezing

Описание

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')

Figure contains an axes object. The axes object with title Synchrosqueezed Transform contains an object of type surface.

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

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

Figure contains an axes object. The axes object with title Synchrosqueezed Transform with Overlaid Ridge contains 2 objects of type surface, line.

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

Получите и постройте вейвлет 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');

Figure contains an axes object. The axes object with title Synchrosqueezed Transform of Two-Component Signal contains an object of type contour.

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

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

Figure contains an axes object. The axes object with title Synchrosqueezed Transform of Two-Component Signal contains 3 objects of type contour, line.

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

свернуть все

Synchrosqueezed преобразовывают в виде матрицы. sst матрица частоты времени и выход wsst.

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

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

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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