Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1832.pdf
Скачиваний:
15
Добавлен:
07.01.2021
Размер:
1.93 Mб
Скачать

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

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

 

ведь при разб ен

 

 

на подгруппы можно сделать большей по вероят-

 

ности как верхнюю, так

нижнюю подгруппы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

От этого недостатка сво одна методика Хаффмана. Она гаранти-

 

рует однозначное построение кода с наименьшим для данного рас-

 

пределен я вероятностей средним числом символов на букву.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Построение кода Хаффмана

 

 

 

 

 

 

Таблица 2.3.6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xi

 

P(xi)

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

Код

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

x1

 

0,35

 

 

 

 

 

0,35

0,35

 

 

 

 

0,35

 

 

0,35

 

 

 

 

0,35

 

 

 

0,37

 

 

 

 

0,63

 

 

 

 

 

11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

x2

 

0,15

 

 

 

 

 

0,15

0,15

 

 

 

 

0,17

 

 

 

 

 

0,20

 

 

 

 

 

 

0,28

 

 

 

 

0,35

0,37

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

x3

 

0,13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,15

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,13

0,13

 

 

 

 

 

 

 

0,17

 

 

 

 

0,20

 

 

 

0,28

 

 

 

 

 

 

 

 

 

 

100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x4

 

0,09

 

 

 

 

 

 

 

 

 

 

 

 

0,11

 

 

 

 

0,13

 

 

0,15

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,09

 

 

 

 

 

 

 

 

 

 

 

 

0,17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

010

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,09

 

 

 

 

 

0,09

 

 

0,09

 

 

 

 

0,11

 

 

 

0,13

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

001

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x6

 

0,08

 

 

 

 

 

0,08

 

 

0,09

 

 

1

 

0,09

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x7

 

0,05

 

 

 

 

 

 

0,06

 

 

 

0,08

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0110

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x8

 

 

 

0,04

1

 

 

0,05

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01111

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СибАДИ

 

 

x9

 

0,02

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01110

 

2.3.5. Корректирующие коды

Помехоустойчивыми или корректирующими кодами называются коды, позволяющие обнаружить и устранить ошибки при передаче информации из-за воздействия помех [7].

51

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

Синость веса (числабАединичных символовДИ) в информационной группе кодового блока.

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

Рис. 2.3.10. Представление двоичных кодов с помощью куба

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

Так, сложив две комбинации

10110101101

11001010101

01111111000,

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

Для кода с N=3 восемь кодовых комбинаций размещают на вершинах трехмерного куба. Такой код имеет кодовое расстояние d=1 и

52

для передачи используют все восемь возможных кодовых комбинаций: 000,001,..,111. Такой код не является помехоустойчивым, т.к. он не в состоянии обнаружить ошибку.

Если выберем комбинации с кодовым расстоянием d=2, например 000,110,101,011, то такой код позволит обнаруживать однократ-

ные ошибки. Назовем эти комбинации разрешенными, предназначенными для передачи информации. Все остальные 001,010,100,111 – запрещенные.

СибАДИТакой код может исправить одну одиночную ошибку или обнаружить две оши ки. Таким о разом, увеличивая кодовое расстояние,

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

ошибку.

Далее выберем вершины с кодовым расстоянием d=3.

Разрешенные

Запрещенные комбинации

можно увеличить помехоустойчивость кода. В общем случае кодовое расстояние определяется по формуле d=p+l+1, где p – число исправляемых ошибок; l – число обнаруживаемых ошибок. Обычно l>p.

Минимальным кодовым расстоянием d называется минимальное число искаженных символов, необходимое для перехода одной разрешенной комбинации в другую. Если код способен исправить p ошибок, то необходимо и достаточно, чтобы d≥2p+1.

Таким образом, кодовые слова корректирующих кодов содержат информационные проверочные разряды. В процессе кодирования при передаче информации из информационных разрядов в соответствии с определёнными для каждого корректирующего кода правилами формируются дополнительные символы – проверочные разряды. При декодировании из принятых кодовых слов по тем же правилам вновь формируют проверочные разряды и сравнивают их с принятыми; если они не совпадают, значит, при передаче произошла ошибка. Существуют коды, обнаруживающие факт искажения сообщения, и коды, исправляющие ошибки, т.е. такие, с помощью которых можно восстановить первичную информацию.

53

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

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

