Вопрос

Я хочу создать низкочастотный алгоритм Cepstrum, но есть некоторые вещи, которые я не понимаю.

После завершения FTT нам нужно "Отобразить мощности полученного выше спектра на шкалу mel, используя треугольные перекрывающиеся окна".

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

Если треугольники определены, как мне отобразить мощность полученного выше спектра на шкалу mel?

Неужели это так:Суммируйте частоты внутри треугольника, а затем передайте их в mel scale?или Суммируйте частоты внутри треугольника в соответствии со значением веса (определяемым высотой треугольника в этой точке), а затем передайте его в mel scale?или Перевести все частоты внутри треугольника в мелкомасштабную шкалу в соответствии со значением weith?Еще кое-что?

Может ли кто-нибудь разъяснить мне это

Это было полезно?

Решение

Я думаю, что этот этап процесса немного странный и не имеет полного смысла (во всяком случае, для меня).Центры полос фильтра расположены на равном расстоянии друг от друга по шкале mel, но представляют собой треугольники в линейном масштабе, т.е.точно так же, как на рисунке здесь.

Затем вычислите взвешенную сумму, используя эти треугольники вдоль линейной оси x.(На этом предыдущем шаге я думаю, что некоторые подходы нормализуются по площади фильтра-треугольника, а некоторые нет, и я, честно говоря, не уверен в конечных последствиях здесь, хотя я подозреваю, что это может мало что значить, кроме изменения окончательной интерпретации, которая в любом случае является относительным сравнением.Один поддерживает общую энергию, а другой дает одинаково взвешенные вклады для каждого диапазона.) Затем возьмите логарифм этого значения (который преобразует общий коэффициент громкости в смещение).

Редактировать: Чтобы было более понятно, как применять фильтры...Каждый треугольник представляет собой отдельный фильтр, выдающий отдельную взвешенную сумму.Если в вашем банке фильтров двадцать фильтров, то будет двадцать треугольников и двадцать взвешенных сумм для вычисления.Чтобы применить каждый фильтр, для каждого значения по оси x умножьте значение фильтра в этом местоположении x на значение функции в этом местоположении x и добавьте это к сумме для этого конкретного фильтра.Большинство значений по оси x содержат два фильтра, которые присутствуют там, поэтому в каждом местоположении x вносится вклад в два фильтра.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top