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

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

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

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

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

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

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

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

— 454.00 Кб (Скачать файл)

3. 5. Обнаружение ошибки в кодах Хемминга

        Пусть при  передаче кода β = b1b2 bl произошла ошибка в разряде с номером t,т. е. на выходе канала получено слово β҆ = b1b2bt-1btbt+1bl.

        Представим t в виде k-разрядного двоичного числа: t = Vk-1…V1V0  Покажем, как по коду β҆ найти разряды Vi числа t. Рассмотрим t' = V'k-1..., V'1 V'0 , где:

V'0 = jj ϵ L0 ,

V'1 = jj ϵ L1 ,

V'k-1 = jj ϵ L k-1 .

Покажем, что t' = t, т. е. V'o = Vo; V'1 = V1; ...; V'k-1 = Vk-1. 
Рассмотрим ситуации: 

    1. Пусть Vi = 0; это значит, что t не принадлежит Li = {j ϵ Li : Vi = 1}. 
    Следовательно, все разряды с номерами из L; получены на выходе

канала  без искажения, т.е. t = bt, t ϵ Li. Так как b2i  = +∑ bj; j ϵ Li, j ≠ 2j а это равносильно равенству b = j = V'I = 0 = Vi (j E Li).

   2. Пусть Vi = 1, тогда t ϵ Li  ={j ϵ Li : Vi = 1}, и некоторый раз 
ряд с номером из Li получен на выходе канала с искажением, т. е. для 
некоторого q из Lt b'q = q = bq
1, а для всех j ϵ Li, jq, . j = bj .

   Отсюда  получаем V' = j ( = bj )1 = 0 1 = 1. Следовательно, и в этом случае Vi = V'I.

   Пусть в рассмотренной выше задаче ошибка при передаче кодового слова β = b1b2b3b4b5b6b7b8b9b10b11b12b13 = 1010011010111 произошла в 11 разряде (t = 11). Т. е. на выходе канала получено сообщение

   β҆ = 12345678910111213 =  1010011010011

   Для этого кодового сообщения получаем:

V0b1 b3 b5 b7 b9 b11 b13 = 1 1 0 1 1  0 1 = 1,

V1 b2   b3   b  b7 b10 b11 = 0 1 1 1 0 0 = 1,

V2b4   b5   b b7 b12 b13 = 0 0  1 1 1 1 = 0,

V3 b8   b9   b10    b11 b12 b13 = 0 1 0 0  1 1 = 0.

Таким образом, двоичное представление номера разряда, в котором произошла ошибка, есть 1011. Но это не что иное, как двоичное представление числа 11. Следовательно, ошибочный разряд 11.

3. 6. Декодирование (получение исходного сообщения)

     Этот шаг осуществляется так: после исправления ошибки выписать последовательно слева направо из кода сообщения информационные символы, т. е. а1а2...ат = b3b5b6b7b9b10b11b12b13. В нашем примере из кода β = 1010011010111 выписываем α = 101110111. Это и есть исходное сообщение. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

§ 4. Кодирование и обработка чисел компьютером

      Для представления чисел в компьютере и выполнения над ними арифметических действий числа кодируются с помощью нулей и единиц.  Способы кодирования чисел и допустимые над ними действия зависят от принадлежности таковых чисел  к следующим числовым множествам:

  1. Целые положительные числа (целые числа без знака);
  2. Целые числа со знаком;
  3. Вещественные нормализованные числа.

    4. 1. Кодирование в компьютере целых положительных чисел

        Для записи числа в устройствах компьютера выделяется фиксированное количество двоичных разрядов. Память компьютера имеет байтовую структуру, однако, размер одной адресуемой ячейки обычно составляет несколько байт. В компьютерах IBM ячейка памяти объединяет 2 байта (16 двоичных разрядов), что называется машинным словом

Машинное  слово –  комбинация связанных соседних ячеек, обрабатываемая совместно

       Для представления числа в регистре арифметико-логического устройства процессора, где формируется результат операции, имеется еще один дополнительный одноразрядный регистр, который называется регистром переноса и который можно рассматривать в качестве продолжения регистра результата (17 бит). Назначение этого бита выяснится позже.

      Размер разрядной сетки строго определен, в связи с этим и количество чисел, с которыми может оперировать компьютер конечно, среди которых можно установить наименьшее и наибольшее число. В обычном не машинном представлении чисел такого понятия как “наибольшее целое число” просто не существует.

       Пусть количество разрядов k = 16. При двоичном кодировании число символов p = 2, это 0 и 1. Максимальное число, закодированное  ими равно:

