wsstridge

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

Описание

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

пример

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

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

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

пример

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

Примеры

свернуть все

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

Загрузите сигнал щебета и получите его синхронизированное преобразование.

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

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

[fridge,iridge] = wsstridge(sst);

Постройте график синхронизации преобразования.

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

Figure contains an axes. The axes 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. The axes with title Synchrosqueezed Transform with Overlaid Ridge contains 2 objects of type surface, line.

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

Получите и постройте график вейвлета синхронизированного преобразования.

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. The axes 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. The axes with title Synchrosqueezed Transform of Two-Component Signal contains 3 objects of type contour, line.

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

свернуть все

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

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

Количество интервалов частоты, которые нужно удалить из синхронизируемого преобразования 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. Последующие столбцы содержат индексы для частотно-временных гребней в уменьшении энергетического порядка.

Алгоритмы

Функция использует штрафованный алгоритм жадности вперед-назад, чтобы извлечь гребни максимальной энергии из матрицы частотно-временной частоты. Алгоритм находит максимальный частотно-временной гребень путем минимизации A -ln в каждой временной точке, где A является абсолютным значением матрицы. Минимизация A -ln эквивалентна максимизации значения 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 с коэффициентом штрафа, используя тот же процесс, что и на шаге 2а. Получаем оставшиеся значения вторых столбцов, используя тот же процесс, что и на шаге 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, I., J. Lu, and H.-T. Ву. Synchrosqueezed wavelet transforms: a empirical mode decomposition-like tool (неопр.) (недоступный инструмент). Прикладной и вычислительный гармонический анализ. Том 30, № 2, 2011, стр. 243-261.

[2] Thakur, G., E. Brevdo, N. S. Фучкар, и Х.-Т. Ву. «Алгоритм синхронизации для изменяющегося во времени спектрального анализа: Свойства робастности и новые приложения палеоклиматов». Обработка сигналов. Том 93, № 4, 2013, стр. 1079-1094.

Введенный в R2016a