- •Глава 1
- •Введение
- •Структура системы передачи цифровой информации
- •Основные понятия и определения
- •1.4 Геометрическая интерпретация кодирования и декодирования
- •Линейные блоковые коды
- •1.6. Таблица декодирования
- •1.7. Предельные возможности блоковых кодов
- •Глава 2 элементы алгебры
- •2.1. Поле
- •2.2 Вычет
- •2.3. Идеал
- •2.4. Корни полинома
- •Глава 3 циклические коды
- •3.1. Построение циклических кодов
- •3.2 Код Хэмминга
- •3.3. Коды бчх
- •Глава 4 схемы кодирования и декодирования циклических кодов
- •4.1. Линейные переключательные схемы
- •4.2 Схемы кодирования для циклических кодов
- •1 2 K2 k1 2 1 Рис. 4.14. Схемы кодирования для кода бчх (15,7)
- •4.3. Декодирование циклических кодов
Основные понятия и определения
Разберем схематически, как происходит процесс кодирования. Все коды можно разбить на две большие группы: блоковые и древовидные. Основное внимание будет удалено первому типов кодов.
Блоковый код
При
блоковом кодировании последовательность
информационных символов на входе
кодирующего устройства разбивается на
отрезки по
k
символов. Каждому такому отрезку ставится
в соответствие кодовая комбинация из
n(
)
символов. Только тогда, когда
,
появляется возможность исправлять и
обнаруживать ошибки.
Проследим это на следующем примере.
Пусть
k
.
Тогда
возможны следующие комбинации двоичных
символов:
Если
,
то на выходе кодера не могут появиться
никакие другие комбинации. Поэтому
любая ошибка приведет к искажению
информации: вместо одной кодовой группы
будет принята другая.
Если
,
то возможное число кодовых комбинации(слов)
увеличивается вдвое. Это следующие
слова: 000, 010, 011, 001, 100, 101, 110, 111.
Для передачи прежней информации достаточно использовать только 4 слова. Выберем для этого слова
(1.2)
и назовем их разрешенными комбинациями.
Оставшиеся неиспользованные 4 слова – это запрещенные комбинации:
.
(1.3)
На выходе кодера формируются только разрешенные кодовые комбинации. В процессе передачи какие – то символы этих разрешенных комбинаций могут исказиться. Если при этом получится запрещенная кодовая комбинация, то декодер обнаружит ошибку. Приведенный здесь код обнаруживает все одиночные ошибки.
Можно
построить код, который не только
обнаруживает, но и исправляет ошибки.
Для этого он должен обладать большей
избыточностью, т.е. иметь еще большее
n.
Пусть
и
.
В табл. 1.1 приведены все возможные
комбинации для
. В первой строке записаны информационные
слова, во второй – соответствующие им
кодовые слова, в последующих – все
прочие комбинации, которые, вообще
говоря, могут появиться на входе декодера.
Под каждым разрешенным словом помещены
такие комбинации, которые меньше всего
отличаются от этого слова. Так, в строках
3 – 7 помещены слова, отличающиеся от
соответствующих разрешенных только
одним символом. Слова последних двух
строк отличаются от разрешенных двумя
символами.
Имея такую таблицу, можно производить исправление всех однократных ошибок, т.е. ошибок, возникших в одном символе из n. Например, пусть передавалось слово 00110. Если произойдет ошибки только в одном символе, то принятая комбинация будет принадлежать первому столбцу (например, 10110). Все принятые комбинации в этом столбце соответствуют передаче информационного слова 00.
Таблица 1.1
Информационные слова |
00 |
01 |
10 |
11 |
Кодовые слова |
00110 |
01101 |
10011 |
11000 |
Прочие комбинации |
00111 00100 00010 01110 10110 00000 10100 |
01100 01111 01001 00101 11101 10101 00001 |
10010 10001 10111 11011 00011 01011 11111 |
11001 11010 11100 10000 01000 11110 01010 |
Большинство двухкратных ошибок этот код исправить не может. Допустим, что при передаче того же слова 00110 произойдут ошибки в первом и пятом символах, т.е. принята комбинация 10111. Это слово находится в третьем столбце, поэтому при декодировании будет получено информационное слово 10, следовательно, произойдет ошибка.
Для исправления ошибок большой кратности требуется значительное превышение n над k. Число n называется длиной кода. Блоковые коды обычно записываются следующим образом: (n,k). Так, код в табл. 1.1 обозначается (5,2)
Древовидный код
Наиболее
важным классом древовидных кодов
являются сверточные. При этом способе
кодирования информационная
последовательность не разбивается
предварительно на блоки из k
символов.
Информационные символы поступают на
кодер непрерывно, и он формирует символы
на выходе, соответствующие текущим
символам.
Проследим процесс получения сверточного кода на примере.
Этот тип кода удобно описывать графически, с помощью деревьев (рис. 1.3). Точки ветвления называются узлами, отходящие от них линии – ветвями.
Рис.1.3 Дерево кода с R = 1/2
На
ветвях дерева записываются символы,
которые формирует кодер. Направление
движения по узлу определяется правилом
кодирования. Пусть
и информационному нулю соответствует
движение вверх, а информационной единице
– вниз. На каждом шаге вырабатываются
2 символа. Таким образом, число символов
на выходе кодера вдвое больше числа
символов на входе.
На рис. 1.3 жирной линией показано продвижение по кодовому дереву для информационной последовательности 1001… Ей соответствует кодовая последовательность 11010011…
Декодирование сверточных кодов представляет собой, как правило, более сложную задачу, чем декодирование блоковых кодов, и часто осуществляется с помощью ЦВМ [3]. Поэтому здесь мы не будем его рассматривать.
Определения
Кодом называется совокупность разрешенных кодовых комбинации, выбранных для передачи сообщений.
В коде определена операция установления однозначного соответствия между сообщением и кодовой комбинацией. Так, в приеме блокового кодирования (5,2) кодом являются комбинации 00110, 01101, 10011, 11000
Соответствие устанавливается с помощью табл. 1.2
Таблица 1.2
-
Сообщения
00
01
10
11
Код
00110
01101
10011
11000
В примере древовидного кода соответствие устанавливается правилом продвижения в узлах.
Избыточностью кода называется число
(1.4)
Которое показывает, насколько замедляется передача информации из-за введения кодирования.
Если
n=k,
то на один символ приходится 1 дв.ед.
информации и избыточность отсутствует:
Если
же
n
,
то на один символ на выходе декодера
приходится k/n
дв.ед.
В
наших примерах избыточность кода (5,2)
равна
,
а для рассмотренного древовидного кода
она составляет
.
Вес кодовой комбинации
число нулевых символов этой комбинации.
Например,
для слова 10011
.
Расстоянием между двумя словами
называется число позиций, в которых
эти слова отличаются друг от друга.
Например,
,
01101;
Расстояние между двумя словами можно определить как вес суммарной кодовой комбинации
,
(1,5)
Где знак + означает суммирование по mod2.
В
нашем примере
.
Кодовым расстоянием d называется минимальное значение для данного кода.
Например,
для блокового кода (5,2), определенного
табл. 1,2,следующие расстояния между
словами:
;
;
;
Следовательно, кодовое расстояние
.
Заметим
попутно, что от величины
зависит
исправляющая и обнаруживающая способность
кода.
