Я ищу, чтобы извлечь смолы из звукового сигнала.
Кто-то из IRC только что объяснил мне, как это делает двойной БПФ. В частности:
- принять FFT
- взять лог квадрата абсолютного значения (может быть сделано с помощью таблицы поиска)
- возьмите еще один FFT
- принять абсолютное значение
Я пытаюсь использовать vDSP
Я не понимаю, как раньше я не встречал эту технику. Я много охотился и задавал вопросы; за несколько недель. Более того, я не могу понять, почему я не думал об этом.
Я пытаюсь добиться этого с помощью библиотеки vDSP. Похоже, что у него есть функции для обработки всех этих задач.
Однако мне интересно узнать о точности конечного результата.
Ранее я использовал технику, которая проверяет частотные ячейки одного БПФ для локальных максимумов. Когда он встречает один, он использует хитрую технику (изменение фазы с момента последнего БПФ), чтобы более точно разместить фактический пик в корзине.
Я обеспокоен тем, что эта точность будет потеряна с помощью этой техники, которую я представляю здесь.
Я предполагаю, что эта техника может быть использована после второго FFT, чтобы получить фундаментальную точность. Но это похоже на то, что информация теряется на шаге 2.
Поскольку это потенциально сложный процесс, может ли кто-нибудь с некоторым опытом просто посмотреть, что я делаю, и проверить его на предмет разумности?
Кроме того, я слышал, что существует альтернативная техника, включающая в себя квадратичную над соседними ячейками. Это сопоставимая точность? Если это так, я бы одобрил его, так как это не связано с запоминанием фаз bin.
Итак, вопросы:
- Этот подход имеет смысл? Можно ли улучшить?
- Меня немного беспокоит компонент "log square"; кажется, есть функция vDSP, чтобы сделать именно это: vDSP_vdbcon. Тем не менее, нет никаких указаний на то, что он предварительно вычисляет лог-таблицу - я предполагаю, что это не так, поскольку функция FFT требует, чтобы явная функция предварительного расчета вызывалась и передавалась в нее. И эта функция не работает.
- Есть ли какая-то опасность появления гармоник?
- Есть ли какой-нибудь хитрый способ сделать vDSP вытащить максимумы, самые большие сначала?
-
Может ли кто-нибудь указать мне на некоторые исследования или литературу по этой технике?
-
Основной вопрос: достаточно ли он достаточно точным? Можно ли улучшить точность? Мне только что сказал эксперт, что точность IND INDED не достаточна. Это конец строки?
Р
PS Я раздражаюсь, когда хочу создавать теги, но не могу.: | Я предложил сопровождающим, чтобы SO отслеживать попытки тегов, но я уверен, что меня игнорировали. Нам нужны теги для vDSP, ускорение фреймворка, cepstral analysis