Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы 2008 / Госы1.doc
Скачиваний:
76
Добавлен:
29.05.2015
Размер:
4.81 Mб
Скачать

Вопрос 4 - Помехоустойчивое кодирование (идея построения помехоустойчивых кодов, коды Хэмминга, циклические коды)

Проблема повышения верности обусловлена не соответствием между требованиями, предъявляемыми при передачи данных и качеством реальных каналов связи. В сетях передачи данных требуется обеспечить верность не хуже 10-6 - 10-9, а при использовании реальных каналов связи и простого (первичного) кода указанная верность не превышает 10-2 - 10-5.

Одним из путей решения задачи повышения верности в настоящее время является использование специальных процедур, основанных на применении помехоустойчивых (корректирующих) кодов.

Простые коды характеризуются тем, что для передачи информации используются все кодовые слова (комбинации), количество которых равно N=qn (q - основание кода, а n - длина кода). В общем случае они могут отличаться друг от друга одним символом (элементом). Поэтому даже один ошибочно принятый символ приводит к замене одного кодового слова другим и, следовательно, к неправильному приему сообщения в целом.

Помехоустойчивыми называются коды, позволяющие обнаруживать и (или) исправлять ошибки в кодовых словах, которые возникают при передаче по каналам связи. Эти коды строятся таким образом, что для передачи сообщения используется лишь часть кодовых слов, которые отличаются друг от друга более чем в одном символе. Эти кодовые слова называются разрешенными. Все остальные кодовые слова не используются и относятся к числу запрещенных. Кодовое расстояние d(расстояние Хэмминга) между двумя кодовыми комбинациями – количество несовпадающих разрядов. d легко вычисляется, если две кодовые комбинации сложить по модулю два и посчитать количество единиц у результата сложения.

dmin – минимальное кодовое расстояние, которое равно минимальному кодовому расстоянию всех возможных комбинаций кода.

dmin определяет способность помехоустойчивого кода (ПУК) обнаруживать и исправлять ошибки: dmin≥r+1; dmin≥2s+1; dmin≥s+r+1 (если s<r), где r – количество ошибок в кодовом слове, которые ПУК сможет обнаружить; s – количество ошибок в кодовом слове, которые ПУК сможет исправить.

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

Рассмотрим построение ПУК Хемминга для обнаружения двух и исправления одной ошибок.

Кодовая группа состоит из n символов, m символов используется для передачи информации, а k = n – m являются контрольными.

Информационные символы разбиваются на группы и для каждой группы при кодировании определяется контрольный символ (k групп).

Контрольные разряды определяются из позиций кодовой группы следующим образом:

k1 – проверяет все позиции, которые содержат в 0 разряде 1, т.е. это позиции: 1, 3, 5, 7, 9… (1, 11, 101, 111, 1001, …);

k2 – проверяет все позиции, которые содержат в 1 разряде 1, т.е. это позиции: 2, 3, 6, 7, 10… (10, 11, 110, 111, 1010, …);

k3 – проверяет все позиции, которые содержат в 2 разряде 1, т.е. это позиции: 4, 5, 6, 7, 12… (100, 101, 110, 111, 1100, …) и т.д.

Счёт позиций в ПУК Хемминга идёт слева направо. Желательно, чтобы контрольные символы формировались независимо друг от друга, поэтому целесообразно их разместить на позициях, которые встречаются только в одной из проверяемых групп. Легко заметить что это позиции 1(для k1), 2 (для k2), 4 (для k3) и т.д. Закономерность в выборе позиции для проверочной группы следующая: позиция для ki= 2i-1.

Количество необходимых контрольных разрядов вычисляется следующим образом: 2k ≥ m+k+1.

А число информационных разрядов зависит от количества букв Q в используемом алфавите: m = log2Q.

Кодовая группа выглядит следующим образом:

Десятичный номер позиции в кодовой группе

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Двоичный номер позиции в кодовой группе

0

0

0

0

1

0

0

0

1

0

0

0

0

1

1

0

0

1

0

0

0

0

1

0

1

0

0

1

1

0

0

0

1

1

1

0

1

0

0

0

0

1

0

0

1

0

1

0

1

0

0

1

0

1

1

0

1

1

0

0

0

1

1

0

1

0

1

1

1

0

0

1

1

1

1

1

0

0

0

0

1

0

0

0

1

1

0

0

1

0

1

0

0

1

1

1

0

1

0

0

Символы

k1

k2

a1

k3

a2

a3

a4

k4

a5

a6

a7

a8

a9

a10

a11

k5

a12

a13

a14

a15

Контрольные разряды формируются следующим образом:

k1 = a1 a2 a4 a5 a7 a9 a11 a12 a14… (входят символы с 1 в 0 разряде позиции);

k2 = a1 a3 a4 a6 a7 a10 a11 a13 a14… (входят символы с 1 в 1 разряде позиции);

k3 = a2 a3 a4 a8 a9 a10 a11 a15… (входят символы с 1 во 2 разряде позиции);

k4 = a5 a6 a7 a8 a9 a10 a11… (входят символы с 1 во 3 разряде позиции);

k4 = a12 a13 a14 a15… (входят символы с 1 во 4 разряде позиции).

Построение циклического ПУК

Циклические ПУК строятся на основе образующих полиномов G(x). Образующий полином должен являться множителем полинома xn+1, где n – количество разрядов кодового слова (k – количество контрольных разрядов (разрядность G(x) = k+1), m = n – k – количество информационных разрядов). В каждом конкретном циклическом ПУК образующий полином выбирается в соответствии с корректирующими способностями ПУК.

Строятся циклические ПУК двумя путями:

  1. информационные разряды помещаются в старшие разряды кодового слова, а в младшие k разрядов заносится остаток от деления an-1an-2…an-k00…0 на G(x);

кодовое слово является результатом умножение информационного полинома на G(x).

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