ТИК-контр-з / Кодирование информации
.docКодирование информации при передаче с помехами.
Для этих целей используются помехоустойчивые коды, позволяющие обнаруживать и исправлять ошибки. Способность кода обнаруживать и исправлять ошибки обусловлена наличием избыточных символов.
Кратностью ошибки называют количеством исправленных символов в кодовой комбинации.
Кодовое расстояние d – это число символов, в которых комбинации отличаются одна от другой. Достаточно подсчитать число единиц, получаемых после сложения по mod 2 всех комбинаций.
Минимальное расстояние, взятое по всем парам кодовых разрешённых комбинаций кода, называется минимальным кодовым расстоянием d min.
При d=1 все кодовые комбинации являются разрешёнными
При d=2 ни одна из разрешённых кодовых комбинаций при одиночной ошибке не переходит в другую разрешённую комбинацию. Тогда подмножество разрешённых кодовых комбинаций может быть образованно по принципу чётности в них числа единиц.
В общем случае при необходимости обнаруживать ошибки кратности до r включительно минимальное Хеммингово расстояние между разрешёнными комбинациями должно быть по крайней мере, на единицу больше *, т.е
d0min≥r+1
Тогда ошибка кратности r не в состоянии перевести одну разрешённую комбинацию в другую.
Для исправления одиночной ошибки каждой разрешённой кодовой комбинацией необходимо сопоставить подмножество запрещённых кодовых комбинаций. Чтобы эти подмножества не пересекались, Хеммингово расстояние между разрешёнными кодовыми комбинациями должно быть не меньше трёх.
В общем случае для облегчения возможности исправления всех ошибок кратности до S включительно минимальным Хемминоговым расстоянием между комбинациями:
dnmin≥2S+1
Для исправления всех ошибок кратности S и одновременного обнаружения всех ошибок кратности r (r≥S) минимальное Хеммингово расстояние нужно выбирать из условия
dn0min≥r+S+1
Приведённые формулы справедливы для случая взаимно-независимых ошибок и дают завышенные значения при помехе, передаваемой с сигналом.
Двоичные линейные групповые коды.
Двоичный групповой код является n-разрядным и содержит k-информационных разрядов и m = (n-k) – проверочных, являющихся избыточными.
В двоичном линейном коде значения проверочных символов (опознавателя – синдрома) подбирают так, чтобы сумма по mod 2 всех индексов (включая проверочный), входящих в каждое из равенств, равнялось нулю.
Количество подлежащих исправлению ошибок является орпеделяющим для выбора числа избыточных символов (n-k). Их должно быть достаточно для того, чтобы обеспечить необходимое число опознавателей.
Если необходимо исправить все одиночные ошибки, то исправлению подлежит n ошибок, тогда необходимое число проверочных разрядов должно определяться из соотношения
2n-k-1≥n, или 2n-k-1≥Cn1
(k=4, n=7),
(k=11, n=15),
(k=26, n=31).
Если необходимо исправить все одиночные и двойные ошибки, то количество проверочных разрядов выбирается из соотношения
2n-k-1≥Cn1+Cn2
(k=2, n=7).
В общем случае для исправления всех независимых ошибок кратности до S включительно имеем
2n-k-1≥Cn1+Cn2+…+CnS
Это теоретический придел минимально возможного числа проверочных символов, но их иногда требуется больше.
Проверочные равенства кода Хэмминга
В качестве примера рассмотрим коды, предназначенные для исправления одиночных ошибок.
Оптимальные коды: (4,7); (15,11); (31,26); (63,57); и т.д., где первое число- n, а второе –k.
Проверочные равенства (для кода (15,11)):
E1=a1+a3+a5+a7+a9+a11+a13+a15=0
E2=a2+a3+a6+a7+a10+a11+a14+a15=0
E3=a14+a15+a16+a17+a12+a13+a14+a15=0
E4=a7+a9+a10+a11+a12+a13+a14+a15=0
Контолирующие разряды : 20=1 - a1
21=2 - a2
22=4 - a4
23=8 - a8.
Пример
Передать по дискретному каналу число 10d: (10d=1010) кодом, исправляющим одиночные ошибки.
x3=a7=1; a1=a3+a5+a7=0+1+1=0
x2=a6=0; a2=a3+a6+a7=0+0+1=1
x1=a5=1; a4=a5+a6+a7=1+0+1=0
x0=a3=0
Передаваемый код: 1 0 1 0 0 1 0
Если исправить ошибку в разряде a6,то тогда имеем код 1 1 1 0 0 1 0 и
E1=a1+a3+a5+a7=0,
E2=a2+a3+a6+a7=1,
E3=a4+a5+a6+a7=1.
Модифицированный код Хэмминга
К контрольным разрядам добавляется ещё один разряд контроля чётности всех одновременно считываемых (записываемых) индексных и конролирующих разрядов, т.е будем иметь код, способный исправлять одиночные и обнаруживать двойные ошибки: коды (8,4); (16,11); (32,26) и т.д.
При считывании формируются корректирующее число Хэмминга
Ek Ek-1…E1 и разряд общей чётности F для всех считанных разрядов, включая контрольный разряд. Так для кода (8, 4) F=a5+a7+a6+…+a1
Результаты отображены в виде таблицы
Корректирующее число Хэмминга |
F |
Наличие ошибок |
Ek ..E1 |
|
|
Нули |
0 |
Нет ошибок |
Нули |
1 |
Ошибка в контр. разряде общей чётности F |
≠0 |
0 |
Двойная ошибка (коррекция блокируется, посылается запрос повnjhной передачи) |
≠0 |
1 |
Одиночная ошибка (осуществляется её исправление) |