Основные виды избыточных помехоустойчивых кодов
|
Оглавление
|
Код с повторением
Этот код имеет избыточность 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 и т.д.
Циклические коды
Циклические коды мы подробно рассмотрим в следующей главе.
Предыдущий
|
|
Следующий
|