Основные виды избыточных помехоустойчивых кодов

Back Оглавление

Код с повторением

Этот код имеет избыточность R = (k+k)/k = 2 и минимальное кодовое расстояние d = 2, так как обнаруживаются одиночные ошибки и не обнаруживаются двойные ошибки в парных разрядах. Число двойных необнаруживаемых ошибок равно k, и поэтому вероятность необнаружения ошибки (или вероятность перерождения кодовой комбинации) при независимых ошибках приближенно равна
kq2(1 - q)2k-2 ~ kq2.

Код с четным числом единиц

Этот код образуется путем добавления к каждой k - разрядной комбинации одного элемента, такого, что в k+1 разрядной комбинации число единиц четное. Избыточность кода:

R = (k+1)/k = 2.

При искажении двух элементов получается комбинация с четным числом единиц, т.е. кодовая, и ошибка не обнаруживается. Значит, d = 2. Вероятность необнаружения приближенно равна

i2k+1q2(1 - q)k-1 ~ (k + 1)kq2/2.
Отсюда видно, что добавление всего одного разряда значительно повышает помехозащищенность кодовых комбинаций (для безызбыточного кода вероятность необнаружения приблизительно равна kq).

Код с постоянным числом единиц

Код образует кодовые комбинации с заданным числом единиц (а значит - и нулей). Его особенностью является то, что в нем не разделяются информационные и дополнительные разряды. Такой код называется неразделимым. Число кодовых комбинаций рассматриваемого кода зависит от числа единиц. Оно максимально при равенстве единиц и нулей и равно Cn/2n. Избыточность кода равна R = n/ LogCn/2n, она падает с ростом n. Оценим корректирующую способность. Кодовая комбинация не обнаруживается, если 0 переродится в 1 и 1 - в 0. Отсюда d = 2, а вероятность необнаружения приближенно равна
(n/2)2q2.

При образовании кодовой комбинации выполняется r вычислений для определения проверочных элементов. После приема сообщения также производится r вычислений - проверок, которые могут принимать два значения. Примером проверок могут служить повторные вычисления проверочных элементов и сравнение их с принятыми. Комбинация r значений проверок называется опознавателем или синдромом. Каждой исправляемой ошибке должен соответствовать свой опознаватель.

Линейные коды

Линейными называются коды, в которых проверочные элементы определяются как сумма по mod2 совокупностей информационных элементов. По-видимому, меняя совокупности информационных элементов (их число и состав), определяющих проверочные элементы, можно получать различные корректирующие коды. Примером линейного кода может служить 8-элементный код, образованный кодовыми комбинациями
a3a2a1a0b3b2b1b0,
в которых проверочные элементы bi зависят от информационных следующим образом:
b0 = a0 + a1 + a2,
b1 = a0 + a1 + a3,
b2 = a0 + a2 + a3,
b3 = a1 + a2 + a3.
Для упомянутого кода на приемной стороне опознаватели одиночных ошибок формируются следующим образом:
F0 = b0 + a0 + a1 + a2,
F1 = b1 + a0 + a1 + a3,
F2 = b2 + a0 + a2 + a3,
F3 = b3 + a1 + a2 + a3.
Равенство опознавателя нулю свидетельствует об отсутствии ошибок.

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

Коды Хэмминга

К кодам Хэмминга относят линейные разделимые  коды с минимальным кодовым расстоянием 3 и 4, проверочные элементы которых определяются по принципу проверки на четность для определенных групп информационных элементов. Коды с такими расстояниями d позволяют исправить одиночные ошибки или исправить одиночные и обнаруживать двойные ошибки.
Хемминг впервые построил код с исправлением одиночных ошибок, опознаватели (синдромы) которых являются двоичной записью номера искаженного элемента, т.е. при отсутствии ошибки опознаватель равен ...0000, при искажении первого элемента - ...0001, при искажении второго элемента - ...0010, при искажении третьего элемента - ...0011 и т.д.

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

Циклические коды мы подробно рассмотрим в следующей главе.


Prev Предыдущий Next Следующий
Hosted by uCoz