Автор: Пользователь скрыл имя, 20 Марта 2012 в 21:48, контрольная работа
Работа содержит 6 задач по дисциплине : "Основы теории информации"и их решения
Задача №1………………………………………………………………………………………………………………стр.3
Задача №2………………………………………………………………………………………………………………стр.6
Задача №3………………………………………………………………………………………………………………стр.9
Задача №4………………………………………………………………………………………………………………стр.13
Задача №5………………………………………………………………………………………………………………стр.17
Задача №6………………………………………………………………………………………………………………стр.22
Вычислим значения проверочных символов по следующему алгоритму:
т.к. количество единиц в принятых информационных символах (λ*i) нечетное
то проверочные символы
Исходя из выше сделанного вывода запишем вторую группу проверочных символов:
ej** = 1 1 0 1 1
Произведем суммирование по модулю два вычисленных ej** и принятых ej* проверочных символов:
ej* 0 0 1 1 0
ej** 1 1 0 1 1
1 1 1 0 1
Получаем синдром ошибок равный Х = 1 1 1 0 1
т.к. синдром ошибок Х ≠ 0, то ошибки присутствуют в полученных информационных символах
Для нахождения ошибки в информационной посылке воспользуемся таблицей 5.4 (УП Основы теории информации, А.М. Карлов, Е.Н. Авдеев, стр. 132)
Таблица 5.4
λi |
λ1 |
λ 2 |
λ 3 |
λ 4 |
λ 5 |
X |
0 1 1 1 1 |
1 0 1 1 1 |
1 1 0 1 1 |
1 1 1 0 1 |
1 1 1 1 0 |
ej |
e1 |
e 2 |
e 3 |
e 4 |
e 5 |
X |
1 0 0 0 0 |
0 1 0 0 0 |
0 0 1 0 0 |
0 0 0 1 0 |
0 0 0 0 1 |
Исходя из таблицы 5.4 находим полученный синдром ошибок Х = 1 1 1 0 1 , следовательно ошибка находится в первом информационном символе информационной посылки (λ4).
Запишем исправленную кодовую комбинацию инверсного кода:
Λ*испр = 0 0 1 1 0 0 0 1 1 0
Запишем принятую информационную посылку и информационную посылку полученную в 1 пункте:
Λ*инф = 0 0 1 0 0
ΛинФ = 0 0 1 1 0
λ*испр = 0 0 1 1 0
Вывод: в этом задании использовался инверсный код. По его алгоритму была найдена ошибка, которая в последствии была исправлена. Этот код позволяет исправлять все однократные ошибки, другие ошибки инверсным кодом обнаруживаются. Для этого кода не обнаруживаются только ошибки четной кратности. Из приведенной задачи видно, принятая информационная посылка не соответствует начальной информационной посылки. Но в ходе проверки мы выяснили, где находится ошибка и это видно, если посмотреть исправленную информационную посылку.
Задача 4. Код Хемминга.
А) Информационная посылка Хинф в десятичном исчислении совпадает с номером Вашего варианта Хинф = Nвар.
1)
Записать информационную
2) Записать кодовую комбинацию кода Хемминга Λ, соответствующую Вашей информационной посылке.
В) На приемной стороне принята кодовая комбинация кода Хемминга Λ* (табл. 3).
1) Проверить, есть ли ошибка в принятой кодовой комбинации.
2) Если ошибка есть, то исправить ее и записать Λ*испр. – исправленную кодовую комбинацию кода Хемминга.
3)
Записать принятую
Таблица 3
Nвар. |
λ*1 |
λ*2 |
λ*3 |
λ*4 |
е*1 |
е*2 |
е*3 |
6 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
Решение
Исходя из своего варианта запишем информационную посылку:
Хинф = 6
Далее запишем информационную посылку четырехэлементным двоичным кодом:
Λинф = 0 1 1 0
Запишем кодовую комбинацию кода Хемминга, соответствующую информационной посылке. Для этого необходимо найти проверочные символы информационной посылки используя формулу
и таблицу 5.5 (УП Основы теории информации, А.М. Карлов, Е.Н. Авдеев, стр. 134)
Таблица 5.5
λi ej |
1 |
2 |
3 |
4 |
1 |
0 |
1 |
1 |
1 |
2 |
1 |
0 |
1 |
1 |
3 |
1 |
1 |
0 |
1 |
Λ = 0 1 1 0 0 1 1
Запишем полученную принятую комбинацию:
Λ* = 0 1 1 0 1 1 1
λ*инф е*j
Для нахождения ошибки, вычислим вторую группу проверочных символов используя формулу:
Получаем:
Произведем суммирование по модулю для вычисленных ej** и принятых ej* проверочных символов:
ej* 1 1 1
ej** 0 1 1
1 0 0
Получаем синдром ошибок Х = 1 0 0.
т.к. синдром ошибок не равен 0, то делаем вывод, что в принятой кодовой комбинации присутствуют ошибки.
Для того, чтобы найти ошибку на приемной стороне воспользуемся таблицей 5.6 (УП Основы теории информации, А.М. Карлов, Е.Н. Авдеев, стр. 135)
Искаженный символ |
λ 1 |
λ 2 |
λ 3 |
λ 4 |
e1 |
e2 |
e3 |
Значение синдрома Х |
0 1 1 |
1 0 1 |
1 1 0 |
1 1 1 |
1 0 0 |
0 1 0 |
0 0 1 |
По значению синдрома Х = 1 0 0, находим ошибку расположенную в первом проверочном символе принятой кодовой комбинации.
Запишем исправленную кодовую комбинацию:
Λ*испр = 0 1 1 0 0 1 1
Запишем принятую информационную посылку и информационную посылку полученную в 1 пункте:
Λ*инф = 0 1 1 0 1 1 1
Λ = 0 1 1 0 0 1 1
Вывод: коды Хэмминга позволяют исправлять, как минимум, все однократные ошибки. По выше приведенным решением мы нашли одну ошибка, которые в последствии исправили и получили правильную кодовую комбинацию
Задача 5. Неразделимые циклические коды.
А) 1) По информационной посылке Хинф = Nвар. записать информационную посылку четырехэлементным двоичным кодом Λинф.
2) Записать полином Λ(z) неразделимого циклического кода при образующем полиноме
3)
Записать кодовую комбинацию
полученного семиэлементного
В) На приемной стороне принята кодовая комбинация Λ* неразделимого циклического кода (табл. 4).
1) Проверить, есть ли ошибка в принятой кодовой комбинации.
2) Если ошибка есть, то исправить ее и записать Λ*испр. исправленную кодовую комбинацию неразделимого циклического кода.
3)
Записать принятую
Таблица 4
Nвар. |
λ*7 |
λ*6 |
λ*5 |
λ*4 |
λ*3 |
λ*2 |
λ*1 |
6 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
Решение
Исходя из своего варианта запишем информационную посылку:
Хинф = 6
и запишем ее четырехэлементным двоичным кодом:
Λинф = 0 1 1 0
Запишем полином Λ(z) неразделимого циклического кода при образующем полиноме
G(z) = z3 + z + 1
Для того, чтобы записать полином неразделимого циклического кода кодовой комбинации Λинф, воспользуемся формулой
получим:
тогда для полинома кодовой комбинации неразделимого циклического кода можно записать:
где G(z) – это образующий полином
следовательно
Запишем кодовую комбинацию неразделимого циклического кода:
Λ = 0 1 1 1 0 1 0
Запишем принятую комбинацию:
Λ* = 0 1 1 1 0 0 0
Для нахождения ошибок для начала запишем принятую комбинацию в виде полинома:
Λ*(z) = (0 × z6) + (1 × z5) + (1 × z4) + (1 × z3) + (0 × z2) + (0 × z) + (0 × z0) = z5 + z4 + z3
Далее разделим полученный полином на образующий полином, для того, чтобы определить присутствует ли остаток R(z). Если остаток будет, значит произошла ошибка в принятой кодовой комбинации.
Z5 + z4 + z3 z3 + z + 1
Z5 + z3 + z2 z2 +z
Z4 + z2
Z4 + z2 + z
z
В итоге получили:
R(z) = z
следовательно произошла ошибка.
Переведем остаток R(z) в двоичную систему:
R = 0 1 0
Для того, чтобы найти ошибку в нужном элементе воспользуемся таблицей ошибок для образующего полинома G(z) = z3 + z + 1
№ искаженного символа i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
R(z) |
1 |
z |
z2 |
z2 + 1 |
z2 + z + 1 |
z + 1 |
z2 + z |
Код остатка |
0 0 1 |
0 1 0 |
1 0 0 |
1 0 1 |
1 1 1 |
0 1 1 |
1 1 0 |
Исходя из таблицы видно, что ошибка произошла во втором символе.
Запишем исправленную кодовую комбинацию неразделимого циклического кода:
Λ*испр = 0 1 1 1 0 1 0
Проверим данный результат:
Λ(z) = G(z) × Λинф(z)
Λ*испр(z) = G(z) × Λ*инф(z)
= z5+ z4 + z3 + z z3 + z + 1
Z5 + z3 + z2 z2 + z
z4 + z2 + z
z4 + z2 + z
0
т.к. остался остаток R(z) = 0, то значит исправленная кодовая комбинация верна
Запишем принятую информационную посылку и информационную посылку полученную в 1 пункте:
Λ* = 0 1 1 1 0 0 0
Λинф = 0 1 1 0
Вывод: В нашем случае при исправлении одной ошибки кодовой комбинации получился неправильный результат. Исправилась ошибка в проверочной части, а в информационной ошибка всё равно осталась. Это говорит о том, что Неразделимый циклический код даёт возможность обнаруживать и исправлять только одинарные ошибки.