Обнаружение тангажа в реальном времени с использованием FFT
Я пытаюсь сделать определение тангажа в реальном времени с помощью C ++. Я тестирую какой-то код из performous ( http://performous.org/ ), потому что все остальное не сработало для меня. Я точно знаю, что это работает, но я просто не могу заставить его работать. Я пробовал это в течение нескольких недель, и я не смог получить код обнаружения тональности.
- Реализация быстрого преобразования Фурье (FFT) в C #
- Обнаружение шага в реальном времени
- Понимание примера Matlab FFT
- Как вы анализируете основную частоту образца PCM или WAV?
- Использование Apple FFT и Accelerate Framework
- Что такое спектрограмма и как установить ее параметры?
- Как сгенерировать аудио спектр с помощью fft в C ++?
- Вычислить автокорреляцию с использованием FFT в Matlab
Вместо использования микрофона вы должны создать данные известной одной частоты и запустить их через программу и посмотреть, получит ли он правильный результат. Затем вы можете добавить к нему гармоники и посмотреть, работает ли это. Данные реального мира слишком переменны для первоначального тестирования.
У исполнительного аудиокода есть некоторые оптимизации, ограничения частоты и эвристика, которые делают его пригодным только для пения (и других подобных тонов). Оптимальный диапазон составляет около 80-600 Гц.
C / C ++ / Obj-C Алгоритм реального времени для определения примечания (не Pitch) от Vocal Input
Проверьте принятый ответ по этой ссылке.
Я просмотрел SO для ответа на эту проблему, и это самый полезный ресурс, который я нашел.
Похоже, что Performous использует этот алгоритм, но его трудно сделать из кода Performous
EDIT: Наконец-то я получил рабочее решение. отправьте мне письмо по электронной почте, если вы заинтересованы в sunfish | gmail | c0m