Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Телемеханика и связь

..pdf
Скачиваний:
5
Добавлен:
15.11.2022
Размер:
3.69 Mб
Скачать

10110101101

(

10000000010

00110101111 ,

определим, что кодовое расстояние между ними d = 7.

Ïðè n = 3 восемь кодовых комбинаций размещаются в вершинах трехмерного куба.

Трехмерный куб строится так (см. рис. 2.2), что одна из его вершин лежит в начале координат. Каждой вершине куба приписывается кодовая комбинация по следующему правилу: на i-м месте кодовой комбинации ставится 0, если проекция этой вершины на i-ю ось координат равна нулю, и 1, если проекция равна единице. Например, требуется узнать, какую следует записать комбинацию в вершине À6 (см. рис. 2.2). Проецируя эту вершину на ось Õ1, полу- чим единицу. На втором месте комбинации запишется также 1 (проекция на ось Õ2 равна единице). Так как проекция на ось Õ3 равна нулю (проекция в начало координат), то на третьем месте комбинации запишется 0. Следовательно, вся комбинация в вершине À6 запишется как 110.

Если использовать все восемь слов, записанных в вершинах куба, то образуется двоичный код на все сочетания. Как было показано, такой код является непомехоустойчивым. Если же уменьшить число используемых комбинаций с восьми до четырех, то появится возможность обнаружения одиночных ошибок. Для этого выберем только такие комбинации, которые отстоят друг от друга на расстояние d = 2, например 000, 110, 011 и 101. Остальные кодовые комбинации не используются. Если будет принята комбинация 100, то очевидно, что при ее приеме произошла одиночная ошибка.

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

с обнаружением ошибок.

41

ELIB.PSTU.RU

Стр. 41

ЭБ ПНИПУ (elib.pstu.ru)

Кроме указанной группы комбинаций в том же трехмерном кубе может быть получена еще одна группа комбинаций с кодовым расстоянием d = 2 (111, 001, 010 и 100). В этих кодовых комбинациях нечетное число единиц и каждая из комбинаций может быть использована для обнаружения ошибки, возникшей при передаче, так как при одиночном искажении в комбинации будет четное число единиц. Однако, если необходимо получить код с обнаружением одиночной ошибки, в передаче может участвовать только одна группа, т.е. четыре комбинации из возможных восьми. В противном случае получится непомехоустойчивый код, в котором будут встре- чаться комбинации с d = l.

Таким образом, в помехозащищенных кодах есть комбинации разрешенные, составленные по определенному правилу, и не соответствующие этому правилу – запрещенные.

Так, если из восьми комбинаций трехразрядного кода образованы четыре комбинации, позволяющие обнаружить одиночную ошибку (например, 111, 001, 010 и 100), то эти комбинации являются разрешенными, а остальные четыре (000, 011, 101 и 110) – запрещенными, которые должны фиксироваться на приеме как искаженные. Иногда совокупность разрешенных кодовых комбинаций, которые при заданных возможных искажениях не могут перейти друг в друга, называют системой непереходящих сигналов.

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

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

Выберем в трехмерном кубе такие вершины, кодовые обозна- чения которых отличались бы друг от друга на d = 3. Такие вершины расположены на концах пространственных диагоналей куба. Их может быть только четыре пары: 000 и 111, 001 и 110, 100 и 011, 010

42

ELIB.PSTU.RU

Стр. 42

ЭБ ПНИПУ (elib.pstu.ru)

и 101. Однако из этих четырех пар для передачи можно брать только одну любую пару, так как большее число пар приведет к тому, что в передаче будут использоваться комбинации, отличающиеся друг от друга на d < 3.

Код, образованный по такому правилу, может исправить одиночную ошибку или обнаружить две ошибки без их исправления. Пусть, например, передается код, состоящий из комбинаций 001 и 110. На приеме получена комбинация 100. Сравнение ее с исходными комбинациями показывает, что от комбинации 110 она отли- чается в одном (втором) разряде, а от комбинации 001 – в двух разрядах. Если считать, что сделана одна ошибка, то полученную комбинацию 100 следует исправить на 110.

От разрешенной комбинации 001 отличаются на d = 1 комбинации 011, 000 и 101, а от комбинации 110 – комбинации 111, 100 и 010. Они являются своеобразными комбинациями-спутниками, которые после приема можно относить к той или иной исходной комбинации.

Когда говорят об исправлении одиночной ошибки, считают, что вероятность двойной ошибки в канале связи пренебрежимо мала. Если такая вероятность достаточно велика, то код с d = 3 можно использовать для обнаружения двойных ошибок, но при этом исправить одиночную ошибку он уже не может. Действительно, если в нашем примере была принята комбинация 100, то нельзя утверждать, что была передана комбинация 110, так как при двойных ошибках это могла быть и искаженная комбинация 001.

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

Корректирующая способность кода зависит от кодового расстояния: а) при d = 1 ошибка не обнаруживается; б) при d = 2 обнаруживаются одиночные ошибки; в) при d = 3 исправляются одиночные ошибки или обнаруживаются двойные ошибки. В общем случае

