Гармоническое отношение
hr = harmonicRatio(audioIn,fs)
hr = harmonicRatio(audioIn,fs,Name,Value)
задает опции с помощью одного или нескольких аргументов пары hr
= harmonicRatio(audioIn
,fs
,Name,Value
)Name,Value
.
hr = harmonicRatio(audioIn,fs,'Window',rectwin(round(fs*0.1)),'OverlapLength',round(fs*0.05))
возвращает гармоническое отношение для входного аудиосигнала, выбранного на уровне Гц fs
. Гармоническое отношение вычисляется для прямоугольных окон на 100 мс с перекрытием на 50 мс.Гармоническое отношение вычисляется, как описано в [1]. Следующий алгоритм применяется независимо к каждому окну аудиоданных. Нормированная автокорреляция сигнала определяется как:
где
s является одним кадром аудиоданных с элементами N.
M является максимальной задержкой в вычислении. Максимальная задержка составляет 40 мс, который соответствует минимальной основной частоте 25 Гц.
Первая оценка гармонического отношения определяется как максимум нормированной автокорреляции в данной области значений:
где M 0 является более низким ребром поисковой области значений, определенной как первое нулевое пересечение нормированной автокорреляции.
Наконец, гармоническая оценка отношения улучшена с помощью параболической интерполяции, как описано в [2].
[1] Ким, Hyoung-липкая-грязь, Николас Моро и Томас Сикора. Аудио MPEG-7 и вне: индексация звукового содержимого и извлечение. John Wiley & Sons, 2005.
[2] Квадратичная интерполяция спектрального Peaks. Полученный доступ 11 октября 2018. https://ccrma.stanford.edu/~jos/sasp/Quadratic_Interpolation_Spectral_Peaks.html