
1573
.pdfгде K – число информационных разрядов, L округляется до ближайшего большего целого значения. L-разрядный контролирующий код есть инвертированный результат поразрядного сложения (т.е. сложения по модулю 2) номеров тех информационных разрядов, значения которых равны 1.
Пример. Пусть имеется основной код 100110, т.е. К = 6. Следовательно, L = 3 и дополнительный код равен 010 # 011 # 110 = 111, где # – символ операции поразрядного сложения, и после инвертирования получится 000. При передаче вместе с основным кодом будет передаваться и дополнительный код. На приемном конце вновь рассчитывается дополнительный код и сравнивается с переданным. Фиксируется код сравнения (поразрядная операция отрицания равнозначности), и если он отличен от нуля, то его значение есть номер ошибочно принятого разряда основного кода. Так, если принят код 100010, то рассчитанный в приемнике дополнительный код равен инверсии от 010 # 110 = 100, т.е. 011, что означает ошибку в 3-м разряде.
Коды, обнаруживающие ошибки
Пусть имеется канал с единичной ошибкой с частотой 10-6 на бит. Если необходимо исправлять единичные ошибки при передаче блока в 1000 бит, то потребуется 10 контрольных бит. При передаче 1 Мбит данных потребуется 10 000 контрольных бит. В то же время для обнаружения единичной ошибки достаточно одного бита четности. Поэтому если применить технику повторной передачи, то на передачу 1000 блоков надо будет потратить 1001 бит дополнительно или с повторной передачей 2002 бит, вместо 10 000 бит в случае кода с исправлением ошибки. Поэтому во многих случаях выгодно использовать коды, обнаруживающие ошибки.
К числу эффективных кодов, обнаруживающих одиночные, кратные ошибки и пачки ошибок, относятся циклические коды
(CRC - Cyclic Redundance Code). Они высоконадежны и могут приме-
няться при блочной синхронизации, при которой выделение, например, бита нечетности было бы затруднительно. Один из вариантов циклического кодирования заключается в умножении исходного кода на образующий полином g(x), а декодирование – в делении на g(x). Если остаток от деления не равен нулю, то произошла ошибка. Сигнал об ошибке поступает на передатчик, что вызывает повторную
51
передачу. Образующий полином есть двоичное представление одного из простых множителей, на которые раскладывается число Xn-1, где Xn обозначает единицу в n-м разряде, n равно числу разрядов кодовой группы. Так, если n = 10 и Х = 2, то Xn-1 = 1023 = 11· 93, и если g(X)=11 или в двоичном коде 1011, то примеры циклических кодов Aig(Х) чисел Ai в кодовой группе при этом образующем полиноме можно видеть в табл. 3.2.
|
|
|
Таблица 3.2 |
|
|
|
|
Число |
Циклический код |
Число |
Циклический код |
0 |
0000000000. |
13 |
0010001111 |
1 |
0000001011 |
14 |
0010011010 |
2 |
0000010110 |
15 |
0010100101 |
3 |
0000100001 |
16 |
0011000110 |
5 |
0000110111 |
18 |
0011000110 |
6 |
0001000010 |
19 |
0011010001 |
Основной вариант циклического кода, широко применяемый на практике, отличается от предыдущего тем, что операция деления на образующий полином заменяется следующим алгоритмом:
1)к исходному кодируемому числу А справа приписывается К нулей, где К – число битов в образующем полиноме, уменьшенное на единицу;
2)над полученным числом А(2К) выполняется операция, отличающаяся от деления тем, что на каждом шаге операции вместо вычитания выполняется поразрядная операция "исключающее ИЛИ";
3)полученный остаток В и есть CRC - избыточный К- разрядный код, который заменяет в закодированном числе С приписанные
справа К нулей, т.е.
С= А(2К)+В.
На приемном конце над кодом С выполняется аналогичная операция. Если остаток не равен нулю, то при передаче произошла ошибка и нужна повторная передача кода А.
Пример. Пусть А = 1001 1101, образующий полином 11001. Так как К = 4, то А(2K)=100111010000. Выполнение поразрядной операции "исключающее ИЛИ" в передатчике и приемнике показано
ниже.
52
Операция в передатчике |
Операции в приемнике |
1001 1101 0000 |11001 |
1001 1101 0010 |11001 |
1100 1 |
1100 1 |
101 01 |
101 01 |
110 01 |
110 01 |
11 000 |
11 000 |
11 001 |
11 001 |
11 000 |
11 001 |
11 001 |
11 001 |
10 → CRC-код |
00 → ошибки нет |
Общепринятое обозначение образующих полиномов дает следующий пример:
g(X) = X16 + X 12 + X5 + 1,
что эквивалентно коду 1 0001 0000 0010 0001. Этот полином используется в протоколе V.42 для кодирования кодовых групп в 240 разрядов с двумя избыточными байтами. В этом протоколе возможен и образующий полином для четырех избыточных байтов:
g(X) = X 32 + X26 + X 23 + X22 + X16 + X12 + X 11 + X 10 +
+ X 8 + X 7 + X5 + X4 + X 2 + 1.
Существует три международных стандарта на вид G(x):
CRC-12 = x12+x11+x3+x2+x+1;
CRC-16 = x16+x15+x2+1;
CRC-CCITT = x16+x12+x5+1.
CRC-12 используется для передачи символов из 6 разрядов, два остальных – для 8-разрядных. CRC-16 и CRC-CCITT ловят одиночные, двойные ошибки, групповые ошибки длины не более 16 и нечетное число изолированных ошибок с вероятностью 99,997 %.
53
Положительными свойствами циклических кодов являются малая вероятность необнаружения ошибки и сравнительно небольшое число избыточных разрядов.
3.4. Компрессия данных
Многие программные и аппаратные средства СПИ для сокращения времени передачи используют компрессию, или сжатие данных. На практике используются различные алгоритмы компрессии, каждый из которых применим к определенному типу данных. Например, некоторые модемы (называемые интеллектуальными) используют адаптивную компрессию, при которой в зависимости от передаваемых данных выбирается определенный алгоритм компрессии. Ниже рассматриваются некоторые распространенные алгоритмы компрессии данных.
Среди простых алгоритмов сжатия наиболее известны алгоритмы RLE (Run Length Encoding). В них вместо передачи цепочки из одинаковых символов передаются символ и значение длины цепочки. Метод эффективен при передаче растровых изображений, но малополезен при передаче текста.
К методам сжатия относят также методы разностного кодирования, поскольку разности амплитуд отсчетов представляются меньшим числом разрядов, чем сами амплитуды. Разностное кодирование реализовано в методах дельта-модуляции и ее разновидностях.
Предсказывающие (предиктивные) методы основаны на экс-
траполяции значений амплитуд отсчетов, и если выполнено условие
Ar - Ap > d,
то отсчет должен быть передан, иначе он является избыточным. Здесь Ar и Ap – амплитуды реального и предсказанного отсче-
тов; d – допуск (допустимая погрешность представления амплитуд). Иллюстрация предсказывающего метода с линейной экстраполяцией представлена рис. 3.2. Здесь точками показаны предсказываемые значения сигнала. Если точка выходит за пределы допуска d, показанного пунктирными линиями, то происходит передача отсчета. На рисунке передаваемые отсчеты отмечены темными кружками в моменты
54

