logo search
ТИКЛекции

8.3. Матричная запись циклического кода

Кроме полиномиального представления циклических кодов, их можно представлять в матричной форме.

Существует ряд методов построения образующих матриц. В зависимости от используемого метода она может быть представлена в канонической или не в канонической форме. Образующая матрица в канонической форме может быть представлена из двух матриц: единичной транспонированной IkT, соответствующей k информационным разрядам и дополнительной Rkm, соответствующей проверочным разрядам.

Дополнительная матрица может быть построена несколькими способами:

- путем вычисления многочлена R(x), как частного от деления информационного многочлена xmG(x), на образующий полином P(x);

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

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

Например, для образующего многочлена Р(х) = x4+x3+1 = 1 1 0 0 1 образующая матрица имеет вид

,

но при таком методе построения матрица не имеет канонической формы.

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

Решение:

Для кода (7, 4) строка единичной матрицы имеет вид 0 0 0 1.

Умножив ее на образующий полином P(x) = x3 +x2 +1 = 1101, получим

0001 1101= 0001101.

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

.

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

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

Решение:

1. Определим количество проверочных разрядов. Для k = 7 и d0 = S+1 = 3;

m = [log2 {(k+1)+ [log2(k+1)]}]=[log2 {(7+1)+ [log2(7+1)]}] = 4.

При этом n = 11, т. е. получили (11, 7)-код.

2. По таблице неприводимых многочленов выбираем образующий полином Р(х) = x4 +x3+1 = 1 1 0 0 1, т. е. степени большей или равной m и числом ненулевых членов больше или равно d0.

3. Строим транспонированную единичную матрицу IkT

.

4. Определяем элементы дополнительной матрицы, как остатки от деления последней строки транспонированной матрицы на образующий полином. При этом число остатков должно быть не меньше k, число разрядов в остатке равно m, а число единиц в каждом остатке не менее d0 -1. Если после приписывания 0 к остатку получаем число короче делителя, то получаем два остатка с нулем до и после остатка.

1000000 11001

11001

10010

11001

10110

11001

11110

11001

1010

Строим образующую матрицу G(n, k)

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

Решение:

1. Определим количество проверочных разрядов при k = 4 и d0 = S+1 = 3

m = [log2 {(k+1)+ [log2(k+1)]}] = [log2 {(4+1)+ [log2(4+1)]}] = 3.

При этом n = k +m = 7, т. е. получим (7, 4)- код.

2. По таблице неприводимых многочленов выбираем образующий полином Р(х) = x3 +x2+1 = 1 1 0 1 , т. е. степени большей или равной m и числом ненулевых членов больше или равно d0.

3

. Строим образующую матрицу, состоящую из единичной матрицы рангом k и дополнительной матрицы состоящей из остатков от деления 1 с нулями на образующий полином. При этом количество остатков равно k, длина m и количество единиц в остатке не менее d0 -1.

10000 1101

 1101

1010

 1101

1110

 1101

0110

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

a1 = 0001101 a2 = 0010111 a3 = 0100011 a4 = 1000110

a5 = a1  a2 a6 = a1  a3 a7 = a1  a4 a8 = a2  a3

0001101 0001101 0001101 0010111

 0010111  0100011  1000110  0100011

0011010 0101110 1001011 0110100

a9 = a2  a4 a10 = a3a4 a11 = a1a2a3 a12 = a1a2a4

0010111 0100011 0001101 0001101

 1000110  1000110 0010111 0010111

1010001 1100101 0100011 1000110

0111001 1011100

a13 = a1a3a4 a14 = a2a3a4 a15 = a1a2a3a4

0001101 0010111 0001101

 0100011  0100011  0010111

 1000110  1000110  0100011

1101000 1110010  1000110

1111111

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

Решение:

1. Определим количество проверочных разрядов при k = 4 и d0 = S+1 = 3

m = [log2 {(k+1)+ [log2(k+1)]}] = [log2 {(4+1)+ [log2(4+1)]}] = 3.

При этом n = k+m = 7, т. е. получим (7, 4)-код.

2. По таблице неприводимых многочленов выбираем образующий полином Р(х) = x3 +x+1 = 1 1 0 1 , т.е. степени большей или равной m и числом ненулевых членов больше или равно d0.

3

. Строим образующую матрицу состоящую из 4-х строк.

00011011=0001011

00101011=0010110

01001011=0101100

10001011=1011000

При этом матрица не имеет канонического вида.

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