Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DTMF декодер на цифровом интерфейсе
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Страницы: 1, 2
semen_992
Доброго времени...
Никак не могу найти ответ на свой вопрос сам smile.gif
Есть ли декодеры дтмф на цифровых интерфейсах?
Например на UART RS-232 I2C и т.д.
Спасибо
Палыч
Цитата(semen_992 @ Jun 7 2010, 18:55) *
Есть ли декодеры дтмф на цифровых интерфейсах? Например на UART RS-232 I2C и т.д.

Вы ищите м/с DTMF receiver обязательно с последовательным интерфейсом? Чем параллельный не угодил?
zltigo
Цитата(Палыч @ Jun 7 2010, 18:10) *
Вы ищите м/с DTMF receiver обязательно с последовательным интерфейсом? Чем параллельный не угодил?

Судя по разделу он еще ищет и приемник способный распознавать DTMF после GSM кодека. А это вообще совсем отдельная песня. Лично мне неведомы сколь-нибудь стабильно работающие серийные чипы.
Ну а с просто DTMF почти любой микроконтроллер способен справиться.
CADiLO
Что касается микросхем с последовательным интерфейсом (I2C), то они есть начиная от Zarlink и заканчивая китайцами.
Вопрос только в поставках и доставаемости на территории разработчика.


Не вижу проблемы распознать DTMF ????
Если со стороны передачи это делается командой - то есть генерит последняя сота перед устройством, то распознает любой серийный приемник. У нашего клиента несколько тысяч устройств катаются с MT88L70 и нареканий нет.
А вот если делать неправильно - впихивать на передающей стороне DTMF в аудиоканал, тогда конечно проблематично распознать.
Проблема не в GSM кодеке, он вполне пропускает спектр частот для DTMF, а в накапливающихся фазовых искажениях между сотами - чем больше сот между передающей и принимающей стороной, тем нереальнее принять DTMF переданый в аудиоканал. Потому и придумали способ передачи командой, когда генерит последняя сота.
По этой же причине проблематично передать факс через сотовую связь не используя пул оператора (в аналоговом режиме - например через сотовый мост)
Только в режиме модема с компа - например Вентафаксом.
zltigo
Цитата(CADiLO @ Jun 8 2010, 11:20) *
а в накапливающихся фазовых искажениях между сотами - чем больше сот между передающей и принимающей стороной, тем нереальнее принять DTMF переданый в аудиоканал.

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

Специально ведь жирным шрифтом выделил sad.gif
CADiLO
На эту тему уже спорили год назад.

Специально ездил к инженерам одного из наших операторов - так вот максимально накапливаемое искажение в пределах нашего города (от окраины до окраины) - 5 сот. Никакой ИКМ они не используют, а стоят на вышках системы распределенной коммутации, которые решают куда отдать сигнал - на следующую соту в виде ретрансляции или работать в пределах своих 6 сот. Схема с центральным коммутатором по их словам давно устарела и оператором используется только в малых населенных пунктах.
zltigo
Цитата(CADiLO @ Jun 8 2010, 12:01) *
Схема с центральным коммутатором по их словам давно устарела и оператором используется только в малых населенных пунктах.

Базовый вариант в реальных населенных пунктах это уход на, например, радиорелейку и SDH кольцо. Организация какой-то там ретрансляции с соты на соту с занятием тех-же каналов, что должны использоваться на самом деле для абонетов это разве только вариант для глухих деревень и сел. Типа нам дешево а им и так сойдет просто для поговорить.
=F8=
как говорит гугл MT3270 smile.gif
Aner
Цитата(zltigo @ Jun 7 2010, 19:38) *
Ну а с просто DTMF почти любой микроконтроллер способен справиться.


ну совсем не серьезный ответ. Не всякий справиться, по этому и внешний ставят.
Да и у контроллера ресурс отымать не стоит.
zltigo
Цитата(Aner @ Jun 8 2010, 14:14) *
по этому и внешний ставят.

Те кто не умеет готовить, те ставят.
Цитата
Да и у контроллера ресурс отымать не стоит.

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

Если не брать ARMы то ни атмела ни пики нормально не обработают даже цифрой. Возьмите джиттер и как вы сладите с ним если тактовая 1..4Mhz?
Памяти выделить нужно немало, для высокой достоверности, а затеми переключение задач ... и эти сотни миллисекунд жрут мипсы.
Проще отдать внешнему чипу эту задачу и не экономить.
alexQ
есть модули которые могут декодировать DTMF сами, без участия внешних декодеров....
sobr
Цитата(alexQ @ Jun 8 2010, 22:11) *
есть модули которые могут декодировать DTMF сами, без участия внешних декодеров....
Огласите ВЕСЬ список... пжалста.
zltigo
Цитата(Aner @ Jun 8 2010, 17:33) *
Проще...

Делайте "как проще". Я предпочитаю, как лучше. Особенно понравилось поминание всуе словца слова джиттер smile.gif. Про проблему фильтрации шумов тоже очень понравилось - ну работа у приемника это именно фильтровать. Все остальное тоже страшное и сложное по незнанию sad.gif. Относительную проблему может только составлять, если вдруг нужна, работа в относительно большом динамическом диапазоне, но это тоже не данный конкретный случай - тут, да и вообще сейчас, все в основном в цифре бегает - что вылетело по уровню, то с тем уровнем и прилетит, посему 8 реальных bit из обыденных для микроконтроолерных ADC 10bit, даже замного будет.
CADiLO
Я уже приводил пример в другой ветке - если "для себя" то можно и на контроллере поизвращаться.
А вот если соберетесь по всем правилам сертифицировать, то даже DSP по динамическому диапазону не прокатит - только аппаратные декодеры.
zltigo
Цитата(CADiLO @ Jun 9 2010, 09:36) *
то даже DSP по динамическому диапазону не прокатит - только аппаратные декодеры.

