Как разобрать IMA ADPCM поток из модема
От: Karik Россия  
Дата: 17.11.04 09:51
Оценка:
Привет всем.
Помогите пожалуйста с таким вопросом:
Я пытаюсь встроить в свою программу функцию АОНа
получил ADPCM поток из модема как теперь понять
что за частоты в нем чтобы уже преобразовать в номер телефона?
Спасибо.
Re: Как разобрать IMA ADPCM поток из модема
От: Impuls  
Дата: 18.11.04 05:15
Оценка:
Здравствуйте, Karik, Вы писали:

K>Привет всем.

K>Помогите пожалуйста с таким вопросом:
K>Я пытаюсь встроить в свою программу функцию АОНа
K>получил ADPCM поток из модема как теперь понять
K>что за частоты в нем чтобы уже преобразовать в номер телефона?

Какие частоты ? Какой модем? Частоты АОНА или частоты оцифровки ?
Для АОН-а нужно кроме частот знать еще и протокол его выдачи.
По ADPCM — он тоже разный бывает в зависимости от чипсета модема
Я встречал 3 типа Мю Law , A Law , Rockwel ADPCM.Какой из них тебе
нужен ?
K>Спасибо.
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как разобрать IMA ADPCM поток из модема
От: Karik Россия  
Дата: 18.11.04 07:35
Оценка:
I>Какие частоты ? Какой модем? Частоты АОНА или частоты оцифровки ?
I>Для АОН-а нужно кроме частот знать еще и протокол его выдачи.
I>По ADPCM — он тоже разный бывает в зависимости от чипсета модема
I>Я встречал 3 типа Мю Law , A Law , Rockwel ADPCM.Какой из них тебе
I>нужен ?
K>>Modem US Robotics Sportster Voice нужно получить частоты которые
прислало оборудование АОН с АТС. С чего начать?
Re[3]: Как разобрать IMA ADPCM поток из модема
От: Impuls  
Дата: 19.11.04 08:43
Оценка:
Здравствуйте, Karik, Вы писали:

I>>Я встречал 3 типа Мю Law , A Law , Rockwel ADPCM.Какой из них тебе

I>>нужен ?

K>Modem US Robotics Sportster Voice нужно получить частоты которые

K>прислало оборудование АОН с АТС. С чего начать?

Ну вообще-то такие вопросы не совсем по тематике этой конференции
Боюсь что здесь это кому-то мало интерестно будет Вот мой E-mail
mailto:gena_impuls@mail.ru — лучше туда с вопросами приходи толку
больше будет

Ну вот тебе информация как это устроено :

Для расшифровки передаваемых сигналов надо определять любой последовательности сигналы частот
700,900,1100,1300,1500,1700 Гц

Вся информация формируется комбинациями из 2-х частот на основе 6 базовых:

700 , 900 — Символ "1"
700 , 1100 — Символ "2"

900 , 1100 — Символ "3"
700 , 1300 — Символ "4"
900 , 1300 — Символ "5"
1100, 1300 — Символ "6"
700 , 1500 — Символ "7"
900 , 1500 — Символ "8"
1100, 1500 — Символ "9"
1300, 1500 — Символ "0"
1100, 1700 — Символ "B" — "Начало пакета"
300, 1700 — Символ "P" — "Повтор цифры номера"

Информация передается беспаузным способом (метод "безынтервальный пакет") в следующем порядке:

<Цифра категории абонента>
<Цифра единиц номера>
<Цифра десятка номера>
<Цифра тысячи номера>
<3-я цифра индекса станции>
<2-я цифра индекса станции>
<1-я цифра индекса станции>
<код "начало Пакета">



Цифра категории абонента конируется следующим образом:
1Абоненты квартирные, учрежденческие, имеющие право междугородной и международной связи на общих основаниях
2Абоненты гостиниц, имеющие право по категории 1, но с немедленной оплатой переговоров.
3Абоненты не имеющие право выхода на междугородные и международные сети.
4Абоненты, имеющие преимущество выхода на междугородние и международные сети.
5Абоненты, имеющие право связи без тарификации, то есть переговоры не оплачиваются, но учитываются.
6Категория междугородних телефонов-автоматов. Иногда, некоторые "вечерние" телефоны.
7Абоненты, имеющие право кроме междугородной/международной связи, получать дополнительные платные услуги.
8Абоненты, имеющие преимущество при установлении связи в междугородних сетях и право на платные услуги.
9Категория городских телефонов-автоматов. Допускается применение категории 3.
0Резервная категория.

Пример: номер 1234567, категория 1, может быть выдан так: "17654321B97654321B"

Если две подряд цифры имеют одинаковое значение , один из них заменяется на символ повтора
Пример: номер 2250145, категория 5. Один из вариантов пакета может быть такой: "P54105P2BP54105P2B"
Длительность передачи каждой частотной комбинации (по ГОСТам) 40 мс (а реально может колебаться примерно от 25 мс до 56 мс!
Эти значения из моей практики Причем значения могут плавать +- 2-5 mS от пакета к пакету !!).

А теперь как с этим бороться
1) Тебе потребуется посчитать , написать и отладить обнаружитель частот.
Для этого необходимо и достаточно:
a) Изучить или повторить математику по прямому дискретному преобразованию Фурье,ну еще наверное Теорему Котельникова
по волновому спектральному анализу.
а) Для этого осуществить декомпресию из ADPCM в нормальный буффер оцифровки.
б) Узнать значения частоты оцифровки сигнала и ее дискретность.C US Robotics Sportster Voice
я не сталкивался поэтому подсказать не смогу Но обычно идет работа на частотах оцифровки
7200Гц,8000Гц и 11000 с копейками герц и дискретностью отсчета 8 бит.
в)Исходя из предыдущего пункта расчитывается минимальное время и точность обнаружения частоты.
г)Алгоритм обнаружения корректируется(оптимизируется) исходя из полученных начальных данных предыдущих пунктов
Ну к примеру для частоты оцифровки 8000 и дискретностью 8 бит и точностью определения частоты +-100 Гц ты без
оптимизации можеш обнаружить наличие произвольной частоты за время 64 mS.
2) Пишется логика выделения синхронизации и свертки номера в человеческий формат для последующего отображения

Писать и отлаживать лучше сначала просто на сгенерированных сигналах Можно написать свою программу генерации в файл получаемого
потока оцифровки , я например пользовался CoolEdit-ом Он позволяет формировать много-частотные сигналы с произвольным значения базовых
частот.Если это на сгенерированных сигналах начнет определять в пределах 85% сигналов с любым положением передаваемого пакета в буффере
оцифровки , то подстроиваеш алгоритм под записанные сигналы с реальной телефонной линии (Это кратковременные ослабления сигнала ,
щелчки в момент передачи информации от станционного оборудованния , повышенный/ пониженнй уровень сигнала (Тут отмечу что алгоритм обнаружения при сильном сигнале ,когда сигнал из синусоиды искажается в прямоугольник,будет давать результаты обнаружения с ложными срабатываниями) )
Еще при написании алгоритма следует стремится к тому чтобы алгоритм мог трудиться в реал-тайм.
Ну вот наверное приблизительно для начала должно хватить
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.