времени t1, t2, t4, t7. Если передачи отсчета нет, то на приемном конце принимается экстраполированное значение.
Рис. 3.2. Предиктивное кодирование
Методы MPEG (Moving Pictures Experts Group) используют предсказывающее кодирование изображений (для сжатия данных о движущихся объектах вместе со звуком). Так, если передавать только изменившиеся во времени пиксели изображения, то достигается сжатие в несколько десятков раз. Этот алгоритм сжатия используется также в стандарте Международного союза по электросвязи Н.261 ITU. Методы MPEG становятся мировыми стандартами для цифрового телевидения.
Для сжатия данных об изображениях используются методы
JPEG (Joint Photographic Expert Group), основанные на потере ма-
лосущественной информации (не различимые для глаза оттенки кодируются одинаково, коды могут стать короче). В этих методах передаваемая последовательность пикселей делится на блоки, в каждом блоке производится преобразование Фурье, устраняются высокие частоты, передаются коэффициенты разложения для оставшихся частот, по ним в приемнике изображение восстанавливается.
Более универсален широко известный метод Хаффмена, относящийся к статистическим методам сжатия. Идея метода – часто повторяющиеся символы нужно кодировать более короткими цепочками битов, чем цепочки редких символов. Строится двоичное дерево,
55
листья соответствуют кодируемым символам, код символа представляется последовательностью значений ребер (эти значения в двоичном дереве суть 1 и 0), ведущих от корня к листу. Листья символов с высокой вероятностью появления находятся ближе к корню, чем листья маловероятных символов. Распознавание кода, сжатого по методу Хаффмена, выполняется по алгоритму, аналогичному алгоритмам восходящего грамматического разбора. Например, пусть набор из восьми символов (A, B, C, D, E, F, G, H) имеет следующие правила кодирования:
A ::= 10; B ::= 01; C ::= 111; D ::= 110;
E ::= 0001; F ::= 0000; G ::= 0011; H ::= 0010.
При распознавании входного потока 101100000110 в стек распознавателя заносится 1, но 1 не совпадает с правой частью ни одного из правил. Поэтому в стек добавляется следующий символ 0. Полученная комбинация 10 распознается и заменяется на А. В стек поступает следующий символ 1, затем 1, затем 0. Сочетание 110 совпадает с правой частью правила для D. Теперь в стеке AD, далее заносятся следующие символы 0000 и т.д.
Недостаток метода заключается в необходимости знать вероятности символов. Если заранее они не известны, то требуются два прохода: на одном в передатчике подсчитываются вероятности, на другом эти вероятности и сжатый поток символов передаются к приемнику. Этот недостаток устраняется в однопроходных алгоритмах адаптивного сжатия, в которых схема кодирования есть схема приспособления к текущим особенностям передаваемого потока символов. Поскольку схема кодирования известна как кодеру, так и декодеру, сжатое сообщение будет восстановлено на приемном конце. Обобщением этого способа является алгоритм, основанный на словаре сжатия данных. В нем происходит выделение и запоминание в словаре повторяющихся цепочек символов, которые кодируются цепочками меньшей длины.
Алгоритм LZ (Лемпеля-Зива). В LZ-алгоритме используется следующая идея: если в тексте сообщения появляется последовательность из двух ранее уже встречавшихся символов, то эта последовательность объявляется новым символом, для нее назначается код,
56
который при определенных условиях может быть значительно короче исходной последовательности. В дальнейшем в сжатом сообщении вместо исходной последовательности записывается назначенный код. При декодировании повторяются аналогичные действия и потому становятся известными последовательности символов для каждого кода.
Десятичная упаковка. Когда данные состоят только из чисел, значительную экономию можно получить путем уменьшения количества используемых на цифру бит с 7 до 4, применяя простое двоичное кодирование десятичных цифр вместо кода ASCII. Просмотр таблицы ASCII показывает, что старшие три бита всех кодов десятичных цифр содержат комбинацию 011. Если все данные в кадре информации состоят из десятичных цифр, то, поместив в заголовок кадра соответствующий управляющий символ, можно существенно сократить длину кадра.
Символьное подавление. Часто передаваемые данные содержат большое количество повторяющихся байт. Например, при передаче черно-белого изображения черные поверхности будут порождать большое количество нулевых значений, а максимально освещенные участки изображения – большое количество байт, состоящих из всех единиц. Передатчик сканирует последовательность передаваемых байт и если обнаруживает последовательность из трех или более одинаковых байт, заменяет ее специальной трехбайтовой последовательностью, в которой указывает значение байта, количество его повторений, а также отмечает начало этой последовательности специальным управляющим символом.
Эффективность алгоритмов сжатия оценивается коэффициентом сжатия
K = n/q,
где n – число минимально необходимых символов для передачи сообщения (практически это число символов на выходе эталонного алгоритма сжатия); q – число символов в сообщении, сжатом данным алгоритмом. При двоичном кодировании n равно энтропии источника информации. Часто степень сжатия оценивают отношением длин кодов на входе и выходе алгоритма сжатия.
Многие типы коммуникационного оборудования, такие как модемы, коммутаторы и маршрутизаторы, поддерживают протоколы
57
динамической компрессии, позволяющие сократить объем передаваемой информации в 4, а иногда и в 8 раз. В таких случаях говорят, что протокол обеспечивает коэффициент сжатия 1/4 или 1/8. Существуют стандартные протоколы компрессии, например V.42bis, a также большое количество нестандартных, фирменных протоколов. Реальный коэффициент компрессии зависит от типа передаваемых данных. Так, графические и текстовые данные обычно сжимаются хорошо, а коды программ – хуже.
Вопросы для самоконтроля
1.В чем состоит преимущество использования цифровых СПИ?
2.Как передается информация в цифровых системах связи?
3.Какие способы модуляции используются в цифровых СПИ?
4.В чем отличие потенциальных кодов от импульсных?
5.Объясните причины использования в СПИ разнообразных способов цифрового кодирования.
6.Как обеспечивается помехозащищенность при передаче информации в системах?
7.В чем отличие кодов Рида – Соломона и Хемминга?
8.В чем преимущества использования циклических кодов?
9.Для чего используется компрессия данных?
10.В чем отличие кодеков MPEG и JPEG?
11.Каким показателем оценивается эффективность компрессии
данных?
58