Простите smile.gif А чем DSP по Вашему отличается от решений "аппаратых декодеров" масса которых сделано с лохматых 70x годах? Ну а DSP, уж поверьте мне старому телефонисту, именно и работают в самых, что ни на есть профессиональных условиях на стороне телефонной станции. В старые времена групповые DTMF приемники стояли, причем на самых, что ни наесть допотопных DSP (уже забыл, как назывался тот TMS, который клонировали в 80x в Союзе под именем "Рената", и который, не для DTMF, правда, а для "импульсного челнока" я в те времена и прикручивал вместо жутких гибридных аналоговых фильтов ). Те TMS ныне большинство восьмибитовиков банально счет счет мегагерцев за пояс заткнут. Ну а ныне со всем DTMF этим справляются походя, между всем прочим и индивидуальные DSP-шки в SLIC-ах. И никаких "для себя" на коленке - для наколенного творчества это как раз все эти "аппаратные декодеры". Ну а "динамический диапазон" он в цифровой телефонии это 8bit, правда после компрессора. Но поскольку уровни передачи DTMF c телефона вполне сравним 0dB (-3...6dB), то на стороне ATC это более, чем приличный уровень, даже на длиииинной аналоговой линии. Ну а на цифровых линиях о затуханиях вообще говорить не приходится.
CADiLO
Отличие простое - В аппаратном декодере набор из "железных" фильтров плюс хорошее АРУ. В DSP считаем програмно.
Кстати к челноку меньше требования предъявляются чем к DTMF. Достаточно обратиться в любую контору проводящую сертификацию и попросить методику.
Если все так прекрасно, почему в мини АТС Samsung (1200 номеров) 2008 года выпуска (модель могу заехать посмотреть у знакомых) стоят платы с коммутируемыми MT8870? 2 платы по 16 декодеров и место еще под две. Хотя сама станция управляется промышленным PC + мотороловский DSP.
MFC ( если не ошибаюсь там R2) сделали на DSP, а на DTMF поставили аппаратные декодеры. Не знаете почему ?
zltigo
Цитата(CADiLO @ Jun 9 2010, 11:15) *
Достаточно обратиться в любую контору проводящую сертификацию и попросить методику.

Спасибо, я за 25 лет в телефонии никогда не слышал слов "сертификация" и "методика". Теперь услышал smile.gif.
Цитата
Не знаете почему ?

Знаю - Cамсунг делает бытовку, как умеет, даже если он лезет в офисную телефонию. Кроме того, аналоговые станции вымерли уже давно, даже если Cамсунг и выпускает это барахло для офисных нужд. Я не занимаюсь аналоговыми коммутаторами и соответственно приемниками с аналоговыми входами с 1988 года. Аналог, если он есть, кончается
на абонетском комплекте. Я (про Siemes, Alkatel, Nokia и прочих умолчу, дабы избежать обвинений в мании величия ) что-то делаю не так?
Цитата
В аппаратном декодере набор из "железных" фильтров

Господи, ну что такое "железные" фильтры? Если поискать, то могу найти Вам фото "железных" - натуральные гибридки в "железных" корпусах - море операционников с точной обвеской. Все Ваши одночиповые DTMF приемники это уже цифровая обработка, причем зачастую более, чем скромная ввиду ограниченных ресурсов.
CADiLO
>>> Спасибо, я за 25 лет в телефонии никогда не слышал слов "сертификация" и "методика". Теперь услышал

Даже не буду воспринимать как юмор. Эксплуатационщики может и не слышали, а мы разрабатывали коммутацию. И для системы "Алтай", и выносы 200 - 3000 номеров, и стыки E1/T1 с разными станциями. Сдать в эксплуатацию оборудование не пройдя испытания и сертификацию - нереально. Методика всех испытаний это нескоько толстых папок.

>>> Все Ваши одночиповые DTMF приемники это уже цифровая обработка

Например какие???? Тот же народный 8870 - аналоговый, современные Zarlink, тоже DSP внутри не наблюдается.....
blackfin
Цитата(CADiLO @ Jun 9 2010, 12:15) *
Отличие простое - В аппаратном декодере набор из "железных" фильтров плюс хорошее АРУ. В DSP считаем програмно.
Кстати к челноку меньше требования предъявляются чем к DTMF. Достаточно обратиться в любую контору проводящую сертификацию и попросить методику.
Если все так прекрасно, почему в мини АТС Samsung (1200 номеров) 2008 года выпуска (модель могу заехать посмотреть у знакомых) стоят платы с коммутируемыми MT8870? 2 платы по 16 декодеров и место еще под две. Хотя сама станция управляется промышленным PC + мотороловский DSP.
MFC ( если не ошибаюсь там R2) сделали на DSP, а на DTMF поставили аппаратные декодеры. Не знаете почему ?

Да, действительно, почему? Среднестатистический DSP для декодирования DTMF требует всего 0.891 MIPS (Average), т.е. DSP ценою в 7.2$ в связке с набором дешевых АЦП заменяет ~300 аппаратных декодеров DTMF, плюс хорошее АРУ.

