Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 4.doc
Скачиваний:
3
Добавлен:
12.08.2019
Размер:
145.92 Кб
Скачать

Лабораторная работа № 4. Линейные циклические коды

Цель работы: Исследовать построение и возможности корректирования линейных систематических циклических кодов.

Методика выполнения задания :

ВНИМАНИЕ: Задания даны в Вариантах для групп А, Б и В

1.Выбор своего варианта в группе.

j1 = (ФИО) соответствует позиции ошибочного символа и вычисляется как :

mod n (cумма количества букв)

где n- количество информационных символов в задании

j 2= Порядковый номер по списку - соответствует варианту задания.

Лабораторная работа состоит из двух заданий.

Исходными данными являются:

для заданий № 1 – количество информационных разрядов (Вариант А);

- для задания №2– информационное слово, образующий полином.

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

ВАРИАНТ А

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

Пример решения для k = 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)

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

Пример решения для G(x) = 1001:

1. По заданому k = 4, для S = 1 определим длину кодовой комбинации -n и количество контрольных разрядов -m кода по формуле:

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

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

2. Строим информационный полином соответствующий информационному слову длиной k- бит

G(x) = x3+1=1001.

3. Осуществляем сдвиг кода влево на m = n - k = 3 разрядов, т. е. полином G(x) умножается на xm

G(x) xm = ( x3+1)x3 = x6+ x3 =1001000.

  1. Выбирается образующий полином -P(x) по таблице неприводимых многочленов ( в Приложении). Для исправления одиночной ошибки (d0 = 3) образующий полином должен быть степени m = n - k = 3, количеством ненулевых членов не менее d0 = 3 и входящих в разложение двучлена

x7 +1 = (x+1)(x3+ x2+1)(x3+ x+1).

Выбираем образующий полином P(x) = x3 +x +1.

5. Определим остаток R(x) от деления G(x)x m на образующий полином P(x)

x6+x3 x3+x+1 1001000 1011

x6+x4+x3 x3+x 1011 1010

x4 1000

 x4+x2 +x  1011

x2 +x 110

Остаток R(x) = x2 +x = 110.

6. Строим передаваемый кодовый полином F(x)

F(x) = xm G(x) R(x) = x6+x3 +x2+x = 1 0 0 1 1 1 0.

7. Рассмотрим процедуру декодирования, обнаружения и исправления ошибки в принятой кодовой комбинации.

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

F1(x) = F(x)+E(x) = 1 0 0 0 1 1 0.

Разделим многочлен F1(x), соответствующий полученной кодовой комбинации на образующий полином, при этом вес остатка (количество единиц в коде остатка) должен быть меньше или равен количеству исправляемых ошибок W S .

F 1(x) = 1000110 1011

 1011 1011

01111

 1011

1000

 1011

011 -> остаток W S.

Производим циклический сдвиг и повторяем деление, эту процедуру повторяем до тех пор, пока не выполнится условие W S.

1) 0001101 1011 2) 0011010 1011 3) 0110100 1011 4)1101000 1011

 1011  1011  1011  1011

110 1100 1100 1100

 1011  1011  1011

W S 111 1110 1110

 1011  1011

W S 101 001

W  S W = S

Суммируем остаток с последним делимым

1101000

001

1101001

Осуществляем обратный циклический сдвиг на 4 разряда полученной комбинации 1101001

1- 1110100

2- 0111010

3- 0011101

4- 001110

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