Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборная ответов к госэкзаменам.doc
Скачиваний:
101
Добавлен:
02.09.2019
Размер:
7 Mб
Скачать

Вопрос 53.1. Помехоустойчивое кодирование. Корректирующие коды Общие понятия

(см. также "Классификация кодов" и "Линейные коды")

Если в результате кодирования избыточность сообщений уменьшается – такое кодирование называется эффективным, если избыточность возрастает, кодирование называется помехоустойчивым. Если в результате кодирования избыточность сообщений сохраняется без изменений, то кодирование называется примитивным.

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

Различают корректирующие коды: блочные и непрерывные. При блочном кодировании каждому символу сообщения приводится в однозначное соответствие блок кодовых символов (кодовая комбинация); множество кодовых комбинаций составляет блочный код. Блочные коды называются разделимыми, если входящие в них символы могут быть разделены на информационные и проверочные (контрольные). Такие коды обозначаются как (n, k)-коды, где n – длина кода, k – число информационных символов. К неразделимым относятся коды, символы которых нельзя разделить на информационные и проверочные. Среди разделимых кодов различают линейные и нелинейные.

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

Применяются также каскадные коды, основанные на последовательном кодировании двумя разными кодами: код, используемый при первом кодировании, называется внешним; код, используемый при втором кодировании – внутренним. Эффективны каскадные коды, для которых внешний код блочный, а внутренний – сверточный.

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

Неравномерные коды Хэмминга

В коде Хэмминга вводится понятие кодового расстояния d (расстояния между двумя кодами), равного числу разрядов с неодинаковыми значениями. Возможности исправления ошибок связаны с минимальным кодовым расстоянием dmin . Исправляются ошибки кратности r = ent(dmin-1)/2 и обнаруживаются ошибки кратности dmin-1 (здесь ent означает "целая часть"). Так, при контроле на нечетность dmin = 2 и обнаруживаются одиночные ошибки. В коде Хэмминга dmin = 3. Дополнительно к информационным разрядам вводится L = log2K избыточных контролирующих разрядов, где К- число информационных разрядов, L округляется до ближайшего большего целого значения. L-разрядный контролирующий код есть инвертированный результат поразрядного сложения (т.е. сложения по модулю 2) номеров тех информационных разрядов, значения которых равны 1.

Пример 1. Пусть имеем основной код 100110, т.е. К = 6. Следовательно, L = 3 и дополнительный код равен 010 #011 # 110 = 111, где # ‑ символ операции поразрядного сложения, и после инвертирования имеем 000. Теперь вместе с основным кодом будет передан и дополнительный. На приемном конце вновь рассчитывается дополнительный код и сравнивается с переданным. Фиксируется код сравнения (поразрядная операция отрицания равнозначности), и если он отличен от нуля, то его значение есть номер ошибочно принятого разряда основного кода. Так, если принят код 100010, то рассчитанный в приемнике дополнительный код равен инверсии от 010 # 110 = 100, т.е. 01l, что означает ошибку в 3-м разряде.

Пример 2. Основной код 1100000, дополнительный код 110 (результат инверсии кода 110 # 111 = 001). Пусть принятый код 1101000, его дополнительный код 010, код сравнения 100, т.е. ошибка в четвертом разряде.