Есть и сертификация:
Цитата
Compliance Testing : Compliant with Bellcore GR-506-CORE, Bellcore TR-TSY-000181, ETSI 300-001, ETSI 201-235, ITU Q.24, Table A-1, AT&T, ITU Q.24, Table A-1, NTT specifications.
Aner
вот-вот, например 8870 меньше бакса.
blackfin
Цитата(Aner @ Jun 9 2010, 13:36) *
вот-вот, например 8870 меньше бакса.

А в пересчете на "2 платы по 16 декодеров"?
zltigo
Цитата(CADiLO @ Jun 9 2010, 12:08) *
Даже не буду воспринимать как юмор.

Зря улыбку в цитате обрезали. Это именно юмор человека все эти годы занимающегося цифровыми системами связи. И естественно почти все знающего о стандартах их соблюдении и особенно измерении -
многие годы именно разработка тестового оборудования была моей работой.
Привет многолетним дотягивателям древней аналоговой радиосистемы "Алтай" до сколь-нибудь рабочего рабочего состояния!

Цитата(blackfin @ Jun 9 2010, 12:29) *
набором дешевых АЦП заменяет

В цифровых станциях и набор дешевых АЦП не нужен, ввиду отсутствия аналогового сигнала после абонетского комплекта. А в мелкокоробочно-штучном варианте, АЦП, как грязи на борту практически любого микроконтроллера. MIPS-ов нынешними микроконтроллерам тоже хватает. Что собственно и было сразу сказано. Имеющий уши, да услышит.
Harbinger
Если предположить, что устройство, содержащее декодер, находится не на одной плате с МК (и вообще заранее неизвестно, куда оно будет подключено), то декодер с последовательным интерфейсом смотрится вполне логично - линии экономятся, а требования к разводке SPI или I2C несколько проще, чем для аудио. Аппаратный в этом случае выигрывает перед программным на "мелком" микроконтроллере - исключается работа программиста (пусть и простая) и технологическая операция программирования МК.
zltigo
Цитата(Harbinger @ Jun 9 2010, 17:20) *
Если предположитью..

Всяких "если", может быть вагон и маленькая тележка и "работа программиста" нельзя сказать, что любой справится, речь просто идет о том, что по нынешними временам в качестве базового варианта, с которого надо начинать рассматривать и к чему стремиться, это вариант размещения DTMF приемников "в уголке" основного контроллера. Дальше конечно можно всяких если (если я только PIC14 знаю а другого и знать не хочу, если я год писал только пересылку двух байта в UART, если.... ) добавлять сколько угодно.
В данном случае, если действительно есть "идеи" гнать DTMF через полный акустический канал GSM, то свой вариант приемника позволит хоть как-то бороться с последствиями кодирования.
Harbinger
GSM ещё цветочки smile.gif... через CDMA вообще не гонится. Обычно проходит кусочек, миллисекунд 10-20.
alx125
И при всем что здесь было сказано, остается открытым вопрос - почему ни один производитель не реализовал в своих GSM приемниках встроенный DTMF-декодер? Наверное для этого существуют важные причины!
В частности, на форуме Nokia (forum.nokia.com) этот вопрос тоже постоянно обсуждается для Symbian.
rolleyes.gif
Dima_G
В тему самостоятельной разработки DTMF декодера - мнение моего бывшего начальника
http://www.microchip.su/showpost.php?p=425...mp;postcount=41

Цитата
Небольшое отступление
Однажды, на конференции DSPA, разговорились с инженером компании, работающей в "смежном" направлении (разрабатывающей телефонные станции, средства мониторинга и архивации), и речь коснулась DTMF детектора. Я с удивлением узнал, что они делали DTMF три месяца. Меня это развеселило, ибо незадолго перед этим я как раз сделал DTMF детектор за две-три недели. Притом, что у меня уже был большой опыт по разработке детекторов частотных сигнализаций R.1/R.2/R1.5 + АОН. Это была "неофициальная" работа, мне захотелось расширить функциональность модуля на будущее, может кому пригодится. Услышав про эти три недели мужики только хитро щурились и ухмылялись в усы.

Теперь, спустя 5 лет, моя очередь хитро щуриться и ухмылятся в отрощеные усы , слыша ваши мнения о "детекторе за месяц".

Дело в том, что разница между "работающим" детектором (даже отвечающим требованиям ITU-T, ETSI, отечественным отраслевым РД и т.п. стандартам/рекомендациям), и "хорошим" детектором, который не задумываясь можно применять в любом проекте - столь существенна, что сложность и, соответственно, время разработки возрастают на порядок.

В реальной жизни, сумма человеческих ресурсов, потраченных на исследования, моделирование, разработку, оптимизацию, создание тестового инструментария, собственно тестирование, анализы причин отказов и т.д. - у нас получилась приблизительно около 6 человеко/месяцев.
Некоторых частей проведенной работы можно было избежать, от других отказаться жертвуя функционалом, третьи просто не проводить, жертвуя производительностью. Но и в таком формате общая сложность разработки "хорошего" детектора не будет менее 3 человеко/месяцев.

Если вы работаете в области, где применимый в реальной жизни результат не так уж и важен (например "грантоедство"), то детектор за 1 месяц достаточно. Однако в коммерческом секторе реальный заказчик вам за такой продукт денег не заплатит, и с этим придется считаться. И разработчик может сколько угодно бить себя в грудь, взывать к авторитетам ITU-T, ANSI, ETSI, размахивать стопкой сертификатов соответствия - увы, на решение заказчика это мало повлияет, денег вы не увидите. В лучшем случае, можно договорится "по русски", т.е. "сейчас поставим, потом доделаем".

