Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Показано с 1 по 10 из 10

Тема: Детектор тона DTMF на базе Goertzel алгоритма

  1. #1
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,943

    Детектор тона DTMF на базе Goertzel алгоритма

    Вот встал один серьезный вопрос, который непонятно, как решать. Суть задачи:
    1) Имеется транковая станция, в которой есть селективный выбор абонента по коду DTMF.
    При этом формирование и дешифровка сигнала делается железом самих станций. Тут все окей,
    и можно было бы забыть про это. Но есть маленькое но... см. 2)
    2) Имеется софт, который также должен формировать DTMF сигнал,
    а также принимать DTMF код из звукового потока. Вот с этим пока полная засада.

    Звуковой канал подключен через фильтры на приемную транковую станцию. С нее сигнал идет в
    звуковую карточку компа, где сидит оператор станции (у нас это пожарники и полицаи). На таком
    пульте нет радиостанции, есть только микрофон и выбор с пульта канала/групп каналов для оповещения.
    То есть оператор набирает на клавиатуре компа код или просто жмет "горячие кнопки" и сигнал DTMF
    летит в эфир через удаленно управляемую транковую станцию. На прием тоже самое. То есть полицай или
    пожарник на улице набирает на носимой радиостанции или планшете (по сути вид ПДА) DTMF код и он
    через базовую станцию-приемник идет на нужный комп.

    Вопрос в том, как его программно сформировать и как декодировать? Сам я никогда с этим делом не имел,
    но знаю, что вроде можно использовать декодер на базе Goertzel алгоритма. Если есть готовые реализации
    на C++, C# или даже Java - будет очень здорово. На C# самый идеальный вариант, но не знаю делал ли кто-то.
    Заранее всем спасибо...
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21


  2. #2
    Аватар для vadim_d
    Регистрация
    29.10.2006
    Адрес
    Санкт-Петербург
    Сообщений
    9,723

    Re: Детектор тона DTMF на базе Goertzel алгоритма

    Цитата Сообщение от RX1AL
    Вот встал один серьезный вопрос, который непонятно, как решать.
    Да, судя по молчанию, вопрос поставил всех в тупик. Набираем "goertzel algorithm implementation" в Гугле, видим ссылку на Википедию http://en.wikipedia.org/wiki/Goertzel_algorithm , а там в конце "DTMF detector in C#" http://sourceforge.net/projects/dtmf-cs/ . Подойдет?
    Вадим

  3. #3

    Детектор тона DTMF на базе Goertzel алгоритма

    Посмотрите здесь http://www.relsys.ru/prod.htm

  4. #4
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,943

    Re: Детектор тона DTMF на базе Goertzel алгоритма

    Цитата Сообщение от vadim_d
    Подойдет?
    Вадим, спасибо... Но это не совсем то, что нужно. Детектор там написан, но непонятно, как его применить к аудио потоку.
    Вот приведенная ниже ссылка на софт (30-ти дневный), как раз то, что доктор прописал. Жалко, что нет исходного текста, чтобы встроить сразу в нашу систему, но тест вроде прошел успешно. Вот найти бы где-нибудь такое же решение в исходных кодах - было бы полное счастье.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  5. #5
    Аватар для vadim_d
    Регистрация
    29.10.2006
    Адрес
    Санкт-Петербург
    Сообщений
    9,723

    Re: Детектор тона DTMF на базе Goertzel алгоритма

    Цитата Сообщение от RX1AL
    Детектор там написан, но непонятно, как его применить к аудио потоку.
    Михаил, я себя к "сивым" программистам еще как-то могу причислить, но к "обшарпанным" увы, нет Вот это не поможет прикрутить поток к C#:

    http://www.codeproject.com/KB/audio-video/cswavrec.aspx ?
    Вадим

  6. #6
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,943
    vadim_d:
    Спасибо... Теперь бы мне у наших "обшарпанных" программеров узнать в каком у них формате поток.
    А то тут такие программеры, что сваяют такое - потом три года разгребаешь. :wink: Но наводка похоже
    по делу. Я уже из простого стрима Wav и MP3 на основе того короткого примера дергаю DTMF.
    В тестовом (не реальном режиме) вроде ничего. Попутно вопрос: у нас, насколько я знаю, используются
    еще и FIR фильтры и ширина диапазона. В связи с этим он и возник: "как сделать адаптивную привязку?"
    Или один раз выбранные значения FIR фильтра и ширины диапазона достаточно будет для всех случаев?
    Мне почему-то кажется, что нет, но могу ошибаться. Тапками не бросать - тема и предмет для меня новый...
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  7. #7

    Re: Детектор тона DTMF на базе Goertzel алгоритма

    Цитата Сообщение от vadim_d
    Цитата Сообщение от RX1AL
    Вот встал один серьезный вопрос, который непонятно, как решать.
    Да, судя по молчанию, вопрос поставил всех в тупик.
    Да народ еще празднует, шашлык переваривает
    У меня есть детектор на C++, с инета давно уже скачал, и прикрутил к к программному телефону и радиотрубке старого панасоника. Это что бы не покупать USB телефон
    База телефона подключена прямо к звуковой карте. После того как набираю номер, нажимаю # и нажатия как бы с клавиатуры транслируются программному телефону с нажатием Enter в конце.
    Единственное что у этого алгоритма, не часто, но бывают ложные срабатывания (при разговоре), поэтому что бы положить трубку (для программного телефона имитация нажатия клавиши Esc) надо нажать подряд **, а если делать по одной *, то может разговор прерваться в любой момент.

  8. #8
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,943

    Re: Детектор тона DTMF на базе Goertzel алгоритма

    Цитата Сообщение от RN6LIQ
    У меня есть детектор на C++, с инета давно уже скачал, и прикрутил к к программному телефону и радиотрубке старого панасоника. Это что бы не покупать USB телефон
    Во-во... а код можно? А то я тут получил массу материала по е-мейл, сижу и перевариваю.
    Кстати в одной статье есть и про адаптивный алгоритм для окна. Понять бы теперь... :wink:
    Если кому надо, то инфа здесь:
    http://www.mstarlabs.com/dsp/goertzel/goertzel.html
    http://www.arpnjournals.com/jeas/res...as_0408_92.pdf
    http://demo.mypic32.com/web/guest/fo...message/138654
    http://www.rootsecure.net/content/do...paper_dtmf.pdf
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  9. #9
    Аватар для vadim_d
    Регистрация
    29.10.2006
    Адрес
    Санкт-Петербург
    Сообщений
    9,723
    Цитата Сообщение от RX1AL
    Или один раз выбранные значения FIR фильтра и ширины диапазона достаточно будет для всех случаев?
    Михаил, для стандартного DTMF частОты компонент сигнала известны заранее, а вот с шумом (которым наверное окажется и речевой сигнал) определенности обычно не бывает. Если это ЧМ/ФМ канал, то амплитуда в процессе работы стабильна, поэтому в первом приближении какая-либо адаптация кажется излишней. Начните с простого
    Вадим


  10. #10

    Re: Детектор тона DTMF на базе Goertzel алгоритма

    Цитата Сообщение от RX1AL
    Во-во... а код можно?

    В конце есть функция void dtmf_to_ascii(short *buf, int kol)
    Ей надо передавать звуковой поток по 240 выборок (480 байт).
    Звук с частотой дискретизации 8000 и уровнем квантования 16 бит
    Внутри функции мной помечены участки кода, где происходит прием символа
    Вложения Вложения

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. АМ-SSB детектор
    от ПАПА в разделе Технический кабинет
    Ответов: 44
    Последнее сообщение: 07.09.2014, 17:15
  2. Maycom sh-27 c dtmf
    от ALEKSEY30 в разделе Модификация радиостанций
    Ответов: 0
    Последнее сообщение: 05.10.2009, 07:18
  3. DTMF в радиостанции
    от ut5vf в разделе Технический кабинет
    Ответов: 0
    Последнее сообщение: 21.03.2008, 21:04
  4. DTMF & GM-640 возможноли?
    от ua9xqs в разделе Модификация радиостанций
    Ответов: 3
    Последнее сообщение: 23.01.2008, 08:51
  5. Ищу DTMF dialer
    от EU1ME в разделе Программное обеспечение
    Ответов: 2
    Последнее сообщение: 18.08.2006, 21:55

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •