|
|
  |
Прием DTMF в ИКМ тракте с помощью FPGA., Просьба подсказать ссылки по теме. |
|
|
|
Aug 26 2007, 07:36
|
Местный
  
Группа: Свой
Сообщений: 339
Регистрация: 27-08-05
Пользователь №: 8 013

|
Вот возникла необходимость организовать прием в FPGA ( причем конкретно в семействе Cyclon ) DTMF сигналов, приходящих в цифровом виде из ИКМ тракта. Поиск в интерете и на форуме как-то не очень помог. По фильтрации информации много, но ведь просто городить несколько фильтров с последующей обработкой неохота. Во первых, вид реализации и параметры фильтров еще надо выбрать для данного применения оптимальным образом, исходя из частично неведомых мне критериев - надо что-то почитать про это. Во вторых, возможно, эффективнее задача решается не в лоб, а каким-то методами спектрального анализа или комбинацией методов. Кроме того, принимаемые сигналы имеют конкретные критерии и допуски для опознавания, типа допустимые уровни, соотношения уровней двух частот итд, что может позволить оптимизировать устройство. Нельзя забывать и про шумовые своства канала и помехи. В общем, буду благодарен за любую информацию и указания на ссылки по теме и про прием DTMF вообще.
|
|
|
|
|
Aug 27 2007, 05:26
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Цитата(bsp @ Aug 26 2007, 10:36)  Во вторых, возможно, эффективнее задача решается не в лоб, а каким-то методами спектрального анализа или комбинацией методов. . . . . . . . . . В общем, буду благодарен за любую информацию и указания на ссылки по теме и про прием DTMF вообще. Мало исходных данных и ограничений налагаемых на способ решения задачи. 1. Здесь ИКМ-30 или другой? Съем сигнала из потока TDM в уровнях ТТЛ? 2. Можно фильтровать на FPGA либо квадратурной сверткой (это применял сам), либо алгоритмом Герцеля, а далее пороговая обработка. Информации по Герцелю много в Интернете, есть немного здесь http://www.gaw.ru/html.cgi/txt/doc/micros/...v/max2000_1.htm. А можно применить специализированную аналоговую ИМС с кодовым выходом (тоже применял).
|
|
|
|
|
Aug 27 2007, 08:25
|
Местный
  
Группа: Свой
Сообщений: 339
Регистрация: 27-08-05
Пользователь №: 8 013

|
Спасибо за ответ, а ситуацию действительно надо описать подробнее. Существует несколько устройств, имеющих в своем составе Cyclon ep1c3tc100c8 или ep1c3tc144c8 ( причем заложена возможность вместо ep1c3tc144c8 устанавливать ep1c6tc144c8 ). На этих Циклонах, помимо прочих узлов, реализован коммутатор на 8 ИКМ-30 трактов, на который приходит классический ИКМ-30 ( только речевые сигналы, без сигнализации, но это не имеет значения ). Надо создать несколько ( два уже было-бы неплохо ) приемников DTMF сигнала, каждый из которых будет работать с одним канальным интервалом. Эти приемники будут подключены к коммутатору. Информация, принятая приемниками может иметь не окончательный вид, а дополнительно обрабатываться внешним контроллером ARM, но сильно загружать его и канал связи к нему интенсивной обработкой нельзя, но какую нибудь итоговую логически сложную обработку можно сделать. То есть уже ARM может решать, какая цифра пришла и пришла или нет и.т.д.
Как видите, система уже сложилась, существует несколько разных плат и модулей и вот туда надо добавить приемники DTMF сигнала. Сколько для этого надо ресурсов и каких - непонятно. В Циклонах большая часть ресурсов свободна, надо встроить в них. Применять внешние специализированные микросхемы или переразводить платы неприемлемо, да и в некоторых случаях места для дополнительных узлов нет. Так-что если есть советы или ссылки по реализации таких приемников в FPGA ( и вообще по DTMF приемникам ) - приму с благодарностью. В связи с FPGA информация может быть не только по Алтеровским микросхемам. .
|
|
|
|
|
Aug 27 2007, 09:53
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Цитата(bsp @ Aug 27 2007, 11:25)  В Циклонах большая часть ресурсов свободна, надо встроить в них. Похоже, Вы работаете с восьмью TDM-потоками, где есть битовая и цикловая синхронизация. Тогда нужно будет: 1. Выделить из потоков нужный канальный интервал (отбрасывая сигнальные) и принять его байт. 2. Учитывая, что все байты сжаты по А-закону (типа плавающая запятая), развернуть их до 14-разрядов. 3. Выполнить фильтрацию по всем исследуемым гармоникам на интервале в 10 мс (можно 8 или 5 мс). 4. Вычислить текущий порог (можно усреднением). 5. Выбрать два наибольших значения кода гармоник по порогу или просто наибольшие. 6. Сделать обработку на подтверждение (коды должен повторяться 40..90мс). Далее определить DTMF-цифру. А в целом, здесь много путей-решений, Вам выбирать оптимальный. Задача из сложных.
|
|
|
|
|
Aug 27 2007, 10:40
|
Местный
  
