Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория информации и кодирования (уч. пособие).docx
Скачиваний:
0
Добавлен:
30.12.2019
Размер:
7.16 Mб
Скачать

3.8. Помехоустойчивое кодирование

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

Теория помехоустойчивого кодирования базируется на результатах исследований, проведенных К. Шенноном и сформулированных им в виде основной теоремы кодирования для дискретного канала с шумом: «При любой скорости передачи символов вторичного алфавита меньшей, чем пропускная способность канала, существует такой код, при котором вероятность ошибочного декодирования будет сколь угодно мала; вероятность ошибки не может быть сделана сколь угодно малой, если скорость передачи больше пропускной способности канала».

Здесь под скоростью передачи информации понимается количество информации, передаваемой через канал связи за единицу времени, а под пропускной способностью максимальная скорость передачи информации через канал связи (не надо путать со скоростью передачи символов вторичного алфавита).

Подробнее эти вопросы будут рассмотрены ниже в разделе Передача информации.

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

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

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

3.8.1. Классификация кодов

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

  2. По форме внесения избыточности различают разделимые и неразделимые коды.

В разделимых кодах кодовые слова четко разделены на две части. Одна часть состоит из исходных (кодируемых) разрядов, а другая из дополнительных разрядов, благодаря которым собственно и обеспечивается возможность обнаружения и/или исправления ошибок.

Ясно, что эти дополнительные разряды создают в сообщении избыточность (вспомним, что предполагается нулевая избыточность исходного (кодируемого) сообщения).

В кодовых словах неразделимого кода такое разделение отсутствует.

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

  2. По способу кодирования различают блочные и непрерывные коды.

При блочном кодировании входное кодируемое сообщение разбивается на блоки фиксированной длины k. Этим блокам ставятся в соответствие кодовые слова длиной n (n>k).

При непрерывном кодировании каждый символ b выходной последовательности (закодированного сообщения) определяется рекуррентным соотношением, связывающим его с соответствующими символами a входной последовательности (кодируемого сообщения), например: ,

где: a – символы входной последовательности (кодируемого сообщения);

b – символы выходной последовательности (закодированного сообщения);

ckj и s – константы, зависящие от кода;

i – номер символа входной последовательности (кодируемого сообщения);

j – номер символа в группе символов выходной последовательности (закодированного сообщения), создаваемой в результате поступления нового символа входной последовательности.

L – количество символов выходной последовательности, создаваемых в результате кодирования в ответ на поступления на вход кодера одного символа входной последовательности.

Следующим рисунком иллюстрируется кодирование непрерывным кодом:

Рис. 3.4. Образование непрерывного кода.

Таким образом, на каждый символ входной последовательности приходится L символов выходной.

Существуют и другие варианты формулы кодирования.

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

  2. В зависимости от длины кодового слова различают равномерные и неравномерные коды. Если длина кодовых слов постоянна, код равномерный. В противном случае – неравномерный.

  3. Рассмотрим блочный равномерный код. Если произвольная линейная комбинация кодовых слов – также кодовое слово, такой код называется линейным.

Одни и тот же код может одновременно принадлежать нескольким классам, например, может существовать алгебраический разделимый неравномерный код.