4. ПЕРЕДАЧА ИНФОРМАЦИИ ПО ТЕЛЕФОННЫМ СЕТЯМ
4.1. Структура телефонных сетей общего пользования
Телефонные сети создавались давно от простых, представляющих собой проводное соединение каждого с каждым, до сложных, включающих различное коммуникационное оборудование, осуществляющее цифровое преобразование речи, мультиплексирование, коммутацию абонентских линий и многое другое. Пример структуры современного соединения телефонных абонентов, представленной на рис. 4.1, объединяет проводные соединения от телефона до офисной станции коммутации (локальная петля), кабельные соединения от офисной станции до автоматической телефонной станции (АТС), оп- тико-волоконную магистраль от АТС до многопрофильных станций коммутации, обслуживающие кроме телефонных сетей широкополосные каналы телевидения и вычислительные сети.
Рис. 4.1. Пример соединения абонентов в телефонной сети
Непременным атрибутом современных коммуникационных сетей являются станции коммутации, осуществляющие автоматическое соединение абонентов. Для автоматической коммутации телефонных абонентов в офисных и местных АТС для соединения локальных петель используются пространственные коммутаторы. Пространственный коммутатор размера N×M представляет собой сетку (матрицу), в которой N входов подключены к горизонтальным шинам, а M выходов – к вертикальным (рис. 4.2).
59