Группа: Свой
Сообщений: 339
Регистрация: 27-08-05
Пользователь №: 8 013

|
Цитата(Волощенко @ Aug 27 2007, 12:53)  Похоже, Вы работаете с восьмью TDM-потоками, где есть битовая и цикловая синхронизация. Тогда нужно будет: 1. Выделить из потоков нужный канальный интервал (отбрасывая сигнальные) и принять его байт. 2. Учитывая, что все байты сжаты по А-закону (типа плавающая запятая), развернуть их до 14-разрядов. 3. Выполнить фильтрацию по всем исследуемым гармоникам на интервале в 10 мс (можно 8 или 5 мс). 4. Вычислить текущий порог (можно усреднением). 5. Выбрать два наибольших значения кода гармоник по порогу или просто наибольшие. 6. Сделать обработку на подтверждение (коды должен повторяться 40..90мс). Далее определить DTMF-цифру. А в целом, здесь много путей-решений, Вам выбирать оптимальный. Задача из сложных. В этом перечне интересует пункт 3. Цитата(I.S.A. @ Aug 27 2007, 13:10)  Я лично писал диплом на тему "РАЗРАБОТКА МНОГОКАНАЛЬНОГО МНОГОЧАСТОТНОГО ЦИФРОВОГО ФИЛЬТРА ДЛЯ ПРИМЕНЕНИЯ В СИСТЕМАХ ТЕЛЕКОММУНИКАЦИИ"..... необходимо разработать цифровой фильтр, со следующими параметрами: одновременная работа с 256 каналами; по каждому каналу необходимо выделять 8-мь различных частот из 32-х, заранее заданных; значения выделяемых частот должны задаваться управляющей программой устройства, на котором установлен данный фильтр.
Там, где я работал, один Гуру создал такую систему и одно из применений - выделение DTMF. Идеальный фильтр - синхронный детектор, очень прост в реализации и понимании! Он был реализован в Altera ACEX1K. Впечатляет! Одно смущает - мне нужен узел поскромнее, а в этом случае может оказаться подходящим другой способ реализации. Хотя, ACEX1K не очень мощная штука ( а кстати, конкретно какая модель - они сильно отличаются по ресурсам ), может поместится аналогичная вещь и меня. Ну а какие-нибудь ссылки или подсказки есть?. А то с нуля выдумывать такую вещь трудно.
|
|
|
|
|
Aug 27 2007, 12:20
|

Частый гость
 
Группа: Участник
Сообщений: 95
Регистрация: 6-08-07
Из: Москва
Пользователь №: 29 583

|
Цитата(bsp @ Aug 27 2007, 14:40)  ... Одно смущает - мне нужен узел поскромнее, а в этом случае может оказаться подходящим другой способ реализации. Хотя, ACEX1K не очень мощная штука ( а кстати, конкретно какая модель - они сильно отличаются по ресурсам ), может поместится аналогичная вещь и меня. Ну а какие-нибудь ссылки или подсказки есть?. А то с нуля выдумывать такую вещь трудно. Держи, мне не жалко! Узел-то как раз один, а по входам стоит хитрый мультиплексор, который перенаправляет ТЧ. Синхронный детектор - один из видов цифровой фильтрации. Если что-то дополнительное понадобится, пиши в icq.
--------------------
Зачем все делать просто, когда все можно усложнить?
|
|
|
|
|
Sep 10 2014, 03:36
|

Группа: Новичок
Сообщений: 1
Регистрация: 10-09-14
Из: Томск
Пользователь №: 82 772

|
Цитата(I.S.A. @ Aug 27 2007, 19:20)  Держи, мне не жалко!
Узел-то как раз один, а по входам стоит хитрый мультиплексор, который перенаправляет ТЧ. Синхронный детектор - один из видов цифровой фильтрации. Если что-то дополнительное понадобится, пиши в icq. Привет, а проект еще жив? получить есть возможность? Заранее спасибо.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|