Элементы теории кодирования

Автор работы: Пользователь скрыл имя, 19 Января 2012 в 14:21, курсовая работа

Краткое описание

В этой работе речь пойдет о том, без чего в настоящее время трудно представить какую-либо деятельность. Современный человек на столько
привык к использованию «чудо-техники» в своей повседневной жизни, что вряд-ли задумывается о том, как протекают процессы записи, передачи или хранения информации. Все это основано на понятии кодирования.
Кодирование - это преобразование сообщения в форму, удобную для передачи по каналу связи.
Теория кодирования представляет собой один из разделов дискретной математики, в котором рассматривается процесс представления инфор¬мации в определенной стандартной форме и обратный процесс восстано¬вления информации по этому представлению.
Дискретная математика – одна из областей математики, начала которой возникли в глубокой древности. Основной отличительной чертой её классической математики, которая в основном занимается изучением свойств объектов непрерывного характера с использованием основного понятия – предел, является дискретность, противоположность непрерывности. Предметом дискретной математики является изучение свойств произвольных структур (множеств с операциями, отношения и аксиомами), которые появляются как в самой математике, так и в области её приложений.
Дискретная математика включает в себя такие разделы как теорию чисел, алгебру, математическую логику, теорию графов и сетей, теорию кодирования, комбинаторный анализ и теорию конечных автоматов.
Особенностью дискретной математики является, наряду с задачами типа существования, имеющими общематематический характер, наличие задач, связанных с алгоритмической разрешимостью и построением конкретных решающих алгоритмов. При этом по существу впервые возникла необходимость полного исследования так называемых многоэкстремальных задач.

Содержание работы

Введение…………………………………………………………………………..3
§ 1. Базовые понятия теории кодирования……………………………………...5
§ 2. Алфавитное кодирование……………………………………………………9
§ 3. Двоичный алфавит………………………………………………………….14
§ 4. Кодирование и обработка чисел компьютером…………………………...20
§ 5. Решение практических задач……………………………………………..25
Заключение………………………………………………………………………35
Литература……………………………………………………………………….36

Содержимое работы - 1 файл

Моя курсовая 2.doc

— 454.00 Кб (Скачать файл)
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 ,b12…bl, b1b2…̅bl .   

     Таким образом, число вариантов равно l + 1. Поясним, что ошибка может не произойти, либо она произойдет в одном из l разрядов, и символ bl заменится на противоположный i. Число дополнительных разрядов для построения кодов Хемминга нужно выбрать так, чтобы их хватило для кодирования перечисленных (l + 1) случаев. Следовательно, необходимо, чтобы

   2k l + 1 или 2m ≤     2 l

                    l + 1
                   

.

 
Поэтому, зная m, l выбираем как наименьшее целое число, удовлетворяющее условию:

2m ≤     2 l                    

   
l + 1
 

     Число 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.

    1. Представим каждое число i из множества L = {1, 2, ..., l} в виде k -разрядного двоичного числа τ = Vk-1Vk-2….V1V0 . Результаты запишем в виде таблицы
      τ    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
 
    1.  Разберем  множество L на k подмножеств следующим образом:

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}.

    1. Первые элементы (их ровно k) этих множеств есть степени числа 2;

они определяют номера контрольных разрядов кода Хемминга. Остальные элементы множества  L определяют номера информационных разрядов. Следовательно, в коде Хемминга разряды b1b2b4b8 – контрольные, остальные разряды b3b5b6b7b9b10b11b12b13 – информационные.

    1. Формирование значений информационных символов.

       Информационные символы кода  Хемминга формируются естественным  образом из символов исходного  сообщения а1а2...ат. А именно: b3 = a1; b5 = a2; b6 = a3; b7 = a4; b9 = a5; b10 = a6; b11 = a7; b12 = a8; b13 = a9.

        Так как исходное сообщение  α = 101110111, то b3 = 1; b5 = 0; b6 = 1;b7 = 1; b9 = 1; b10 = 0; b11 = b12 = b13 = 1.

    1. Формирование значений контрольных символов.

      После определения информационных символов контрольные символы определяются следующим образом:

b1 = bjj ϵ L0; j ≠ 1,

b2 = bjj ϵ L1 j ≠ 2,

b4 = bjj ϵ L2; j ≠ 4,

b8 =bj; j ϵ L3j ≠ 8,

        Здесь - сумма по модулю два, bj – разряды, имеющие номера из соответствующих множеств Ll.

        В примере будем иметь:

b1b3 b b7 b9 b11 b13 = 1 0 1 1 1 1 = 1

b2b3   b  b7 b10 b11 = 1 1 1 0 1 = 1

b4b5   b  b7 b12 b13 = 0 1 1 1 = 1

b8b9   b10    b11 b12 b13 = 1 0 1 1 1 = 0

    1. Окончательно, для сообщения α = 101110111 код Хемминга β будет следующим: β = b1b2b3b4b5b6b7b8b9b10b11b12b13 = 1010011010111.

        Таким образом, можно построить  код Хемминга для сообщения  с любым набором длины т.

Информация о работе Элементы теории кодирования