Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
200
Добавлен:
16.03.2015
Размер:
4.25 Mб
Скачать

3.2.3 Примеры линейных кодов

Рассмотрим простейший линейный код — код с одной проверкой на четность. Этот код независимо от длины кодовой комбинации содержит всего один проверочный элемент. Элемент выбирается таким, чтобы его сумма по модулю 2 со всеми информационными элементами равнялась нулю. При этом каждая кодовая комбинация содержит четное число единиц. Если в принятой кодовой комбинации окажется нечетное число единиц, то делается вывод о наличии в ней ошибок. Очевидно, что такой код обнаруживает любое нечетное число ошибок.

Производящая и проверочная матрицы такого кода имеют вид:

.

Для такого кода отношение числа информационных элементов kк длине кодовой комбинацииn(скорость кода) определяется выражением

Rk = (n—l)/n,

кодовое расстояние равно двум, а вероятность необнаруженной ошибки

,

где суммирование осуществляется по всем четным значениям t.

Рассмотрим еще один пример линейных кодов — коды Хэмминга. К ним обычно относят коды с d0=3, исправляющие все одиночные ошибки и коды сd0=4, исправляющие все одиночные и обнаруживающие все двойные ошибки. Для исправления всех одиночных ошибок число синдромов должно бытьn+1. Из нихnсиндромов используются для указания местоположения ошибки и один — нулевой, соответствует их отсутствию. Следовательно, 2rn+1, гдеr– число проверочных элементов. Последнее выражение можно переписать в виде

2k2n/(n+1). (3.12)

В этом выражении k– число информационных элементов;

n– общее число элементов в кодовой комбинации.

Используя (3.12), можно подобрать при известном kтребуемое числоn.

Пример 3.7. Пустьk= 3. Требуется найти с помощью (3.12) значениеn.

Задавая значения n=4, 5, 6, приn=5 получим 2n/(п+1) =5,3, т. е. 23>5,3, а приn= 6 – 2/n+1=9,1. Так как 23<9,1, то выбираемn= 6. Такой код может быть задан производящей матрицей или проверочной.

Рассмотрим далее код Хэмминга с d0= 4. Операция кодирования для такого кода может выполняться в два этапа. На первом этапе определяется кодовая комбинация с использованием матрицы Н, соответствующей коду сd0=3, на втором добавляется один проверочный символ, представляющий собой результат суммирования по модулю 2 всех элементов кодового слова, полученного на первом этапе.

Операция декодирования также состоит из двух этапов. На первом — вычисляется синдром, соответствующий коду с d0= 3, на втором — проверяется последнее проверочное соотношение.

Пример 3.8.На основе кода (6,3), заданного проверочной матрицей (3.8), построить код Хэмминга сd0= 4.

Проверочная матрица такого кода будет иметь вид:

Такой код имеет дополнительное проверочное соотношение

и дополнительный элемент синдрома

.

Если синдром b1b2b3не равен нулю, аb4= 0, то это говорит о том, что произошла ошибка. Еслиb1b2b3не равен пулю иb40, то это является признаком того, что была однократная ошибка. При равенстве нулю синдромаb1b2b3иb40 имеет место ошибка нечетной кратностиt3.

К линейным кодам относится также код с простым повторением, в основу которого положен метод повторения исходной кодовой комбинации. Декодирование осуществляется путем сравнения первой (информационной) и второй (проверочной) частей кода. При несовпадении этих частей комбинация бракуется. Скорость такого кода равна 1/2, а кодовое расстояние d0=2. Проверочная матрица записывается в виде Н=|IkIk|, гдеIk— единичная матрица. Такой код позволяет обнаружить все виды ошибок за исключением ошибок в «парных» элементах, т. е. элементах, стоящих на одних и тех же позициях в первой и второй комбинациях.