Объявление

Свернуть
Пока нет объявлений.

Декодировка сигналов тонального набора номера

Свернуть
X
Свернуть
  •  

  • Декодировка сигналов тонального набора номера

    В англоязычной литературе тональный набор номера имеет термин: Dual-Tone Multi-Frequency или сокращенно DTMF. Так и будем его называть ввиду краткости термина.
    Заметим, что есть готовые микросхемы приемники DTMF, которые обнаруживают и декодируют сигналы тонального набора на аналоговой линии. Однако, очень часто сигнал уже оцифрован, например в ИКМ потоках (где к тому же представлен не один звуковой тракт). В этом случае декодировку приходится производить, применяя методы цифровой фильтрации, в том или ином цифровом устройстве, а иногда и с помощью универсального процессора, например, для целей моделирования. Об этом и пойдет речь.
    Основная информация почерпнута из материала фирмы Analog Devices - Digital Signal Processing Applications (Using the ADSP-2100 family).
    Кодировка сигналов

    В DTMF передаваемая цифра кодируется сигналом полученным суммированием двух синусоидальных напряжений определенной частоты. Используется две группы по четыре частоты звукового диапазона в каждой. Для одного передавемого знака берется по одной частоте из каждой группы.

    Набор частот используемых в DTMF

    Нижняя группа
    Верхняя группа
    F1
    697 Гц
    F5
    1209 Гц
    F2
    770 Гц
    F6
    1336 Гц
    F3
    852 Гц
    F7
    1477 Гц
    F4
    941 Гц
    F8
    1633 Гц
    Таблица соответствия частот и набираемых знаков

    F5 F6 F7 F8
    F1 1 2 3 A
    F2 4 5 6 B
    F3 7 8 9 C
    F4 * # D
    Для примера, сигнал, соответствующий цифре “4”, есть сумма двух синусоидальных сигналов, один имеет частоту F2=770Гц, другой частоту F5=1209Гц.
    Параметры сигналов определены в рекомендациях Q23,Q24 CCITT. Рекомендаций я не нашел, поэтому привожу данные из книги "Протоколы сети доступа" Б.С. Гольдштейн, том 2.
    " На приеме.
    [1.1] Частоты не должны отличаться от своих номинальных значений более чем на 1.8%;
    [1.2] уровень каждой из двух частот лежит в пределах от минус 7 до минус 30дБм;
    [1.3] разность уровней двух частот не превышает 3дБм;
    [1.4] длительность частотного сигнала не менее 40мс.
    [1.5] Сигнал длительностью менее 20 мс не должен фиксироваться, даже если он отвечает всем остальным требованиям, а два сигнала принимаются как отдельные, если длительность паузы между ними равна 40мс или более. "
    Алгоритм декодирования

    Для декодирования DTMF в первую очередь необходимо в принимаемом сигнале определить мощность восьми вышеуказанных частотных составляющих. Это можно сделать, произведя преобразование Фурье исходного сигнала или пропустить исходный сигнал через набор фильтров, настроенных на данные частоты. Анализируя выходы этих фильтров, мы можем принять решение: была ли передана цифра и если передана, то какая.
    Отметим, что при разговоре в сигнале тоже могут присутствовать частотные составляющие характерные для тонального набора, что может привести к ложным срабатываниям декодера. Для устранения этого эффекта можно использовать тот факт, что сигнал DTMF характеризуется малыми вторыми гармониками, а речевой сигнал, вследствие своей широкополосности, этим свойством не обладает. Поэтому есть смысл анализировать и вторые гармоники восьми частот определяющих базовый набор.
    Предположим, что мы уже имеем ту часть программы или устройства, которая производит оценку мощности в принимаемом сигнале восьми основных частот и их вторых гармоник. Тогда для декодирования мы проверяем следующие условия:
    • в верхней и в нижней группе частот мощность только одной частоты должна превышать заданный нами порог; таким образом, выбираем одну частоту из верхней группы и одну из нижней;
    • соотношение мощности этих частот должно удовлетворять условию [1.2];
    • мощность вторых гармоник этих частот не должна превышать заданный порог.
    Когда все эти условия совпадают, принимаем решение - символ обнаружен и в зависимости от частот выдаем его значение. Вследствие того, что рекомендации допускают разный уровень сигнала верхней и нижней группы, а также учитывая завал верхних частот в канале, приходится устанавливать четыре порога: порог для нижней группы основных частот, порог для вторых гармоник нижней группы и два соответствующих порога для верхней группы.
    1. Фильтрация принимаемого сигнала Оценка мощности частотных составляющих принимаемого сигнала может производиться теми или иными фильтрами, включая вычисление спектра быстрыми алгоритмами Фурье преобразования. Мы не будем углубляться в дебри, связанные с этими моментами, зафиксируем только основные моменты.
      Частота дискретизации. Чаще всего используют частоту 8000Гц. Во первых, это частота дискретизации распространенных ИКМ систем (потоки Е1). Во вторых, данная частота близка к минимально необходимой для дискретизации сигналов тонального телефонного канала по Котельникову. Выбирая методы и параметры фильтрации мы будем исходить из этого значения.
      Длина входной выборки. Для 8кГц и 40мс длина выборки составляет 320 отсчетов. Ширина спектральной линии при такой длине будет составлять 25Гц по уровню 0.7. На частотах верхней группы, учитывая [1.1], принимаемый сигнал не вписывается в одну спектральную линию, что создает определенные проблемы. Для простых систем решением может быть уменьшение размера входной выборки, что расширит спектральную линию, но уменьшит помехоустойчивость.
      Число уровней квантования. В ИКМ системах применено логарифмическое 8-разрядное квантование, которое разворачивается в 12-разрядное линейное. Для отдельных приложений может хватить и 8-разрядного линейного квантования.
      Синтезирование фильтров, полностью удовлетворяющих перечисленным выше параметрам сигналов является отдельной задачей и здесь мы этот вопрос рассматривать не будем.
      В рассмотрении ограничимся только фильтрами второго порядка, которые эквивалентны преобразованию Фурье.
      Нажмите на изображение для увеличения.

