
- •А.А. Кузьмин
- •1. Энтропия вероятностной схемы
- •1.1.Основные принципы, понятия и определения теории информации
- •1.2.Количество информации в сообщении
- •Энтропия источника сообщений
- •1.3.Условная энтропия
- •Взаимная информация и взаимная энтропия
- •1.7. Скорость создания информации дискретным источником без памяти
- •2. Элементы теории кодирования информации
- •Основные характеристики кодов
- •1.4.Теоремы кодирования Шеннона
- •Скорость передачи информации по каналу связи определяется количеством передаваемой информации и интервалом времени ее передачи:
- •Таким образом, для реализации помехоустойчивого кодирования в канале связи с помехами, способного обеспечить сколь угодно высокую степень верности, необходимо выполнение условия
- •Контрольные вопросы
- •3. Простые (безызбыточные) коды
- •3.4. Примеры неравномерных кодов
- •Построение кодового дерева Шеннона-Фано
- •Общие принципы построения помехоустойчивых кодов
- •Классификация помехоустойчивых кодов
- •Основные характеристики и корректирующие свойства блочных кодов
- •Линейные блочные коды с обобщенными проверками на четность
- •Формирование (n, k) кода с обобщенной проверкой на четность
- •Структурные схемы кодеров и декодеров линейного кода
- •Принцип построения циклического кода
- •Алгоритм декодирования циклических кодов
- •Структурная схема кодера циклического кода
- •Бчх коды
- •Рекуррентные коды. Кодирование с перемежением
- •Принцип построения рекуррентных (сверточных) кодов
- •Декодирование сверточных кодов
- •6. Пропускная способность каналов связи
- •Пропускная способность непрерывного канала связи
- •Пути повышения пропускной способности непрерывных каналов связи
- •1.5.Пропускная способность дискретного канала связи без помех
- •Контрольные вопросы
- •Элементы теории кодирования информации
- •Простые (безызбыточные) коды
- •Помехоустойчивые блочные коды
- •5. Рекуррентные коды. Кодирование с перемежением
- •6. Пропускная способность каналов связи
- •. Пропускная способность дискретного канала связи без помех 98
- •Основы теории информации
Формирование (n, k) кода с обобщенной проверкой на четность
Рассмотрим вопрос формирования (задания) (n, k) кода с проверкой на четность.
Такой код содержит Nр = 2 k разрешенных кодовых комбинаций, а остальные N - Nр = 2 n - 2k не используются и относятся к группе запрещенных.
Описание такого кода можно осуществить с помощью порождающей (образующей) матрицы, каждая строка которой имеет длину n (кодовое слово, содержащее n символов), а количество строк k определяет количество разрешенных кодовых комбинаций:
.
Порождающая матрица Gn, k может быть представлена совокупностью двух матриц:
- информационной Gk , k , размерностью k × k , отражающей информационные кодовые символы всех разрешенных кодовых слов;
- проверочной Br, k размерностью r × k, отражающей всю совокупность проверочных символов разрешенных кодовых слов:
На практике в качестве информационной матрицы используется единичная матрица Еk:
.
Проверочная матрица Br, k строится путем подбора различных r–разрядных комбинаций, удовлетворяющих условиям: количество единиц в строке должно быть не менее dmin – 1 (ωстр ≥ dmin – 1); сумма по модулю 2 любых двух строк должна быть не менее dmin – 1 единиц.
Все возможные разрешенные кодовые комбинации строятся на основе линейного комбинирования строк порождающей матрицы.
Для построения и декодирования более удобной является так называемая проверочная матрица Н, состоящая из r строк и n столбцов. Образуется проверочная матрица следующим образом.
Вначале строится единичная матрица Еk , затем к ней слева приписывается матрица Bk, r , состоящая из k столбцов и r строк, причем каждая ее строка соответствует столбцу проверочных разрядов матрицы Br, k порождающей матрицы Gn, k , т. е. Bk, r = Вr, k Т:
Проверочная матрица при этом имеет вид
.
С помощью проверочной матрицы очень просто определяются значения неизвестных проверочных символов по известным информационным символам. Для этого составляется система уравнений проверок на четность (так называемых проверочных уравнений), каждое из которых представляет собой сумму тех информационных разрядов, которые в i-й строке матрицы Bk , r помечены единицами.
Пример. Построить порождающую и проверочную матрицы систематического кода, предназначенного для передачи 16 сообщений и способного исправлять одиночные ошибки.
Для такого кода число разрешенных кодовых комбинаций Nр равно 16, откуда определяем число информационных символов k = 4. Для исправления одной обнаруженной ошибки код должен иметь кодовое расстояние dmin = 3.
Определим общее число символов в кодовой комбинации из условия соотношения общего числа символов и числа информационных символов:
,
,
из чего следует
.
Из представленного выражения находим: n = 7, r = 3, k = 4.
Таким образом, порождающая матрица состоит из единичной матрицы размером 4 × 4 и проверочной матрицы размером 3 × 4. С учетом того, что количество единиц в строке должно быть не менее dmin – 1, т.е. не меньше 2, а общее число проверочных кодовых символов равно 3, в качестве проверочных выберем следующие комбинации: 111, 110, 101 011.
В проверочную матрицу Br, k = B3,4 эти комбинации могут входить в произвольном порядке, так что можно получить несколько равнозначных проверочных матриц:
причем с любой из них может быть построена порождающая матрица. Так, например, для В2 имеем
.
С учетом нулевой комбинации 0000000 и четырех комбинаций порождающей матрицы могут быть получены все 16 разрешенных кодовых комбинаций, для чего следует произвести все возможные суммирования строк порождающей матрицы.
Для построения проверочной матрицы Н по известной порождающей матрице G7, 4 найдем сначала матрицу В4, 3 , которая является транспонированной к матрице В3, 4 из состава порождающей матрицы G7, 4:
,
откуда
После приписывания к ней единичной матрицы Е3 имеем проверочную матрицу
.
По этой матрице составляем систему проверочных уравнений для определения системы проверочных символов:
b1 = a1 + a3 + a4;
b2 = a1 + a2 + a4;
b3 = a1 + a2 + a3.
С помощью этой системы легко закодировать любое сообщение. Пусть, например, необходимо передать информационную комбинацию 0 1 0 0. Тогда
b1 = 0 + 0 + 0 = 0;
b2 = 0 + 1 + 0 = 1;
b3 = 0 + 1 +0 = 1,
и кодированное сообщение имеет вид 0 1 0 0 0 1 1.
Допустим, что передавалось сообщение 0 1 0 0 0 1 1, но под действием мешающих факторов была принята кодовая комбинация 0 1 0 1 0 1 1, т. е. ошибка наблюдается в четвертом разряде. Проверочные уравнения, закладываемые в алгоритм декодера, дают результат:
b1 = a1 + a3 + a4 = 0 + 0 + 1 = 1;
b2 = a1 + a2 + a4 = 0 + 1 + 1 = 0;
b3 = a1 + a2 + a3.= 0 + 1 + 0 = 1.
Замечаем, что результаты двух первых проверочных уравнений показывают наличие ошибки, а третье уравнение – отсутствие ошибки. Из него следует, что символы a1 , a2 , a3 переданы без ошибки, а символ a4 – с ошибкой.
Таким образом:
- порождающая матрица Gn, k позволяет представить весь набор кодовых комбинаций в удобной и компактной форме. С помощью этой матрицы можно достаточно просто построить кодовую комбинацию по известным информационным символам, т. е. представить неизбыточное сообщение в закодированном данным кодом виде;
- проверочная матрица Нn, r обычно используется для построения кодирующих и декодирующих устройств, так как определяет алгоритм нахождения проверочных разрядов по информационным символам;
- проверочная матрица очень удобна для нахождения места ошибки в принятой кодовой комбинации.
В настоящее время существует большое количество разнообразных линейных кодов, которые строятся на основе обобщенных проверок на четность. К ним относятся коды Хэмминга, Голея, Рида – Маллера и др.