Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИКСиС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.7 Mб
Скачать
    1. Линейные коды

1.1.3 Построение линейных кодов

В 3.1.1 простой трехэлементный код был задан перечислением всех кодовых комбинации (см. табл.3.1). Данное множество можно рассматривать как некоторую алгебраическую систему, которая называется группой с заданной на ней операцией сложения по модулю два. Рассмотрим в общем виде основные свойства такого множества. Обычно группа обозначается буквой G, а элементы множества g. На этом множестве задана некоторая групповая операция, которую обозначим символом «О». Эта операция однозначно сопоставляет двум элементам gi и gj множества G, третий элемент того же множества gk, то есть giOgj = gk,. Если gk  G то группа является замкнутой относительно операции «О».

Множество G с определенной на нем групповой операцией «О» называется группой, если выполняются следующие условия:

1. Ассоциативность (сочетательность): для любых трех элементов группы, например gi, gk, gj:

.

2. Существование нейтрального элемента: среди элементов множества имеется некоторый элемент e, называемый нейтральным, такой, что

для всех i.

3. Существование обратного элемента для каждого данного элемента; к каждому элементу g  G можно подобрать такой элемент , что

.

Группа, в которой выполняется также условие для всех i, j, называется коммутативной, или абелевой.

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

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

Выберем в простом поле GF(N) (для простого поля Галуа N – простое число) примитивный элемент . Под примитивным элементом поля Галуа будем понимать такой элемент, при котором любой ненулевой элемент поля можно представить степенью этого примитивного элемента, и степени примитивного элемента образуют циклическую группу.

Пример 3.3. Задав в качестве групповой операции операцию сложения по модулю 2, убедимся, что множество 000, 001, 010, 100, 110, 011, 101, 111 является группой. Складывая элементы множества в различном сочетании, видим, что каждый раз получаем элемент, входящий в множество. Так, 001  100=101 и т. п. Нетрудно заметить, что условие ассоциативности также выполняется. Нейтральным является элемент 000. Для каждого элемента, заданного в примере множества, существует обратный. Так, для элемента 100 обратным является он сам, т. е.

100  100 = 000.

Таким образом, рассматриваемое множество является группой, порядок которой (число элементов) равен восьми.

Очевидно также, что данная группа является коммутативной и конечной.

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

Пepемножая элементы множества в различном сочетании, получаем рациональное число. Легко убедиться в том, что выполняется условие ассоциатив-ности. Нейтральным элементом, очевидно, является единица. Для каждого элемента, заданного рациональным числом, имеется ему обратный. Так, для числа 2 - это 1/2, числа 1/4 — это 4 и т. д.

Множество элементов примера 3.3 не обязательно задавать перечислением всех элементов, входящих в группу. Пользуясь свойством замкнутости относительно операции сложения по модулю 2, такое множество можно задать матрицей 3.2:

(3.2)

Все остальные элементы группы (кроме 000) могут быть получены путем сложения по модулю 2 различных сочетаний строк матрицы (3.2). Матрица (3.2) называется производящей матрицей рассмотренного в примере 3.3 трехэлементного кода (Под термином «элемент» здесь, как и ранее, понимается составная часть чего-либо, в данном случае кодового слова.)

. Кодовые комбинации, составляющие матрицу (3.2), являются линейно-независимыми.

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

Напомним, что ненулевые комбинации A1, A2, A3 являются линейно-независимыми, если 1A12A23А3 0 (где i{0,1}), при условии, что хотя бы один из коэффициентов i 0.

Код, заданный матрицей (3.2), является линейным, т. е. имеет структуру, обладающую свойством линейности.

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

Двоичные линейные коды называют также групповыми.

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

Пример 3.5 Пусть требуется построить линейный код с d0 = 3 для передачи восьми сообщений.

Тогда необходимое число информационных элементов k = log28 = 3. Запишем исходный код в виде единичной матрицы (3.2) и дополним информационные элементы элементами, которые в дальнейшем будем называть проверочными, так, чтобы обеспечить d0 = 3. Дополним каждую строку матрицы (3.2) двумя элементами:

(3.3)

Складывая по модулю 2 строки матрицы (3.3), видим, что хэммингово расстояние для 1,2; 1,3; 2,3 строк равно 3. Однако при этом кодовое расстояние, равное 3, не обеспечивается, так как в числе разрешенных кодовых комбинаций (множества, являющегося группой) имеется нейтральный элемент 00000, относительно которого комбинации 10010 и 01001 имеют хэммингово расстояние, равное только двум. Таким образом, производящая матрица (3.3) — это матрица кода (5.3) с кодовым расстоянием, равным только двум. Для получения d0 = 3 необходимо к исходным информационным элементам добавить проверочные элементы, в числе которых было бы не менее двух единиц, а добавляемые проверочные элементы разных строк отличались бы, по крайней мере, в одном элементе. Этому требованию удовлетворяет производящая матрица

(3.4)

Добавляемые проверочные элементы могут быть записаны и в другом порядке. Необходимо лишь обеспечить d0 = 3. Матрица (3.4) является производящей, или порождающей, матрицей кода (6.3), содержащего n=6 элементов, из которых три информационных. Обычно матрицу обозначают буквой G с индексом, указывающим, к какому коду она относится (в нашем случае G(6,3)).

Производящая матрица состоит из двух матриц: единичной размерности (kk) и матрицы Ckr содержащей k строк и r столбцов. В строке матрицы Ckr должно быть не менее чем (d0 - 1) единиц, а хэммингово расстояние между строками не менее чем (d0 - 2). Очевидно также, что общее число элементов в строке матрицы Ckr должно определяться неравенством .

Обозначим элементы комбинаций кода, задаваемого матрицей (3.4), a1, а2, а3, a4, a5, a6, где а1, a2, a3 — информационные, а а4, a5, a6 — проверочные элементы. Полученный линейный код является систематическим (в систематических кодах кодовое слово делится на две части: информационную, состоящую из k неизменных элементов сообщения, и избыточную (проверочную) — из (n-k) проверочных элементов.).

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

Найдем это правило для а4, пользуясь матрицей (3.4). Из первой строки следует, что в суммировании обязательно должен участвовать элемент а1 (только в этом случае a4 = 1). Из второй строки следует, что элемент а2 в суммировании не должен участвовать. Из третьей строки следует, что элемент а3 должен участвовать в суммировании. Итак,

a4 = a1a3. (3.5)

Уравнения для a5 и а6 записываются в виде

a5 = a2a3, (3.6)

a6 = a1a2a3. (3.7)

Представим правила (3.5) — (3.7) в виде матрицы H(6,3), называемой проверочной. Эта матрица содержит r строк и k столбцов:

. (3.8)

Каждая из r строк матрицы (3.8) определяет правило формирования соответствующего проверочного элемента. Так, единицы, расположенные на местах, соответствующих информационным элементам в первой строке, указывают на то, какие информационные элементы должны участвовать в получении первого проверочного элемента (элемента a4). Единица на месте, соответствующем проверочному элементу (четвертом месте), указывает, какой проверочный элемент получается в результате суммирования информационных элементов. Так, из первой строки следует a1a2 = a4. Матрица Н(6,3) состоит из двух матриц: прямоугольной Drk и единичной I, содержащей r строк и r столбцов:

.

Легко заметить, что Drk = («т» означает транспонирование). Проверочная матрица задает правила кодирования линейного кода и определяет схему кодирующего устройства.

Задание 1. Структурная схема кодирующего устройства, задаваемого проверочной матрицей Н(7,4), приведена на рис. 3.1. Запишите Н(7,4).