Распознавание короткого высокочастотного звука в низкочастотном шуме (objc / c) - PullRequest
1 голос
/ 04 марта 2011

В настоящее время я создаю приложение, которое сигнализирует о готовности к другим устройствам с помощью высокочастотного звука.

(передатчик): Устройство выдаст короткий звуковой сигнал около 20 кГц.

(приемник): Другое устройство будет прослушивать звук на этой частоте на небольшом расстоянии от передатчика (примерно 10 м). Устройство получает аудиоданные с микрофона

Фоновый шум будет довольно громким, варьируясь от 0 до 10 кГц (относительно диапазона речи человека), и будет создаваться небольшой толпой людей.

Мне нужно, чтобы приемное устройство было в состоянии обнаружитьзвук 20 кГц, отделенный от шума,

и знать время, когда он был получен.

Любая помощь с соответствующим алгоритмом, библиотекой или, что еще лучше, кодом на C или

Объект для обнаружения этого высокочастотного звука был бы очень признателен.

Ответы [ 4 ]

3 голосов
/ 04 марта 2011

20 кГц это может подтолкнуть, так как (а) большинство звуковых карт имеют фильтры низких частот (сглаживание) на частоте 18–20 кГц и (б) большинство динамиков и микрофонов имеют тенденцию иметь плохой отклик на частоте 20 кГц. Вы можете рассмотреть, скажем, 15 кГц?

Фактическая часть обнаружения должна быть простой - просто установите узкополосный фильтр на частоте тона, выпрямите выходной фильтр и фильтр нижних частот (например, 10 Гц).

0 голосов
/ 19 декабря 2012

Звук с такой высокой частотой вообще не будет передаваться через динамик iphone.

0 голосов
/ 04 марта 2011

Если это для Mac OS или iOS, я бы начал изучать аудиоустройства Core Audio.

1 Вот обзор Apple Audio Core Audio .

2 Некоторые AudioUnits для Mac OS

3 Или для хостинга iOS AudioUnit

0 голосов
/ 04 марта 2011

Возможно, вы захотите взглянуть на БПФ (быстрое преобразование Фурье).Этот алгоритм позволит вам анализировать форму волны и преобразовывать ее в частотный спектр для дальнейшего анализа.

...