Коды, которые обеспечивают возможность обнаружения и исправления ошибки, называют помехоустойчивыми.
Код, содержащий помимо информационных еще и контрольные разряды называется систематическим кодом.
Длина слова систематического кода (n) =
число информационных разрядов (m) + число контрольных разрядов(k)
(1)
Относительная избыточность сообщения - это характеристика, показывающая, во сколько раз требуется удлинить сообщение, чтобы обеспечить его надежную (безошибочную) передачу (хранение).
Очевидно, что L характеризует эффективность кодирования при передаче по реальным каналам и при равных надежностях передачи предпочтение должно быть отдано тому способу кодирования, при котором избыточность окажется наименьшей. Правда, для практики важна также простота технической реализации того или иного способа кодирования.
Коды, обнаруживающие ошибку
На первый взгляд кажется, что путем увеличения m можно сколь угодно приближать избыточность к ее минимальному значению (Lmin = 1). Однако с ростом m,
во-первых, растет вероятность парной ошибки, которая контрольным битом не отслеживается;
во-вторых, при обнаружении ошибки потребуется заново передавать много информации. Поэтому обычно m = 8 или 16 и, следовательно, L = 1,125 (1,0625).
где р - вероятность появления ошибки в сообщении. Для восстановления информационного содержания сообщения следует дополнительно передать количество информации не менее величины ее потерь, т.е. вместо передачи каждого 1 бит информации следует передавать 1 + Н бит. В этом случае избыточность сообщения составит
Коды, исправляющие одиночную ошибку
(2)
Алфавит:
= {a1,a2,…, an}
’ = {b1,b2,…, bp}
Закодированное сообщение:
= c(ai1) c(ai2) … c(aim)
= bi1 bi2 … bin
Схема работы кодирующего и декодирующего устройств
Процесс кодирования
Процесс декодирования
Пример пространства B3
Код
– это некоторые точки пространства Bn, или некоторое подмножество пространства Bn
Пример пространства B2
00
01
10
10
Пример пространства B1
0
1
Примеры пространств Bn разных размерностей
ai1 ai2 … aim
(ai1 ai2 … aim)
+
+
Пример кодирования двухразрядных слов:
00 000
01 011
10 101
11 110
Код -тетраэдр
Примеры
кодов
Кодовая таблица
Модификация кода с проверкой на четность
Коды с повторением
d0min = 2
– кодовое расстояние для данного кода
Для каждой вершины куба имеются три вершины, которые отстоят от нее на один шаг (на расстоянии одного ребра куба), еще три вершины, которые отстоят на два шага, и одна вершина — на три шага.
Расстояние между ближайшими кодовыми комбинациями называется кодовым расстоянием.
Замечание. Кодовое расстояние — параметр, характеризующий помехоустойчивость кода и заложенную в нем избыточность.
Геометрическая интерпретация кодового расстояния и расстояния Хэмминга
Если кодовое расстояние d = 2, то такой код позволяет обнаруживать одиночные ошибки, так как уже есть возможность сделать так, чтобы искаженная комбинация не входила в число разрешенных.
По рисунку легко определить кодовые комбинации, обнаруживающие ошибку в комбинации 000. Они должны отличаться друг от друга в двух символах, т. е. отстоять от точки 0 на два шага.
Исправление ошибки в кодах-спутниках
В общем случае для обеспечения возможности исправления всех ошибок кратности до s включительно при декодировании по методу максимального правдоподобия, каждая из ошибок должна приводить к запрещенной комбинации, относящейся к подмножеству исходной разрешенной кодовой комбинации
Декодирование после приема производится таким образом, что принятая кодовая комбинация отождествляется с той разрешенной, которая находится от нее на наименьшем кодовом расстоянии.
Такое декодирование называется декодированием по методу максимального правдоподобия
d0 min≥r+1
Общее выражение для определения кодового расстояния в случае одновременного обнаружения и исправления ошибок
d = r + s + 1
, где
r — число обнаруживаемых ошибок;
s — число исправляемых ошибок;
d — минимальное количество элементов, в которых одна кодовая комбинация отличается от другой.
Если требуется определить кодовое расстояние исходя только из количества исправляемых ошибок, то применяют формулу
d = 2s + 1
Примеры кодов
Для m (n, m) код Хэмминга
(n,m) = (2k-1, 2k-1-k)
k - разрядное двоичное число:
Это систематический код, с m информационными и k = (n-m) проверочными битам. Код Хэмминга является кодом с проверкой на четность, с той лишь разницей, что эта проверка производится k раз.
При каждой проверке охватывается часть информационных символов и один избыточный, при этом получается один контрольный символ.
Если результат проверки дает четное число, то контрольному символу присваивается значение ‘0’, если нечетное – ‘1’.
Для определения мест расположения контрольных символов необходимо построить матрицу кода Хемминга. Размер матрицы - (k*n).
Характерной её особенностью является то, что столбцы матрицы являются различными ненулевыми комбинациями символов алфавита {0,1} длины k, выписанные в порядке возрастания их значений.
k
n=2k
s1 = u’1u’3u’5u’7u’9u’11u’13u’15 = 0
s2 = u’2u’3u’6u’7u’10u’11u’14u’15 = 0
s3 = u’4u’5u’6u’7u’12u’13u’14u’15 = 0
s4 = u’8u’9u’10u’11u’12u’13u’14u’15 =0
(*)
Пример. Матрица кода Хэмминга (15,11)
Окончательно получаем закодированное сообщение для кода (15,11):
Значения контрольных разрядов получаем из системы уравнений (*):
k1 = u’3u’5u’7u’9u’11u’13u’15
k2 = u’3u’6u’7u’10u’11u’14u’15
k3 = u’5u’6u’7u’12u’13u’14u’15
k4 = u’9u’10u’11u’12u’13u’14u’15
В результате будет получена k-разрядное число S, которое называется «синдром»:
S:
Правила интерпретации значения синдрома:
S=0 – передача сообщения произошла без ошибок;
S<>0 – во время передачи произошла ошибка, при этом – десятичное значение синдрома – номер разряда , переданного с ошибкой.
В качестве проверенных разрядов выбираем 1й, 2й и 4й. Чтобы закодировать сообщение 1101, нужно определить проверочные разряды в комбинации
[k1 k2 1 k3 1 0 1]. Из матрицы H получаем:
k1 = u3u5u7
k2 = u3u6u7
k3 = u5u6u7
Следовательно, k1 = 1, k2 = 0, k3 = 0 и закодированное сообщение имеет вид: 1010101.
Предположим, что шестой символ принят ошибочно, тогда будет получено сообщение 1010111. Синдром в этом случае имеет вид 110. т. е. двоичное представление числа 6.
При этом подразумевается, что общая длина кодовой комбинации n = m + k
Для практических расчетов при определении числа контрольных разрядов кодов с минимальным кодовым расстоянием d0min = 3 удобно пользоваться выражениями:
Если известна длина полной кодовой комбинации n
2. Если при расчетах удобнее исходить из заданного числа информационных символов m
При построении кодов перед разработчиками стоит задача определения числа добавочных, корректирующих символов k, или исходя из числа информационных разрядов m, либо из общей длины кода n.
Для практических расчетов можно пользоваться выражением
Для кодов, исправляющих три ошибки (d0min = 7),
Выражение слева известно как нижняя граница Хэмминга, а выражение справа как верхняя граница Варшамова — Гильберта.
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть