Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТИ / Lec / ТИ (Best).doc
Скачиваний:
128
Добавлен:
17.03.2015
Размер:
1.01 Mб
Скачать

Декодирование циклических кодов

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

Таблица неприводимых двоичных многочленов

Код

Многочлен

Код

Многочлен

11

x + 1

10001

x4 + 1

101

x2 + 1

10011

x4 + x + 1

111

x2 + x +1

10101

x4 + x2 +1

1001

x3 + 1

10111

x4 + x2 +x + 1

1011

x3 + x +1

11001

x4 + x3 + 1

1101

x3 + x2 + 1

11011

x4 + x3 + x + 1

1111

x3 + x2 + x + 1

11101

x4 + x3 + x3 +1

11111

x4 + x3 + x2 + x + 1

Построение декодированного конкретного циклического кода

Код, исправляющий одиночную ошибку. d0 = 3.

1) Расчёт соотношении между контрольными и информационными символами кода.

nk = log((nu + 1) + log(nu + 1))

2) Выбор образующего многочлена производится по таблице непреводимых двоичных многочленов. Образующий многочлен следует выбирать с минимальным числом элементов. Его степень должна быть больше или равна числу контрольных разрядов. Число элементов должно быть .

Пример: Построим циклический код d0 = 3 для передачи шестнадцати сообщений.

nu = 4 nk = 3

k(x) = 1011 Строим единичную повёрнутую матрицу размером nu

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

1

Остаток

011

110

111

101

0000 1011

1011

01100

1011

1110

1011

101

1+2 2+4 1+2+3+4

1+3 3+4

1+4 1+2+3

2+3

Обнаружение и определение ошибок

Производится по остаткам деления принятого кодового вектора. Если в результате образовался остатокR(x) = 0, то комбинация принята без ошибок. Если есть остаток, то производят исправления. Для этого

  1. Определяют вес остатка

Если WR S , где S –количество исправленных ошибок, то производят коррекцию. Для этого F(x) + R(x) и эта сумма даёт исправленную комбинацию.

Если вес WR S , топроизводят циклический сдвиг F(x) влево, образуют новую комбинацию F1(x).

Полученную комбинацию делят на обратный многочлен

- остаток

Если , то производяткоррекцию F1(x) + R1(x), затем полученную комбинацию сдвигают вправо циклически на один разряд.

Если , то ещё разсдвигаем циклически влево и т.д.

Пример: Пусть посылается комбинация u(x) = 0100111 (из обратной матрицы)

Пусть принята комбинация F(x) = 1100111, содержащая ошибку в единичном разряде

U(x) = 0100111 K(x) = 1011

F(x) = 1100111 S = 1

1100111 1011

1011

1111 R = 101

1011 WR = 2 > S

1001

1011

101

1001111 1011

1011

1011 R1 = 1

1011 = 1 = S  можем производить коррекцию

01

F1(x) + R1(x) 1001111

1

1001110

Циклически сдвигаем комбинацию вправо на один разряд 0100111 – исправляется кодовая комбинация.

Сложение двух соседних комбинаций циклического кода эквивалентно операции умножения первого слагаемого на x + 1.

000101 две комбинации из производящей матрицы

001010 (x2 + 1) * (x +1) = x3 + x +x2 +1 = 001111

001111

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

Соседние файлы в папке Lec