d = r + s+1,

(2.5)

ãäå d – минимальное кодовое расстояние; r – число обнаруживаемых ошибок; s – число исправляемых ошибок.

43

ELIB.PSTU.RU

Стр. 43

ЭБ ПНИПУ (elib.pstu.ru)

При этом обязательным условием является r s. Так, в нашем примере d = 3, è åñëè r = s = l, то код может обнаружить одну ошибку и исправить ее. Если r = 2, s = 0, то код может только обнаружить две ошибки. Как следует из уравнения (2.5), для исправления одной ошибки и обнаружения двух ошибок необходимо, чтобы d = 2 + 1 + + 1 = 4. Ïðè d = 4 может быть также вариант, когда r = 3, s = 0. Åñëè d = 5, то могут быть три варианта: r = s = 2; r = 3, s = l; r = 4, s = 0.

Если код только обнаруживает ошибки, то

d = r + 1, ò.å. r = d – 1.

(2.6)

Если код только исправляет ошибки, то

d = 2s + 1, ò.å. s

(d 1)

.

(2.7)

2

 

 

 

Итак, геометрические модели позволяют просто строить малоразрядные корректирующие коды. Однако при длине кода n > 3 геометрической моделью пользоваться трудно, так как она должна быть многомерной. Поэтому для построения многоразрядных помехоустойчивых кодов используют различные правила и методики, к рассмотрению которых и перейдем.

2.4.1. Коды с обнаружением ошибок

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

1)коды, построенные путем уменьшения числа используемых комбинаций;

2)коды, в которых используются все комбинации, но к каждой из них по определенному правилу добавляются контрольные ò-символы.

Рассмотрим сначала некоторые примеры кодов первой группы.

Код с постоянным весом (код с постоянным числом единиц и нулей в комбинациях). Общее число кодовых комбинаций в дво- ичном коде с постоянным весом

44

ELIB.PSTU.RU

Стр. 44

ЭБ ПНИПУ (elib.pstu.ru)

N C l

 

n!

,

(2.8)

n

 

l! n l !

 

 

 

 

ãäå l – число единиц в слове длиной n.

Наиболее употребительными являются пятиразрядный код с двумя единицами (N C52 10) и семиразрядный код с тремя единицами (N C73 35). Примеры этих кодов представлены на рис. 2.3.

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

Рис. 2.3. Код с постоянным весом

Распределительный код Cn1 . Это также разновидность кода

с постоянным весом, равным единице. В любой кодовой комбинации длиной n содержится только одна единица. Число кодовых комбинаций в распределенном коде

N C

1

n.

(2.9)

 

n

 

 

Кодовые комбинации при n = 6 можно записать в виде 000001, 000010, 000100, 001000, 010000, 100000. Сложение по модулю 2 двух комбинаций показывает, что они отличаются друг от друга на кодовое расстояние d = 2. В системах телемеханики этот код нашел широкое применение из-за простоты реализации.

45

ELIB.PSTU.RU

Стр. 45

ЭБ ПНИПУ (elib.pstu.ru)

Рассмотрим теперь несколько примеров кодов второй группы.

Код с проверкой на четность. Такой код образуется путем добавления к передаваемой комбинации, состоящей из k информационных символов неизбыточного кода, одного контрольного символа ò (0 или 1) так, чтобы общее число единиц в передаваемой комбинации было четным. Таким образом, общее число символов в передаваемой комбинации n = k + 1, òàê êàê ò = 1. В общем случае

 

 

n k m.

(2.10)

 

 

 

 

Ò à á ë è ö à 2 . 3

 

