- •Глава 7 помехоустойчивое кодиров 7.1. Классификация корректирующих кодов
- •7.2. Принципы помехоустойчивого кодирования
- •7.3. Систематические коды
- •7.4. Код с четным числом единиц. Инверсный код
- •7.5. Коды Хемминга
- •7.6. Циклические коды
- •7.7. Коды с постоянным весом
- •7.8. Непрерывные коды
- •7.9. Обобщение теории кодирования на недвоичные коды
- •7.10. Итеративные и каскадные коды
- •7.11. Адаптивные корректирующие коды
7.3. Систематические коды
Систематические коды относятся к блочным разделимым кодам, т. е. к кодам, где операция кодирования осуществляется независимо в пределах каждой комбинации, состоящей из информационных и контрольных символов.
Остановимся кратко на общих принципах построения систематических кодов. Если обозначить информационные символы буквами с, контрольные — буквами е, то любую кодовую комбинацию, содержащую k информационных и r контрольных символов, можно представить последовательностью:
![]()
![]()
где c и e в двоичном коде принимают значения 0 или 1.
Процесс кодирования на передающем конце сводится к образованию контрольных символов, которые выражаются в виде линейной функции информационных символов:
(7.9)
Здесь
—
коэффициенты, равные 0
или 1,
и
— знаки суммирования по модулю два.
Значения
выбираются
по определенным правилам, установленным
для данного вида кода. Иными словами,
символы е представляют собой суммы по
модулю два информационных символов в
различных сочетаниях.
Процедура декодирования принятых комбинаций может осуществляться различными методами. Один из них, так называемый метод контрольных чисел, состоит в следующем.
Из
информационных символов принятой
кодовой комбинации
![]()
образуется по
правилу (7.9) вторая группа контрольных
символов:
(7.10)
Затем производится сравнение обеих групп контрольных символов путем их суммирования по модулю два:

Полученное число
X
называется контрольным
числом или
синдромом.
С его
помощью можно обнаружить или исправить
часть ошибок. Если ошибки в принятой
комбинации отсутствуют, то все суммы
а
следовательно, и контрольное число X
будет равным нулю. При появлении ошибок
некоторые значения х могут оказаться
равными 1.
В этом случае Х
0
что и позволяет обнаруживать ошибки.
Таким образом, контрольное число X
определяется путем r
проверок на четность.
Для исправления ошибок знание одного факта их возникновения является недостаточным, необходимо указать номер ошибочно принятых символов. С этой целью каждому сочетанию исправляемых ошибок в комбинации присваивается одно из контрольных чисел, что позволяет по известному контрольному числу определить местоположение ошибок и исправить их.
Контрольное число X записывается в двоичной системе, поэтому общее количество различных контрольных чисел, отличающихся от нуля, равно 2r-1. Очевидно, это количество должно быть не меньше числа различных сочетаний ошибочных символов, подлежащих исправлению. Например, если код предназначен для исправления одиночных ошибок, то число различных вариантов таких ошибок равно k + r. В этом случае должно выполняться условие:
(7.11)
Формула (7.11) позволяет при заданном количестве информационных символов k определить необходимое число контрольных символов r, с помощью которых исправляются все одиночные ошибки.
7.4. Код с четным числом единиц. Инверсный код
Рассмотрим некоторые простейшие систематические коды, применяемые только для обнаружения ошибок. Одним из кодов подобного типа является код с четным числом единиц. Каждая комбинация этого кода содержит помимо информационных символов один контрольный символ, выбираемый равным 0 или 1 так, чтобы сумма единиц в комбинации всегда была четной. Примером могут служить пятизначные комбинации кода Бодо, к которым добавляется шестой контрольный символ: 10101,1 и 01100,0. Правило вычисления контрольного символа можно выразить на основании (7.9) в следующей форме:

Отсюда
вытекает, что для любой комбинации сумма
всех символов по модулю два будет равна
нулю (
-
суммирование по модулю):
(7.12)
Это позволяет в декодирующем устройстве сравнительно просто производить обнаружение ошибок путем проверки на четность. Нарушение четности имеет место при появлении однократных, трехкратных и, в общем случае, ошибок нечетной кратности, что и дает возможность их обнаружить. Появление четных ошибок не изменяет четности суммы (7.12), поэтому такие ошибки не обнаруживаются.
На основании (7.8) вероятность необнаруженной ошибки равна:

К достоинствам кода следует отнести простоту кодирующих и декодирующих устройств, а также малую избыточность æ=1/(1+к), однако последнее определяет и его основной недостаток — сравнительно низкую корректирующую способность.
Значительно лучшими корректирующими способностями обладает инверсный код, который также применяется только для обнаружения ошибок. С принципом построения такого кода удобно ознакомиться на примере двух комбинаций: 11000,11000 и 01101,10010. В каждой комбинации символы до запятой являются информационными, а последующие — контрольными. Если количество единиц в информационных символах четное, т. е. сумма этих символов:
(7.13)
равна нулю, то контрольные символы представляют собой простое повторение информационных. В противном случае, когда число единиц нечетное и сумма (7.13) равна 1, контрольной символы получаются из информационных посредством инвертирования, т. е. путем замены всех 0 на 1, а 1 на 0. Математическая форма записи образования контрольных символов имеет вид:
![]()
При декодировании происходит сравнение принятых информационных и контрольных символов. Если сумма единиц в принятых информационных символах четная, т. е.:
![]()
то соответствующие
друг другу информационные и контрольные
символы суммируются по модулю два. В
противном случае, когда
,
происходит такое же суммирование, но с
инвертированными контрольными символами.
Другими словами, в соответствии с (7.10)
производится r
проверок на четность:
![]()
Ошибка обнаруживается, если хотя бы одна проверка на четность дает 1.
Анализ показывает,
что при
наименьшая
кратность необнаруживаемой ошибки g
= 4. Причем
не обнаруживаются только те ошибки
четвертой кратности, которые искажают
одинаковые номера информационных и
контрольных символов. Например, если
передана комбинация 10100,10100,
а принята 10111,10111
, то такая четырехкратная ошибка
обнаружена не будет, так как здесь все
значения
равны 0.
Вероятность необнаружения ошибок
четвертой кратности определяется
выражением:
![]()
Для
g
>
4
вероятность
необнаруженных ошибок еще меньше.
Поэтому при достаточно малых вероятностях
ошибочных символов
P0
можно
полагать, что полная вероятность
необнаруженных ошибок ![]()
Инверсный код обладает высокой обнаруживающей способностью, однако она достигается ценой сравнительно большой избыточности, которая, как нетрудно определить, составляет величину æ = 0,5.
