Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Teoria_informatsii / Лекция 5.ppt
Скачиваний:
174
Добавлен:
22.03.2016
Размер:
109.57 Кб
Скачать

Пример построения кода Хемминга

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

k = 4.

2.Определить количество проверочных разрядов:

2r r + k + 1 r = 3.

3.Задать проверочные равенства:

e1 = a1 a3 a5 a7; e2 = a2 a3 a6 a7 ; e3 = a4 a5 a6 a7.

4.Определить позиции проверочных разрядов:

a1, a2, a4.

5.Определить значения проверочных разрядов:

a1 = a3 a5 a7 ; a2 = a3 a6 a7 ; a4 = a5 a6 a7.

5.Построить кодовые комбинации.

Примеры кодовых комбинаций Хемминга

Исходная

 

Кодовая

Исходная

 

Кодовая

кодовая

комбинация

кодовая

комбинация

комбинация

Хемминга

комбинация

Хемминга

0000

 

0000000

1000

1110000

 

 

 

 

 

 

 

 

0001

 

1101001

1001

0011001

 

 

 

 

 

 

 

 

0010

 

0101010

1010

1011010

 

 

 

 

 

 

 

 

0011

 

1000011

1011

0110011

 

 

 

 

 

 

 

 

0100

 

1001100

1100

0111100

 

 

 

 

 

 

 

 

0101

 

0100101

1101

1010101

 

 

 

 

 

 

 

 

0110

 

1100110

1110

0010110

 

 

 

 

 

 

 

 

0111

 

0001111

1111

1111111

 

 

 

 

 

 

 

 

Декодирование кода Хемминга

1.Получить кодовую комбинацию Хемминга.

2.Сформировать синдром согласно проверочным равенствам.

3.Если синдром не равен 0, то исправить ошибку в разряде, номер которого равен значению синдрома.

4.Определить по таблице исходную комбинацию.

Пример декодирования кода Хемминга

1.Получить кодовую комбинацию Хемминга:

1101011.

2.Сформировать синдром согласно проверочным равенствам:

e1 = 1 0 0 1 = 0; e2 = 1 0 1 1 = 1; e3 = 1 0 1 1 = 1.

3.Если синдром не равен 0, то исправить ошибку в разряде, номер которого равен значению синдрома:

e3e2e1 = 1102 = 6 – ошибка в 6-м разряде; правильная кодовая комбинация:

1101001.

4.Определить по таблице исходную комбинацию:

0001.

Циклический код

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

Полиномиальное представление:

101101 1 x5 + 0 x4 + 1 x3 + 1 x2 + 0 x1 + 1x0 = = x5 + x3 + x2 + 1.

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

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

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

2.Сформировать h(x) – многочлен, соответствующий исходной комбинации.

3.Определить число контрольных разрядов r, удовлетворяющее уравнению r = log(r + k + 1)

4.Выбрать образующий многочлен g(x) порядка r.

5.Сформировать многочлен h(x)xr.

6.Определить частное Q(x) и остаток R(x) от деления h(x)xr на g(x).

7.Сформировать многочлен F(x) = h(x)xr + R(x).

8.Определить кодовую комбинацию, соответствующую F(x).

Пример построения циклического кода

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

1101.

2.Сформировать h(x) – многочлен, соответствующий исходной комбинации:

h(x) = x3 + x2 + 1.

3. Определить число контрольных разрядов r, удовлетворяющее уравнению r = log(r + k + 1):

r = 3.

4.Выбрать образующий многочлен g(x) порядка r:

g(x) = x3 + x + 1.

5.Сформировать многочлен h(x)xr:

h(x)xr = x6 + x5 + x3.

6.Определить частное Q(x) и остаток R(x) от деления h(x)xr на g(x):

Q(x) = x3 + x2 + x + 1; R(x) = 1.

7.Сформировать многочлен F(x) = h(x)xr + R(x):

F(x) = x6 + x5 + x3 + 1.

8.Определить кодовую комбинацию, соответствующую F(x):

1101001.

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

1.Получить циклическую кодовую комбинацию.

2.Сформировать многочлен, соответствующий циклической кодовой комбинации.

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

4.Если остаток не равен 0, то исправить ошибку в разряде, соответствующем значению остатка.

5.Определить по таблице исходную комбинацию.

Образующая матрица циклического кода

Для образования циклических кодов можно воспользоваться образующей (порождающей) матрицей. Образующая матрица Gk n составляется на основе единичной матрицы Ik, к которой справа дописывается матрица остатков Rk r:

Gk n = (IkRk r).

Матрица Rk r получается из остатков ri от деления полинома xni на образующий многочлен g(x) для всех строк с номерами

i = 1, 2, …, k.

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

Для обнаружения ошибок можно использовать проверочную матрицу Hr n:

Hr n = ((Rk r)TIr).

Столбцы проверочной матрицы содержат в двоичной форме возможные остатки ошибочных комбинаций (порядок разрядов задается от нижней строки к верхней).

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