
- •О.Т.Данилова Теория информации
- •Введение
- •Глава 1. Основные понятия теории информации
- •1.1. Свойства информации
- •1.2. Этапы обращения информации
- •1.3. Определение системы передачи информации. Каналы связи.
- •1.4. Алфавит сообщения
- •1.5. Источник информации
- •Глава 2. Количество информации
- •2.1. Объемный подход к измерению информации
- •2.2. Количественная мера информации р.Хартли
- •2.3. Мера информации к. Шеннона
- •2.4. Условная собственная информация. Взаимная информация
- •1 (Бит), где m – мощность алфавита.
- •Глава 3. Энтропия дискретной последовательности. Энтропия непрерывной случайной величины
- •3.1. Частная энтропия
- •Прологарифмировав последнее равенство, получим
- •3.2. Энропия типичных и нетипичных комбинаций
- •3.3. Условная энтропия
- •3.4. Энтропия объединения ансамблей
- •3.5. Канальные матрицы
- •3.6. Количество информации при неполной достоверности и статистической зависимости сообщений
- •3.7. Избыточность источника
- •3.8. Энтропия непрерывной случайной величины
- •3.9. Количество информации для непрерывных систем
- •3.10. Принцип экстремума энтропии и экстремальные распределения
- •Подставим (3.7) в (3.4):
- •3.11. Эпсилон энтропия
- •Глава 4. Общие сведения из теории сигналов
- •4.1. Классификация сигналов и систем
- •Характеристики сигналов передаваемых по каналу
- •4.3. Модуляция сигналов. Виды и характеристики носителей
- •4.4. Спектры сигналов
- •4.5. Тригонометрическая форма
- •4.6. Комплексная форма
- •4.7. Определение погрешности
- •Глава 5. Скорость передачи и пропускная способность канала связи
- •5.1. Скорость передачи информации в дискретной системе связи
- •5.2. Пропускная способность однородного симметричного канала связи
- •5.3. Пропускная способность непрерывного канала связи
- •5.4. Обмен мощности сигнала на ширину его спектра
- •5.5. Сравнение пропускной способности непрерывного и дискретного каналов связи.
- •5.6. Эффективность систем связи
- •Глава 6. Критерии описания реальных дискретных каналов
- •6.1. Описание источника ошибок на основе цепей Маркова
- •6.2. Описание источника ошибок на основе процессов восстановления
- •6.3. Описание источника ошибок на основе процессов накопления
- •6.4. Модель Гилберта
- •6.5. Модель Эллиота-Гилберта. Модель Элиота
- •6.6. Модель Беннета-Фройлиха
- •6.7. Модель Попова - Турина
- •Глава 7. Кодирование информации
- •7.1. Статистическое кодирование дискретных сообщений
- •7.2. Статистическое кодирование кодовых слов
- •Средняя длина кодового слова
- •7.3. Кодирование информации для канала с помехами
- •7.3. Разновидности помехоустойчивых кодов
- •7.4 Общие принципы использования избыточности
- •7.5. Связь корректирующей способности кода с кодовым расстоянием
- •7.6. Понятие качества корректирующего кода
- •7.7. Линейные коды
- •7.7. Математическое введение к линейным кодам
- •7.8. Линейный код как пространство линейного векторного пространства
- •7.9. Построение двоичного группового кода
- •7.10. Составление таблицы опознавателей
- •7.11. Определение проверочных равенств
- •7.12. Мажоритарное декодирование групповых кодов
- •7.13. Матричное представление линейных кодов
- •7.14. Построение циклических кодов
- •Математическое введение к циклическим кодам
- •7.17. Обнаружение одиночных ошибок
- •Исправление одиночных или обнаружение двойных ошибок
- •7.18. Обнаружение ошибок кратности три и ниже
- •7.19. Обнаружение и исправление независимых ошибок произвольной кратности
- •7.20. Методы образования циклического кода
- •7.21. Матричная запись циклического кода
- •7.22. Укороченные циклические коды
- •Глава 8. Сжатие информации
- •8.1. Основные понятия
- •8.2. Методы сжатия без потерь
- •8.3. Методы сжатия с потерями
- •8.4. Сжатие графики
- •Прямое дкп
- •8.5. Сжатие звука
- •8.6. Сжатие видеоинформации
- •Вопросы для самопроверки
- •Список литературы
7.18. Обнаружение ошибок кратности три и ниже
Образующие многочлены кодов, способных обнаруживать одиночные, двойные и тройные ошибки, можно определить, базируясь на следующем указании Хэмминга. Если известен образующий многочлен р(хт) кода длины п, позволяющего обнаруживать ошибки некоторой кратности z, то образующий многочлен g(x) кода, способного обнаруживать ошибки следующей кратности (z + 1), может быть получен умножением многочлена р(хт) на многочлен х + 1, что соответствует введению дополнительной проверки на четность. При этом число символов в комбинациях кода за счет добавления еще одного проверочного символа увеличивается до n + l.
В табл. 7.10 приведены основные характеристики некоторых кодов, способных обнаруживать ошибки кратности три и менее.
Таблица 7.10.
Показатель неприводимого многочлена |
Образующий многочлен |
Число информационных символов |
Длина кода |
3 4 5 |
(x+1)(x3 + x + 1) (x+1)(x4+ x + 1) (x+1)(x5+ x + 1) |
4 11 26 |
8 16 32 |
7.19. Обнаружение и исправление независимых ошибок произвольной кратности
Важнейшим классом кодов, используемых в каналах, где ошибки в последовательностях символов возникают независимо, являются коды Боуза-Чоудхури-Хоквингема. Доказано, что для любых целых положительных чисел m и s<n/2 существует двоичный код этого класса длины п = 2т-1 с числом проверочных символов не более ms, который способен обнаруживать ошибки кратности 2s или исправлять ошибки кратности s. Для понимания теоретических аспектов этих кодов необходимо ознакомиться с рядом новых понятий высшей алгебры.
Для произвольного линейного блокового (п, k)-кода, рассчитанного на исправление пакетов ошибок длины b или менее, основным соотношением, устанавливающим связь корректирующей способности с числом избыточных символов, является граница Рейджера: n – k 2b
При исправлении линейным кодом пакетов длины b или менее с одновременным обнаружением пакетов длины l b или менее требуется по крайней мере b + l проверочных символов.
Из циклических кодов, предназначенных для исправления пакетов ошибок, широко известны коды Бартона, Файра и Рида-Соломона.
Первые две разновидности кодов служат для исправления одного пакета ошибок в блоке. Коды Рида-Соломона способны исправлять несколько пачек ошибок.
Особенности декодирования циклических кодов, исправляющих пакеты ошибок, рассмотрены далее на примере кодов Файра.
7.20. Методы образования циклического кода
Существует несколько различных способов кодирования. Принципиально наиболее просто комбинации циклического кода можно получить, умножая многочлены а(х), соответствующие комбинациям безызбыточного кода (информационным символам), на образующий многочлен кода g(x). Такой способ легко реализуется. Однако он имеет тот существенный недостаток, что получающиеся в результате умножения комбинации кода не содержат информационные символы в явном виде. После исправления ошибок такие комбинации для выделения информационных символов приходится делить на образующий многочлен кода.
Применительно к циклическим кодам принято (хотя это и не обязательно) отводить под информационные k символов, соответствующих старшим степеням многочлена кода, а под проверочные n-k символов низших разрядов. Чтобы получить такой систематический код, применяется следующая процедура кодирования.
Многочлен а(х), соответствующий k-разрядной комбинации безызбыточного кода, умножаем на хт, где m = n-k. Степень каждого одночлена, входящего в а(х), увеличивается, что по отношению к комбинации кода означает необходимость приписать со стороны младших разрядов m нулей. Произведение а(х)хт делим на образующий многочлен g(x). В общем случае при этом получаем некоторое частное q(x) той же степени, что и а(х) и остаток r(х). Последний прибавляем к а(х)хт. В результате получаем многочлен
f(x) = a(x)xm + r(x).
Поскольку степень g(x) выбираем равной т, степень остатка r(х) не превышает m – 1. В комбинации, соответствующей многочлену а(х)хт, т младших разрядов нулевые, и, следовательно, указанная операция сложения равносильна приписыванию r(х) к а(х) со стороны младших разрядов.
Покажем, что f(x) делится на g(x) без остатка, т. е. является многочленом, соответствующим комбинации кода. Действительно, запишем многочлен а(х)хт в виде
a(x)xm = q(x)g(x) + r(x)
Так как операции сложения и вычитания по модулю два идентичны, r(х) можно перенести влево, тогда что и требовалось доказать.
a(x)xm+ r(x) = f(x) = q(x)g(x).
Таким образом, циклический код можно строить, приписывая к каждой комбинации безызбыточного кода остаток от деления соответствующего этой комбинации многочлена на образующий многочлен кода. Для кодов, число информационных символов в которых больше числа проверочных, рассмотренный способ реализуется наиболее просто.
Следует указать еще на один способ кодирования. Так как циклический код является разновидностью группового кода, то его проверочные символы должны выражаться через суммы по модулю два определенных информационных символов.
Равенства для определения проверочных символов могут быть получены путем решения рекуррентных соотношений:
(7.5)
где h-двоичные коэффициенты так называемого генераторного многочлена h(x), определяемого так
h(x) = (xn + 1)/g(x) = h0 + h1x + … + hkxk
Соотношение (7.5) позволяет по заданной последовательности информационных сигналов a0, a1, ..., ak-1 вычислить n-k проверочных символов ak, ak+1, ... ..., an-1. Проверочные символы, как и ранее, размещаются на местах младших разрядов. При одних и тех же информационных символах комбинации кода, получающиеся таким путем, полностью совпадают с комбинациями, получающимися при использовании предыдущего способа кодирования. Применение данного способа целесообразно для кодов с числом проверочных символов, превышающим число информационных, например, для кодов Боуза-Чоудхури-Хоквингема.