Хmax= 1111111111111112 – 1

Для определения  самого числа воспользуемся формулой

Хmax=pk- 1, для k = 16 и  p = 2, получим  Хmax = 216- 1 = 65536- 1=65535

Из этого  следует, целого числа 65636 и более  в компьютере просто не может существовать и появление такого числа в  ходе вычислений должно интерпретироваться как ошибка.

Минимальным целым числом является число

Хmin = 0000000000000002 = 010.

В языках программирования (PASCAL)  для записи целых чисел без знака, отводится 2 байта, и они определены как тип Word. Тип устанавливает способ кодирования числа, количество отводимых для записи ячеек памяти (т.е. разрядность числа), а также перечень допустимых операций при обработке.

        Выход за границу числа 65535 возможен только путем увеличения количества разрядов для записи числа, но это порождает новый тип  кодирования чисел. Если машинное слово занимает 4 бита, что максимальное число, которое будет закодировано,  можно вычислить по той же самой формуле,  и оно будет равно: Хmax =  2147483647.

4. 2. Кодирование в компьютере целых отрицательных чисел

       В вычислительной технике при использовании двоичной системы счисления крайний левый разряд в машинном слове служит для записи знака числа. При  этом условились кодировать:

- знак  плюс или положительное число –  нулем,

- знак  минус или отрицательное число –  единицей.

Такое представление чисел называется прямым кодом.

Под запись самого числа остается 16 - 1=15 двоичных разрядов, что обеспечивает наибольшее значение числа Zmax= 215 -  1 = 3276710.

        Данный способ кодирования не является оптимальным. Его применение несколько усложняет порядок обработки чисел. Так, операция сложения двух чисел с разными знаками, по правилу выполнения сложения чисел с разными знаками,  должна быть заменена операцией вычитания меньшего числа из большего числа. Знак полученного  результата  равен знаку заданного  числа, модуль которого больше. Операция сопровождается проверками  условий и выработкой признаков, в соответствии с которыми выбирается то или иное действие.

      Альтернативным вариантом является представление чисел со знаком в дополнительном коде. Идея построения дополнительного кода достаточно проста: на оси целых положительных чисел, помещающихся в машинное слово на промежутке (0; 65535), сместим положение нуля на середину интервала.

       Числа, попадающие в первую половину (0; 32767) считаются  положительными, а числа из второй половины (32768; 65535) –  отрицательными.

       В этом случае судить о знаке числа можно будет по его величине и в явном виде выделение знака не потребуется.

      Например, число 1000000000000012 = 3276910 -  отрицательное числа,

число 0000000000000012 = 110 положительное  число.

        Принадлежность к интервалу кодов положительных или отрицательных чисел видна по состоянию старшего бита –  у кодов положительных чисел его значение “0″ отрицательных – “1″. Это напоминает представление со знаком, но не является таковым, поскольку используется другой принцип кодирования. Его применение позволяет заменить вычитание чисел их суммированием в дополнительном коде.

4. 3. Кодирование вещественных нормализованных чисел

        Вещественные (действительные) числа X могут  быть представлены в двух формах –  естественной и нормализованной. В естественной форме у X имеется целая и дробная части, между которыми помещается разделитель (запятая или точка). Такая форма записи числа называется как представлением числа с фиксированной запятой. Эта запись неудобна для слишком больших и для слишком малых чисел. Использование такой формы в компьютере вызвало бы снижение точности вычислений из-за необходимости приведения в соответствие разрядов обрабатываемых чисел и связанных с этим округлений или могло бы породить ситуацию, называемую переполнением, когда старший разряд числа не умещается в отведенной разрядной сетке.

         Вещественные числа в компьютере представляются в нормализованном виде, которое называется еще как представление числа с плавающей запятой. Достоинством  такого представления является автоматическое масштабирование числа на каждом этапе обработки, что обеспечивает максимально возможную точность вычислений и избавляет от необходимости принимать меры по предотвращению переполнения (за исключением экзотических ситуаций с выходом числа за отведенную разрядную сетку). По сути, это универсальная форма записи всех чисел.

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