Привет,
В настоящее время я занимаюсь разработкой приложения для настройки с использованием Silverlight / c # для проекта класса. Проблемы, которые у меня возникают, кажется, задаются довольно многими людьми, но на самом деле не решаются. Я читал много форумов и часами гуглил, но до сих пор не могу понять код и математику. То, что я имею до сих пор, таково:
Mic => аудиовход => аудиосэмплы записываются в поток памяти => байты преобразуются в двойные значения, а затем в комплексные числа => FFT (), который возвращает массив комплексных чисел ...
Я читал о БПФ, ДПФ, автокорреляции и т. Д. Мне кажется, что FFT - это путь, которым я хочу идти на скорости. По сути, я превращаю хроматический тюнер, используемый в оркестре / оркестре / и т.д., в онлайн-приложение, поэтому все должно быть сделано в режиме реального времени. Сейчас я просто пытаюсь понять весь процесс.
Вопросы:
Как правильно преобразовать записанные байты в поток памяти в комплексные числа? На это частично здесь ответят Преобразовать аудиосэмплы из байтов в комплексные числа? , но я не знаю, какой правильный метод для каждого из них приводит к различным значениям.
Я понимаю основы БПФ, но не совсем уверен, что цифры представляют на разных этапах. Например, что именно представляет массив комплексных чисел при входе в алгоритм fft, и что они представляют при выходе?
Какая другая обработка требуется для определения частоты воспроизводимой ноты после расчета БПФ?
Я ценю всю помощь, этот проект оказался более сложным, чем то, что я первоначально исследовал! : /
Ура и спасибо!
Josh