Привет всем.
Помогите пожалуйста с таким вопросом:
Я пытаюсь встроить в свою программу функцию АОНа
получил ADPCM поток из модема как теперь понять
что за частоты в нем чтобы уже преобразовать в номер телефона?
Спасибо.
Здравствуйте, Karik, Вы писали:
K>Привет всем.
K>Помогите пожалуйста с таким вопросом:
K>Я пытаюсь встроить в свою программу функцию АОНа
K>получил ADPCM поток из модема как теперь понять
K>что за частоты в нем чтобы уже преобразовать в номер телефона?
Какие частоты ? Какой модем? Частоты АОНА или частоты оцифровки ?
Для АОН-а нужно кроме частот знать еще и протокол его выдачи.
По ADPCM — он тоже разный бывает в зависимости от чипсета модема
Я встречал 3 типа Мю Law , A Law , Rockwel ADPCM.Какой из них тебе
нужен ?
K>Спасибо.... << RSDN@Home 1.1.3 stable >>
Здравствуйте, 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 >>