Алфавитное кодирование

Автор работы: Пользователь скрыл имя, 09 Декабря 2011 в 08:53, курсовая работа

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

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

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

Введение 3
1. Теоретические основы задачи кодирования……………………………………………...6
1.1. Постановка задачи кодирования………….……………………………..….……………6
1.2. Первая теорема Шеннона…………………………………………………………….....10
1.3. Вторая теорема Шеннона……………………………………………………………….13
1.4. Помехоустойчивые коды…..........………………………………………….......…….…14
2. Алфавитное кодирование......................................................................................................17
2.1. Основные определения.....................................................................................................17
2.2. Проблема распознавания взаимной однозначности алфавитного кодирования.......18
2.3. Алгоритм построения префиксного кода по набору длин элементарных кодов........22
2.4. Алгоритмы экономного алфавитного кодирования......................................................23
2.4.1. Алгоритм Хаффмана...............................................................................................24
2.4.2. Алгоритм Фано........................................................................................................26
2.4.3. Алгоритм Шеннона.................................................................................................27
2.4.4. Энтропия и ее связь со стоимостью оптимального алфавитного
кодирования..................................................................................................................................28
2.4.5. Возможности сжатия при алфавитном кодировании, учитывающем
синтаксис языка сообщений........................................................................................................31
Заключение..................................................................................................................................34
Список литературы 35

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

Алфавитное кодирование.doc

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

      Содержание 
 

     Введение.

 

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

     Хотя  существующие на данный момент системы  передачи данных отвечают всем основным стандартам и требованиям, они все  же не являются совершенными. Причин тому влияние помех в канале связи. При передаче сообщений по каналам связи могут возникать помехи, способные привести к искажению принимаемых знаков. Естественный язык обладает большой избыточностью (в европейских языках — до 7%), чем объясняется большая помехоустойчивость сообщений, составленных из знаков алфавитов таких языков. Примером, иллюстрирующим устойчивость русского языка к помехам, может служить предложение «в словох всо глосноо зомононо боквой о». Здесь 26% символов «поражены», однако это не приводит к потере смысла. Таким образом, в данном случае избыточность является полезным свойством. Избыточность могла бы быть использована и при передаче кодированных сообщений в технических системах. Например, каждый фрагмент текста («предложение») передается трижды, и верным считается та пара фрагментов, которая полностью совпала. Однако, больная избыточность приводит к большим временным затратам при передаче информации и требует большого объема памяти при ее хранении.

    Начало  математическому исследованию вопросов экономного кодирования, учитывающего вероятностные и структурные свойства информации, было положено работой К. Шеннона «Математическая теория связи», опубликованной в 1948 году. При построении алгоритмов кодирования Шенноном учитывались главным образом вероятностные свойства сообщений, порождаемых источником с конечным числом состояний. Однако эти вероятностные свойства определялись как вероятностными свойствами состояний источника, так и синтаксическими (структурными) свойствами последовательностей символов, генерируемых источником.

    Вопросы экономного кодирования с учетом структурных свойств информации

рассматривались в работах Ал. А. Маркова. Он изучал возможности сжатия сообщений,

также генерируемых источниками с конечным числом состояний, при простом с алгоритмической точки зрения способе кодирования – алфавитном, или побуквенном кодировании. Ал. А. Марков показал, что во многих случаях учет структурных свойств при кодировании позволяет более эффективно сжимать информацию.

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

    Кроме теоретических результатов, относящихся  к вопросам кодирования сообщений с

учетом их вероятностных  и структурных свойств, в работе приводится краткий обзор

