Главная > Помехоустойчивое кодирование > Кодирование информации (двоичные коды)
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

3.19. Код Бергера

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

Коды Бергера предназначены для использования в асимметричных каналах связи, где возможно либо только преобразование нулей в единицы, либо наоборот [8, 90, 119].

Рассмотрим случай, когда единицы преобразуются в нули. Тогда при возникновении ошибки количество единиц, содержащихся в информационной части, уменьшается и число, равное количеству принимаемых единиц, которое сравнивается с проверочными символами кода, оказывается меньше последнего.

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

Рассматривая характер ошибок, видим, что любые из них приводят к тому, что двоичное число, вычисленное по принимаемым информационным символам и затем инвертированное, всегда меньше числа, представляемого проверочными символами. При этом любые ошибки, состоящие в преобразовании единиц в нули, будут обнаружены. Это справедливо и для случая, когда нули преобразуются в единицы.

Пример.

(см. скан)

Преимущество кодов Бергера по сравнению с кодами с постоянным весом, которые также используются в асимметричных каналах, заключается в том, что они являются разделимыми кодами с очень простым алгоритмом построения проверочной части.

В симметричных каналах такие коды обнаруживают все одиночные ошибки и некоторую часть многократных. Можно построить также коды с лучшими обнаруживающими свойствами для симметричных, каналов [8, 22]. В таких кодах каждой информационной позиции приписывают различный вес, причем ни один вес

не является степенью двух (3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17 и т. д.). Проверочные знаки этого кода образуются путем суммирования весов, соответствующих тем информационным разрядам, в которых расположены единицы, затем происходит инверсия полученного числа. Такой код обладает всеми свойствами ранее описанного кода и, кроме того, обнаруживает в симметричном канале все двойные ошибки.

Количество проверочных символов его определяем из следующего выражения [8]:

где количество информационных символов, а определяется из соотношения

Пример. Закодировать кодом Бергера, обнаруживающим двойные ошибки, сообщение

Запишем распределение весов в данном сообщении: 1-й разряд — Следовательно, сумма весов равна 34.

Из (3.61) находим из

Двоичная запись суммы весов для семиразрядной, проверочной части, имеет вид 0100010. Инвертированный вид ее 1011101. Таким образом, полная последовательность выглядит как

Можно построить коды, которые будут обнаруживать не только двойные, но и четверные и т. д. ошибки. Однако сложность построения таких кодов значительно возрастает с ростом кратности ошибок. Применение таких кодов не оправдано.

<< Предыдущий параграф Следующий параграф >>
Оглавление