Гребни частоты времени
fridge = tfridge(tfm,f)
[fridge,iridge]
= tfridge(tfm,f)
[fridge,iridge,lridge]
= tfridge(tfm,f)
[___] = tfridge(tfm,f,penalty)
[___] = tfridge(___,'NumRidges',nr)
[___] = tfridge(___,'NumRidges',nr,'NumFrequencyBins',nbins)
[___] = tfridge(___,'NumRidges',
извлекает гребни частоты времени nr
)nr
с самой высокой энергией. Этот синтаксис принимает любую комбинацию входных параметров от предыдущих синтаксисов.
Функция использует оштрафованный прямой обратный жадный алгоритм, чтобы извлечь гребни максимальной энергии из матрицы частоты времени. Алгоритм находит максимальный гребень частоты времени путем минимизации –ln A в каждом моменте времени, где A является абсолютным значением матрицы. Минимизация –ln A эквивалентна максимизации значения A. Алгоритм опционально ограничивает скачки в частоте со штрафом, который пропорционален расстоянию между интервалами частоты.
Следующий пример иллюстрирует алгоритм гребня частоты времени с помощью штрафа, который является два раза расстоянием между интервалами частоты. А именно, расстояние между элементами (j,k)
и (m,n)
задано как (j-m)2
. Матрица частоты времени имеет три интервала частоты и три временных шага. Столбцы матрицы соответствуют временным шагам, и строки матрицы соответствуют интервалам частоты. Значения во второй строке представляют синусоиду.
Предположим, что у вас есть матрица:
1 4 4 2 2 2 5 5 4
Обновите значение для (1,2) элемент можно следующим образом.
Оставьте значения в первом моменте времени неизменными. Начните алгоритм с (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 к текущему значению интервала, 4. Обновленное значение для (1,2) становится 5, который прибыл из интервала 1.
Обновите значения для остающихся элементов в столбце 2 можно следующим образом.
Повторно вычислите первоначальный столбец 1 значение с фактором штрафа использование того же процесса как на Шаге 2a. Получите остающиеся вторые значения столбцов с помощью того же процесса в качестве на Шаге 2b. Например, при обновлении (2,2) элемент, который имеет значение интервала 2, применяя штраф урожаям столбца
original value + penalty × distance 1 + 2 × 1 = 3 2 + 2 × 0 = 2 5 + 2 × 1 = 7
1 5(1) 4 2 4(2) 2 5 9(2) 4
Повторите Шаг 2 для третьего столбца. Но теперь штраф применяется к обновленному второму столбцу. Например, при обновлении (1,3) элемент, штраф
5 + 2 × 0 = 5 4 + 2 × 1 = 6 9 + 2 × 4 = 17
1 5(1) 9(1) 2 4(2) 6(2) 5 9(2) 10(2)
При запуске в последнем столбце матрицы найдите минимальное значение. Идите назад вовремя через матрицу путем движения от текущего интервала до источника того интервала в предыдущем моменте времени. Отслеживайте индексы интервала, которые формируют путь, составляющий гребень. Алгоритм сглаживает переход при помощи интервала источника вместо интервала с минимальным значением. В данном примере гребенчатыми индексами является 2
, 2
, 2
, который совпадает с энергетическим путем синусоиды в строке 2 матрицы, показанной на Шаге 1.
Если вы извлекаете несколько гребней, алгоритм удаляет первый гребень из матрицы частоты времени и повторяет процесс.