методов алфавитного кодирования, которые появились в последние годы и применяются на практике в системах сжатия данных. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  1. Теоретические основы задачи кодирования
 
     
    1. Постановка  задачи кодирования.

    Ранее средства кодирования играли вспомогательную  роль и не рассматривались как  отдельный предмет математического  изучения, но с появлением компьютеров  ситуация радикально изменилась. Кодирование буквально пронизывает информационные технологии и является центральным вопросом при решении самых разных (практически всех) задач программирования:

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

     Прежде  чем рассмотреть задачу кодирования, необходимо рассмотреть ряд определений, использующихся в теории кодирования:

     Код – (1) правило, описывающее соответствие знаков или их сочетаний одного алфавита знакам или их сочетаниям другого алфавита; - (2) знаки вторичного алфавита, используемые для представления знаков или их сочетаний первичного алфавита.

     Кодирование – перевод информации, представленной посредством первичного алфавита, в последовательность кодов.

     Декодирование - операция, обратная кодированию, т.е. восстановление информации в первичном алфавите по полученной последовательности кодов.

     Операции кодирования и декодирования называются обратимыми, если их последовательное применение обеспечивает возврат к исходной информации без каких-либо ее потерь.

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

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

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

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

     Пусть первичный алфавит A содержит N знаков со средней информацией на знак, определенной с учетом вероятностей их появления, I1(A) (нижний индекс отражает то обстоятельство, что рассматривается первое приближение, а верхний индекс в скобках указывает алфавит). Вторичный алфавит B пусть содержит M знаков со средней информационной емкостью I1(A). Пусть также исходное сообщение, представленное в первичном алфавите, содержит n знаков, а закодированное сообщение – m знаков. Если исходное сообщение содержит I(A) информации, а закодированное – I(B), то условие обратимости кодирования, т.е. неисчезновения информации при кодировании, очевидно, может быть записано следующим образом: 

     I(A) ≤ I(B), 

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

     n*I1(A) ≤ n*I1 (B),  

     или  

     I1(A) ≤ m/n*I1 (B) 

     Отношение m/n, очевидно, характеризует среднее  число знаков вторичного алфавита, которое приходится использовать для  кодирования одного знака первичного алфавита – будем называть его  длиной кода или длиной кодовой цепочки  и обозначим K(B) (верхний индекс указывает алфавит кодов). [

     В частном случае, когда появление  любых знаков вторичного алфавита равновероятно, согласно формуле Хартли I1(B)=log2M, и тогда  

      I1(A) /log2M≤ K(B) (1) 

     По  аналогии с величиной R, характеризующей  избыточность языка, можно ввести относительную избыточность кода (Q):  

     Q= 1 – I(A) / I(B) = 1- I1(A) / K(B)*I1(B) (2) 

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

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

     Реализация  основных характеристик канала связи  помимо разработки технических устройств, требует решения информационных задач – выбор оптимального метода кодирования.

     Основными задачами кодирования являются:

     1. Обеспечение экономичности передачи  информации посредством устранения  избыточности.

     2. Обеспечение надежности (помехоустойчивости) передачи информации

     3. Согласование скорости передачи  информации с пропускной способностью  канала

     Соответствие  между элементами дискретных сообщений  и видом кодирования обеспечивается выбором:

     1. Длительности сигналов

     2. Длины кодового слова

     3. Алфавита знаков и способа кодирования (побуквенного, блочного)

     Полагается, что сообщение источника информации формируется из знаков аi, i=1,2,.. Na внешнего (входного, первичного) алфавита А объемом Na. Сообщения представляют собой  слова, образованные последовательностью nr знаков: Ar =a1a2…anr. В кодирующем устройстве слово Ar преобразуется в кодовое слово Br=b1b2…bmr, составленное из mr знаков bj, j=1,2,..Nb внутреннего (выходного, вторичного) алфавита В. Число знаков кодового алфавита называют основанием кода. Число знаков в кодовом слове называют длиной кодового слова. Отображение G множества слов в алфавите А на множество слов в алфавите В называют кодирующим отображением или кодом. Применение кодирующего отображения G к любому слову из входного алфавита называется кодированием. То есть код - это правило отображения знаков одного алфавита в знаки другого алфавита, кодирование – это преобразование одной формы сообщения в другую посредством указанного кода.

     Различают побуквенное и блочное кодирование. При побуквенном кодировании каждому знаку внешнего алфавита ставиться в соответствие кодовое слово из знаков внутреннего алфавита.

     При блочном кодировании слову из знаков внешнего алфавита ставиться  в соответствие кодовое слово  из знаков внутреннего алфавита.

     Cлова  из знаков внутреннего алфавита  В, сопоставленные словам из  знаков внешнего алфавита А  по правилу G, называются кодовыми  комбинациями. Если ArE A и G(Ar)= Br, то  говорят, что слову Ar соответствует  кодовая комбинация Br. Совокупность  кодовых комбинаций используемых для передач заданного количества дискретных сообщений называют кодовым словарем.

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