Код с проверкой на четность

 

 

 

 

 

 

Информационные симво

 

 

Полная кодовая

Контрольные символы m

 

комбинация

ëû k

 

 

 

 

 

n = k + m

 

 

 

 

1

 

2

 

3

11011

 

0

 

110110

10101

 

1

 

101011

00010

 

1

 

000101

11000

 

0

 

110000

11110

 

0

 

111100

11111

 

1

 

111111

Примеры кодов с проверкой на четность приведены в табл. 2.3.

Âпервом столбце приведены примеры передачи отдельных комбинаций пятиразрядного двоичного кода на все сочетания (k-символы). Во втором столбце к этим комбинациям приписывается контрольный символ 1, если сумма единиц в кодовой комбинации нечетная, или 0, если сумма единиц четная.

Âнашем примере длина исходной кодовой комбинации k = 5 позволяет при таком числе разрядов передать N = 25 = 32 кодовые комбинации. Хотя приписывание контрольного символа и увели- чивает разрядность кода до ï = 6, число передаваемых комбинаций остается прежним. Поэтому общее число комбинаций

N 2n 1.

(2.11)

46

ELIB.PSTU.RU

Стр. 46

ЭБ ПНИПУ (elib.pstu.ru)

Таким образом, этот код обладает избыточностью, так как вместо N = 26 = 64 комбинации может быть послано только N = 26 1 = 32 комбинации.

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

Каждый элемент двоичного кода на все сочетания передается двумя символами, причем 1 преобразуется в 10, а 0 – в 01. Вместо 1010011 передается комбинация 10011001011010.

Таким образом, корреляционный код содержит вдвое больше элементов, чем исходный. На приеме ошибка обнаруживается в том случае, если в парных элементах содержатся одинаковые символы, т.е. 11 или 00 (вместо 10 и 01). При правильном приеме вторые (четные) элементы отбрасываются и остается первоначальная комбинация.

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

2.4.2. Коды с обнаружением и исправлением ошибок

Если кодовые комбинации составлены так, что отличаются друг от друга на кодовое расстояние d & 3, то они образуют корректирующий код, который позволяет по имеющейся в кодовой комбинации избыточности не только обнаруживать, но и исправлять ошибки.

Составление корректирующих кодов производят по следующему правилу. Сначала определяют количество контрольных символов ò, которое следует добавить к данной кодовой комбинации, состоящей из k информационных символов. Далее устанавливают место, где эти контрольные символы должны быть расставлены в комбинации, и их состав, т.е. является ли данный контрольный символ 1 или 0. На приеме обычно делают проверку на четность определенной части разрядов.

47

ELIB.PSTU.RU

Стр. 47

ЭБ ПНИПУ (elib.pstu.ru)

Коды Хэмминга. Эти коды позволяют исправлять все одиноч- ные ошибки (при d = 3), а также исправлять все одиночные ошибки и обнаруживать все двойные ошибки (при d = 4), но не исправлять их. Рассмотрим код Хэмминга, исправляющий все одиночные ошибки.

Âкачестве исходного берут двоичный код на все сочетания

ñчислом информационных символов k, к которому добавляют контрольные символы m. Таким образом, общая длина закодированной комбинации n = k + m. Рассмотрим последовательность кодирования и декодирования по Хэммингу.

Кодирование. Определение числа контрольных символов. Для этого можно воспользоваться следующими рассуждениями. При передаче по каналу с шумами может быть или искажен любой из ï символов кода, или слово передано без искажений. Таким образом, может быть n + 1 вариантов искажения (включая передачу без искажений). Используя контрольные символы, необходимо различить все n + 1 вариантов. С помощью контрольных символов ò можно описать 2m событий. Значит, должно быть выполнено условие

2m & n 1 k m 1.

(2.12)

Ниже представлена зависимость между k è ò, полученная из этого неравенства.

Число контрольных символов m в коде Хемминга в зависимости от числа информационных символов k

k

1

2

3

4

5

6

7

8

9

10

11

12

13

m

2

3

3

3

4

4

4

4

4

4

4

5

5

Размещение контрольных символов. В принципе место расположения контрольных символов не имеет значения: их можно приписывать и перед информационными символами, и после них, и че- редуя информационные символы с контрольными. Однако произвольное расположение контрольных символов затрудняет проверку принятого кода. Для удобства обнаружения искаженного символа целесообразно размещать их на местах, кратных степени 2, т.е. на позициях 1, 2, 4, 8 и т.д. Информационные символы располагают-