Таким образом, один из главных тезисов - есть алгоритмы "отвечающие стандартам", а есть "реально работающие", и разница между ними велика. Как было отмечено - по этой задаче студентов учат, ну чтож, по задаче движения точки с переменной массой тоже учат, но немногие, после её решения, в состоянии расчитать и построить реальную ракету.


При разработке "правильного" DTMF детектора возникаем множество проблем. Вот примерный список (НЕсортированный по приоритету и сложности, и неполный)

1. Детекция частот
Вроде бы элементарно, но если в погоне за производительностью вы применяете блочные алгоритмы типа Герцеля будте готовы с некорректным определением длтельности сигналов, энергии при наличии разрывов, неточному определению частот, широкому спектру помех в начале и конце посылки и т.д. Применение полосовых фильтров существенно уменьшает некоторые проблемы, но и существенно увеличивает потребление вычислительных ресурсов.

2. Детекция сигнала DTMF (принятие решения)
Далеко не все возможные проблемы отражены в рекомендациях. Да и в самих документах есть широкий простор для неоднозначных толкований (см. May be valid). Некоторые вещи там даны на откуп разработчику и прямо не требуются (например детекция безъинтервального сигнала). К сожалению так и не дошли руки до применения нейронной сети для контроля всех параметров сигнала, а она там просто напрашивается. Принятие решения осложняется приведенным выше пунктом 1, из-за невозможности (либо сложности) корректно определить алгоритмом Герцеля длительность сигнала, энергию, точную частоту и т.п.


Вот эти первые два пункта часто и считают "детектором DTMF". Все проблемы здесь решаемы, они очевидны, либо проявляются при первых тестах. На грамотную реализацию этих пунктов вы как раз потратите 1-3 месяца в зависимости от опыта, предварительных заделов (например моделей алгоритмов), наличия хорошей тестовой платформы, применяемого языка и платформы.
Но, мы ведь не забыли, прибавить время разработки пакетных тестов к времени разработки самого детектора, правда? А время тестировщика (или своё собственное, если это одно лицо)? Есть вообще категория людей и стиль ведения проектов, когда делается за месяц, а потом три месяца тестируется.
Так что, боюсь, сюда еще требуется добавить около 1 человеко/месяца "тестового ресурса". Исполнители, т.е. инженеры-разработчики, стремясь подчеркнуть свой уровень, обычно оперируют только месяцем разработки, абсолютно не учитывая затрат на тестирование. Для этого, над ними поставлен руководитель, который всё это считать обязан.

А вот следующие пункты уже не столь очевидны. Однако отжирают приблизительно такое-же количество ресурсов.


3. Устойчивость к речи и (SIC!) к музыке
Наиболее сложная задача, практически не отражена в рекомендациях. Грамотно спроектированный детектор, даже без дополнительных блоков защиты, успешно проходит тесты на устойчивость к речи, хотя и без запаса прочности. Однако в современной станции требуется также и устойчивость к музыке, здесь задача еще более усложняется. Да и уровень "стандартной защиты" заказчика может не устроить.

Кстати, хочу отметить, что распространённый критерий устойчивости к речи, приводимый во всех статьях про детектор DTMF "для студентов" - анализ второй гармоники сигнальной частоты - на самом деле ОЧЕНЬ слабый, и в "серьёзном" алгоритме присутствует лишь "для галочки", т.к. перекрывается другими более надёжными и достоверными критериями.
Более того, "студенческий" алгоритм использующий ТОЛЬКО этот критерий - не пройдет даже Белл-овские тесты на устойчивость речи, не говоря уже о хоть скольнибудь серьёзной защиты от музыки.

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

И сигналы необходимо детектировать невзирая на эти "проблемы" реального мира, "плохого" оборудования заказчика и линий связи, еще помнящих голоса Троцкого и Бухарина. Но при этом другие параметры детектора (например устойчивость к речи) страдать не должны. А что существует "допустимое НЕсрабатывание на тоне", я, извините, даже и не слышал, для детектора даже единичное такое несрабатывание - незачёт.


В итоге, у нас, все проблемы были успешно разрешены. Попутно сделаны несколько дополнительных модулей, например "предварительный детектор", который с высокой вероятностью вычисляет появление DTMF сигнала по 5-7мс интервалам, для систем где необходимо блокировать голосовой тракт при передаче DTMF, а также для систем VoIP, NGN, GSM, где (как обсуждалось выше) информация от детектора передается в цифровом виде, а генерацию DTMF сигнала приемная сторона осуществляет самостоятельно.
Детектор отличается очень низким потреблением производительности, которое при подключении предварительного детектора "в тандеме" становится еще меньше. Это важный для нас показатель, т.к. сильно влияет на цену, а значит и конкурентноспособность (возможно, и с запасом, обрабатывать до тысячи каналов на DSP класса C64).
Самое главное достоинство - практически непробиваемость человеческой речью и очень высокая устойчивость к музыке. Голосовые тесты (популярные, открытые и коммерческие) детектор проходит с перекрытием допустимого минимума ошибочных детекций на порядки. Каких-то "официальных" тестов для музыки мне не встречалось, однако и там устойчивось, на мой взгляд, замечательная, по крайней мере она "достаточна".