СТакиб, классический кодАДИХемминга (7,4,3) содержит всего 7 разрядов, из которых 4 информационных, а 3 контрольных.

ошибок, одного контрольного разряда недостаточно.

Кол чество контрольных разрядов r должно быть выбрано так, чтобы удовлетворялось неравенство 2r≥k+r+1 или r≥log2(k+r+1), где

k – кол чество основных двоичных разрядов кодового слова.

М н мальные значения r при заданных значениях k, найденные

в соответств с эт м неравенством, приведены в табл. 2.3.7.

 

 

Таблица 2.3.7

 

Минимальные значения r

 

при заданных значениях k

 

 

 

 

 

Д апазон k

rmin

 

1

2

 

 

2–4

3

 

 

5–11

4

 

 

12–26

5

 

 

27–57

6

 

Величину r называют избыточностью корректирующего кода. n

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

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

Различают несистематические и систематические коды.

54

В несистематических кодах проверочные разряды занимают те позиции кодового слова, которые содержат только одну единицу (в двоичном представлении номера позиции разряда 1,10,100,1000…). Эти позиции соответствуют номерам, кратным степени двойки (20=1; 21=2; 22=4; 23=8;…): 12=1; 22=10; 42=100; 82=1000,….

СибАДИ(r=3) числами от 001 до 111, располагая разряды в соответствии с табл. 2.3.2. Младшие разряды чисел обозначены цифрой 1, старшие – цифрой 3.

В несистематическом коде вид синдрома (указателя разряда, где есть ошибка) представляется двоичным числом, которое представляет

собой номер ош бочного разряда.

Пусть требуется передать некоторое слово 1001, содержащее 4 информац онных разряда (k=4), с помощью несистематического ко-

да, исправляющего одну одиночную ошибку.

Nk=2k=24=16. Из условий 2r≥n+1 и n=k+r имеем 2r≥k+r+1=4+r+1=5+r, откуда r=3. Кодовое расстояние определится из

условия d≥2p+1, где p – число исправляемых ошибок. При p=1 dmin=3.

Так м образом, для передачи этого слова потребуется 7 разря-

дов: 4 нформац онных

3 контрольных.

 

 

 

 

Условное о означение кодового 7-разрядного слова в несисте-

матическом коде Хемм нга (7,4) приведено в табл. 2.3.8.

 

 

 

 

 

 

 

 

Таблица 2.3.8

 

 

Кодовое 7-разрядное слово

 

 

 

в несистематическом коде Хемминга (7,4)

 

 

 

 

 

 

 

 

 

 

 

 

 

а3

а2

 

а1

 

с2

а0

 

с1

с0

 

1

0

 

0

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

Контрольные разряды с0, с1, с2

помечены темным фоном. н-

формационные разряды а0, а1, а2,

а3 известны.

ля определения про-

верочных разрядов выполним следующие действия.

Заполним табл. 2.3.9 от с0

до а3 двоичными трехразрядными

Таблица 2.3.9

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

Разряд

а3

а2

а1

с2

а0

с1

с0

1

1

1

1

1

0

0

0

2

1

1

0

0

1

1

0

3

1

0

1

0

1

0

1

55

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

 

с2 а1 а2 а3=0;

 

 

 

 

с1 а0 а2 а3=0;

 

 

 

 

с0

а0

а1

а3=0.

 

 

 

СибАДИ

Реш в полученную систему уравнений, находим значения с0, с1,

с2 и занос м х в табл. 2.3.10.

 

 

Таблица 2.3.10

 

 

 

 

Кодовое слово

 

 

 

с контрольными разрядами

 

 

а3

а2

а1

с2

а0

с1

с0

 

 

 

1

 

0

0

 

1

1

 

0

 

0

 

 

Дво чное ч сло с2 а1 а2 а3

с1 а0 а2 а3

с0 а0 а1 а3

является указателем разряда, где есть ошибка, и называется синдро-

мом ошибки S. Если S=000, кодовая комбинация передана без иска-

жений.

 

 

 

 

 

 

 

 

 

 

 

Предположим, что кодовое слово было передано без искажений,

тогда проверка контрольных соотношений приведет к результату

 

с2 а1 а2 а3=0;

 

 

 

 

с1 а0 а2 а3=0;

 

 

(2.3.11)

 

с0 а0 а1 а3=0.

 

 

 

