- •Э.Н.Гордеев основы теории информации
- •Раздел 1. Информация и Алгоритм. Коды объектов. 12
- •Раздел 2. Сжатие информации. 30
- •Раздел 3. Передача информации. Защита от искажений. 56
- •Раздел 1. Информация и Алгоритм. Коды объектов. 10
- •Раздел 2. Сжатие информации. 29
- •Раздел 3. Передача информации. Защита от искажений. 55
- •12 Рекомендованная литература 122
- •Введение.
- •Алгоритм
- •Представление (кодирование) информации.
- •Примеры кодировок
- •Свойства кодировок
- •Способы представления (кодирования) информации.
- •Кодирование слов и поиск минимального кода
- •Признаковое кодирование.
- •Раздел 2. Сжатие информации.
- •Кодирование информации. Количество информации. Сжатие информации.
- •Сериальное кодирование
- •Алфавитное кодирование.
- •Неравенство Крафта.
- •Префиксные коды.
- •Кодирование натурального ряда.
- •Код Элайеса.
- •Код Левенштейна
- •Количество информации. Энтропия.
- •Энтропия по Хартли.
- •Энтропия по Шеннону.
- •Математическая модель: алфавитное кодирование случайного источника.
- •Энтропия по Шеннону
- •Энтропия по Шеннону и энтропия по Хартли.
- •Теорема Шеннона
- •Алгоритмы кодирования
- •Алгоритм Шеннона (Фано).
- •Алгоритм Хаффмана
- •Блочное кодирование Хаффмена.
- •Алгоритм арифметического кодирования
- •Блочное кодирование и теорема Шеннона.
- •Раздел 3. Передача информации. Защита от искажений.
- •Передача информации по каналу с шумом.
- •Модели каналов.
- •Необходимые определения.
- •Пример кода для канала с выпадением.
- •Передача информации по двоичному симметричному каналу с шумом
- •Принципы построения кодов, исправляющих ошибки.
- •Декодирование на основе таблицы декодирования.
- •Корректирующие способности кодов. Границы мощности.
- •Теорема Шеннона для канала с шумом.
- •Факты из теории вероятности.
- •XI → канал → y
- •Вторая теорема Шеннона.
- •Комбинаторное доказательство теоремы.
- •Примеры кодов, исправляющих ошибки. Линейные коды.
- •Линейные коды.
- •Спектр кода.
- •Код Хэмминга.
- •Вопросы для самопроверки.
- •Примеры билетов для контрольных работ.
- •Приложение.
- •Рекомендованная литература
Пример кода для канала с выпадением.
Построение кодов для таких каналов – сложные комбинаторные задачи. Проблема соотношения пропускной способности канала и скорости передачи кода отходит при этом на второй план. Приведем простейший пример.
Пусть дан код C,
α=(α1,α2,…,αn)
– кодовое слово. Положим
.
Опр. Cnk – кодом называется множество слов α из Bn таких, что w(α)=0 (mod k).
Утв. Cnk – код является кодом с исправлением одного выпадения при k>n.
Доказательство. Пусть в слове α выпал символ. В результате получилось слово β=( β1, β2,…, βn-1) длины n-1. Пусть правее выпавшего символа расположено N1 единиц и N0 нулей. Тогда, если выпал 0, то w(α)-w(β)= N1, а, если 1, то w(α)-w(β)= N -N0 . В обоих случаях
0≤w(α)-w(β)≤N<k.
Пусть Δβ – наименьший неотрицательный вычет числа w(β) по mod k (Это разность kp-w(β), где kp – минимальное число, кратное k и не меньшее w(β) ) .
Тогда из того, что w(α)=0 (mod k) получаем w(α)-w(β)= Δβ. Так как N1≤|β|< N -N0, то на основании сравнения чисел |β| и Δβ можно определить выпавший символ.
Если |β| ≥ Δβ, то нужно вставить в слово символ 0 так, чтобы правее него было Δβ единиц.
В противном случае вставляется 1 так, чтобы правее нее было n- Δβ нулей.
Утверждение доказано.
Пример.
Пусть N=6 и k=7. Если в слове α=110100 выпал первый символ, то получилось β=10100. В этом случае: |β| =2, w(β)=4, поэтому Δβ=3. Так как |β| < Δβ, то исходное слово получается, если в принятом слове отсчитать справа n- Δβ нулей и поставить перед ними 1.
Упражнение. В качестве упражнения можете проверить, что подобный код может исправлять одну ошибку типа вставки (вместо выпадения появляется лишний символ) или замещения 0 на 1. А при k≥2n он может исправлять одну любую из этих трех видов ошибок.
Если же выпадает несколько символов, то задача декодирования может сводится к задаче восстановления слова по фрагментам.
Опр. Фрагментом слова α называется любое слово β, буквы которого образуют подпоследовательность последовательности букв слова α.
Зная n и p можно прогнозировать длины фрагментов l. Критерий восстановления слова по фрагментам с использованием этих параметров даст k – необходимое количество фрагментов для восстановления. Отсюда можно построить алгоритм декодирования с перезапросами: декодер, получив фрагмент принимает решение о его перезапросе. Набрав необходимое количество фрагментов, декодер произведет декодирование.
Заметим, что проколы такого типа (Ack – Nac) используются на втором уровне модели OSI для случая кодов с обнаружением ошибок. (В таких кодах декодер не производит исправления ошибки, а только фиксирует ее появление. В случае же этого самого появления и используется протокол с перезапросом.)
Передача информации по двоичному симметричному каналу с шумом
Схема и принципы кодирования.
Пусть вероятность ошибки p (p < 1/2).
Теперь считаем, что источник выдает двоичное слово, и в двоичном симметричном канале шум представляет собой искажение символа с вероятностью 0<p <1/2.
Источник
Bi→ai
F(Bi)
0<p<1/2
F’(Bi)
C
Bi
Канал
F-1(Bi)
