- •Основы Теории Информации Гордеев э.Н.
- •Содержание
- •1Введение
- •1.1Предмет курса
- •1.2Основная цель курса
- •1.3Теория информации и смежные дисциплины
- •1.4Подходы к определению понятия информация.
- •2Алфавит. Слово. Язык. Информация.
- •3Информация и алгоритм.
- •3.1Задачи, алгоритмы
- •3.1.1Задача
- •3.2Алгоритм
- •3.2.1Нормальные алгорифмы Маркова (нам).
- •3.2.2Машины Тьюринга
- •4Кодирование информации. Количество информации. Сжатие информации.
- •4.1Кодирование информации.
- •4.1.1Примеры кодировок
- •4.1.2Свойства кодировок
- •4.2Наиболее распространенные способы кодирования и их свойства. Алгоритмы кодирования.
- •4.2.1Кодирование слов и поиск минимального кода
- •4.2.2Признаковое кодирование.
- •4.2.3Признаковое кодирование и проблема распознавания.
- •4.2.4Сериальное кодирование
- •4.2.5Алфавитное кодирование.
- •4.2.5.1Неравенство Крафта.
- •4.2.5.2Префиксные коды.
- •4.2.6Кодирование натурального ряда.
- •4.2.6.1Код Элайеса.
- •4.2.6.2Код Левенштейна
- •5Количество информации. Энтропия.
- •5.1.1Энтропия по Хартли.
- •5.1.2Энтропия по Шеннону.
- •5.1.2.1Математическая модель: алфавитное кодирование случайного источника.
- •5.1.2.2Энтропия по Шеннону
- •5.1.2.3Энтропия по Шеннону и энтропия по Хартли.
- •6Теорема Шеннона
- •7Свойства энтропии.
- •8Алгоритмы кодирования
- •8.1Алгоритм Шеннона (Фано)
- •8.2Алгоритм Хаффмана
- •8.3Блочное кодирование
- •8.4Алгоритм арифметического кодирования
- •8.5Код Элайеса
- •8.6Код Левенштейна
- •9Блочное кодирование и теорема Шеннона.
- •10Канал с шумом.
- •10.1Модели каналов.
- •10.2Передача информации по двоичному симметричному каналу с шумом
- •10.2.1Схема и принципы кодирования.
- •10.3Корректирующие способности кодов. Границы мощности.
- •10.4Теорема Шеннона для канала с шумом.
- •10.4.1Факты из теории вероятности.
- •10.4.2Схема кодирования и декодирования. Вспомогательные утверждения.
- •10.4.3Вероятностное доказательство теоремы.
- •10.4.4Комбинаторное доказательство теоремы.
- •10.5Линейные коды
- •10.5.1Пример. Код Хемминга.
- •10.5.2Замечание. Совершенные коды и теорема Шеннона.
- •10.5.3Бчх – коды
- •10.6Спектр кода. Эквидистантные коды
- •11Рекомендованная литература
10.5.1Пример. Код Хемминга.
Пусть m – натуральное число. Проверочная матрица кода имеет размеры m x (2m-1).
В столбцах находятся все ненулевые последовательности длины m, представляющие собой двоичную запись числа – номера столбца. Очевидно, что любые два столбца линейно независимы, а среди троек столбцов уже есть линейно зависимые наборы. Поэтому согласно приведенной выше теореме кодовое расстояние кода Хемминга d = 3. Следовательно этот код исправляет ровно одну ошибку.
Длина кодовых слов n = 2m – 1. Число проверочных символов m = log (n + 1). Число информационных символов равно 2m – 1 - m. Отсюда следует, что число кодовых слов |C| в коде Хэмминга |C| = 2n / (1 + n).
Заметим теперь, что число точек в шаре радиуса единица равно 1 + n, и вспомним приведенную выше границу Хэмминга:
Код Хемминга исправляет одну ошибку и A(n, 3) = 2 / (1 + n). Получаем, что для Хемминга граница Хемминга достигается, «шары вокруг кодовых точек покрывают все пространство Bn».
Опр.: Код С, исправляющий t
ошибок, называется совершенным, если
.
Совершенный код – код, на котором
достигается граница Хемминга.
Сразу из определения проверочной матрицы кода Хэмминга следует простой алгоритм декодирования. Декодирование происходит сразу после вычисления синдрома принятого слова y. Для принятого слова y есть три возможности:
Ошибок не было. Тогда синдром S = y HT=0.
Ошибка ровно одна. Тогда синдром является двоичной записью (индикатором) номера бита, в котором произошла ошибка.
Произошло более одной ошибки. Тогда код Хэмминга не обеспечивает защиты от ошибок.
Пример:
m = 3, n
= 23 – 1 = 7, k =
4. Пусть информационными будут символы
(
).
U = 1100 → 0 1 1 1 1 0 0
Если U – передано, U’ – получено, рассмотрим 3 случая:
С
Заметим, что в данном примере
В общем
случае мы получаем, что синдром это UHT
=
-
сумма «локаторов ошибок».
Задача: Построить код, исправляющий t ошибок.
10.5.2Замечание. Совершенные коды и теорема Шеннона.
Еще одна теорема Шеннона связана с совершенными кодами. Эта теорема отвечает на вопрос, что будет в случае невыполнения условия второй теоремы Шеннона: R = log M / n = k / n < 1 – H(p).
В лемме (*) было доказано, что |Bpn(x)| ≤ 2nH(p). На самом деле, справедлива более точная оценка: |Bpn(x)| ~ 2nH(p) (при n → ∞). И это асимптотическое равенство достигается именно для совершенных кодов. В итоге получим, что k = n – n H(p) для совершенного кода. А отсюда можно получить, что максимум вероятности правильного декодирования достигается именно на совершенном коде.
Теорема. Если то k / n > 1 – H(p) → pn> t, t>o, то не существует метода кодирования такого, что вероятность правильного декодирования стремится к единице..
10.5.3Бчх – коды
В основу легли 2 идеи: построить такую проверочную матрицу, у которой кодовое расстояние 2t + 1 (2t столбцов линейно-независимы); нужно соответствующим образом построить алгоритм кодирования (декодирования).
Получаем t уравнений с t неизвестными, решаем их и находим, где произошли ошибки.
многочлен
степени (n-1) (
)
Для любого n существует неприводимый многочлен степени n. Пусть это h(n). Рассмотрим произвольное числовое поле:
Берем Md – определитель Вандермонда, не равный 0. Значит, любые d столбцов различны.
Код, считающий t ошибок, будет работать с m = t log n тактами. Скорость кода log 2k / m = k / n, (n – t log n) / n = 1 – t log n / n
Смысл в том, чтобы перейти от GF(2) к GF(2*) [GF(p) → GF(pk)]
Есть бинарный вектор α1…αk. Сопоставим этому вектору полином: α1 + α2x + … + αk-1xk-2
Утверждение: Для любого k существует неприводимый полином P(x), т.е. не существует Q(x) и R(x) отличных от константы, таких что P(x) = Q(x) R(x).
Берем P(x) и рассматриваем кольцо класса вычетов по P(x) (degP(x) = k). Другими словами, рассмотрим все полиномы, которые при делении на P(x) дают один и тот же остаток – они образуют один класс; таких классов конечное число.
Сколько полиномов со степенью не больше k? 2k. Т.о. всего классов вычетов по неприводимому полиному 2k.
Опр.: Неприводимый полином P(x)
называется примитивным, если все x0,
x1, … ,
лежат в разных классах вычетов.
Утверждение: Кольцо классов вычетов по P(x) является полем.
Пример: GF(2) → GF(24), P(x) = x4 + x +1
x
0
1 1000
x1 x 0100
x2 x2 0010
x3 x3 0001
x4 x+1 110
x5 x + x2 0110
x6 x2 + x3 0011
x7 1 + x + x3 1101
x8 1 + x2 1010
x9 x + x3 0101
x10 1 + x +x2 1110
x11 x + x2 + x3 0111
x12 1 + x2 + x3 + x 1111
x13 1 + x2 + x3 1011
x
14
1 + x3 1001
x15 = x0 1000
Можем решать в этом поле уравнения.
α1…αn – элементы поля GF(2k)
αi – вектор ( ) = γi
=
(0,1)-матрица
Теорема: Любые 2S столбцов m – линейно-независимые.
(α1 + … + αn)2 = α12 + … + αn2 (*)
Доказательство (от противного):
Пусть существует h столбцов (h ≤ 2S), являющихся линейно-зависимыми. Это столбцы с номерами i1…ih → γ2t-1i1 + … + γ2t-1in = (0…0)T, t = 1…S
Если перейти к элементам поля:
α 2t-1i1 + … + α 2t-1in = 0, t = 1…S (1)
Для любого четного q (1 ≤ q ≤ 2S): q = 2U (2t – 1), U ≥ 1, t ≤ S
Применим соотношение (*) к равенству (1) U раз: α 1i1 + … + α qin = 0, q = 1…2S (**)
Определитель Вандермонда
Возьмем ее и любой минор порядка (d – 1); минор будет представлять собой определитель Вандермонда порядка d – 1 αi = αj.
Теперь возьмем d = 2S + 1, т.о. любой минор порядка 2S не равен 0 → любые 2S столбцов – линейно-независимые → противоречие с (**)
Следствие: Матрица
может быть проверочной матрицей (n,
k) – кода, исправляющего
S ошибок.
Число проверочных символов БЧХ-кода для исправления S ошибок:
m ~ s log n
k = n – s log n при n → ∞, k → n
Пусть произошло 3 ошибки в позициях η, δ, ζ. Тогда при рассмотрении верхней части матрицы η + δ + ζ = ρ-1; второй части: η3 + δ3 + ζ3 = ρ*; третьей части: η5 + δ5 + ζ5 = ρ**. Система из трех уравнений с тремя неизвестными. Чем больше S, тем больше сложность алгоритма.
