Обнаружение DTMF из файла WAV - PullRequest
1 голос
/ 21 мая 2011

Я студент инженерного факультета, и мне нужно решить академическую проблему, связанную с обработкой сигналов.

По сути, учитывая сигнал DTMF в формате wav, я должен определить номерную последовательность, которую он закодировал. Я должен сделать это, используя анализ дискретного преобразования Фурье в среде Matlab, чтобы создать скрипт, который читает файл wav и в процессе идентифицирует числа в тональном сигнале.

У меня возникли проблемы в том смысле, что мне не очень комфортно со средой Matlab, и весь дискретный анализ Фурье для меня тоже очень новый, поэтому я чувствую себя немного потерянным.

Есть ли у кого-нибудь хорошие советы или указатели, которыми они могут поделиться?

Ответы [ 2 ]

3 голосов
/ 21 мая 2011

DFT (или FFT) является избыточным для обнаружения DTMF. Вам просто нужно 2 х 4 фильтра Goertzel для обнаружения низких и высоких тонов. Выходной сигнал каждого фильтра Гертцеля должен быть фильтром нижних частот, чтобы предотвратить обнаружение шума, но в остальном он довольно прост.

Если использование DFT / FFT является обязательным, тогда общий подход будет:

  • для каждого блока входных выборок
    • применить подходящее окно (например, Ханнинг)
    • выполнить ДПФ
    • рассчитать величину каждого бункера DFT (re * re + im * im)
    • измерение величины в каждом из 8 элементов разрешения, которые соответствуют 2 x 4 тонам DTMF
    • если у вас есть один высокий групповой тон и один низкий групповой тон, которые имеют значительно большую амплитуду, чем другие тоны в группе, то обнаружена пара тонов DTMF
0 голосов
/ 22 мая 2011

Величина ДПФ реальных данных в значительной степени эквивалентна N / 2 ортогональным фильтрам Гёртцеля длины N. И БПФ - это просто быстрый алгоритм ДПФ.

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

...