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

Березкин Основы теории информации и кодирования 2010

.pdf
Скачиваний:
1364
Добавлен:
16.08.2013
Размер:
3.57 Mб
Скачать

10.3. ПОСТРОЕНИЕ ГРУППОВОГО КОДА

Предлагается следующая процедура построения кода. Пусть требуемый объем кода Q равен необходимому числу передавае-

мых сообщений. Из соотношения

2k 1 Q

определяется число информационных символов k . Каждой из

2k 1 ненулевых кодовых комбинаций k -разрядного неизбыточного кода ставится в соответствие комбинация из n символов. Значение символов в проверочных разрядах, число которых n k , устанавливается в зависимости от суммы по модулю 2 определенных информационных разрядов.

Множество 2k k -разрядных комбинаций информационных разрядов образует подгруппу группы, состоящей из 2n n -

разрядных кодов. Множество 2k n -разрядных комбинаций, состоящих из n k проверочных символов и k информационных разрядов, носит название разрешенных кодовых комбинаций и

также представляет собой подгруппу группы 2n n -разрядных кодов.

Множество разрешенных кодовых комбинаций и будет группо-

вым кодом (n, k) .

Разложим группу G n -разрядных чисел на смежные классы по подгруппе A разрешенных кодовых комбинаций. В этом разложе-

нии будет 2n k классов. Элементы каждого класса представляют собой сумму по модулю 2 образующих элементов данного класса и разрешенных кодов:

x A .

Образующие Разрешенные элементы коды

За образующие элементы классов возьмем наиболее вероятные для данного канала вектора ошибок Ei , которые должны исправляться:

221

Опознаватели

 

Образующие

 

 

x A

O0

 

 

элементы

 

A

 

 

0

 

 

O1

 

 

E1

 

 

 

 

 

A

 

O

 

 

E

2

 

 

A 2n k .

 

2

 

 

 

 

 

 

 

x A

...

 

 

...

 

 

 

 

 

 

 

 

 

O n k

 

 

E

 

 

 

 

 

1

n k

1

A

 

2

 

2

 

 

 

 

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

кода вектора Ei . Для исправления любой полученной на выходе

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

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

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

Так, если мы хотим исправлять все одиночные ошибки, векторы которых 000…01, 000…10,…, 100…00 и число которых n , то число опознавателей (смежных классов) должно быть не меньше n , т.е.

2n k 1 n n .1

В общем случае для исправления всех независимых ошибок кратности s включительно необходимо выполнение неравенства

222

(n, k)

 

s

n

2n k 1

 

 

 

 

.

 

i 1

i

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

Рассмотрим пример. Допустим, что надо закодировать Q 15

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

числяется из соотношения 2k 1 15. Поскольку оно удовлетворяется при k 4 , выбираем наименьшее k 4 . Для исправления

одиночных ошибок необходимо, чтобы 2n 4 1 n . Следовательно, наименьшая длина n 7 .

Соотношение 2n k 1 n , которое справедливо для устранения всех одиночных ошибок, позволяет составить табл. 10.1 параметров группового кода .

Итак, строим групповой код (7,4). Число разрядов кода n 7 , число ошибок, подлежащих исправлению, тоже 7. Три избыточных разряда n k 3 позволяют использовать в качестве опознавателей трехразрядные числа:

 

Векторы

 

Опознаватели

 

ошибок

 

 

3р2р1р

E0

0000000

 

O0

000

E1 0000001

 

O1 001

E2

0000010

 

O2

010

E3 0000100

 

O3 011

E4

0001000

 

O4

100

E5 0010000

 

O5 101

E6

0100000

 

O6

110

E7

1000000

 

O7

111.

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

223

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

Таблица 10.1

Длина кода

3

4

5

6

 

7

 

8

9

10

11

12

 

n

 

 

 

 

 

 

 

 

Число

информаци-

1

1

2

3

 

4

 

4

5

6

7

8

онных разрядов k

 

 

 

 

 

 

 

 

 

 

 

 

 

Число

проверочных

2

3

3

3

 

3

 

4

4

4

4

4

 

разрядов n k

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

x1 x3 x5 x7 0 .

Опознавателя

Единица во втором разряде опознавателя может быть следствием ошибки в разрядах, опознаватели которых во втором разряде име-

ют "1":

x2 x3 x6 x7 0 .

Опознавателя

Аналогично, находим и третье равенство:

x4 x5 x6 x7 0 .

Опознавателя

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