Разработанный детектор применяется на нескольких DSP платформах. Сертифицирован в составе станционного оборудования в 10-ти странах мира и обслуживает, на данный момент, более 5 миллионов абонентов, в составе различных проектов на различном оборудовании.

С уважением,
МАШИН Андрей Павлович
Руководитель отдела разработки №4
Embedded software sector

P.S.
Если мне сейчас дать задание создать то-же самое с нуля, я потрачу примерно полтора-два месяца, и это с учетом того, что весь этот путь уже был пройден. И если человек без опыта берется делать нечто подобное за 1 месяц, оценив сложность работы лишь на основе "постановки задачи" то он, по моему мнению, либо гений (тогда мы были бы о нём наслышаны), либо глупец (тогда врятли мы о нём еще, что либо, услышим), либо просто не имеет опыта (что наиболее вероятно). В последнем случае - всё еще впереди, с опытом придет и умеренность в суждениях.
sobr
Цитата(alx125 @ Jun 10 2010, 06:59) *
остается открытым вопрос - почему ни один производитель не реализовал в своих GSM приемниках встроенный DTMF-декодер?
Вопрос поставлен не верно... Правильная постановка: Почему Вы не знаете о GSM модулях способных детектировать DTMF? А они есть... Например WMP100. DTMF - одна из причин по которой я использую этот модуль.
Что касается цитаты МАШИНА Андрея Павловича привенной выше, я не могу не согласиться, НО господа, "народный 8870" никак не соответствует понятию "хороший детектор".
Года два назад я делал "декодер за месяц" на dsPIC. Он работал стабильней, чем "народный 8870". Теперь в этом нет необходимости.
Но... тема то совсем о другом.
alx125
Цитата(sobr @ Jun 10 2010, 07:36) *
Вопрос поставлен не верно... Правильная постановка: Почему Вы не знаете о GSM модулях способных детектировать DTMF? А они есть... Например WMP100. DTMF - одна из причин по которой я использую этот модуль.


Мне известно это. Но их так мало, что я посчитал правильным об этом даже не упоминать в постановке вопроса!
CADiLO
Абсолютно согласен с приведенным выше. Мы пытались детектировать DTMF в канальных интервалах потока ST-BUS. "Вылизывали" детектор на ADSP-2181 почти 4 месяца. Алгоритмы пробовались самые разные, моделировалось в матлабе...... Нам казалось что все работает идеально.
Повезли нашу миникоммутацию на сертификацию с тестами в реальных условиях. И сразу все провалили. Вобщем пришлось поставить кодеки, на них повесить декодеры и только тогда оборудование прошло тесты. Замечу, что эти было почти 9 лет назад.Тогда и о PIC18 еще не слышали, не то что о 24-х
Конечно за это время многое ушло вперед, но мое мнение остается прежним - чем делать простой програмный декодер который неизвестно как себя поведет в реальной ситуации, то лучше поставить аппаратный. Надежнее и дешевле. Динамика лучше, аналоговая часть уже внутри.
Ну или если есть время и деньги - .... читайте написаное выше. Все зависит только от задачи.

>>>>НО господа, "народный 8870" никак не соответствует понятию "хороший детектор".

Согласен, ведь ему сколько лет??? У Зарлинка есть уже современные с динамикой в 50dB и надежностью определения на порядок лучше. Вот только доставаемость и цена.... А этого реликта хватает для 90% задач.

Если китайцы согласятся с нашими доводами, то SIM900 тоже обретет возможность декодирования DTMF.
zltigo
Цитата(CADiLO @ Jun 10 2010, 09:13) *
Тогда и о PIC18 еще не слышали, не то что о 24-х

Это совершенно не имеет значения.
Цитата
Ну или если есть время и деньги - .... читайте написаное выше. Все зависит только от задачи.

Вы все время пытаетесь притянуть свой аналоговый опыт в радиоканале sad.gif. В данном случае проблемы совершенно другие - ну нет в этих условиях ни "-50dB" (биппером в микрофон по нынешним временам экзотика), ни битвы за распознавание DTMF на фоне развеселой музыки и грозовых разрядов. Явно управление очередной "охранкой". Зато в полный рост есть проблемы наличия GSM кодека, о которых никакие "8870" ни сном ни духом, будь они хоть дважды "-50dB".
Цитата
А этого реликта хватает для 90% задач.

Ну хорошо, что хоть осетра до 90% урезали smile.gif, ну и как он по Вашему соотносится с поставленной здесь задачей? По моему опыту периодического наблюдения самодельщиков от GSM (лет десять назад вообще косяками ходили sad.gif )пробегающих с вечными вопросами типа "а почему у меня DTMF не всегда и не везде принимается", всякие "народные" не пригодны для реальной работы на GSM сетях.
CADiLO
>>>Это совершенно не имеет значения.
Правда? Ну тогда сделайте мне распознавалку например на PIC16F76.

>>>Явно управление очередной "охранкой". Зато в полный рост есть проблемы наличия GSM кодека, о которых никакие "8870" ни сном ни духом, будь они хоть дважды "-50dB".

Да нету никакой проблемы GSM кодеков - НЕТУ! ДЕЛАТЬ ПРАВИЛЬНО НУЖНО ВОТ И ВСЕ.

1. Не отправлять DTMF в аудиоканал - тогда точно будет Ваша "проблема GSM кодека " - называйте как хотите.
Используйте AT команду для генерации DTMF сотой и будет вам 100% распознавание.
Если конечно оператор не порежет - как это сделал в свое время Билайн - отрезал последние 4 служебных символа DTMF.

