Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Циклические коды.doc
Скачиваний:
69
Добавлен:
17.04.2013
Размер:
188.42 Кб
Скачать

Этап декодирования

  1. Из определения циклического кода следует, что разрешенные и запрещенные кодовые комбинации различаются тем, что

R(x) = 0 (разрешенные) иR(x)  0 (запрещенные)

Это основное свойство используется для обнаружения и коррекции ошибок в принятых кодовых комбинациях.

  1. В данном случае остаток R(x) (от деления E(x) наP(x)) играет роль проверочного синдрома).

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

Ế= E + ế

запрещенн. разреш. ошибка

При этом,

0

Ẽ/ P(x)= (E + ẽ)/ P(x) = E / P(x) + ẽ / P(x),

т.е.

R(x) (x) = R(x)(x)

4. По видуR(x) необходимо определить ẽ. Построение проверочной матрицыН, устанавливающей соотношение между вектором ошибкиeи величиной остатка (в данном случае синдрома ошибки, аналогичного групповым кодам):

ошибки в информационных разрядах

i

ошибки 1 0

в проверочных 1

разрядах 1

0 1

Таким образом, процесс коррекции состоит в сопоставлении строки проверочной матрицы НконкретномуR(x).

  1. Анализ строк матрицы Нпоказывает, что строки, относящиеся к области ошибок в проверочных и информационных разрядах, различаются качественно:

А) Hi информ.(R(x))  dmin –1 ( для  =1  2 ) – по условию построения матрицы

Б) Hi провер.(R(x))= 1

С учетом данных соотношений процедура кодирования существенно упрощается и представляется в виде:

  1. Определяют вес (R(x)); если равен 1, то ошибки в проверочных разрядах иR(x)сразу указывает нам место ошибки.

  2. Если (R(x)) > 1, т.е. ошибки в информационных разрядах, осуществляющих циклический сдвиг влево

← ←

Ẽ = E + ẽ, до тех пор, пока (R(x)) = t.

  1. Коррекция ошибки и циклический сдвиг на dразрядов вправо.

  2. Для ускорения операции коррекции целесообразно влево осуществлять сдвиг на r разрядов сразу – максимально возможный сдвиг, чтобы не «проскочить» проверочные разряды.

Последовательность построения циклических кодов, исправляющих одинаковые ошибки ( =1)

  1. Определение количества информационных разрядов:

k = log 2 N , гдеN – полное количество передаваемых сообщений.

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

2r > k + r

n = k + r

Примечание. Из всех возможных r , удовлетворяющих неравенству, естественно, выбирают минимальную rmin .

  1. Выбор образующего полинома, удовлетворяющего следующим условиям:

А) степень P(x) = r

Б) P(x)  сомножительxn + 1

В) P(x) примитивный двоичный полином

  1. Построение кодовой комбинации (кодирование заданной комбинации) одним из двух способов:

А) с помощью образующей матрицы

Б) деление заданной кодовой комбинации, сдвинутой влево наrразрядов на образующий полиномP(x) и добавление полученного остатка R(x) к заданной кодовой комбинации.

Пример построения матрицы для кода (15,11) с выбором в качестве образующего полинома:

А) нетривиального: x4+x3+x2+x+1;

Б) тривиального: x4+x3+1;

  1. Передача полученной кодовой комбинации в канале связи

Перед описанием этапа декодирования введем следующие обозначения:

i i



Е; Е; Е; Ẽ

разрешенная запрещенная (содерж. ошибку)

Последовательность методики декодирования циклических кодов, исправляющих одиночные ошибки (t =1)

П.1. Получение проверочного синдрома путем деления полученной кодовой комбинации Ẽ(x)на образующий полиномG(x).

П.2. Сравнение веса остатка (R(x) с величиной кратности ошибки:

если (R(x), то - переход к П.4.

П.3. Циклический сдвиг Ẽ(x) влево на 1 (r) разряд и получения нового синдрома ошибки. Переход к П.2.

П.4. Исправление ошибки путем сложения проверочного синдрома с кодовой комбинацией:

i i i

  

Ẽ: Е = ẼRi(x)

i

Пояснение:Ẽ  кодовая комбинация, полученная путемi-кратного циклического сдвига влево вектора[кодовой комбинации] Ẽ.

П.5. Получение искомых информационных разрядов путем i – кратного циклического сдвига вправо[обратного циклического сдвига]исправленной комбинации

i

Ẽ.

Пример циклического кода.

Построить циклический код, исправляющий одиночные ошибки при передаче 15 сообщений.

  1. 1. k = [log 2 N] = 4; 2r > k + r  r = 3;

  2. 2. k = 4, n = 4+3 =7;

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

P(x) = x3 + x + 1

4. Построение образующей матрицы:

1 000 000 1011

1 011

R1(x) 0110

000 0

R2(x)11 00

10 11 0001011

R3(x)1 110 0010110

1 011 0100111

R4(x) 101 1000101

Необходимо закодировать 9 сообщение 1 001

А) 1 001 110 =Е

k r

Б) 1 001 000 1011

R(x)  110

Рассмотрим случай возникновения ошибки во втором информационном разряде:

ℓ(x) = 0100 000

Ẽ(x) = E(x) + e(x) = 1 001 110 + 0100 000 = 11*01 110

Этап декодирования

1. ОпределениеR(x)  11*01 110 1101

10 11 1111

1 10 1

1 01 1

11 01

10 11

1 100

1 111

111 R(x);

2. Сравнение[…] сℓ  [R(x)] > 1

след. ошибка и информац. разрядах

3. Осуществляется циклический сдвиг влево Ẽ:

  

1 = Ẽ = Е + e = E1 + e1 R(x) = 101

1*011 101 0011 101 1 000 000 [R(x)] > 1.

Сдвиг циклический влево Ẽ1:

2 = Ẽ1 = Е1 + e1 = E2 + e2 R(x) = 001

0111 011* 0111 010 0 000 001 [R(x)] = 1.

Остаток указывает положение ошибки.

4. Исправление полученной комбинации.

а) 0 111 011* 0 111 010 = E2

ошибка

б) Для получения исходного E(x)необходимо циклический сдвиг вправо на 2 разряда:

2

Е = E2 = 1 001 110

в) Выбор информационных разрядов 1001.

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