Так как в данном случае информация передана без искажений, S=000. Информационное слово I получается из кодового слова С путем отбрасывания контрольных разрядов:

1001100 I 1001.

(2.3.12)

Предположим теперь, что на приемной стороне было получено

кодовое слово С*, в котором в разряде а2 вместо 0 оказалась 1.

 

С*=1101100.

(2.3.13)

Это означает, что кодовое слово было принято с ошибкой, тогда проверочные равенства в приемнике дадут синдром ошибки:

56

с2 а1 а2 а3=1 0 1 1=1; с1 а0 а2 а3=0 1 1 1=1; (2.3.14) с0 а0 а1 а3=0 1 0 1=0.

Полученный синдром S=110 указывает, что ошибка произошла в

шестом разряде (1102=6), значит, шестой разряд надо исправить (про-

СибАДИ

сто инвертировать). Тогда будем иметь

 

С*=1101100→ С=1001100.

(2.3.15)

Далее нформац онное слово I получается из кодового слова С

путем отбрасыван я контрольных разрядов:

 

1001100 I 1001.

(2.3.16)

Так можно о наружить

исправить любую однократную ошиб-

ку (в любом разряде).

 

В с стемат ческом коде информационное слово занимает пер-

вые k разрядов, проверочное – оставшиеся nk.

Для кода (7,4) кодовое

слово имеет вид, приведенный в

табл. 2.3.11.

 

Таблица 2.3.11

Кодовое 7-разрядное слово в систематическом коде Хемминга (7,4)

а3 а2 а1 а0 с2 с1 с0

Информационные разряды аi являются элементами единичной матрицы k×k. В систематическом коде номер ошибочного разряда определяется по синдрому с помощью матрицы H(n, k). Номер столбца, совпадающий с синдромом, соответствует разряду кодового слова, который содержит ошибку.

Групповые коды удобно задавать при помощи матриц, размерность которых определяется параметрами k и n. Число строк равно k, а число столбцов равно n=k+r.

57

 

 

a11 a12 ...a1k

p11 p12 ... p1r

 

 

 

G(n,k)

 

a21

a22 ...a2k

p21

p22 ... p2r

 

.

(2.3.17)

 

... ... ... ... ... ... ... ...

 

 

 

 

 

 

 

 

ak1

ak2 ...akk

pk1

pk2 ... pkr

 

 

 

СибАДИ

Коды, порождаемые этими матрицами, называются (n,k)-кодами,

а соответствующ е м матрицы –

порождающими (образующими,

производящ ми). Порождающая матрица G состоит из информацион-

ной Ikk проверочной Rkr матриц.

Порождающая матрица является

сжатым оп сан ем л нейного кода

может быть представлена в ка-

нонической (т повой) форме

 

 

 

 

 

 

 

 

 

 

 

G(n,k)

 

IkkRkr

.

 

 

 

(2.3.18)

В качестве

нформационной матрицы удобно использовать еди-

ничную матр цу,

ранг которой определяется количеством информа-

ционных разрядов:

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

 

 

0 ...

0

 

 

 

 

 

0

1

0

 

 

0 ...

0

 

 

 

 

Ikk

0

0

1

 

 

0 ...

0

 

.

(2.3.19)

 

 

. . . . ... .

 

 

 

 

 

0

0

0

 

0 ...

1

 

 

 

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

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

Как было установлено, Nk=2k=24=16. Из условий 2r≥n+1 и n=k+r имеем 2r≥k+r+1=4+r+1=5+r, откуда r=3. Кодовое расстояние определится из условия d≥2p+1, где p – число исправляемых ошибок. При p=1 dmin=3.

58

Для кода (7,4)

 

 

1

0

0

0

 

I44

 

0

1

0

0

. (2.3.20)

0

0

1

0

СибАДИ

 

0

0

0

1

 

троки порождающей матрицы представляют собой первые k комбинац й коррект рующего кода (информационная матрица Ikk). Последующ е r столбцов порождающей матрицы представляют собой коррект рующ е разряды с0, с1, с2, предназначенные для обнаружения ли справлен я оши ки в информационной части кода. Это проверочная матр ца Rkr.

Вес каждой строки проверочной матрицы (количество единиц в

строке) должен быть

 

 

 

WR

dmin WI

3 1 2,

(2.3.21)

kr

kk

 

где WIkk – вес каждой строки информационной матрицы.

В качестве строк проверочной матрицы R43

