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

2.Коды Хэмминга, Файра и бчх. Коды Хэмминга

Коды, предложенные Р. Хэммингом, обладают способностью обнаружить и исправить одиночные ошибки.

Предположим, что имеется код, содержащий m информационных разрядов и k контрольных раз­рядов. Запись на k позиций определяеется при проверке на четность каждой из проверяемых k групп информационных символов. Пусть было проведено k проверок. Если результат проверки свидетельствует об отсутствии ошибок, запишем 0, если есть ошибка - 1. Запись полученной по­следовательности символов образует двоичное число.

Свойство кодов Хэмминга таково, что контрольное число указывает номер позиции, где про­изошла ошибка. При отсутствии ошибки в коде данная последовательность будет содержать только нули. Полученное число описывает таким образом n=(m+k+1) событий. Следовательно, справедливо неравенство

2k>=(m+k+1)

(1)

Определить максимальное значение m для заданого n можно из следующего:

n

1

2

3

4...

8...15

16...31

32...63

64

m

0

0

1

1...

4...11

11...26

26...57

57

k

1

2

2

3

4

5

6

7

Определим теперь позиции, которые надлежит проверить в каждой из k проверок. Если в кодовой комбинации ошибок нет, контрольное число содержит только нули. Если в первом разряде кон­трольного числа стоит 1, это означает, что в результате первой проверки обнаружена ошибка. Первая проверка охватывает позиции 1, 3, 5, 7, 9, ... (в двоичной записи этих чисел младший раз­ряд равен 1). Вторая проверка - 2, 3, 6, 7, 10...

Проверка N

Проверяемые разряды

1

1, 3, 5,7, 9, 11, 13, 15, ...

2

2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23, ...

3

4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23

4

8, 9, 10, 11, 12, 13, 14, 15, 24, ...

...

...

Для контроля будем использовать позиции 1,2,4,8,..., так как в данные позиции встречаются только в одной проверяемой группе символов.

Примеры кодирования информации по коду Хемминга для семиразрадного кода:

Разряды двоичного числа

Кодируемая десятичная информация

1 k1

2 k2

3 m1

4 k3

5 m2

6 m3

7 m4

0

0

0

0

0

0

0

0

1

1

0

1

0

0

1

1

0

1

0

1

0

1

0

2

1

0

0

0

0

1

1

3

1

0

0

1

1

0

0

4

0

1

0

0

1

0

1

5

1

1

0

0

1

1

0

6

0

0

0

1

1

1

1

7

1

1

1

0

0

0

0

8

0

0

1

1

0

0

1

9

1

0

1

1

0

1

0

10

0

1

1

0

0

1

1

11

0

1

1

1

1

0

0

12

1

0

1

0

1

0

1

13

0

0

1

0

1

1

0

14

1

1

1

1

1

1

1

15

Как видно из таблицы, n=7, m=4, k=3 и контрольными будут разряды 1, 2, 4.

Введем, например, одиночную ошибку в код числа 5 - 0100101(2). Пусть после такой ошибки код стал 0110101. Подсчитываем суммы по модулю групп цифр и выписываем справа налево: 0011. Получилось ненулевое число, равное номеру позиции, в которой возникла ошибка (3).

По методу Хэмминга могут быть построены коды разной длины. Чем больше длина кода, тем меньше относительная избыточность. Например, для контроля 48-разрядного числа, потребуется только шесть дополнительных (контрольных) разрядов. Коды Хэмминга используют в основном для контроля передачи информации по каналам связи.

Код Файра

Наиболее известным циклическим кодом, исправляющим одиночные пачки ошибок, явля­еться двоичный код Файра, причем для этого требуется небольшое число проверочных симво­лов. Образующий полином данного кода P(x) = q(x) (xc+1), где q(x) – неприводимый многочлен сте­пени t, принадлежащий степени mс – простое число, которое не делиться на m безостатка. Многочлен q(x) принадлежит некоторой степени m, если m – наименьшее положительное число такое, что двучлен (xm+1) делится на q(x) без остатка. Для любого t существует, по крайней мере, один неприводимый многочлен q(x) степени t, принадлежащий показателю степени m = 2t-1

Например, если q(x) = x3+x2+1 (t=3), то m = 2t – 1 = 7 и число c может принимать значения, кото­рые не делятся на семь, т.е. 15, 16, 17, 18, 19, 20, 22, 23 и т.д. Длина кода Файра равна наименьшему общему кратному чисел c и m т.е. n = НОК (c, m)

Число проверочных информационных символов k= n- c –t

Можно получить код меньший длины с тем же числом проверочных символов, если пользоваться методом получения укороченных циклических кодов. При использовании кодов Файра можно исправить любую одиночную пачку ошибок длины b или меньше и одновременно об­наружить любую пачку ошибок длины l >= b или меньше , если c>=b+l-1 и t>=b. Если применять эти коды только для обнаружения ошибок, можно обнаружить любую комбина­цию из двух пачек ошибок, длина наименьшей из которых не превосходит t, а сумма длин обеих пачек не превосходит (с+1), а также любую одиночную пачку ошибок с длиной, не превосходящей числа проверочных символов r = c + t.

Коды БЧХ

Одним из классов циклических кодов, способных исправлять многократные ошибки, являются коды БЧХ.

Примитивным кодом БЧХ, исправляющим tu ошибок, называется код длиной n=qm-1 над GF(q), для которого элементы являются корнями порождающего многочлена.

Здесь а - примитивный элемент GF(qm).

Порождающий многочлен определяется из выражения

где f1(x),f2(x)...- минимальные многочлены корней g(x).

Число проверочных элементов кода БЧХ удовлетворяет соотношению

На практике при определении значений порождающего многочлена пользуются специальной таб­лицей минимальных многочленов (см. таблицу 8 приложения), и выражением для порождающего многочлена При этом работа осуществляется в следующей последова­тельности.

По заданной длине кода n и кратности исправляемых ошибок tu определяют: - из выражения n=2m-1 значение параметра m, который является максимальной степенью сомно­жителей g(x); - из выражения j=2tu-1 максимальный порядок минимального многочлена, входя­щего в число сомножителей g(x).

- пользуясь таблицей минимальных многочленов, определяется выражение для g(x) в зависимости от m и j. Для этого из колонки, соответствующей параметру m, выбираются многочлены с поряд­ками от 1до j, которые в результате перемножения дают значение g(x).

В выражении для g(x) содержаться минимальные многочлены только для нечетных степеней а, так как обычно соответствующие им минимальные многочлены четных степеней а имеют аналогич­ные выражения.

Например, минимальные многочлены элементов соответствуют минимальному мно­гочлену элемента а1, минимальные многочлены элементов соответствуют мини­мальному многочлену а3 и т.п.

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