224

тели которых имеют по одной единице: x1 , x2 , x4 . Тогда правила кодирования для кода (7,4) принимают вид

x1 x3 x5 x7 , x2 x3 x6 x7 ,

x4 x5 x6 x7 .

Таким образом, информационные разряды: 3, 5, 6, 7. Контрольные: 1, 2, 4. Таблицу разрешенных кодовых комбинаций группового кода (7,4) можно представить в виде:

7

6

5

4

3

2

1

 

0

0

0

0

0

0

0

 

0

0

0

0

1

1

1

.

0

0

1

1

0

0

1

 

 

 

 

...

 

 

 

 

1

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

При больших n и k таблица оказывается слишком громоздкой.

Для полного определения группового кода достаточно записать

только линейно независимые строки. Среди 2k 1 ненулевых кодов линейно независимых строк всего k . Следовательно, образующая матрица кода (n, k) может быть представлена следую-

щим образом:

 

 

 

0

0

...

0

1

:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

...

1

0

:

 

 

M n,k

 

IkT : Bn k ,k

 

 

 

 

 

...

 

 

: Bn k ,k

 

,

 

 

 

 

 

 

 

 

 

 

0

1

...

0

0

:

 

 

 

 

 

 

 

1

0

...

0

0

:

 

 

где Bn k ,k проверочная матрица.

Суммируя строки единичной матрицы в различных сочетаниях можно получить все 2k 1 ненулевые комбинации k -разрядного

225

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

Для группового кода (7,4) образующая матрица имеет вид

 

7 6 5 3

4 21

 

Разряды

кода

 

0001: 011

M 7,4

0010 :101 .

 

0100 :110

1000 :111

Пример аппаратной реализации группового кода (7,4) приведен на рис. 10.8. Логическая схема кодирующего и декодирующего устройств выделена пунктиром. Простота реализации является одним из существенных факторов построения корректирующих кодов Хемминга.

x7

x6

x5

 

x3

 

 

 

 

 

 

 

 

 

 

Кодер

7

6

5

4

3

2

1

Декодер

 

 

 

 

 

 

 

Канал

 

 

 

 

 

 

 

1

7

7

6

5

4

3

2

1

Дешифратор

 

Рис. 10.8. Кодер и декодер группового кода (7,4)

226

10.4. МАТЕМАТИЧЕСКОЕ ВВЕДЕНИЕ К ЦИКЛИЧЕСКИМ КОДАМ

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

Для описания циклических кодов удобна запись любого двоичного числа в виде многочлена от фиктивной переменной x :

100101 Gj (x) 1 x5 0 x4 0 x3 1 x2 0 x1 1 x0 x5 x2 1.

В этом случае действия над кодами сводятся к операциям над многочленами. В множестве n - разрядных чисел или в множестве

многочленов Gj (x) , степень которых не превышает n 1, введем

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

G1 (x) x3 x 1 1011, G2 (x) x 1 0011,

G1 (x)G2 (x) x4 x3 x2 x x 1 x4 x3 x2 1 11101.

ОПРЕДЕЛЕНИЕ 10.6. Кольцом R называется множество элементов, если для каждой его пары определены операции сложения

иумножения, а также выполняются следующие аксиомы:

1)относительно сложения R является абелевой группой;

2)замкнутость a,b R ab R ;

3)закон ассоциативности a,b,c R (ab)c a(bc) ;

4)закон дистрибутивности a,b, c R (a b)c ac bc .

Сложение в кольце всегда коммутативно, а умножение не обязательно должно быть коммутативным. Коммутативное кольцо – это кольцо, в котором умножение коммутативно, т.е. ab ba для всех a,b R .

ОПРЕДЕЛЕНИЕ 10.7. Полем F называется множество элементов, если для каждой его пары определены операции сложения и умножения, а также выполняются следующие аксиомы:

227

1)множество F образует абелеву группу по сложению;

2)множество ненулевых элементов F образует абелеву группу по умножению (нейтральный элемент 1 a a , обратный элемент a 1 a 1);

3)закон дистрибутивности a,b,c R (a b)c aс bc .

ОПРЕДЕЛЕНИЕ 10.8. Поле, состоящее из конечного числа элементов q , называют конечным или полем Галуа и обозначают

GF(q) {0,1,..., q 1}.

ОПРЕДЕЛЕНИЕ 10.9. Пусть F – некоторое поле. Подмножество F0 F называется подполем, если оно само является полем

