Как определить тон DTMF программно в iPhone? - PullRequest
2 голосов
/ 18 апреля 2011

Как программно определить тон dtmf в iphone?. Я хочу определить, должен ли принимаемый аудиосигнал (микрофонный вход) быть тоном dtmf?

Плз, помогите мне? Я действительно боролся с этим в течение 2 дней. Заранее спасибо .....

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Поскольку в системе DTMF используется только 8 чистых синусоидальных тонов, для обнаружения присутствия энергии на этих частотах будет более эффективно использовать настроенные банки фильтров или алгоритм Гёртцела, чем при использовании БПФ.На странице Википедии для алгоритма Гёртцела есть хороший псевдокод для работы алгоритма.Не должно быть слишком сложно перевести это в (Объективное) C.

http://en.wikipedia.org/wiki/Goertzel_algorithm

Проведите там звук и измеряйте выходную мощность каждые 100 миллисекунд,Это будет немало работы - удачи!

0 голосов
/ 18 апреля 2011

Вы можете использовать 8 узкополосных фильтров и усреднение амплитуды по небольшим временным окнам.Эти 2 процесса обычно выполняются вместе с использованием вариантов алгоритма Гёртцела.

Другое, что можно сделать, это измерить общую среднюю амплитуду по всем частотам в одном и том же временном окне, используя среднеквадратичное усреднение.Когда энергия только в 2 окнах фильтра составляет большую часть полной энергии сигнала, то у вас, вероятно, есть сигнал DTMF.Чтобы декодировать DTMF, вы можете выполнить поиск в таблице, основываясь на которой 2 фильтра показывают энергию.Если повсюду в звуке гораздо больше общей энергии, чем в двух фильтрах, весь аудиосигнал, вероятно, шумовой, а не сигнал DTMF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...