Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
29.03.2015
Размер:
282.7 Кб
Скачать

1

7. КОДИРОВАНИЕ ИСТОЧНИКОВ И КАНАЛОВ СВЯЗИ

7.1. Цель кодирования. Основные понятия и определения

Под кодированием в широком смысле понимают любое преобразование сообщения в сигнал путем установления взаимного соответствия между ними.

Как при передаче, так и при хранении и обработке информации значительные преимущества дает дискретная форма представления сигналов. Поэтому в тех случаях, когда первичные сигналы информационных систем являются непрерывными, происходит, как правило, предварительное преобразование их в дискретные сигналы. В связи с этим термин «кодирование» относят обычно к дискретным сигналам и под кодированием в узком смысле понимают отображение дискретных сообщений сигналами в виде определенных сочетаний символов. Совокупность правил, в соответствии с которыми производятся эти операции, называют кодом.

Реализация кодирования на передающей стороне всегда предполагает применение обратной процедуры – декодирования – для восстановления принятого сообщения. Устройства, осуществляющие кодирование и декодирование, называют соответственно кодер и декодер. Часто кодер и декодер объединяются в единое устройство – кодек.

Дискретное сообщение, формируемое источником (отправителем), представляет собой последовательность знаков, выбираемых из определенного набора. Например, перед отправкой телеграммы (сообщения) человек составляет ее текст, употребляя при этом буквы и символы из набора (алфавита), известного ему и получателю. Набор знаков, из которых формируется сообщение, называется первичным алфавитом или алфавитом источника. Количество знаков в этом алфавите Ма бывает различным, но обычно достаточно большим. Так, в русском языке для сообщения в виде текста используется набор из 33 букв, 10 цифр, более 15 различных условных знаков (пробел, точка, запятая, сложение, вычитание, умножение и т. д.). В некоторых других языках, особенно восточных, набор знаков первичного алфавита еще больше.

Кодирование заключается в том, что каждый знак сообщения ui заменяется комбинацией из небольшого числа стандартных символов, а далее эти стандартные символы преобразуются в стандартные электрические сигналы U (рис. 7.1). Необходимость перехода в электросвязи к изображению знаков первичного алфавита небольшим числом стандартных сигналов связано с тем, что из-за действия помех в приемнике легче принимать небольшое число сигналов.

Врезультате кодирования каждый знак сообщения представляется

ввиде последовательности стандартных символов вторичного алфавита –

кодовых комбинаций.

2

Вторичным алфавитом, или основанием кода, называют количество стандартных символов, с помощью которых производится отображение знаков сообщения. Таким образом, код – алгоритм (правило) перехода от первичного алфавита к вторичному. Характерным примером кода для передачи буквенно-цифровых текстов является код Морзе. В этом коде в качестве символов используются точки, паузы разной длительности, тире. В двоичном коде, например коде Бодо, используются лишь два различных символа, обозначаемых как 0 и 1.

Буква «Т»

Буква «П»

Буква «С»

0 0 0 0 1

0 1 1

0 1

1 0

1

0 0

ui

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

tи

 

Кодовая

 

 

 

комбинация Рис. 7.1. Преобразование сообщений при кодировании

Основными параметрами любого кода являются: первичный алфавит или алфавит сообщения, Ма – число знаков сообщения, которое необходимо закодировать; вторичный алфавит, или основание кода, m – число символов, с помощью которых производится кодирование, отличающихся друг от друга по каким-либо физическим признакам; разрядность кода п – число символов вторичного алфавита в кодовой комбинации.

Кодирование преследует несколько целей. Первая из них заключается в том, чтобы представить сообщения в такой системе символов, которая обеспечивала бы простоту и надежность аппаратной реализации устройств связи и их необходимую эффективность. Вторая цель кодирования состоит в том, чтобы обеспечить наилучшее согласование свойств источника сообщений со свойствами канала связи. Путем такого согласования добиваются выигрыша во времени передачи, т. е. повышения эффективности системы. Наконец, при наличии помех кодирование может обеспечить достаточно высокую достоверность передачи или обработки информации.