могут быть выбраны

трехзначные двоичные ком инации с числом единиц, большим или равным двум: 111; 110; 101; 011.

Окончательный вид проверочной матрицы:

 

 

1

1

1

 

 

1

1

1

 

R43

 

1

1

0

, или R43

 

0

1

1

, или

 

1

0

1

 

1

1

0

 

 

0

1

1

 

 

1

0

1

 

 

0

1

1

 

 

 

1

0

1

 

 

(2.3.22)

 

 

 

 

 

 

 

 

 

 

 

 

R43

1

0

1

 

 

, или R43

1

1

1

 

 

и т. д.

1

1

0

 

 

1

1

0

 

 

 

1

1

1

 

 

 

0

1

1

 

 

 

Как видно, основным требованиям могут удовлетворять несколько матриц. Выбор матрицы определяется по дополнительным

59

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

Выберем четвертую из приведенных матриц. Тогда порождаю-

щая матрица кода G(7,4) примет вид

 

 

 

 

 

 

 

СибАДИ

 

а3

а2

а1

а0

с2

с1

с0

а3

 

 

1

0

0

0

1

0

1

 

 

 

0

1

0

0

1

1

1

 

а2

 

 

G(7,4)

0

0

1

0

1

1

0

 

а

k.

(2.3.23)

 

 

 

 

 

 

 

 

 

1

 

 

 

0

0

0

1

0

1

1

 

 

 

 

 

 

а0

 

n

Столбцы проверочной матрицы Rkr определяют правила формирования проверок.

Процесс кодирования состоит во взаимно-однозначном соответствии k-разрядных информационных слов I и n-разрядных кодовых слов С.

Произведение информационного слова на порождающую матрицу дает кодовое слово C=IG.

Информационному слову I=1101 соответствует следующее кодовое слово:

 

1

0

0

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1101

 

 

 

 

0

1

0

0

1

1

1

 

 

 

 

1101001

 

 

 

.

(2.3.24)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

0

1

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

0

1

1

 

 

 

 

 

 

 

 

 

 

Процесс декодирования состоит в определении соответствия принятого кодового слова переданному информационному. Это осу-

ществляется с помощью матрицы H(n, k).

 

 

 

H(n,k)

 

 

 

RT I

rr

 

,

(2.3.25)

 

 

 

 

 

 

 

 

 

kr

 

 

 

где RT

– транспонированная проверочная матрица (поменять строки

kr

 

 

 

 

 

 

 

 

 

на столбцы); Irr – единичная матрица.

60

Проверочная матрица строится следующим образом. Вначале строитсяRkrT . Для рассматриваемого примера

1

1

1

0

RT 0

 

1

1

1 .

 

 

 

(2.3.26)

43

 

 

 

 

 

 

 

 

 

 

СибАДИ

 

 

 

1

1

0

1

 

 

 

 

К полученной матрице справа приписывается единичная квад-

ратная матр ца Irr.

RT

 

 

 

 

 

 

 

 

Так м образом, H(7,4)

 

I

33

.

 

 

 

 

 

 

 

 

43

 

 

 

 

 

 

 

В данном пр мере

 

 

 

 

 

 

 

 

 

H(7,4)

1

 

1

1

0

1

0

0

.

(2.3.27)

0

1

1

1

0

1

0

 

1

 

1

0

1

0

0

1

 

 

Декодирование осуществляется путем перемножения кодовой комбинации С на транспонированную матрицу НТ(7,4) и вычислением указателя ошибки (синдрома S).

 

 

 

 

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

 

 

 

 

 

 

 

 

 

 

 

S

HT (7,4)

 

 

 

1101001

 

 

 

 

 

0

1

1

 

 

 

 

 

0 0 0

 

 

 

.

(2.3.28)

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

 

 

 

 

 

 

 

 

 

 

 

Вычисленный синдром S=000 указывает на то, что кодовое слово С принято без ошибки.

Предположим, что принятое кодовое слово оказалось искажен-

ным:

С*=0101001. (2.3.29)

61

Тогда

 

 

1

0

1

 

 

 

 

 

 

 

 

 

 

 

1

1

1

 

 

 

 

 

 

 

 

 

 

 

1

1

0

 

 

 

 

 

 

 

 

 

S С* HT

(7,4)

 

 

 

0101001

 

 

 

 

0

1

1

 

 

 

 

1 0 1

 

 

 