2. Если есть такая возможность, то подключать декодер по дифференциальной схеме.

ВСЕ!!! проверено даже не на сотнях, а на тысячах изделий.

Самодельщики и будут ходить косяками пока не соизволят хотя бы открыть документацию и почитать для чего же делали команды подобные AT+VTS и будут продолжать "дудеть" в аудиоканал.....
av-master
Пока, Вы тут сприте, мы вот уже 130-ю девайсину продали (за месяц) . на 88l70 )) в диф включении. только не на модуль работает, а прослушивает телефонную линию паралельно ( с кучей шумов и т.д... ) и ловит там посылки Contakt ID . с очень укорочеными длинами и пазами. все работает никаких (Стук по дереву) глюков и т.д...
а могли бы еще пару месяцев сидеть писать свой декодер и когданить к осени вышли бы на рынок )) а не став экономить 0.5 бакса, ИМХО приняли верное решение, и к Августу вместо Kрыма рванем куданить к Океану )) чего и всем желаю ))

В наше время уже распознавание голоса нужно програмить ))
zltigo
Цитата(CADiLO @ Jun 10 2010, 11:27) *
>>>Это совершенно не имеет значения.
Правда? Ну тогда сделайте мне распознавалку например на PIC16F76.

А чего это Вы вдруг резко подменили ADSP-2181 на котором не смогли (а типа на dsPIC сегодня смогли???) сделать 9 лет назад на PIC16F76? Ну а вообще, это действительно не имеет значения - хоть на калькуляторе. Только время обработки будет много больше smile.gif.
Цитата
1. Не отправлять DTMF в аудиоканал - тогда точно будет Ваша "проблема GSM кодека " - называйте как хотите.

Отличный "совет". Никто на моей памяти с этим и не спорил. Все изумительно работает, ибо так и задумано для осуществления донаборов с мобильников в аналоговые сети.
У самодельщиков проблемы, когда они хотят НЕ с мобильника на "охранку" позвонить, а, например, с обычного проводного, да путь и с ISDN, телефона. Ну нету там "команды подобные AT+VTS". Совсем нету.



Цитата(av-master @ Jun 10 2010, 11:31) *
только не на модуль работает...

Еще один "прекрасный совет" - не использовать GSM вообще smile.gif. Я все правильно понял?
Zizo
Для более-менее надёжного детектирования DTMF через GSM, и любой другой голосовой кодек, есть другое решение. Решение не подходящее для большинства "самодельщиков", но вполне реализуемое производителями оборудования, в виду бОльших трудозатрат. Мы применяли его для оборудования NGN сетей, VoIP гейтов и проекта "цифрового уплотнения" междугородних цифровых линий связи.

Смысл простой - при обнаружении DTMF кода на абонентской аналоговой линии, или просто - при необхомости передать "рапознаваемый" DTMF, в сеть должны быть отправлены заранее подготовленные пакеты голосового кодека, при декодировании которых получится сигнал, максимально близкий по параметрам к DTMF. Т.е. требуется немного шаманских плясок с бубном для подбора такого кодированного сигнала, который на приёмной стороне будет надёжно определяться большинством "нормальных" детекторов (будь то программный или аппаратный). Немного поиграть с амплитудами, девиацией, фазой, формой окна и вуаля - всё вполне работоспособно. Мы подбирали такие пакеты для GSM с разными битрейтами, iLBC, G.729AB. Графическое изображение такого сигнала выглядит "коряво", однако все параметры анализируемые детектором, попадают в границы окна надёжного детектирования.
zltigo
Цитата(Zizo @ Jun 10 2010, 11:49) *
Смысл простой - при обнаружении DTMF кода на абонентской аналоговой линии

Некому распознавать - есть аналоговый телефон, чей-то чужой шлюз в GSM и злосчастный GSM модуль на другом конце.
Цитата
, или просто - при необхомости передать "рапознаваемый" DTMF, в сеть должны быть отправлены заранее подготовленные пакеты голосового кодека

Нету возможности у произвольного аналогового телефона отправлять заранее подготовленные пакеты.
В общем есть "самодельщик" один на один с голосовым каналом вылезающем из его GSM модуля sad.gif.
sobr
Цитата(zltigo @ Jun 10 2010, 15:48) *
НЕ с мобильника на "охранку" позвонить, а, например, с обычного проводного, да путь и с ISDN, телефона...

+1
av-master
smile.gif СЛОМАТЬ дтмф наоборот )) ГГ. вполне возможно. но это на стационарной линии с меедленно меняющимися параметрами будет работать.
ВКСЛ когдато пользовал для передачи неискаженного видео по очень длинным линиям )) но там параметры под линию выставил и все. а КАК здесь заранее знать ка пойдет или поломается сигнал ? причем с прыжками по Базам он может поменяться даже в пределах одной Цифры/Знака...

Цитата
Еще один "прекрасный совет" - не использовать GSM вообще . Я все правильно понял?
тогда просто запретить обычные телефоны и не париться )) а работать как есть )
CADiLO
Не подменили - невнимательно читали.
На ADSP мы пытались распознавать в цифре - и не смогли пройти испытания. Пришлось конвертнуть цифру в аналог и поставить декодеры.

А PIC это к тому, что на то время не на чем было делать програмный декодер с аналоговым входом и малой стоимостью.
Только с появлением PIC18 и запихиванием туда таблиц фурье преобразования, получился относительно хорошо ведущий себя декодер.
Но аналоговая часть требовала как минимум счетверенного операционника (АРУ + предварительные фильтры).

