Автор работы: Пользователь скрыл имя, 19 Января 2012 в 14:21, курсовая работа
В этой работе речь пойдет о том, без чего в настоящее время трудно представить какую-либо деятельность. Современный человек на столько
привык к использованию «чудо-техники» в своей повседневной жизни, что вряд-ли задумывается о том, как протекают процессы записи, передачи или хранения информации. Все это основано на понятии кодирования.
Кодирование - это преобразование сообщения в форму, удобную для передачи по каналу связи.
Теория кодирования представляет собой один из разделов дискретной математики, в котором рассматривается процесс представления инфор¬мации в определенной стандартной форме и обратный процесс восстано¬вления информации по этому представлению.
Дискретная математика – одна из областей математики, начала которой возникли в глубокой древности. Основной отличительной чертой её классической математики, которая в основном занимается изучением свойств объектов непрерывного характера с использованием основного понятия – предел, является дискретность, противоположность непрерывности. Предметом дискретной математики является изучение свойств произвольных структур (множеств с операциями, отношения и аксиомами), которые появляются как в самой математике, так и в области её приложений.
Дискретная математика включает в себя такие разделы как теорию чисел, алгебру, математическую логику, теорию графов и сетей, теорию кодирования, комбинаторный анализ и теорию конечных автоматов.
Особенностью дискретной математики является, наряду с задачами типа существования, имеющими общематематический характер, наличие задач, связанных с алгоритмической разрешимостью и построением конкретных решающих алгоритмов. При этом по существу впервые возникла необходимость полного исследования так называемых многоэкстремальных задач.
Введение…………………………………………………………………………..3
§ 1. Базовые понятия теории кодирования……………………………………...5
§ 2. Алфавитное кодирование……………………………………………………9
§ 3. Двоичный алфавит………………………………………………………….14
§ 4. Кодирование и обработка чисел компьютером…………………………...20
§ 5. Решение практических задач……………………………………………..25
Заключение………………………………………………………………………35
Литература……………………………………………………………………….36
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
3. 2. Самокорректирующиеся коды
Пусть мы имеем множество всех двоичных слов длины т. Эти слова передаются по каналу связи, в котором действует источник помех. Этот источник помех при передаче двоичного слова длины т может выдавать ошибки не более чем в p символах.
Это означает, что двоичная последовательность, полученная на выходе канала, отличается от исходной не более чем в р позициях.
Очевидно, что если исходное слово передавать
без предварительного
кодирования, то установить на выходе
истинное сообщение практически
невозможно. Поэтому возникает задача
построения по исходному, любо
му слову а1
а2...ат
его самокорректирующегося кода b1
b2…bl (l >
т), по
зволяющего по полученному на выходе канала
кода b1
҆ b2҆…bl҆
однозначно
восстановить передаваемый код
b1 b2…bl
,а значит, и исходное сообще-
ние а1
а2...ат
.Напомним, что при передаче кода b1
b2…bl
по каналу связи
код, возможно, исказился и, следовательно,
на выходе канала будет сло-
во b1 ҆
b2҆…bl҆
, вообще говоря, отличающееся от
b1 b2…bl
не более чем в р
позициях.
Коды, обладающие выше указанными свойствами,
называют само-
корректирующимися
кодами относительно источника помех
или кодами,
исправляющими р
ошибок.
3. 3. Коды Хемминга
Перейдем к построению самокорректирующихся кодов для случая р = 1, которые называются кодами Хемминга. Будем считать, что в канале связи при передаче сообщения может произойти не более одной ошибки. Это означает, что если исходное сообщение а1 а2...ат кодируется набором b1 b2…bl ( l = m+k), то на выходе возможны следующие варианты кодов:b1b2…bl; ̅b1b2…bl ,b1b̅2…bl, b1b2…̅bl .
Таким образом, число вариантов равно l + 1. Поясним, что ошибка может не произойти, либо она произойдет в одном из l разрядов, и символ bl заменится на противоположный b̅i. Число дополнительных разрядов для построения кодов Хемминга нужно выбрать так, чтобы их хватило для кодирования перечисленных (l + 1) случаев. Следовательно, необходимо, чтобы
2k ≥ l + 1 или 2m ≤ 2 l
|
.
Поэтому, зная m, l выбираем как наименьшее
целое число, удовлетворяющее условию:
2m ≤ 2 l
|
Число l называется длиной кода Хемминга. Число т — число информационных символов.
Замечание. Учитывая, что l = m + k, можно выбирать не l, а число k, которое называется числом контрольных символов и является наименьшим целым числом, удовлетворяющим условию: 2k ≥ k + тп + 1.
Например, если т = 4, то l = 7, k = 3;
если т = 9, то l = 13, k = 4.
Таким образом, при построении кодов Хемминга,
первое, что нужно
сделать: это по числу т
определить числа k
и l.
3. 4. Алгоритм построения кода Хемминга
Пусть для сообщения а = а1а2...аm длины m необходимо построить код Хемминга. Возьмем m = 9; исходное сообщение
а = 101110111 =а1а2а3а4а5а6а7а8а9.
Тогда l = 13, k = 4; код Хемминга β= b1b2b3b4b5b6b7b8b9b10b1 b12b13.
τ i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
V0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
V1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
V2 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
V3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
L0 = {i ϵ L0 : V0 = 1}; L0 = {1,3, 5, 7,9,11,13},
L1 = {i ϵ Lx : V1 = 1}; L1 = {2, 3, 6, 7,10,11},
L2 = {i ϵ L2:V2 = 1} L2 = {4,5,6,7,12,13},
L3 = (i ϵ L3 : V3 = 1}; L3 = {8,9,10,11,12,13}.
они определяют номера контрольных разрядов кода Хемминга. Остальные элементы множества L определяют номера информационных разрядов. Следовательно, в коде Хемминга разряды b1b2b4b8 – контрольные, остальные разряды b3b5b6b7b9b10b11b12b13 – информационные.
Информационные символы кода
Хемминга формируются
Так как исходное сообщение α = 101110111, то b3 = 1; b5 = 0; b6 = 1;b7 = 1; b9 = 1; b10 = 0; b11 = b12 = b13 = 1.
После определения информационных символов контрольные символы определяются следующим образом:
b1 = ⊕∑ bj; j ϵ L0; j ≠ 1,
b2 = ⊕∑ bj; j ϵ L1; j ≠ 2,
b4 = ⊕∑ bj; j ϵ L2; j ≠ 4,
b8 = ⊕ ∑ bj; j ϵ L3; j ≠ 8,
Здесь ⊕∑ - сумма по модулю два, bj – разряды, имеющие номера из соответствующих множеств Ll.
В примере будем иметь:
b1 = b3 ⊕ b5 ⊕ b7 ⊕ b9 ⊕ b11 ⊕ b13 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 1
b2 = b3 ⊕ b6 ⊕ b7 ⊕ b10 ⊕ b11 = 1 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 = 1
b4 = b5 ⊕ b6 ⊕ b7 ⊕ b12 ⊕ b13 = 0 ⊕ 1 ⊕ 1 ⊕ 1 = 1
b8 = b9 ⊕ b10 ⊕ b11 ⊕ b12 ⊕ b13 = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 = 0
Таким образом, можно