Классификация корректирующих кодов
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Корректирующими называются коды, позволяющие обнаружить и исправить ошибки в кодовых комбинациях. Они делятся на две группы: 1) коды с обнаружением ошибок; 2) коды с обнаружением и исправлением ошибок.

1) Особенность кодов с обнаружением ошибок состоит в том, что кодовые комбинации, входящие в их состав, отличаются друг от друга не менее, чем на d=2. Их можно условно разделить на две группы:

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

Код с постоянным числом единиц и нулей в комбинациях (код с постоянным весом).

 

 (10.2)

 

где l – число единиц в слове длиной n .

Распределительный код  Это также разновидность кода с постоянным весом, равным единице. В любой кодовой комбинации содержится только одна единица. Число кодовых комбинаций в распределительном коде

 (10.3)

Кодовые комбинации при n=6 можно записать в виде 000001,000010,000100,001000,010000,100000. Сложение по модулю 2 двух комбинаций показывает, что они отличаются друг от друга на кодовое расстояние d=2.

 


Т а б л и ц а 10.1 - Код с постоянным числом единиц и нулей

Код Код
11000 10010 01010 00011 01100 01001 00101 10001 00110 10100 1010100 0101010 1110000 0000111 1001001

 

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

Код с проверкой на четность. Такой код образуется путем добавления к передаваемой комбинации, состоящей из к информационных символов неизбыточного кода, одного контрольного символов m (0 или 1), так, чтобы общее число единиц в передаваемой комбинации было четным. В общем случае

 

 (10.4)

 

Т а б л и ц а 10.2 - Код с проверкой на четность

Информационные символы к Контрольные символы m Полная кодовая комбинация n = k + m
1 2 3
11011 10101 00010 11000 11110 11111 0 1 1 0 0 1 110110 101011 000101 110000 111100 111111

 

Общее число комбинаций N=2n-1

Код с числом единиц, кратным трем. Этот код образуется добавлением к к информационным символам двух дополнительных контрольных символов (m=2), имеющих такие значения, чтобы сумма единиц, посылаемых в линию кодовых комбинаций, была кратной трем

Т а б л и ц а 10.3

Информационные символы к Контрольные символы m Полная кодовая комбинация
000110 100011 101011 10 00 11 00011010 10001100 10101111

 

2) Особенность кодов с обнаружением ошибок в том, что они образуют корректирующий код, который позволяет не только обнаруживать, но и исправлять ошибки. Составление корректирующих кодов производят по следующему правилу: сначала определяют количество контрольных символов, которое следует добавить к данной кодовой комбинации, состоящей из информационных символов. Далее устанавливают место, где эти контрольные символы должны быть расположены и их состав. На приеме обычно делают проверку на четность определенной части разрядов.

Коды Хемминга. Коды Хэмминга (Hamming codes) — это простой класс блочных кодов, которые имеют следующую структуру:

 

 (10.4)

 

где m= 2,3,..Минимальное расстояние этих кодов равно 3, поэтому они способны исправлять вес однобитовые ошибки или определять все ошибочные комбинации из двух или менее ошибок в блоке. Декодирование с помощью синдромов особенно хорошо подходит к кодам Хэмминга. Фактически синдром можно превратить в двоичный указатель местоположения ошибки. Хотя коды Хэмминга не являются слишком мощными, они принадлежат к очень ограниченному классу блочных кодов, называемых совершенными.

Циклические коды. Важным подклассом линейных блочных кодов являются двоичные циклические коды (cyclic codes). Код легко реализуется на регистре сдвига с обратной связью; на подобных регистрах сдвига с обратной связью вычисляется синдром; алгебраическая структура циклического кода естественным образом позволяет эффективно реализовать методы декодирования. Итак, линейный код (n, к) называется циклическим, если он обладает следующим свойством. Если n-кортеж U= (u0, u1, и2, …, un-1) является кодовым словом в подпространстве S, тогда U(1)= (un-1, u0, u1, и2,..., un-1), полученный из U с помощью циклического сдвига, также является кодовым словом в S. Или, вообще, U(i) = (un-i;. un-i+1,…, un-1, u0, u1,… un-i-1), полученный i циклическими сдвигами, является кодовым словом в S.

Циклический код Файра. Циклические коды, обнаруживающие и исправляющие пакеты ошибок (коды Файра). Под пакетом ошибок длиной b понимают такой вид комбинации помехи, в которой между крайними разрядами, пораженными помехами, содержится b -2 разряда. Например, при b =5 комбинации помехи, т.е. пакет ошибок, могут иметь следующий вид: 10001 (поражены тоько два крайних символа), 11111 (поражены все символы), 10111, 11101, 11011 (не поражен лишь один символ), 10011, 11001, 10101 (поражены три символа). При любом варианте непременным условием пакета данной длины является поражение крайних символов.

Коды Файра могут исправлять пакет ошибок длиной b и обнаруживать пакет ошибок длиной b [заметим, что в кодах Файра понятие кодового расстояния - d].

Коды Боуза-Чоудхури-Хоквингэма. . Эти коды, разработанные Боузом, Чодхури и Хоквинхемом (сокращенно коды БЧХ), позволяют обнаруживать и исправлять любое число ошибок. Заданными при кодировании является число ошибок s , которое следует исправить, и общее число символов, посылаемых в линию, т.е. длина слов n. Числа информационных символов k и контрольных символов m , а также состав контрольных символов подлежат определению.

Коды БЧХ для обнаружения ошибок. Их строят следующим образом. Если необходимо образовать код с обнаружением четного числа ошибок, то по заданному числу r находят значения d и s. Дальнейшее кодирование выполняют, как и ранее. Если требуются обнаружить нечетное число ошибок, то находят ближайшее меньшее целое число s и кодирование производят так же, как и в предыдущем случае: образующий многочлен дополнительно умножают на двучлен . Например, требуются построить код обнаруживающий семь ошибок при n =15. Находим, что d =8 , а ближайшее меньшее значение s =3. Далее определяем многочлен , как указано в примере 3.5, и умножаем его на двучлен , т.е. получаем . Таким образом построен код БЧХ(15,4).




Дата: 2019-12-22, просмотров: 268.