Можно спорить до бесконечности, но програмный DTMF декодер не достигнет качества аппаратного за те же деньги.

>>>>У самодельщиков проблемы, когда они хотят НЕ с мобильника на "охранку" позвонить, а, например, с обычного проводного, да путь и с ISDN, телефона.

Простите, а это еще как????

Вообще-то имеется канал общения объекта (датчика) с центральным пультом посредством DTMF. Как Вы представляете себе туда позвонить и зачем датчику или пульту Ваш звонок ????

Далее - если я позвоню с обычного телефона на сотовый - то мой DTMF от обычного телефона распознает коммутатор сотового оператора и точно так же даст команду последней соте сгенерить сигнал. Или Вы с таким не сталкивались?
av-master
и вообще не вижу проблемы, только что позвонил. и через динамик телефона в микрофон прослушки все прекрасно схавал 88L70
zltigo
Цитата(CADiLO @ Jun 10 2010, 12:35) *
Можно спорить до бесконечности, но програмный DTMF декодер не достигнет качества аппаратного за те же деньги.

Я и спорить продолжать не буду, просто скажу в последний раз, что это полный бред. Как минимум матаппарат для синтеза ЛЮБЫХ фильтов один и тот-же, а ресурсов в цифре несравненно больше. Но тем, кто не смог синтезировать приемник на DSP и забубенил "Пришлось конвертнуть цифру в аналог и поставить декодеры.", это объяснять, как я вижу, уже бесполезно sad.gif.
Цитата
Далее - если я позвоню с обычного телефона на сотовый - то мой DTMF от обычного телефона распознает коммутатор сотового оператора и точно так же даст команду последней соте сгенерить сигнал. Или Вы с таким не сталкивались?

Тут в основном все сталкиваются не с идеологически "правильным" поведением провайдера с распознаванием DTMF, факсовых вызовов, модемных вызовов, а прямо с совершенно ПРОТИВОПОЛОЖНЫМ sad.gif. Идеологически правильное поведение провайдера достигается в большинстве случаев достаточно просто - просто надо сказать я вам денюжку принес - сделате мне пожалуйста DTMF/Fax/Modem.
sobr
Цитата(av-master @ Jun 10 2010, 16:36) *
и вообще не вижу проблемы, только что позвонил. и через динамик телефона в микрофон прослушки все прекрасно схавал 88L70

"- Ты видишь суслика?
- Нет.
- И я, нет, а он есть...
"
Господа, достаточно спорить, все равно все останутся при своих мнениях. Те, кто использует 8870 - молодцы, те, кто делает на своем контроллере - молодцы. Не молодцы те, кто вобще никак не делает...
=F8=
ИМХО единственное преимущество аппаратных декодером наличее АРУ. Если большой динамический диапазон не нужен, а в абсолютном большинстве случаев он не нужен, то преимущество за программным детектированием. Во всяком случае задача детектирования DTMF прошедшего через аудиотракт на 8870 не решаема абсолютно, программно еще можно как-то побороться. А эта задача намного актуальней(актуальная задача это задача за решение которой готовы платить деньги smile.gif ) чем прием DTMF пришедшего фиг знает откуда.
alx125
Цитата(zltigo @ Jun 10 2010, 12:49) *
Я и спорить продолжать не буду, просто скажу в последний раз, что это полный бред. Как минимум матаппарат для синтеза ЛЮБЫХ фильтов один и тот-же, а ресурсов в цифре несравненно больше. Но тем, кто не смог синтезировать приемник на DSP и забубенил "Пришлось конвертнуть цифру в аналог и поставить декодеры.", это объяснять, как я вижу, уже бесполезно sad.gif.


Очень часто это так, но есть и исключения.
Например, цифрового эквивалента аналогового фильтра на переключающихся конденсаторах я не знаю.
А также аналоговых реализаций быстрых цифровых алгоритмов тоже нет. Например, БПФ и т.п. Это специфические алгоритмы именно для цифровой обработки!

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

Цитата(=F8= @ Jun 10 2010, 18:31) *
ИМХО единственное преимущество аппаратных декодером наличее АРУ. Если большой динамический диапазон не нужен, а в абсолютном большинстве случаев он не нужен, то преимущество за программным детектированием. Во всяком случае задача детектирования DTMF прошедшего через аудиотракт на 8870 не решаема абсолютно, программно еще можно как-то побороться. А эта задача намного актуальней(актуальная задача это задача за решение которой готовы платить деньги smile.gif ) чем прием DTMF пришедшего фиг знает откуда.


Так почему же она (задача) еще не решена даже для таких брендов как Nokia и т.п.? У них то ресурсов (денег, мозгов и т.п. хватает). Ведь это было бы их небольшое но конкурентное преимущество.

Но почему-то 99% всех GSM модулей имеют только команды для генерации DTMF, но не декодирования!
Скорее всего не возможно обеспечить 100% работоспособность этого DTMF-декодера во всем спектре применений и условий эксплуатации GSM-модулей. А это уже не их (больших фирм) подход...
blackfin
Цитата(alx125 @ Jun 11 2010, 05:30) *
Так почему же она (задача) еще не решена даже для таких брендов как Nokia и т.п.? У них то ресурсов (денег, мозгов и т.п. хватает). Ведь это было бы их небольшое но конкурентное преимущество.

Потому, что сама эта задача абсурдна с точки зрения идеологии GSM.