7.2. Классификация кодов

По своему назначению кодирование подразделяется на примитивное, экономное и помехоустойчивое.

Примитивное, или безызбыточное, кодирование применяется для согласования алфавита источника и алфавита канала. Отличительное свойство примитивного кодирования состоит в том, что избыточность дискретного источника, образованного выходом примитивного кодера, равна избыточности источника на входе кодера.

3

Примитивное кодирование используется также в целях шифрования передаваемой информации и повышения устойчивости работы системы синхронизации. В последнем случае правило кодирования выбирается так, чтобы вероятность появления на выходе кодера длинной последовательности, состоящей только из нулей или только из единиц, была минимальной. Подобный кодер называется также скремблером (англ. scramble – перемешивать). Особенности систем шифрования и синхронизации изучаются в специальных курсах.

Экономное кодирование, или сжатие данных, применяется для уменьшения времени передачи или требуемого объема памяти при ее хранении. Отличительное свойство экономного кодирования состоит в том, что избыточность источника, образованного выходом кодера, меньше, чем избыточность источника на входе кодера. Экономное кодирование применяется в ЭВМ. Так, последние версии операционных систем обязательно содержат в своем составе программы сжатия данных (динамические компрессоры и архиваторы). Стандарты на модемы для связи между ЭВМ по телефонным сетям общего пользования (например V.42bis) включают сжатие в число процедур обработки данных.

Помехоустойчивое, или избыточное, кодирование применяется для обнаружения и (или) исправления ошибок, возникающих при передаче по дискретному каналу. Отличительное свойство помехоустойчивого кодирования состоит в том, что избыточность источника, образованного выходом кодера, больше, чем избыточность источника на входе кодера. Помехоустойчивое кодирование используется в различных системах связи, при хранении и передаче данных в сетях ЭВМ, в бытовой и профессиональной аудио- и видеотехнике, основанной на цифровой записи.

Коды можно классифицировать по различным признакам. По условиям построения кодовых комбинаций коды делятся на равномерные и неравномерные. В равномерных кодах все сообщения передаются кодовыми группами с одинаковым числом элементов п = const. Так, например, телеграфный код Бодо является равномерным кодом с п = 5. При использовании неравномерных кодов разные сообщения могут передаваться кодовыми группами, содержащими неодинаковое число элементов (n = var).

По числу различных символов (m) в кодовых комбинациях различают коды:

единичные, m = 1;

двоичные, m = 2;

многопозиционные, m > 2.

Вединичном коде используются одинаковые символы. Кодовые комбинации отличаются друг от друга лишь количеством символов (импульсов). Такие коды называют еще числоимпульсными. Единичный код практически не используется для передачи информации по каналу связи,

аиспользуется лишь при промежуточных преобразованиях сигналов на

4

передающей и приемной сторонах. Наибольшее распространение получили двоичные коды. Многопозиционные коды пока не нашли широкого применения в информационных системах.

Далее коды можно разделить на блоковые и непрерывные (сверточные). Блоковыми называют коды, в которых последовательность элементарных сообщений источника разбивается на отрезки и каждый из них преобразуется в определенную последовательность (блок) кодовых символов {bi}, называемую кодовой комбинацией bk (k = 1, 2, 3, …, N). Непрерывные коды образуют последовательность символов {bi}, не разделяемую на последовательные кодовые комбинации: здесь в процессе кодирования символы определяются всей последовательностью элементов сообщения.

По форме представления в канале передачи различают последовательные и параллельные коды. При последовательной форме элементарные сигналы, составляющие кодовую комбинацию, посылаются в канале передачи последовательно во времени. Как правило, они разделены между собой определенным временным интервалом.

При параллельной форме элементарные сигналы посылаются одновременно по нескольким электрическим цепям, число которых соответствует количеству элементов кода. Параллельная форма представления кода часто используется при преобразовании аналоговых величин в код и обратных преобразованиях, в устройствах памяти, регистрации, при логической и математической обработке информации, когда важную роль играет быстродействие.

