8. Код с суммированием (Код Бергера) образуется из двоичного кода на все сочетания путем дописывания к каждой кодовой комбинации контрольных символов, представляющих собой двоичное число, десятичный эквивалент которого равен числу нулей в образующей кодовой комбинации. Длина образующей кодовой комбинации называется информационной (nИ), а длина дописываемой части– защитной (nЗ). Длина кода Бергера
n=nИ+nЗ (9)
Матричная запись кода Бергера при nИ=3 имеет следующий вид:
В коде Бергера:
nИ=] log2N [ (10)
nЗ=] log2(nИ+1) [ (11)
Код Бергера обнаруживает любые однонаправленные ошибки.
9. Код Хэмминга, строящейся на базе (основе) кода на все сочетания позволяет обнаружить и исправить любые одиночные ошибки. Этот код позволяет в результате ограниченного числа проверок (z) получить двоичное число, которое при переводе в десятичное указывает номер позиции в которой произошла ошибка (символа, который трансформировался).
Любая кодовая комбинация кода Хэмминга содержит информационные (nИ) и защитные символы, (nЗ) а длина определяется выражением (9). Величины (nЗ) и (nИ) связаны между собой неравенством,
2nз– nЗ–1> nИ ,
где:
nИ– количество информационных символов численно равное длине базового кода на все сочетания;
nЗ– количество защитных символов.
Если символы кодового слова (комбинации) кода Хэмминга прономеровать слева направо натуральным рядом чисел (1, 2, 3, 4, и т.д.) и каждый номер считать местом символа, то расположение информационных и защитных символов может быть любым. Однако, места защитных символов удобно располагать по закону 2i ; где i=0, 1, 2, 3, 4…, т.е. места защитных символов.
Значения защитных символов вычисляются из выражений для контрольных сумм, которые при сложении по модулю 2 должны быть равны нулю. Выражения для определения значений защитных символов имеют вид:
nЗ1= nИ3 nИ5 nИ7 …. и т.д. через 1 место по 1;
nЗ2= nИ3 nИ6 nИ7 …. и т.д. через 2 места по 2;
nЗ4= nИ5 nИ6 nИ7 nИ12 …. и т.д. через 4 места по 4;
nЗ8= nИ9 nИ10 nИ11 nИ12 nИ13 nИ14 nИ15 nИ24 nИ25 ….
и т.д. через 8 мест по 8.
В вышеперечисленных выражениях число в индексе означает номер места символа в кодовой комбинации.
Матричная запись кода Хэмминга при nИ=3 имеет вид:
В этой записи защитные символы обозначены курсивом.
Допустим что в процессе передачи кодовой комбинации 101101 она была принята как 100101, т.е трансформировался 3 символ (информационный). После фиксации принятой кодовой комбинации составляются контрольные суммы по модулю 2 и осуществляется их проверка на четность
S1=n1 n3 n5=1 0 0=1
S2=n2 n3 n6=0 0 1=1
S3=n4 n5 n6=1 0 1= 0
Рассматривая контрольные суммы как разряды двоичного числа (т.е S1 S2 S3) получим 011. При переводе полученного двоичного числа в десятичную систему счисления получим число 3. Это и есть номер символа, который трансформировался. Поэтому при дешифрации принятое значение третьего символа следует изменить на обратное (т.е «0» заменить на «1»)
Do'stlaringiz bilan baham: |