Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTI Lections2011.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.74 Mб
Скачать

10.4.3Вероятностное доказательство теоремы.

Теорема Шеннона: для любого R: 0 < R < C(ρ) P*(M, n, P) → 0, n → ∞

Доказательство: Пусть передаем xi, принято некое y, оцениваем ошибку декодирования. Ошибочное декодирование:

xj

Б

y

xi

лиже, чем xi ни одной точки к y нет y декодируется в xi.

Кодовые точки упали как угодно, на них строим шар радиуса ρ.

Декодируем так: если точка у попала в шарик радиуса ρ вокруг кодовой точки, то декодируем ее в данную кодовую точку, если в этом шаре нет других точек; если есть, то у декодируем в произвольно заданную точку. Это будет ошибкой. Вводим функцию (1), тогда вероятность ошибки оценивается суммой (2)

Применяем лемму ( ): Rn = log M, M = 2Rn

1\n log (P*(M, n, P) – ε\2) ≤ 1\n log |Sρ|M\2n = 1\n log |Sρ|2Rn-n RC(ρ) – 1 – O(n-1\2) + 1 → P*(M, n, P) < ε\2 + 2-δn. Теорема доказана.

10.4.4Комбинаторное доказательство теоремы.

Теорема Шеннона:

*(M,n,p) 1, R < 1 – H(p).

Доказательство:

Пусть (есть , код , где Vk – коды C.

Тогда *( Vk) – вероятность правильного декодирования для Vk .

Рассмотрим 3 функции:

Тогда *( Vk) = - вероятность правильного декодирования.

- если выполняются все три условия , расстояние от a до b равно i, b декодируется в a, вероятность правильного декодирования – это число точек в , которые находятся на расстоянии i от некоторого кодового слова и декодируются в это кодовое слово.

//Всего таких кодов : .

*( M,n,p) =

О стальную (M-1) точку выбирают произвольно:

aближайшая из всех кодовых точек.

, где - количество точек из в шаре радиуса .

Так сколько же кодов, где ?

Есть несколько моментов:

  1. Функция Cx выпукла вверх.

  2. Сумма выпуклых функций выпукла.

  3. Выпуклая функция от выпуклой функции выпукла.

- выпукла тоже вверх.

- выпукла вниз.

В качестве αi возьмем , где

αi =

Используя и получим .

*(M,n,p) = ,

где

10.5Линейные коды

Опр.: Код C Bn называется групповым, если для любых α, β C: α + β C; групповому

коду обязательно принадлежит нулевой вектор.

Если код не является бинарным, то понятия линейного и групповых кодов не совпадают. В случае бинарного кода: Bn – линейное пространство; зададим в нем подмножество векторов C Bn, и для любых α, β C: α + β C → подмножеству принадлежит линейная комбинация → C – подпространство Bn. Пусть dimC =k, |C| = 2k. Согласно определению: если C – групповой код, d(c) = min |α| (α С, α 0).

Для любого линейного кода существуют 2 матрицы: G – порождающая, H – проверочная.

Для любого β *принадлежит* C: β – линейная комбинация строк G. Если dimC = k, то G должна содержать k строк.

При построении кода (алгоритмов кодирования и декодирования) C не используется, чаще используется матрица H.

Опр.: Код С* Bn называется ортогональным C, если для любых α, β: α С*, β С,

αβ = 0. Если dimC = k, то dimC* = nk. При этом порождающей матрицей С*

является проверочная матрица кода С H.

Свойства H: для любого α С, αHT = 0.

Пример: Код с проверкой на четность.

dimC = n – 1, dimH = 1, H = (11…1)1xn

Вся алгоритмика – решение систем уравнений на линейных полях.

Элементарные преобразования матриц:

  1. Перемена местами строк.

  2. Умножение строки на число.

  3. Сложение строки с линейной комбинацией других строк.

  4. Перемена столбцов местами.

Опр.: Коды C и D называются эквивалентными, если G(C) можно получить из G(D) с

помощью элементарных преобразований.

Утверждение: Для любого С существует эквивалентный код С’ такой, что

В находятся информационные столбцы, в - проверочные столбцы.

Опр.: Код с порождающей матрицей вида ( ) называется систематическим.

В систематическом коде именно первые k символов являются информационными, без P G(C) является просто порождающей матрицей всего кода. Проверочных символов (nk). В H(C) (n k) строк, каждая строка – соотношение, задающее линейную комбинацию: 1-я – 10…0, 2-я – 01…0 и т.д.

Пример:

n = 5, k = 3 и

//Пусть α1,α2, α3 – информационные символы, α4, α5 – проверочные.

Алгоритм кодирования осуществляется следующим образом: любая строка H дает проверочную комбинацию.

d(C) = 2

Утверждение: d(C) = d, любые (d – 1) столбцов H линейно-независимые.

Для линейных кодов используется алгоритм декодирования «стандартная расстановка».

Опр.: Синдром линейного кода S = αHT.

Если v CS = 0.

Пусть вектор 11110, S = (1 0)T.

Для кодирования используется матрица стандартной расстановки. 1-я строка – код, 2-я строка – некодовые вектора с минимальным количеством единиц, складываем ее со всеми кодовыми векторами.

00000 10011 01010 11001 00101 10110 01111 11100

00001 10010 01011 11000 00100 10111 01110 11101

00010 10001 01000 11011 00111 10100 01101 11110

10000 00011 11010 01001 10101 00110 11111 01100

Разбиваем Bn с помощью С на смежные классы, образующие этих классов – 1-й столбец. Когда декодируем, вектор, попавший в 1 столбец, декодируем в верхнее кодовое слово.

У тверждение: U – кодовое слово, U U+ e, e – вектор ошибки; стандартная расстановка правильно декодирует тогда и только тогда, когда вектор ошибки – образующая смежного класса. Целью построения является нахождение таких кодов, которые при минимальном числе строк содержали бы максимальное число линейно-независимых столбцом.

Приведем теперь два примера известных кодов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]