относительно наследуемых из F операций сложения и умножения. В этом случае исходное поле F называется расширением F0 .

Итак, двоичные кодовые комбинации an 1... a1a0 представляются в виде многочленов степени не более n 1 от переменной x с

двоичными

(из

поля GF(2) ) коэффициентами ai , i

0, n 1

:

G

j

(x) a

n 1

xn 1

... a x a

0

.

 

 

 

 

 

1

 

 

 

Уточним операцию символического умножения. Если произведение двух многочленов G1 (x)G2 (x) имеет степень большую или

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

но подбирают некоторый многочлен P0 (x) степени n и результатом операции символического умножения считают остаток от де-

ления

 

(x)G2

(x)

 

,

степень которого не более n 1.

G1

 

 

 

P0 (x)

 

 

 

 

Для того чтобы найти вид многочлена P0 (x) , произведем умножение, например, многочлена степени n 1 на x :

G j (x) (xn 1 xn 2 ... x 1) x xn xn 1 ... x2 x .

Чтобы результат умножения соответствовал кодовой комбинации n - разрядного числа, необходимо заменить xn на 1, т.е.

228

xn xn 1 ... x2 x xn 1 ... x2 x 1. Такая замена эквива-

лентна получению остатка от деления Gj (x) на xn

1:

 

xn xn 1 ... x2

x

 

xn 1

 

 

 

 

xn 1

 

 

 

1

.

 

 

 

 

xn 1 ... x2 x 1

 

 

 

 

Поэтому естественно в качестве

P (x) взять xn 1.

 

 

0

 

 

 

 

При заданных операциях поразрядного суммирования и символического умножения все множество n - разрядных чисел или

многочленов степени не более n 1 образует коммутативное кольцо R .

ОПРЕДЕЛЕНИЕ 10.10. Кольцо многочленов по модулю P(x) является полем GF(2m ) тогда и только тогда, когда P(x) не-

приводимый многочлен (простой) и deg P(x) m .

Например, поле GF(22 ) состоит из элементов {0,1, x, x 1} для неприводимого многочлена P(x) x2 x 1 и является расширением поля GF(2) , а GF(2) , в свою очередь, подполем

GF(22 ) .

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

Все множество n - разрядных кодовых комбинаций при выбранных операциях может также рассматриваться как алгебра мно-

гочленов над полем GF(2) по модулю xn 1.

Выделим в R подмножество таких многочленов, которые кратны некоторому многочлену – g(x) R , т.е. делятся на него без

остатка: Gi (x) 0 mod g(x) . Такое подмножество многочленов называют идеалом, а g(x) именуют порождающим многочленом

идеала.

Количество различных элементов в идеале определяется видом

229

порождающего многочлена. Если g(x) 0 , то весь идеал пуст;

если

g(x) 1, то в идеал войдут все многочлены кольца; если же

g(x)

– неприводимый многочлен степени n k , то число элемен-

тов идеала равно 2k .

ОПРЕДЕЛЕНИЕ 10.11. Циклический код – идеал в кольце многочленов R , образованный неприводимым порождающим многочленом g(x) степени n k .

Остается только выбрать g(x) , способный породить код с за-

данными свойствами. Все многочлены циклического кода, соответствующие его кодовым комбинациям, должны делиться на g(x) без остатка. Для этого достаточно, чтобы на g(x) без остат-

ка делились все многочлены, составляющие образующую матрицу циклического кода. Многочлены Gi (x) кода получаются циклическим сдвигом, что соответствует последовательному умножению g(x) на x с приведением по модулю xn 1:

Gi (x) g(x) xi .xn 1

Например, образующая матрица циклического кода (7,4), образованного порождающим многочленом g(x) x3 x 1, имеет вид

 

 

0

0

0

1

:

0

1

1

 

 

 

 

 

M 7,4

 

0

0

1

0

:

1

1

0

 

.

0

1

0

0

:

1

1

1

 

 

 

 

 

 

 

 

1

0

0

0

:

1

0

1

 

 

Итак, многочлен Gi (x)

циклического кода является остатком от

деления, для которого справедливы следующие выражения:

Gi (x) g(x) xi mod(xn 1),

g(x) xi Ai (x) (xn 1) Gi (x).

Следовательно, все многочлены матрицы, т.е. все многочлены кода, будут делиться без остатка на g(x) , если на g(x) будет де-

литься без остатка xn 1. Предполагать, что многочлен Ai (x) ,

230

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