. (2.3.30)

 

 

 

 

 

 

 

 

Сиб

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А

ДИ

 

1

0

0

 

 

 

 

 

 

 

 

 

 

0

1

0

 

 

 

 

 

 

 

 

 

 

0

0

1

 

 

 

 

 

 

 

 

 

Выч сленный с ндром S=101 указывает на наличие ошибки и совпадает с первым стол цом матрицы Н(7,4), что позволяет сформировать коррект рующее кодовое слово (вектор) 1000000, содержащее единицу только в одном разряде, который принят с ошибкой. Это кодовое слово складывается по модулю 2 с принятой кодовой комбинацией. В результате появляется исправленная кодовая комбинация С:

0101001

 

 

1000000

 

 

1101001.

 

 

Далее информационное слово I получается из кодового слова С

путем отбрасывания контрольных разрядов:

 

С 1101001 I

1101.

(2.3.31)

Так можно обнаружить и исправить любую однократную ошибку (в любом разряде). Две или более ошибки превышают возможности корректирующего кода Хемминга, декодер будет ошибаться.

В коде Хемминга (8,4,4) с дополнительной проверкой на четность формирование 7-разрядной кодовой комбинации аналогично формированию кода Хемминга (7,4,3). Дополнительный восьмой разряд вычисляется путем проверки 7-разрядной кодовой комбинации на четность: 0 добавляется в случае, если количество единиц в комбинации четное, 1 – если количество единиц нечетное.

Для рассмотренного выше примера кодовая комбинация 1101001 дополняется битом 0, в результате чего формируется кодовая комбинация 11010010.

62

Матрица Н(8,4,4) будет иметь вид

 

 

 

 

1

1

 

1

0

1

0

 

0

0

 

 

 

 

H(8,4,4)

 

0

1

1

1

0

1

 

0

0

 

.

(2.3.32)

 

 

1

1

 

0

1

0

0

 

1

0

 

 

 

 

 

 

 

 

 

 

СибА1 1 0Д1 И

 

1

1

 

1

1

1

1

 

1

1

 

 

 

Декод рован е осуществляется путем перемножения кодовой

комбинац

на транспонированную матрицу

НТ(8,4,4). Синдром

ошибки

 

 

 

 

 

 

1

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

1

 

 

 

 

 

 

 

 

S

11010010

 

 

0

1

1

1

 

 

 

 

0000

.

(2.3.33)

 

 

 

 

 

 

 

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

 

Вычисленный синдром S=0000 указывает на отсутствие ошибок в принятой кодовой комбинации: С 1101001 I 1101.

Предположим далее, что кодовая комбинация принята с однократной ошибкой (в одном разряде)

*=01010010.

Тогда

 

 

 

1

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

S

 

01010010

 

 

 

 

0

1

1

1

 

 

 

 

1011

 

 

 

.

(2.3.34)

 

 

 

 

 

 

 

 

 

 

 

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

 

 

 

 

63

Вычисленный синдром S=1011 указывает на наличие ошибки и совпадает с первым (слева) столбцом матрицы Н(8,4,4), что позволяет сформировать корректирующее кодовое слово (вектор) 10000000, содержащее единицу только в одном разряде, который принят с ошибкой. Это кодовое слово складывается по модулю 2 с принятой

кодовой комбинацией. В результате появляется исправленная кодовая

СибАДИ

комбинация

С:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01010010

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10000000

 

 

 

 

 

 

 

 

 

 

 

 

11010010

 

 

 

 

 

 

 

 

 

 

 

Далее

нформац онное слово I получается из кодового слова С

путем отбрасыван я контрольных разрядов:

 

 

 

 

 

 

С 110100

10 I 1101.

(2.3.35)

Теперь будем сч тать, что кодовая комбинация содержит дву-

кратную ошибку (в двух разрядах)

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда

 

 

 

 

**=01010000.

(2.3.36)

 

 

 

 

 

 

 

 

 

 

1

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

1

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

01010000

 

 

 

 

 

0

1

1

1

 

 

 

 

1000

 

 

 

.

(2.3.37)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

 

 

 

 

Вычисленный синдром S=1000 указывает на наличие двукратной ошибки, так как первые три символа синдрома указывают на наличие ошибки, а последний символ – на наличие ошибки четной кратности, что позволяет сделать вывод о наличии неисправляемой ошибки.

64

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]