Наконец, по основным законам кодообразования коды можно разделить на два класса: комбинаторные (нечисловые) и арифметические (числовые).

Комбинаторные коды строятся на законах теории соединений. Примером таких кодов является код по закону сочетаний. В этом коде из m различных символов образуются кодовые комбинации из n < m символов. Длина кода постоянна и равна п, возможное число кодовых комбинаций

N =Cmn . Например, код по закону сочетаний может образовать следующие

комбинации из трех элементов а, b, и с по два элемента: ab, ac, bc. Арифметические коды основаны на известных системах счисления.

В системах связи используются преимущественно арифметические (цифровые) коды.

7.3. Кодирование при отсутствии помех

Под кодированием будем понимать представление п различных сообщений xi, выдаваемых источником, в некотором стандартном кодовом алфавите, содержащем т различных символов. Если m < n, каждому возможному сообщению источника необходимо ставить в соответствие неко-

5

торую последовательность символов кодового алфавита, которую назовем

кодовым словом.

Если среди кодовых слов, сопоставляемых с п сообщениями источника, нет одинаковых и ни одно более длинное кодовое слово не содержит в начале себя более короткое, такие кодовые слова называют неперекрываемыми (префиксный код). Если кодовые слова неперекрываемы, по произвольной последовательности кодовых слов взаимно однозначно выделяется соответствующая ей последовательность сообщений источника. Другими словами, в отсутствие шумов взаимная однозначность операций кодирования и декодирования достигается при условии неперекрываемости кодовых слов.

Для рационального использования пропускной способности канала необходимо применять соответствующие способы кодирования сообщений. Статистическим или оптимальным называется кодирование, при котором наилучшим образом используется пропускная способность канала без помех.

Операция кодирования тем более экономична, чем меньшей длины кодовые слова сопоставляются с сообщениями. Поэтому за характеристику экономичности кода примем среднюю длину кодового слова:

n

 

L = µi P(xi ),

(7.1)

i =1

 

где µi – длина кодового слова, сопоставляемая сообщению xi.

Общие положения теории информации позволяют указать оптимальные границы для средней длины L кодовых слов, которые ни при каком кодировании не могут быть уменьшены. Установим эти оптимальные границы для L из следующих соображений. Во-первых, количество информации, несомое кодовым словом, не должно быть меньше количества информации, содержащегося в соответствующем сообщении, иначе при кодировании будут происходить потери в передаваемой информации. Вовторых, кодирование будет тем более экономичным, чем большее количество информации будет содержать в себе каждый кодовый символ; это количество информации максимально, когда все кодовые символы равновероятны, и равно log m. При этом i-е кодовое слово будет нести количество информации, равное µi log m.

Таким образом,

log P(xi ) ≤µi log m,

откуда

log P(xi ) .

 

µi

(7.2)

 

log m

 

6

Умножив обе части последнего равенства на P(xi) и просуммировав по всем i от 1 до п, получим

Lmin

H ( X )

.

 

 

log m

Правая часть неравенства (7.2), как правило, не является целым числом, поэтому для достижения знака равенства в нем (с учетом экономности кода) необходимо, чтобы

log P(x

)

 

 

µi < −

i

 

 

+1,

(7.3)

log m

 

 

 

 

 

 

где квадратными скобками обозначена целая часть числа, стоящего в них. Усредняя (7.3), получаем

Lmin < Hlog( Xm) +1.

Таким образом,

 

 

 

 

 

 

 

 

 

 

H ( X )

 

Lmin <

H ( X )

 

+1.

(7.4)

 

 

log m

 

log m

 

 

 

Одним из кодов, удовлетворяющих условию (7.4), является код Шеннона–Фэно.

1. Код ШеннонаФэно. Для составления этого кода все сообщения хi (i = 1, 2, ..., п) выписываются в порядке убывания их вероятностей

(табл. 7.1).

Таблица 7.1

xi

P(xi)

Разбиение сообщений на подгруппы

Код

µi

