Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 13 - Помехоустойчивое кодирование.doc
Скачиваний:
67
Добавлен:
12.02.2015
Размер:
210.94 Кб
Скачать

13.2 Обнаружение и исправление ошибок

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

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

Для обеспечения помехоустойчивости кода вводят дополнительные разряды. Если, например, для кодирования всех символов внешнего алфавита достаточно иметь k-разрядный первичный код, то для обеспечения помехоустойчивости к разрядам первичного кода добавляется r избыточных разрядов. При этом длина результирующей кодовой комбинации становится равной n=k+r. Избыточные коды делятся на разделимые и неразделимые.

В разделимых кодах роль разрядов кодовой комбинации разграничена: часть разрядов, часто совпадающая с разрядами исходного первичного кода, являются информационными, остальные разряды играют роль проверочных разрядов. В неразделимых кодах все разряды равноправные, и в кодовой комбинации нельзя отделить информационные разряды от проверочных. Примером неразделимого кода может служить код с постоянным весом «3 из 7». Особенностью этого кода является то, что в любой его кодовой комбинации длины 7 имеется ровно три единицы. Обнаруживающая способность данного кода основывается на том, что любая одиночная ошибка изменяет количество единиц в кодовой комбинации.

Можно сказать, что помехоустойчивость достигается тем, что для кодирования используются не все кодовые комбинации, а только часть из них (для разделимых кодов эта часть равна 2k). Остальные кодовые комбинации называются запрещёнными и при передаче информации не используются. Если d>1, то любая одиночная ошибка будет переводить разрешённую комбинацию в запрещённую, наличие которой на принимающей стороне может служить индикатором ошибки.

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

Примером блочного разделимого кода может служить код с проверкой на чётность. Кодовая комбинация такого кода имеет вид a1 a2 ak b. Первые k разрядов являются информационными, и, как правило, совпадают с разрядами исходного первичного кода. Последний разряд является избыточным и определяется как результат сложения по модулю 2 всех информационных разрядов. Если число единиц в информационных разрядах чётное, то b=0, в противном случае b=1. Такой код обеспечивает значение d=2 и обладает способностью обнаруживать все ошибки кратности 1.

Для оценки качества кодов применяют коэффициент избыточности и коэффициент повышения верности. Коэффициент избыточности определяется выражением

где Hmax – максимальная энтропия n-разрядного равномерного кода с числом кодовых комбинаций M=2n, при этом Hmax = log2M=n. Под H(x) понимают максимальную энтропию разрешённых кодовых комбинаций, число которых обозначают через N, тогда H(X)=logN. Для неразделимого кода:

(13.2)

Например, для кода «3 из 7» максимальное количество кодовых комбинаций составляет 27. Число разрешённых кодовых комбинаций . Тогда коэффициент избыточности равен:

Для разделимых кодов формула упрощается:

где n – длина кодовой комбинации, k – число информационных разрядов. Для n-разрядного кода с проверкой чётности получаем, что Kи = 1/n.

Коэффициент избыточности принимает значение от 0 (отсутствие избыточности) до 1 (избыточность неограниченно велика). Коэффициент избыточности характеризует качество помехоустойчивого кода: чем меньше избыточность кода при прочих равных условиях, тем код лучше.

Коэффициент повышения верности определяется как отношение вероятности появления ошибочных кодовых комбинаций на выходе дискретного канала к вероятности появления необнаруженных ошибок.

Помехоустойчивые коды позволяют не только обнаруживать ошибки, но и исправлять их. Общая идея исправления ошибок кратности на более qm заключается в следующем. Число возможных кодовых комбинаций M помехоустойчивого кода разбивается на N классов по числу разрешённых кодовых комбинаций. Разбиение осуществляется таким образом, чтобы в каждый класс входили одна разрешённая кодовая комбинация и ближайшие к ней запрещённые. При декодировании определяется, какому классу принадлежит принятая кодовая комбинация. Если кодовая комбинация принята с ошибкой, то есть является запрещённой, то она исправляется на разрешённую кодовую комбинацию, принадлежащую тому же классу.

Для обеспечения возможности исправления ошибок кратности не более qm кодовое расстояние должно быть больше 2qm. Обычно оно выбирается по формуле d=2qm+1. Актуальной является задача определения наибольшего числа N кодовых комбинаций n-разрядного двоичного кода с кодовым расстоянием d. В теории кодирования существуют следующие оценки:

Оценим корректирующий код, исправляющий одиночные ошибки (qm=1) на основе 4-разрядного двоичного кода, общее число комбинаций которого равно 16. Среди этих 16 кодовых комбинаций нужно выбрать максимальное число разрешённых комбинаций, отстоящих друг от друга на расстояние не меньше, чем d=2qm+1=3. Оценим верхнюю границу количества разрешённых кодовых комбинаций: N ≤ 2n/(1+n)=3. На самом деле их нельзя найти больше двух.