Аудиозапись в приложении для iPhone только с частотой выше определенной

В настоящее время я занимаюсь приложением для записи звука для iPhone и iPad. Здесь я сам выполнил базовую функцию записи звука, но я понятия не имею, как записывать звук выше определенной частоты, например, выше 17000 Гц. Итак, может ли кто-нибудь помочь мне в этом? Это действительно очень помогло бы моей карьере.


person Prakash K    schedule 31.05.2012    source источник
comment
Чтобы записывать только выше этой частоты или пропускать фильтр для выбора только выше этой частоты?   -  person sarnold    schedule 31.05.2012
comment
Что ж, вам придется пропустить оцифрованный звук через какой-то цифровой фильтр, чтобы отфильтровать низкие частоты. Но учтите, что 17 кГц - довольно высокая частота. Наивысшая общая частота дискретизации звука (и вероятный предел для iPhone) составляет 44100, что означает, что максимальная частота, с которой он может работать, составляет 22,05 кГц.   -  person Hot Licks    schedule 31.05.2012


Ответы (3)


Я думаю, вам нужно использовать структуру ускорения, внутри есть vDSP API, который может выполнять FFT (быстрое преобразование Фурье). Он преобразует данные из временной области в частотную. В соответствии с информацией о размере ячейки вы можете извлечь величину / амплитуду после определенного размера ячейки.

Думаю, это может решить вашу проблему.

Для vDSP вы можете сослаться на aurioTouch 2 с веб-сайта Apple.

Чтобы узнать, как там работает БПФ, вы можете обратиться к этому вопросу - Понимание БПФ в aurioTouch2

Надеюсь, это поможет.

P.S. AurioTouch или AurioTouch 1 не использует vDSP API. Я помню, что до iOS 4 была функция БПФ, которая могла делать то же самое, но медленнее. Вы можете подумать, что vDSP доступен только после iOS 4.0.

person Ken Hui    schedule 31.05.2012
comment
Вы смотрели образцы aurio Touch 2 выше? - person Ken Hui; 01.06.2012

Я поискал в Интернете и нашел эти две чернила.

Библиотека для определения частоты https://github.com/jkells/sc_listener

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

Я надеюсь, что, получив числа частот и поставив условие, вы сможете этого добиться ... Надеюсь, это поможет ...

person Dilip Rajkumar    schedule 31.05.2012

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

Вместо этого пропустите свой PCM через фильтр высоких частот. Соответствующая страница в Википедии поможет вам выбрать подходящий фильтр. Если ваш минимальный предел частоты постоянный, на этой странице сгенерирует константы для вашего фильтра. В противном случае динамически генерировать эти константы не так уж сложно. Или вы можете использовать исходный код для указанного фильтра. страница генерации коэффициентов

person laurie    schedule 15.08.2013