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

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

В 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, называется коммутативной, или абелевой.

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

Пример 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, такое множество можно задать матрицей 100:

(3.2)

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

Можно было бы составить матрицу и из других линейно-независимых кодовых комбинаций. Напомним, что ненулевые комбинации A1,A2,A3являются линейно-независимыми, если1A12A23А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) и матрицыCkсодержащейkстрок иrстолбцов. В строке матрицыCkrдолжно быть не менее, чем (d0- 1) единиц, а хэммингово расстояние между строками не менее чем (d0- 2). Очевидно также, что общее число элементов в строке матрицыCkrдолжно определяться неравенством.

Обозначим элементы комбинаций кода, задаваемого матрицей (3.4), a1, а2, а3,a4,a5,a6, где а1,a2,a3— информационные, а а4,a5,a6— проверочные элементы. Полученный линейный код является систематическим *. Проверочные элементы могут быть получены путем суммирования по модулю 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)

_____________

*В систематических кодах кодовое слово делится на две части: информационную, состоящую из kнеизменных элементов сообщения, и избыточную проверочную — из (n-k) проверочных элементов.

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

.

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