48

ELIB.PSTU.RU

Стр. 48

ЭБ ПНИПУ (elib.pstu.ru)

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

m1, m2, k4, m3, k3, k2, k1,

(2.13)

ãäå k4 – старший (четвертый) разряд исходной кодовой комбинации двоичного кода, подлежащий кодированию; k1 – младший (первый) разряд.

Определение состава контрольных символов. Какой из символов должен стоять на контрольной позиции (1 или 0), выявляют с помощью проверки на четность. Рассмотрим это на примере комбинации (2.13).

В табл. 2.4 записаны все кодовые комбинации (кроме нулевой) трехразрядного двоичного кода на все сочетания и рядом справа, сверху вниз проставлены символы комбинации кода Хэмминга, записанные в последовательности (2.13). Из табл. 2.4 составляется табл. 2.5, в которой выписаны символы в трех строках в следующей закономерности: в первую строку записываются символы, против которых проставлены единицы в младшем (первом) разряде комбинации двоичного кода в табл. 2.4.

Ò à á ë è ö à 2 . 4

Составление проверочной таблицы для кода Хемминга

Разряды двоичных чисел

Симво

Разряды двоичных чисел

Симво

3 (k3)

2 (k2)

1 (k1)

ëû êîäà

3 (k3)

2 (k2)

1 (k1)

ëû êîäà

0

0

1

m1

1

0

0

m3

0

1

0

m2

1

0

1

k3

0

1

1

k4

1

1

0

k2

 

 

 

 

1

1

1

k1

 

 

Ò à á ë è ö à 2 . 5

Проверочная таблица для кода Хемминга

 

 

 

 

 

 

 

Контрольные символы

 

Информационные символы

 

m1

k4

 

k3

 

k1

m2

k4

 

k2

 

k1

m3

k3

 

k2

 

k1

49

ELIB.PSTU.RU

Стр. 49

ЭБ ПНИПУ (elib.pstu.ru)

Так, в комбинациях 001, 011, 101 и 111 единицы находятся в младших разрядах, поэтому в первой строке табл. 2.5 записывается символ m1, против которого стоит единица. Символ ò2 не записывается в первую проверку, так как число 010 в младшем разряде содержит не 1, а 0. Далее в первую строку записывается символ k4, так как комбинация 011 на конце содержит 1. Символ ò3 в первую строку не записывается, так как комбинация 100 в первом разряде содержит 0. В первую строку табл. 2.5 запишутся символы k3 è k1 вследствие того, что комбинации 101 и 111 в первом разряде имеют единицы.

Во вторую строку проверочных коэффициентов (см. табл. 2.5) записываются символы, против которых проставлены единицы во втором разряде двоичного кода.

Так, комбинации 010, 011, 110 и 111 содержат во втором разряде 1, поэтому вторая строка проверочных коэффициентов состоит из символов m2, k4, m3, k2 è k1.

Âтретью строку записываются символы, против которых проставлены единицы в третьем разряде двоичного кода (m3, k3, k2 è k1).

Âслучае кодирования более длинных кодовых комбинаций табл. 2.4 и 2.5 должны быть расширены.

Состав контрольных символов k с помощью проверок определяют следующим образом: суммируют информационные символы m, входящие в каждую строку табл. 2.5; если сумма единиц в данной строке четная, то значение символа ò, входящего в эту строку, равно 0, если нечетная, то 1. По первой строке табл. 2.6 определяют значение символа ò1, по второй – ò2, по третьей m3.

Декодирование. Для проверки правильности комбинации снова используют метод проверки на четность. Если комбинация принята без искажения, то сумма единиц по модулю 2 даст нуль. При искажении какого-либо символа суммирование при проверке может дать единицу. По результату суммирования каждой из проверок составляют двоичное число, указывающее на место искажения. Например, первая и вторая проверки показали наличие искажения, а суммирование при третьей проверке дало нуль. Записываем число 011 = 3, которое означает, что в третьем символе кодовой комбинации, включающей и контрольные символы (счет производится слева направо), возникло искажение, поэтому этот символ нужно

50

ELIB.PSTU.RU

Стр. 50

ЭБ ПНИПУ (elib.pstu.ru)