- •Энтропия как мера неопределенности физической системы
- •Энтропия сложной системы
- •Условная энтропия
- •Основные свойства условной энтропии
- •Количественные аспекты информации
- •Количество информации, как мера снятой неопределенности
- •Объем информации
- •Взаимная информация
- •Взаимная информация
- •Вопросы
- •Упражнения
- •Лабораторная работа Свойства энтропии
- •Глава 2. Неопределенность непрерывных случайных величин Энтропия непрерывной случайной величины х
- •Количество информации для непрерывных систем
- •Принцип экстремума энтропии и экстремальные распределения
- •Сравнительная оценка сообщений, передаваемых по нормальному закону и равновероятному закону распределений
- •Епсилон -энтропия (ε-энтропия )
- •Вопросы
- •Упражнения
- •Глава3. Глава 3 Передача информации по каналам связи
- •Источники сообщений
- •Избыточность информации
- •Передача информации по каналу связи. Пропускная способность канала
- •Матрица для нахождения условной вероятности
- •Матрица условных вероятностей имеет вид
- •Согласование скорости выдачи информации, выдаваемой источником, с пропускной способностью канала связи
- •Согласование оконечных устройств с каналами связи
- •Вопросы
- •Упражнения
- •Лабораторная работа Скорость передачи информации и пропускная способность каналов связи
- •Глава4. Кодирование информации
- •Префиксные коды
- •Основные теоремы кодирования
- •Оптимальное кодирование
- •Код Шеннона-Фано
- •Блочное кодирование
- •Код Хаффмана
- •Совмещенный способ построения кода Хаффмана Совмещенный способ построения кода Хаффмана – объединение двух процессов: обычного алгоритма построения и метода дерева.
- •Сжатие информации
- •Классификация сжатия по виду информации
- •1) Побуквенное сжатие
- •2) Сжатие слов и словосочетаний
- •3) Сжатие и свертывание текста
- •4) Сжатие массивов чисел
- •5) Сжатие графической информации
- •Вопросы
- •Упражнения
- •Лабораторная работа Кодирование информации
- •Содержание отчета
- •Глава 5. Помехоустойчивое кодирование
- •Коды с обнаружением ошибок
- •1. Код с проверкой на четность.
- •2. Код с постоянным весом.
- •Корректирующие коды
- •Код Хэмминга
- •Проверяем ее
- •Техническая реализация кода Хэмминга
- •Декодирование циклических кодов
- •Вопросы
- •Упражнения
- •Приложение
Код Хэмминга
Код Хэмминга, являющийся групповым
(n,k) кодом,
с минимальным расстоянием d=3
позволяет обнаруживать и исправлять
однократные ошибки. Для построения кода
Хэмминга используется матрица H.
,
где Ak-
транспонированная подматрица, En-k
-
единичная подматрица порядка n-k.
Если Х - исходная последовательность,
то произведение Х·Н=0. Пусть E-
вектор ошибок. Тогда (Х+Е)·Н = Х·Н+Е·Н =
0+Е·Н=E·H -
синдром или корректор, который позволяет
обнаружить и исправить ошибки. Контрольные
символы e1 ,e2
,...,er
образуются из информационных символов,
путем линейной комбинации
,
где аj={0,1} -
коэффициенты, взятые из подматрицы A
матрицы H.
Рассмотрим Построение кода Хэмминга для k=4 символам. Число контрольных символов r=n-k можно определить по неравенству Хэмминга для однократной ошибки. Но так, как нам известно, только исходное число символов k, то проще вычислить по эмпирической формуле
,
(5.2)
где [.] -
означает округление до большего
ближайшего целого значения. Вычислим
для k=4
.
Получим код (n,k)=(7,4);
n=7; k=4;
r=n-k=3;
d=3. Построим матрицу H.
Контрольные символы ej
определим по формуле
.
Например,
.
Для простоты оставляем только слагаемые
с единичными коэффициентами. В результате
получим систему линейных уравнений, с
помощью которых вычисляются контрольные
разряды. Каждый контрольный разряд
является как бы дополнением для
определенных информационных разрядов
для проверки на четность.
При декодировании вычисляем корректор K=k4k2k1
Если корректор равен нулю, следовательно,
ошибок нет. Если корректор не равен
нулю, то местоположение вектор-столбца
матрицы H, совпадающего
с вычисленным корректором, указывает
место ошибки. При передаче может
возникнуть двойная и более ошибка.
Корректор также не будет равен нулю. В
этом случае произойдет исправление
случайного символа и нами будет принят
неверный код. Для исключения такого
автоматического исправления вводится
еще один символ
для
проверки всей комбинации на четность.
Кодовое расстояние d=4.
Тогда матрица H будет
иметь вид
Пример 5.4. Дана 1101 - исходная комбинация (k=4). Закодировать ее в коде Хэмминга.
По формуле (5.2) находим число контрольных символов r=3. Берем регистр из 7 ячеек памяти. Размещаем исходную комбинацию в ячейках 3,5,6,7.
1 2 3 4 5 6 7
* * 1 * 1 0 1
Находим контрольные символы
е4 = 5 + 6 + 7 = 1 + 0 + 1 = 0
е2 = 3 + 6 + 7 = 1 + 0 + 1 = 0
е1 = 3 + 5 + 7 = 1 + 1 + 1 = 1
Закодированная комбинация будет иметь вид
1 2 3 4 5 6 7
1 0 1 0 1 0 1
Допустим, что при передаче возникла ошибка, и мы приняли неверную комбинацию
1 2 3 4 5 6 7
1 0 1 0 1 1 1
Проверяем ее
к 4 = 4 + 5 + 6 + 7 = 0 + 1 + 1 + 1 = 1
к2 = 2 + 3 + 6 + 7 = 0 + 1 + 1 + 1 = 1
к1 = 1 + 3 + 5 + 7 = 1 + 1 + 1 + 1 + 0
K=
-
в шестом разряде ошибка.
Если бы нам понадобилось построить код и для проверки двойных ошибок, необходимо было бы ввести еще один дополнительный нулевой разряд.
Получим следующий код
0 1 2 3 4 5 6 7
0 1 0 1 0 1 0 1
При передаче и возникновении ошибки код будет иметь вид
0 1 2 3 4 5 6 7
0 1 0 1 0 1 1 1
Проверка в этом случае показала бы, что корректор K=110, а проверка всей комбинации на четность E0 = 0+1+0+1+0+1+1+1=1. Это указывает на одиночную ошибку. Допускается автоматическое исправление ошибки.
Существует следующий алгоритм декодирования кода Хэмминга с d=4
Корректор - K |
Значение E0 |
Вывод |
K=0 |
E0=0 |
Ошибок нет |
K#0 |
E0#0 |
Произошла одиночная ошибка |
K#0 |
E0=0 |
Произошла двойная ошибка. Исправление запрещено. |
K=0 |
E0#0 |
Произошла тройная или более нечетная ошибка |
Код (7,4) является минимально возможным кодом с достаточно большой избыточностью. Эффективность кода (k/n) растет с увеличением длины кода
Длина кода - n |
7 |
15 |
31 |
63 |
Число информационных разрядов - k |
4 |
11 |
26 |
57 |
Число контрольных разрядов - r |
3 |
4 |
5 |
6 |
Эффективность кода k/n |
0,57 |
0,73 |
0,84 |
0,9 |
