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

2.2 Матричное представление циклических кодов

Комбинации циклического кода можно записать в виде производящей матрицы, содержащей k строк и n столбцов.

Для формирования строк производящей матрицы по первому способу образования кода берут те комбинации Q(x), которые содержат единицу в одном разряде – Qi(x).

Затем находят остатки:

Q

Ri(x) =

i(x) xr

P(x)

Соответствующая строка матрицы записывается в виде: Q(x) xr + Ri(x).

Матрица при этом разбивается на две подматрицы: Gn,k = | EkT, Cr,k|.

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

Пример 4:

Р(х) = х3 + х + 1; Р(1,0) = 1011; n = 7; k = 4.

Тогда:

Qi(x) : Q1 = 0001; Q2 = 0010; Q3 = 0100; Q4 = 1000.

Q

= ;

1(x)xr 0001  1000

P(x) 1011

Разделив, получим R1(x)  011.

Первая строка матрицы – 0001011.

П роделав эту операцию 4 раза, получим:

0001 | 011

0

G7,4 =

010 | 110

0100 | 111

1000 | 101

EkT Ck,r

2.3 Выбор образующего полинома

Важнейшей задачей построения циклических кодов является выбор образующего полинома, удовлетворяющего данным условиям. Если код предназначен для исправления независимых ошибок, таким условием является обеспечение заданного кодового расстояния d, если же код должен исправлять пакеты ошибок – длина b исправляемого или обнаруживаемого пакета ошибок.

Образующий полином Р(х) степени r должен входить в качестве сомножителя в разложение двучлена

xn + 1 = x2m-1 + 1 (51)

Доказано, что для любых целых положительных m и tи существует циклический код значности

n = 2m – 1 (52)

с кодовым расстоянием

dmin 2tи + 1 (53)

При этом число проверочных символов r = n-k не превышает величины m tи, т.е. r m tи. Такой код исправляет ошибки кратности tи и менее и обнаруживает ошибки кратности 2tи и менее. Кроме того, код обнаруживает все пакеты ошибок, длина которых равна или меньше r. Соотношения (52) – (54) можно использовать для выбора Р(х). Из таблиц неприводимых полиномов нужной степени в качестве образующего выбирают тот, который дает наибольшее число остатков. При степени многочлена m= n-k он может дать 2n-k – 1 ненулевых остатков (нулевой остаток характеризует безошибочную передачу).

В общем случае при построении циклического (n,k) кода с исправлением в кодовой комбинации tи ошибок в качестве образующего полинома степени r выбирается произведение из tи сомножителей старших степеней, входящих в разложение двучлена вида x2m-1 + 1.

2.4 Обнаружение и исправление ошибок

Для обнаружения и исправления ошибочного разряда производят следующие операции.

1 Принятую комбинацию делят на образующий полином.

2 Подсчитывают количество единиц в остатке (вес остатка). Если tи, принятую комбинацию складывают по модулю 2 с полученным остатком. Сумма дает исправленную комбинацию. Если tи, то

3 Производят циклический сдвиг влево на один разряд. Комбинацию, полученную после сдвига, делят на Р(х). Если в результате повторного деления tи, делимое суммируют с остатком, затем

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

5 Повторяют операцию п.3 до тех пор, пока не будет достигнуто tи. В этом случае комбинацию, полученную в результате последнего циклического сдвига, суммируют с остатком от деления этой комбинации на образующий многочлен, а затем

6 Производят циклический сдвиг вправо на столько разрядов, на сколько сдвинута суммируемая с последним остатком комбинация относительно принятой комбинации. В результате получается исправленная комбинация.

Пример 5:

При передаче комбинации 1001110 циклического кода, исправляющего одиночные ошибки (tи = 1), полученного с помощью образующего полинома Р(х) = х3 + х + 1, произошла ошибка в четвертом разряде. Принятая комбинация имеет вид 1000110. Процесс исправления ошибки следующий.

  1. Делим принятую комбинацию на Р(х). Р(х) = 1011.

1 000110 1011

1 011

1111

1011

1000

1011

11

  1. Вес остатка = 2; >tи.

  2. Производим циклический сдвиг на один разряд влево и деление на Р(х).

0 001101 1011

1011

110

  1. Повторяем п.3, пока tи.

а ) 0011010 1011 б) 0110100 1011 в) 1101000 1011

1011 1011 1011

1100 1100 1100

1011 1011 1011

111 1110 1110

1011 1011

101 1010

1011

1

>tи >tи =tи

  1. Складываем по модулю 2 последнее делимое с остатком.

1

101000

1

1101001

  1. Производим циклический сдвиг комбинации, полученной в результате суммирования последнего делимого с последним остатком вправо на 4 разряда:

1110100  0111010  0011101  1001110.

Последняя комбинация безошибочная.

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