- •Глава 8. Основы теории кодирования
- •8.2. Согласование источника с каналом по объемам алфавитов. Теоремы кодирования шеннона и потенциальные возможности системы передачи информации
- •8.2.1.Теорема Шеннона для дискретного канала связи без помех
- •8.2.2. Теорема Шеннона для дискретного канала связи с помехами
- •8.2.3. Теорема Шеннона для непрерывного канала связи
- •8.3. Основы экономного кодирования
- •8.3.1 Принципы экономного кодирования. Цель сжатия данных и типы систем сжатия
- •8.3.2. Префиксные коды
- •Избыточность кода Хаффмена
- •8.3.4. Код Шеннона-Фано
- •8.3.5. Неравномерное кодирование для последовательности сообщений
- •8.3.6. Арифметическое кодирование
- •Кодирование
- •Декодирование
- •8.3.7. Словарные методы сжатия
- •Кодирование
- •Декодирование
- •8.4. Основы помехоустойчивого кодирования
- •8.4.1 Принципы обнаружения и исправления ошибок
- •8.4.2. Классификация помехоустойчивых кодов
- •8.4.3. Основные характеристики помехоустойчивых кодов
- •8.4.4. Границы вероятности ошибочного декодирования
- •8.5. Блочные линейные коды
- •8.5.1. Математическое описание процессов кодирования и декодирования
- •8.5.2. Коды с проверкой на четность
- •8.5.3 Коды Хэмминга
- •8.5.4. Коды с постоянным весом
- •8.5.5. Циклические коды
- •1. Способы декодирования с обнаружением ошибок
- •2 Способы декодирования с исправлением ошибок
- •8.6. Непрерывные коды
- •8.6.1 Идея построения непрерывного кода Финка–Хегельбергера
- •8.6.2. Сверточные коды
- •8.6.3. Представление сверточных кодов с помощью многочленов
- •8.6.4. Графическое представление сверточных кодов
- •8.6.5. Методы декодирования сверточных кодов
- •8.6.6. Схемное построение декодера Витерби
- •8.7. Методы борьбы с ошибками
- •8.7.1. Системы с обратной связью
- •8.7.2. Формат кадра протоколов с обнаружением ошибок
- •8.7.3. Методы повторной передачи (arq)
- •8.7.4. Основные характеристики систем с решающей обратной связью
- •8.7.5. Показатели эффективности цифровой системы связи
8.4.2. Классификация помехоустойчивых кодов
Первые работы по помехоустойчивым кодам принадлежат Хэммингу, который ввел понятие минимального кодового расстояния и предложил код, позволяющий однозначно указать ту позицию в кодовой комбинации, где произошла ошибка. К т информационным элементам в коде Хэмминга добавляется проверочных элементов для автоматического определения местоположения ошибочного символа.
В настоящее время разработано большое количество помехоустойчивых кодов. Все эти коды подразделяются на блочные и непрерывные (рис. 8.11).
Рис. 8.11. Классификация помехоустойчивых кодов
К блочным относятся коды, в которых каждому сообщению относится в однозначное соответствие блок из n символов. Непрерывные коды представляют непрерывную последовательность информационных и проверочных разрядов. Блочные коды разделяются на равномерные и неравномерные. Равномерные коды имеют постоянную длину кодовой комбинации. Блочные и непрерывные коды разделяются на систематические и несистематические. Под систематическим понимают код, в котором разряды могут быть разделены на проверочные и информационные. При этом их места в кодовой комбинации точно определены. Обычно в систематическом коде каждое кодовое слово начинается с информационных символов и заканчивается проверочными символами. Несистематические коды этим свойством не обладают.
Кроме того, коды разделяются на линейные и нелинейные.
Линейными кодами являются такие, в которых сумма по модулю 2 двух разрешенных комбинаций дает разрешенную комбинацию того же кода. Нелинейные коды отмеченным свойством не владеют. Для линейного кода применяется обозначение (n, m) код, где n – число всех разрядов в кодовой комбинации; m – число информационных разрядов.
Большинство кодов, применяемых на практике, относится к линейным.
8.4.3. Основные характеристики помехоустойчивых кодов
В настоящее время наибольшее внимание с точки зрения технических приложений уделяется двоичным блочным корректирующим кодам. При использовании блочных кодов цифровая информация передается в виде отдельных кодовых комбинаций (блоков) одинаковой длины. Кодирование и декодирование каждого блока осуществляется независимо друг от друга.
Почти все блочные коды относятся к разделимым кодам, кодовые комбинации которых состоят из двух частей: информационной и проверочной. При общем числе символов в блоке число информационных символов равно , а число проверочных символов
. (8.19)
К основным характеристикам корректирующих кодов относятся:
число разрешенных и запрещенных кодовых комбинаций;
избыточность кода;
минимальное кодовое расстояние;
число обнаруживаемых или исправляемых ошибок;
корректирующие возможности кодов.
Число разрешенных и запрещенных кодовых комбинаций
Для блочных двоичных кодов, с количеством символов в блоках, равным , общеечисло возможных кодовых комбинаций определяется значением
. (8.20)
Число разрешенных кодовых комбинаций при наличии т информационных разрядов в первичном коде равно
. (8.21)
Очевидно, что число запрещенных кодовых комбинаций равно
, (8.22)
а с учетом (8.19) отношение составит
, (8.23)
где — число избыточных (проверочных) разрядов в блочном коде.
Избыточность корректирующего кода
Избыточностью корректирующего кода называют величину
, (8.24)
откуда следует
. (8.25)
Эта величина показывает, какую часть общего числа символов кодовой комбинации составляют информационные символы. В теории кодирования величину называют относительной скоростью кода. Если производительность источника информации равна символов в секунду, то скорость передачи информации после кодирования будет составлять
, (8.26)
поскольку в закодированной последовательности из каждых символов только являются информационными.
Если в системе связи используются двоичные сигналы (сигналы типа "1" и "0") и каждый единичный элемент несет не более одного бита информации, то между скоростью передачи информации и скоростью модуляции существует соотношение
,
где - скорость передачи информации, бит/с;B - скорость модуляции, Бод.
C точки зрения внесения постоянной избыточности в кодовую комбинацию выгодно выбирать длинные кодовые комбинации, так как с увеличением относительная пропускная способность
увеличивается, стремясь к пределу, равному 1.
Если число ошибок, которые нужно обнаружить или исправить, велико, то необходимо иметь код с большим числом проверочных символов. Чтобы при этом скорость передачи оставалась достаточно высокой, необходимо в каждом кодовом блоке одновременно увеличивать как общее число символов, так и число информационных символов. При этом длительность кодовых блоков будет существенно возрастать, что приведет к задержке информации при передаче и приеме. Чем сложнее кодирование, тем длиннее временная задержка информации.
Минимальное кодовое расстояние
Ранее было установлено, что для того, чтобы можно было обнаруживать и исправлять ошибки, разрешенная комбинация должна как можно больше отличаться от запрещенной. Если ошибки в канале связи действуют независимо, то вероятность преобразования одной кодовой комбинации в другую будет тем меньше, чем большим числом символов они различаются.
Если интерпретировать кодовые комбинации как точки в пространстве, то отличие выражается в близости этих точек, т.е. в расстоянии между ними.
Количество разрядов (символов), которыми отличаются две кодовые комбинации, принято за кодовое расстояние между ними. Для определения этого расстояния нужно сложить две кодовые комбинации по модулю 2 и подсчитать число единиц в полученной сумме. Например, две кодовые комбинации иимеют расстояние, так как
(8.27)
Заметим, что кодовое расстояние между комбинацией и нулевой называют весом комбинации , т. е. вес равен числу «1» в ней.
Расстояние между различными комбинациями некоторого конкретного кода могут существенно отличаться. Так, в частности, в безизбыточном первичном натуральном коде () это расстояние для различных комбинаций может изменяться от единицы до величины , равной значности кода. Особую важность для характеристики корректирующих свойств кода имеет минимальное кодовое расстояние , определяемое при попарном сравнении всех кодовых комбинаций, котороеназывают расстоянием Хэмминга.
В безизбыточном коде все комбинации являются разрешенными, и, следовательно, его минимальное кодовое расстояние равно единице . Поэтому достаточно исказить один символ, чтобы вместо переданной комбинации была принята другая разрешенная комбинация. Чтобы код обладал корректирующими свойствами, необходимо ввести в него некоторую избыточность, которая обеспечивала бы минимальное расстояние между любыми двумя разрешенными комбинациями не менее двух.
Минимальное кодовое расстояние является важнейшей характеристикой помехоустойчивых кодов, указывающей на гарантируемое число обнаруживаемых или исправляемых заданным кодом ошибок.
Число обнаруживаемых или исправляемых ошибок
При применении двоичных кодов учитывают только дискретные искажения, при которых единица переходит в нуль (10) или нуль переходит в единицу (01). Переход 10 или 01 только в одном элементе кодовой комбинации называютединичной ошибкой (или единичным искажением). В общем случае под кратностью ошибки подразумевают число позиций кодовой комбинации, на которых под действием помехи одни символы оказались замененными на другие. Возможны двукратные () и многократные () искажения элементов в кодовой комбинации в пределах.
Минимальное кодовое расстояние является основным параметром, характеризующим корректирующие способности данного кода. Если код используется только для обнаружения ошибок кратностью , то необходимо и достаточно, чтобы минимальное кодовое расстояние было равно (рис.8.12)
. (8.28)
Рис. 8.12. Геометрическая модель кода
В этом случае никакая комбинация из ошибок не может перевести одну разрешенную кодовую комбинацию в другую разрешенную. Таким образом, условие обнаружения всех ошибок кратностьюможно записать в виде:
. (8.29)
Чтобы можно было исправить все ошибки кратностью и менее, необходимо иметь минимальное расстояние, удовлетворяющее условию:
. (8.30)
В соответствии с этим условие исправления всех ошибок кратностью не более можно записать в виде:
(8.31)
Из (8.29) и (8.31) следует, что если код исправляет все ошибки кратностью , то число ошибок, которые он может обнаружить, равно .
Аналогично можно показать, что для одновременного исправления ошибок кратности tu и обнаружения ошибок кратности tо кодовое расстояние должно быть равно:
.
Следует отметить, что соотношения (8.29) и (8.31) устанавливают лишь гарантированное минимальное число обнаруживаемых или исправляемых ошибок при заданном и не ограничивают возможность обнаружения ошибок большей кратности. Например, простейший код с проверкой на четность с позволяет обнаруживать не только одиночные ошибки, но и любое нечетное число ошибок в пределах.
Корректирующие возможности кодов
Вопрос о минимально необходимой избыточности, при которой код обладает нужными корректирующими свойствами, является одним из важнейших в теории кодирования. Этот вопрос до сих пор не получил полного решения. В настоящее время получен лишь ряд верхних и нижних оценок (границ), которые устанавливают связь между минимальным расстоянием корректирующего кода и его избыточностью.
Так, граница Плоткина определяет верхнюю границу кодового расстояния при заданном числе разрядовв кодовой комбинации и числе информационных разрядовт для двоичных кодов:
(8.32)
или
, при . (8.33)
Верхняя граница Хэмминга устанавливает максимально возможное число разрешенных кодовых комбинаций любого помехоустойчивого кода при заданных значенияхи:
, (8.34)
где — число сочетаний из поэлементов, которое рассчитывается согласно выражения
.
Отсюда можно получить выражение для оценки числа проверочных символов:
. (8.35)
Граница Варшамова - Гильберта для больших значений п определяет нижнюю границу для числа проверочных разрядов, необходимого для обеспечения заданного кодового расстояния:
. (8.36)
Отметим, что для некоторых частных случаев Хэмминг получил простые соотношения, позволяющие определить необходимое число проверочных символов:
для ,
для ,
Блочные коды с и в литературе обычно называюткодами Хэмминга.
Все приведенные выше оценки дают представление о верхней границе числа при фиксированных значенияхиили определяют минимальное число проверочных символов: при заданных и .
Существующие методы построения избыточных кодов в основном решают задачу нахождения такого алгоритма кодирования и декодирования, который позволял бы наиболее просто построить и реализовать код с заданным значением . Поэтому различные корректирующие коды при одинаковыхсравниваются по сложности кодирующего и декодирующего устройств. Этот критерий является в ряде случаев определяющим при выборе того или иного кода.