x1

0,35

1

1

11

2

x2

0,15

1

0

10

2

x3

0,13

0

1

1

011

3

x4

0,09

0

1

0

010

3

x5

0,09

0

0

1

1

0011

4

x6

0,08

0

0

1

0

0010

4

x7

0,05

0

0

0

1

0001

4

x8

0,04

0

0

0

0

1

00001

5

x9

0,02

0

0

0

0

0

00000

5

Записанные так сообщения затем разбиваются на две по возможности равновероятные подгруппы. Всем сообщениям, входящим в первую подгруппу, приписывают цифру 1 в качестве первого кодового символа, а сообщениям, входящим во вторую подгруппу, – цифру 0. Аналогичное деление на подгруппы продолжается до тех пор, пока в каждую подгруппу не попадет по одному сообщению.

7

Убедимся, что таким образом найденный код весьма близок к оптимальному. В самом деле, энтропия сообщений

H (X )= −9 P(xi )log P(xi )2,75,

i =1

а средняя длина кодового слова

L= 9 µi P(xi )= 2,84,

i=1

что находится в соответствии с оптимальным характером этого кода. Необходимо подчеркнуть, что при оптимальном способе кодирова-

ния в сигналах, передающих сообщения источника, совершенно отсутствует какая-либо избыточность. Устранение избыточности приводит к тому, что процесс декодирования становится весьма чувствительным к воздействию помех. Это особенно сильно проявляется при оптимальном кодирова-

нии зависимых сообщений, поэтому оптимальные коды применимы только для каналов, в которых влияние помех незначительно.

2. Код Хаффмана. Для получения кода Хаффмана все сообщения выписывают в порядке убывания вероятностей. Две наименьшие вероятности объединяют скобкой (табл. 7.2) и одной из них приписывают кодовый символ 1, а другой 0. Затем эти вероятности складывают, результат записывают в промежутке между ближайшими вероятностями. Процесс объединения двух сообщений с наименьшими вероятностями продолжают до тех пор, пока суммарная вероятность двух оставшихся сообщений не станет равной единице. Код для каждого сообщения строится при записи двоичного числа справа налево путем обхода по линиям вверх направо, начиная с вероятности сообщения, для которого строится код.

Таблица 7.2

xi

P(xi)

 

 

 

 

 

 

 

 

 

 

Объединение сообщений

 

 

 

 

 

 

 

Код

Pi

x1

0,35

 

 

0,35

 

0,35

 

0,35

 

 

0,35

 

0,35

 

 

 

 

0,37

 

 

 

0,63

 

 

1,0

 

11

2

 

 

 

 

 

 

 

 

 

 

 

x2

0,15

 

 

0,15

 

0,15

 

 

 

0,17

 

 

 

 

0,20

 

 

 

0,28

 

 

 

0,35

 

 

0,37

 

 

 

 

101

3

x3

0,13

 

 

0,13

 

0,13

 

 

0,13

 

 

 

0,17

 

 

0,20

 

 

 

0,28

 

 

 

 

 

 

 

 

100

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,09

 

 

0,09

 

 

 

0,11

 

 

0,13

 

 

 

0,15

 

 

0,17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x4

 

 

 

 

 

 

 

 

 

 

 

010

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x5

0,09

 

 

0,09

 

 

0,09

 

 

0,11

 

 

 

0,13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

001

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,08

 

 

0,08

 

 

0,09

 

 

0,09

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

000

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x7

0,05

 

 

 

 

0,06

 

 

0,08

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0110

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x8

0,04

 

 

 

0,05

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01111

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x9

0,02

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01110

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Средняя длина кодового слова при кодировании методом Хаффмана (см. табл. 7.2) L = 2,82, что несколько меньше, чем в методе Шеннона– Фэно (L = 2,84). Согласование источника с двоичным каналом путем статистического кодирования по методу Хаффмана позволяет повысить эффективность передачи по сравнению с методом Шеннона–Фэно.

Соседние файлы в папке ТКз-12 (Общая теория связи, часть 1)