Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 285

/ вопрос открыт /

Доброе время суток,Эксперты! Может кто поможет... Мне очень нужно распознать тоновый сигнал (DTFM) поступающий на вход звуковай карты... помогите пожайлуста.. за ранее спасибо!

Андрей Сергеевич Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Андрей Сергеевич (статус: Посетитель)
Вопрос отправлен: 24 января 2007, 19:47
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Не скажу, что это сделать просто, но алгоритм прост и я думаю справитесь. Для начала нужно захватить звук с звуковой карты. Для этого можно кодить напрямую, а можно взять готовые компоненты, которые помогут "оцифровать" звук ACMPack.(брать тут http://www.torry.net/vcl/mmedia/audio/acmcomponents16.zip - всё бесплатно+исходнички.) Для начала рекомендую писать вначале в файл и разбирать потом с файла, а позже нучитесь и налету.
Дальше нам нужно узнать, что такое прямое преобразование Фурье. Это вообщето в курсе математики учат, но нам достаточно знать, что это преобразование преобразует из временного преставления в спектральное. А вот в спектральном представлении DTFM выглядит красиво. DTFM - это комбинация двух частот, поэтому в спектре - это два отсчёта. Причём их положение зависит от частоты. Сами частоты берём отсюдова http://ru.wikipedia.org/wiki/DTMF

А теперь идея декодирования.
Зачитываем с буфера небольшой фрагмент (полсекунды - секунда - подбираем опытным путём)
Делаем преобразования фурье
Ищем пики на интересующих нас частотах (Полосок вы не получите, а будет что то похожее на "верблюда" + частота может немного уплывать, не забывайте об этом)
выписываем их. Если получили больше 2 частот - значит произошло переключение и мы на него попали. Эсли постоянно попадаем - уменьшаем интервал.
Всё, осталось только записать.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 24 января 2007, 20:15


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:45
Выполнено за 0.03 сек.