Рис. 4.2. Матрица пространственного коммутатора
В узлах сетки имеются коммутирующие элементы, причем в каждом столбце сетки может быть открыто не более чем по одному элементу. Если N ≤ M, то коммутатор может обеспечить соединение каждого входа с не менее чем одним выходом; в противном случае коммутатор называется блокирующим, т.е. не обеспечивающим соединения любого входа с одним из выходов. Обычно применяются коммутаторы с равным числом входов и выходов N×N.
Для коммутации высокоскоростных магистралей, абонентами которых могут быть вычислительные сети, радиотелефонные системы, такие как DECT – телефония или транкинговая связь, и другие системы, наибольшее распространение получили две схемы комму-
тации: коммутация каналов и коммутация пакетов.
Как сети с коммутацией пакетов, так и сети с коммутацией каналов можно разделить на два класса по другому признаку – на сети с
динамической коммутацией и сети с постоянной коммутацией. В
первом случае сеть разрешает устанавливать соединение по инициативе пользователя сети. Коммутация выполняется на время сеанса связи, а затем (опять же по инициативе одного из взаимодействующих пользователей) связь разрывается. В общем случае любой пользователь сети может соединиться с любым другим пользователем сети. Во втором случае сеть не предоставляет пользователю возможность выполнить динамическую коммутацию с другим произвольным пользователем сети. Вместо этого сеть разрешает паре пользователей заказать соединение на длительный период времени. Соединение устанавливается не пользователями, а персоналом, обслуживающим сеть. Режим постоянной коммутации в сетях с коммутацией каналов часто называется сервисом выделенных или арендуемых каналов.
60