Содержание материала

В зависимости от правил образования кодовых комбинации (кодовых слов) все коды можно разделить на две большие группы: 1) цифровые коды и 2) комбинаторные. У кодов первой группы кодовые комбинации можно отобразить числами той или иной позиционной системы счисления. В комбинаторных кодах комбинации образуются по правилам комбинаторики. Это, например, коды на одно сочетание из η элементов по k либо коды, комбинации которых образованы по закону перестановок либо по закону размещений.
По правилам второй группы все коды делятся на коды равнодоступные и статистические (см. выше).
В зависимости от длины кодовых слов различают одноэлементные и многоэлементные коды. По количеству передаваемой информации возможности одноэлементного кодирования ограничены, т.к. при этом требуются многозначные коды (с основанием т > 2). А это, в свою очередь, ведёт к усложнению технической реализации кодирующих и декодирующих устройств. Наибольшее применение нашли многоэлементные коды (η > 1).
В зависимости от основания кода принято различать двоичные (бинарные), троичные и ... многозначные коды. При многозначном кодировании, как правило, используются частотные признаки для формирования сигналов, поэтому коды называют «частотными».
Доказано, что применение двоичных кодов обеспечивает построение систем с наибольшей эффективностью при заданных требованиях к скорости передачи информации.
По избыточности все коды можно разделить на безызбыточные (D = 0) и коды с избыточностью (D 0). Применение безызбыточных кодов называют эффективным кодированием, поскольку обеспечивается наибольшая скорость передачи информации из-за наименьшей длины кодовых слов. Поэтому коды называют эффективными. В общем случае мощность таких кодов рассчитывается по формуле
(3) где т - основание кода (его алфавит); п - длина кодовых комбинаций. Формулой (3) пользуются в случае, когда все кодируемые сообщения равновероятны. Такие коды имеют постоянную длину кодовых комбинаций, называются кодами на все сочетания, являются равнодоступными и «комплектными». В частном случае, при т = 2=> {0, 1}, получим двоичный безызбыточный код на все сочетания, называемый также «простым» двоичным кодом. Поскольку в таких кодах отсутствуют контрольные элементы, то каждый элемент кода несёт максимальное количество информации и искажение элемента приведёт к искажению информации.
Иногда понятие «помехоустойчивость» относят к кодам, подразумевая при этом сигналы, сформированные по правилам рассматриваемого кода. Поэтому безызбыточные коды называют непомехоустойчивыми (непомехозащищёнными), а коды с избыточностью - помехоустойчивыми (или помехозащищёнными).
В частности, коды с избыточностью, в зависимости от возможности локализации информационных и контрольных элементов, можно разделить на систематические и несистематические. В систематических кодах позиции (знакоместа) информационных элементов чётко фиксированы. Можно заранее указать, какие позиции занимают информационные, а какие позиции - контрольные элементы. В противоположность систематическим кодам у несистематических кодов нельзя указать, какие элементы являются информационными, а какие контрольными. Примером несистематического кода является код «на одно сочетание», относящийся к комбинаторным кодам и называемым ещё колом «с равным весом» (см. ниже). Наибольшее применение получили систематические коды.

В зависимости от минимального кодового расстояния вес коды принято разделять на: 1) коды, не обнаруживающие ошибки (d=1); 2) коды, позволяющие обнаруживать ошибки (d = 2); 3) коды, «исправляющие» ошибки (d>2).
Например, при d = 5 (см. формулу (2)) возможны следующие варианты:

  1. s = 2, r = 2, т.е. код позволяет исправлять и обнаруживать две ошибки;
  2. s — 1, г =3, т.е. код позволяет исправить одну ошибку и обнаружить три ошибки;
  3. s = 0, r= 4 код не позволяет исправлять ни одной ошибки, но зато позволяет обнаруживать четыре ошибки.

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

Рассмотрим способы задания кодов

Задать некоторый код означает задать (определить) правила, по которым формируются комбинации рассматриваемого кода. Эти правила можно сформулировать на естественном языке в виде некоторых действий, выполнение которых заканчивается получением полного множества разрешённых комбинаций.
Обычно все процедуры получения кодовых комбинаций оформляют в таблице, называемой таблицей кодирования. Таким образом, таблицы кодирования есть один из способов задания кодов, когда код определён полным множеством кодовых слов.
Если правила кодирования можно записать на одном из формальноестественных либо формальных языков, например на языке булевой алгебры, то код можно задать логическими (булевскими) выражениями, согласно которым определяются значения элементов кодовых комбинаций. Так, например, определяются значения контрольных элементов по значениям информационных элементов в избыточных двоичных кодах. Кроме того, код можно задать г еометрической моделью (см. выше рис. 3.1) либо арифметическими, арифметико-логическими выражениями. Последние способы относятся к аналитическим способам задания (и описания) кодов.
Выбор способа задания кода предопределяется целями, с которыми приводятся сведения о коде. При небольшой длине кодовых комбинаций и простых их правилах образования достаточно применить таблицы кодирования. Геометрические модели, как правило, используют для выбора (поиска) комбинаций некоторого кода с заданным расстоянием Хэмминга, т.е. с заданными корректирующими свойствами.
Аналитическое описание кодов всегда предпочтительнее, т.к. оно компактно, обобщённо, позволяет формализовать процедуры кодирования и декодирования, что, в свою очередь, облегчает отыскание функциональных схем кодирующих и декодирующих устройств.