Невозможно получить правильное значение частоты на iphone
Я пытаюсь проанализировать алгоритмы определения частоты на платформе iOS. Поэтому я нашел несколько реализаций, использующих FFT и CoreAudio ( пример 1 и пример 2). Но в обоих случаях существует некоторая неточность в частоте:
- (1) Для A4 (440 Гц) отображается 441,430664 Гц.
- (1) Для C6 (1046,5 Гц) показано 1518,09082 Гц.
- (2) Для A4 (440 Гц) отображается 440,72 Гц.
- (2) Для C6 (1046,5 Гц) показано 1042,396606 Гц.
Почему это происходит и как избежать этой проблемы и более точно определить частоту?
1 ответ
Разрешение в частотной области обратно пропорционально количеству элементов FFT. Вам нужно либо:
- увеличьте размер вашего БПФ, чтобы получить более точное разрешение
- используйте величину смежных бинов, чтобы настроить оценку частоты
- использовать альтернативный метод для оценки частоты, а не БПФ, например, параметрическая модель