Если есть способ получить частоту звука.

Я хочу знать, как часто поступают данные. Я немного догадывался, что это можно сделать с помощью БПФ, но я не уверен, как это сделать. Как только я передал все данные в БПФ, это дает мне 2 пика, но как я могу получить частоту?

Заранее большое спасибо.


person Ankit Kumar    schedule 30.08.2013    source источник
comment
Положение пиков - это частота.   -  person David Schwartz    schedule 30.08.2013
comment
возможный дубликат Как получить частоту из результата БПФ   -  person Paul R    schedule 30.08.2013
comment
Об этом так часто спрашивают в SE, что я написал сообщение в блоге, объясняющее это с помощью кода: blog.bjornroche.com/2012/07/   -  person Bjorn Roche    schedule 30.08.2013


Ответы (2)


Взгляните на эту страницу, чтобы узнать, как это вычислить: Основы БПФ

Также проверьте этот ответ (это код C #, но я думаю, вы легко его поймете)
Как получить частоты каждого значения в БПФ?

И, наконец, взгляните на этот, он использует ДПФ вместо БПФ:
Определение величины определенной частоты на iPhone

Я также нашел эту реализацию, которую вы можете использовать в Objective-C:

Библиотека для определения частоты https://github.com/jkells/sc_listener
A пример с использованием указанной выше библиотеки https://github.com/jkells/sc_listener_sample

С Уважением

person Dan    schedule 30.08.2013

БПФ даст вам частоту всех синусоидальных компонентов сигнала. Если вместо этого вам нужна только частота периодичности общих форм волны (более интересное звучание и выглядящее, чем простая синусоида), например, создаваемых речью и музыкой, тогда вы можете использовать алгоритм определения / оценки высоты тона вместо просто пика БПФ. .

person hotpaw2    schedule 30.08.2013