Автор: Пользователь скрыл имя, 05 Апреля 2012 в 07:52, контрольная работа
Дан алфавит из 8 букв. Пусть z1,z2,z3,z4,z5,z6,z7,z8 заданный алфавит.
Даны вероятности появления букв: .
По алгоритму Шеннона - Фано расположим буквы в порядке убывания их вероятностей и разделим на группы c примерно одинаковой суммарной вероятностью до тех пор, пока в каждой подгруппе у нас не останется по одной букве. Результат разбиения представим в виде следующей таблицы:
Вариант № 8.
1. Дан алфавит из 8 букв. Пусть z1,z2,z3,z4,z5,z6,z7,z8 заданный алфавит.
Даны вероятности появления букв: .
По алгоритму Шеннона - Фано расположим буквы в порядке убывания их вероятностей и разделим на группы c примерно одинаковой суммарной вероятностью до тех пор, пока в каждой подгруппе у нас не останется по одной букве. Результат разбиения представим в виде следующей таблицы:
Буква(xi) | Вероятность появления, P(xi) | Уровень разбиения | Коды |
z1 | 1/2 | I | 1 |
z2 | 1/4 | II | 01 |
z3 | 1/8 | III | 001 |
z4 | 1/16 | VI | 0001 |
z5 | 1/32 | V | 00001 |
z6 | 1/64 | VI | 000001 |
z7 | 1/128 | VII | 0000001 |
z8 | 1/128 |
| 0000000 |
В общем случае для алфавита из 8 букв средняя длина кодовой комбинации будет меньше 3, но больше энтропии алфавита.
Вычислим энтропию алфавита:
Вычислим среднюю длину кодовой комбинации:
Средняя длина кодовой комбинации в нашем случае точно равна энтропии.
2. Дан циклический код (7,4) с производящим многочленом .
Покажем, что код исправляет все однократные ошибки.
Циклическому коду, исправляющему однократные ошибки необходимо, чтобы каждой однократной ошибке соответствовал свой остаток от деления многочлена принятой комбинации на производящий многочлен.
Покажем, что код обнаруживает все пятикратные ошибки.
Пусть имеется кодовая комбинация , где -многочлен степени . Добавим пятикратную ошибку -многочлен степени , имеющий 5 ненулевых коэффициентов.
, где , а степень .
Необходимо доказать, что если ошибка сама является кодовой комбинацией, то данный код не исправляет пятикратные ошибки.
Будем варьировать .
1 степень.
. Видим, что в многочлене 4 ненулевых коэффициента.
2 степень.
Рассмотрим все возможные значения коэффициентов и .
Пусть . Тогда получаем , 4 ненулевых коэффициента.
Пусть . Тогда , 3 ненулевых коэффициента.
Пусть . Тогда , 3 ненулевых коэффициента.
Пусть . Тогда , 4 ненулевых коэффициента.
3 степень.
Рассмотрим все возможные значения коэффициентов , и . Для удобства оформим результаты в таблицу.
Значения коэффициентов | Многочлен | Количество ненулевых коэффициентов | ||
0 | 0 | 0 | 3 | |
0 | 0 | 1 | 4 | |
0 | 1 | 0 | 4 | |
0 | 1 | 1 | 3 | |
1 | 0 | 0 | 4 | |
1 | 0 | 1 | 7 | |
1 | 1 | 0 | 3 | |
1 | 1 | 1 | 4 |
Мы видим, что ни у одного из полученных многочленов нет 5 ненулевых коэффициентов. Таким образом, циклический код обнаруживает все пятикратные ошибки.