Ведь, что такое GSM? Это передача АНАЛОГОВОЙ информации в ЦИФРОВОМ виде. А что такое DTMF? Это передача ЦИФРОВОЙ информации в АНАЛОГОВОМ виде. В итоге, получаем довольно абсурдную схему передачи с использованием DTMF:

ЦИФРА->DTMF->АНАЛОГ->GSM(кодер)->ЦИФРА->ЦИФРОВОЙ_КАНАЛ_ПЕРЕДАЧИ->ЦИФРА->GSM(декодер)->АНАЛОГ->DTMF->ЦИФРА.

Сравните со схемой передачи без использования DTMF:

ЦИФРА->GSM(модем)->ЦИФРА->ЦИФРОВОЙ_КАНАЛ_ПЕРЕДАЧИ->ЦИФРА->GSM(модем)->ЦИФРА.
zltigo
Цитата(alx125 @ Jun 11 2010, 04:30) *
Например, цифрового эквивалента аналогового фильтра на переключающихся конденсаторах я не знаю.

Любой аналоговый фильтр имеет цифровой эквивалент. Переключаемые конденсаторы ничем, кроме как ЦИФРОВЫМ способом изменения параметров обычных аналоговых фильтров не являются. У аналогового фильтра появилась тактовая частота smile.gif, он получил одно из преимуществ цифрового - перестройку, при сохранении аналоговой природы и аналоговых входов выходов. Да,он при заточке под конкретное применение прекрасно и эффективно решает задачи. Но эти-же задачи ничуть не являются чем-то чуждым для цифровой обработки. Да, в наиболее ярком случае "аналог вход - жестко заданный набор типов фильтров - аналоговый выход" фильтр на переключаемых конденсаторах сморится явно роднее и проще цифрового обвешенного преобразователями. Но ничего, что не может сделать цифровой, он не делает.

Цитата(blackfin @ Jun 11 2010, 06:38) *
Потому, что сама эта задача абсурдна с точки зрения идеологии GSM.

Именно так. По этой причине я так часто упоминаю в этой теме слово "самодельщик".
sobr
Цитата(alx125 @ Jun 11 2010, 08:30) *
Но почему-то 99% всех GSM модулей имеют только команды для генерации DTMF, но не декодирования!
На мой взгляд примерно так:
DTMF декодирование отнимает (требует) ресурсы процесора и памяти, что приводит к удорожанию в целом, а теперь давайте подумаем кому оно (DTMF декодирование) нужно? БОЛЬШИНСТВО модемов работают как клиент-терминал в лучшем случае они генерируют DTMF, а как правило используется GPRG\EDGE, а занимаются декодированием лишь небольшаячасть тех, кто делает "охранки" и "мониторинг" (в т.ч. и я) но это очень маленькая аудитория. И даже те модули которые умеют декодировать DTMF, делают это как отдельный плагин (опция), да и в "мониторинге" DTMF нужен как зайцу стоп сигнал...
=F8=
Цитата(alx125 @ Jun 11 2010, 04:30) *
Так почему же она (задача) еще не решена даже для таких брендов как Nokia и т.п.? У них то ресурсов (денег, мозгов и т.п. хватает). Ведь это было бы их небольшое но конкурентное преимущество.

Но почему-то 99% всех GSM модулей имеют только команды для генерации DTMF, но не декодирования!
Скорее всего не возможно обеспечить 100% работоспособность этого DTMF-декодера во всем спектре применений и условий эксплуатации GSM-модулей. А это уже не их (больших фирм) подход...


Потому же почему функционал GSM-шлюзов у Nokia чуть более чем никакой - не видят в этом необходимости.
Не знаю как вы, но я работаю на маленькой конторе, а маленькие фирмы во многом живут тем, что делают то во что крупные лезть не хотят.

PS А не знаете сколько на территории СНГ фирм занимающихся производством электроники с оборотом сравнимым с Nokia?
ArtemKAD
Цитата(blackfin @ Jun 11 2010, 06:38) *
Потому, что сама эта задача абсурдна с точки зрения идеологии GSM.

Ведь, что такое GSM? Это передача АНАЛОГОВОЙ информации в ЦИФРОВОМ виде. А что такое DTMF? Это передача ЦИФРОВОЙ информации в АНАЛОГОВОМ виде. В итоге, получаем довольно абсурдную схему передачи с использованием DTMF:

ЦИФРА->DTMF->АНАЛОГ->GSM(кодер)->ЦИФРА->ЦИФРОВОЙ_КАНАЛ_ПЕРЕДАЧИ->ЦИФРА->GSM(декодер)->АНАЛОГ->DTMF->ЦИФРА.

Сравните со схемой передачи без использования DTMF:

ЦИФРА->GSM(модем)->ЦИФРА->ЦИФРОВОЙ_КАНАЛ_ПЕРЕДАЧИ->ЦИФРА->GSM(модем)->ЦИФРА.

А давай я тебе подправлю столь стройные рассуждения.
Начнем с того, что DTMF это ЕДИНСТВЕННЫЙ абсолютно везде работающий способ передачи цифровых данных в реальном времени с ЛЮБОГО телефона на удаленный мобильный терминал.
Кроме того, передача DTMF выглядит иначе:
ЦИФРА->ЦИФРОВОЙ_КАНАЛ_ПЕРЕДАЧИ->ЦИФРА->GSM(модем)->АНАЛОГ->DTMF->ЦИФРА.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.