Корректирующие способности кодов.
Очевидно, что параметры (n, M, d)-кода зависят друг от друга, отсюда следует, что для каких-то значений этой тройки параметров коды существуют, а для каких-то нет. В приведенном выше примере декодирования на основе таблицы декодирования был построен (5,4,3)- код. Уже из определения таблицы декодирования и описанной выше схемы следует, что, например, (5,4,5)-код построить нельзя, так как для любого (5,4, d)- кода в столбце таблицы декодирования будет 7 элементов, а в шаре радиуса 2, который требуется для (5,4,5)-кода, 15 точек. В этом разделе будут приведены несколько утверждений, которые помогают ответить на вопрос о существовании кода с заданными параметрами. Но для начала сформулируем очевидное утверждение. Определение. Код называется кодом, исправляющим t ошибок, если алгоритм декодирования правильно декодирует все слова, в которых при передаче по каналу произошло не более t ошибок. Утверждение. (n, M, d)-код – код с исправлением Замечание. Есть еще коды, обнаруживающие ошибки. Опр. Код называется кодом, обнаруживающим t ошибок, если в случае, когда произошло не более t ошибок, декодер выдает сообщение об ошибке. Утверждение. (n, M, d)-код обнаруживает Лекция 13. Теорема Шеннона для канала с шумом.
Введение. Есть несколько теорем Шеннона. Одна была рассмотрена выше (теорема Шеннона для канала без шума). Здесь мы докажем еще одну теорему Шеннона и об одной просто упомянем. (Эти теоремы известны как теоремы Шеннона для канала с шумом.) В теореме Шеннона для канала с шумом будет показано, что существуют коды, когда для любого ε>0 при V(C)< 1- H(p) вероятность ошибки декодирования не более ε. Рассмотрим некоторый код C = { x 1… xM }, где { x 1… xM }– кодовые слова (вектора Bn).
Применяем декодирование в ближайшее слово (по принципу наибольшего правдоподобия и согласно приведенной выше схеме декодирования, а,в случае нескольких вариантов, в кодовое слово с наименьшим номером). Обозначим через T(C) таблицу декодирования. Передача Прием a x 1 T(C) – таблица
… … … xM
Зададим некоторое ρ>0. Тогда в ситуации 1 таблица Tρ(C) состаляется так, чтобы под каждым кодовым словом Замечание. Подчеркнем еще раз, что кодом называется любое подмножество булева куба Bn мощностью M. Поэтому не любой код будет кодом, исправляющим ошибки. Но к любому коду можно формально применить описанную выше схему декодирования. Все точки кода окружаем шарами радиуса ρ, а полученный вектор декодируем в центр шара. Если же вектор попадает в несколько кодовых шаров, то, возможно, что произошла ошибка декодирования. Правило, по которому в этом случае декодер производит декодирование несущественно. Например, применяется какое-нибудь дополнительное правило декодирования: в случайный, в ближайший и т.п. Возьмем точку x в Bn и шар S[ pn] (x) радиуса [ pn] с центром в этой точке. Оценим число точек в нем. Лемма 13.1. Справедливо неравенство | S[ pn] (x)| ≤ 2 nH ( p ) Доказательство. | S[ pn] (x)| = Вспомним, что 0 ≤ p < 1\2. Согласно принципу наибольшего правдоподобия – декодирование в ближайшее кодовое слово – выполняется соотношение (1 – p)n ≥ p(1 – p)n-1 ≥ … ≥ pk(1-p)n-k.
Отсюда следует.
где Тогда | S [ pn ](x)| ≤ (p [ pn ] (1 – p) n – [ pn ])-1 = Лемма доказана. Комбинаторное доказательство. Теорема 13.1. (Вторая теорема Шеннона). Для любого R: 0 < R < C (ρ), такого что M=2[nR], выполняется соотношение: P *(M, n, p) Доказательство. Пусть имеется код Vk Рассмотрим 3 функции:
Пусть Ak(i) – число векторов в Bn, находящихся на расстоянии i от некоторого кодового слова кода Vk и декодируемых в это кодовое слово. Тогда P (Vk) = 1) 2) расстояние от a до b равно i, 3) b декодируется в a. В формуле для вероятности правильного декодирования P (Vk) параметр Ak(i) – это число точек из Всего таких кодов Усредняем вероятность правильного декодирования по всем кодам и получаем среднюю вероятность правильного декодирования
Рассмотрим саму внутреннюю сумму в последней формуле приведенных выше выкладок. Эта сумма равна числу кодов Vk таких, что Отметим два комбинаторных факта и продолжим начатую выше цепочку соотношений. 1) Число пар точек из 2) Справедливо известное комбинаторное равенство
Далее из (13.1) имеем (=) Мы доказали одно из основных равенств, которое будем использовать ниже.
Отметим несколько моментов: 1) Функция 2) Тогда функция 3) Сумма выпуклых функций выпукла. 4) Выпуклая функция от выпуклой функции выпукла. 5) Отсюда следует, что функция f(i)= 6) Вспомним неравенство Йенсена. Пусть даны числа α 1 … αn, αi> 0,
7) В качестве α i возьмем Используя 1-7, получим
Далее используем очевидные соотношения
Заметим далее, что максимальная вероятность больше средней, т.е. P *(M, n, p)≥ Из этого факта и соотношений (13.2), (13.3), (13.4) получаем: P *(M, n, p) ≥ = Далее
Теперь устремляем n→∞ и раскладываем в ряд, оставляя главные члены каждого слагаемого. Получаем
=1- Что асимптотически при n→∞ равно
Вспомним лемму (13.1): | S[ pn] (x)| ≤ 2 nH ( p ). Кроме того, заметим, что по условию: 0 < R < C (ρ), M=2[nR]. Отсюда получаем
Таким образом мы доказали, что при 0 < R < C (p) и n→∞ справедливо неравенство P *(M, n, p)> 1- 2 n(R-C(p)). Но это значит, что P *(M, n, p) →1 при n→∞. Теорема доказана. Дополнения и замечания. Теорема Шеннона – это теорема существования, и она не дает методов построения кодов. Разбор, классификация и общее представление совокупности таких методов – предмет отдельной дисциплины – теории кодирования. А что будет, если R>C(p)? На этот вопрос отвечает третья Теорема Шеннона. Теорема 13.2. (Третья теорема Шеннона.) Для любого R: R > C (p)>0, такого что M=2[nR], не существует кода C, для которого бы выполнялось соотношение: PC (M, n, p) →1 при n→∞. Мы оставим эту теорему без доказательства. Доказательство этой теоремы базируется на нескольких фактах (см. [7]). В лемме 13.1 было доказано, что | Bpn (x)| ≤ 2 nH ( p ). На самом деле, справедлива более точная оценка: | Bpn (x)| ~ 2 nH ( p ) (при n → ∞). И это асимптотическое равенство достигается для совершенных кодов (см. ниже). В итоге получим, что
k = n – n H (p) для совершенного кода. А отсюда можно получить, что максимум вероятности правильного декодирования достигается именно на совершенном коде. После этого в качестве кода C при доказательстве теоремы можно брать только совершенный код. А это уже конструкция с определенными свойствами, которые и используются для доказательства теоремы.
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|