Название:	Image1.gif
Просмотров:	14
Размер:	484 байт
ID:	3372 alt="" /> Где k=0,1,…,N-1 и
      Нажмите на изображение для увеличения.

Название:	Image2_1.gif
Просмотров:	6
Размер:	294 байт
ID:	3373 alt="" /> Заметим сразу, что в этих простых системах применение БПФ нецелесообразно, так как для отдельных частот ДПФ вычисляется быстрее (уровень всех гармоник нам не нужен). Для вычисления отдельных спектральных составляющих при не комплексном входном сигнале есть хороший алгоритм требующий меньшее количество коэффициентов по сравнению с прямым вычислением Фурье (за счет рекурсивности) - алгоритм Гертцеля (Goertzel)
    2. Алгоритм Гертцеля (Goertzel) . В алгоритме Гертцеля необходимо только два коэффициента для каждой частоты: один реальный и один комплексный . Этот алгоритм рекурсивный и описывается следующим выражением:
      Нажмите на изображение для увеличения.

Название:	Image11_1.gif
Просмотров:	6
Размер:	554 байт
ID:	3374 alt="" />
      Нажмите на изображение для увеличения.

Название:	Image3.gif
Просмотров:	7
Размер:	325 байт
ID:	3375 alt="" />
      Нажмите на изображение для увеличения.

Название:	Image5.gif
Просмотров:	7
Размер:	366 байт
ID:	3376 alt="" />
      Нажмите на изображение для увеличения.

Название:	Image6.gif
Просмотров:	6
Размер:	484 байт
ID:	3377 alt="" />
      Вычислять все выходные отcчеты Y[0..n] нет никакой необходимости, нам нужен только отсчет Y[N-1], так как именно он отражает k-ю составляющую спектра входной последовательности.
      Y[N-1] величина комплексная. Но для целей декодирования тонального набора фазовая информация не нужна, нам необходим модуль. Путем несложных преобразований, выражение для вычисления модуля Y можно свести к следующему виду:
      Нажмите на изображение для увеличения.

Название:	Image9.gif
Просмотров:	6
Размер:	945 байт
ID:	3378 alt="" />
      Таким образом, для вычисления отклика на одной частоте нам нужен один реальный коэффициент. Для целей декодирования вполне можно оперировать квадратом амплитуды гармоники.
      Фильтр работающий по алгоритму Гертцеля содержит две ячейки, где накапливаются промежуточные значения N раз при приходе N входных отсчетов. После накопления вычисляется квадрат модуля, ячейки обнуляются и процесс повторяется. Частота появления выходных отсчетов - один отсчет на N входных.
    3. Выбор размера входной выборки N
    Частоты используемые в DTMF гармонически не связаны (по крайней мере в спектре телефонного канала). Поэтому k-я частота не будет точно отражать стандартные частоты DTMF. Другими словами, мы не можем настроить точно фильтр на нужную нам частоту, если для целей фильтрации применяем алгоритм Гертцеля. Выбором соответствующего N мы можем минимизировать данную ошибку. В материалах Analog Devices предлагается следующее решение:
    Основные частоты N = 205 (25mc при частоте дискретизации 8кГц)
    Частота
    k
    Абсолютная ошибка
    Коэффициент Mk
    697 18 0.139 1.703275
    770 20 0.269 1.635859
    852 22 0.167 1.562297
    941 24 0.113 1.482867
    1209 31 0.019 1.163138
    1336 34 0.235 1.008835
    1477 38 0.152 0.790074
    1633 42 0.154 0.559454
    Вторые гармоники N=201
    1394 35 0.024 0.917716
    1540 39 0.308 0.688934
    1704 43 0.187 0.449394
    1882 47 0.285 0.202838
    2418 61 0.248 -0.659504
    2672 67 0.134 -1.000000
    2954 74 0.219 -1.352140
    3266 82 0.058 -1.674783
    По моему мнению, здесь господа из Analog Devices перемудрили. Если при расчете коэффициентов М задаваться не целыми частотами, то проблема отпадает сама собой. При этом правда оценка мощности частоты может получится смещенной, но это смещение на уровне единиц процентов на нижней частоте.

      Возможность размещать комментарии к сообщениям отключена.

    Метки статей

    Свернуть

    Меток пока нет.

    Новые статьи

    Свернуть

    Обработка...
    X