Разработка лабораторного макета кодека, использующего алгоритмы Хэмминга и Адамара
История кодирования. Передача информации: принципы, определения, особенности. Методы цифрового физического кодирования. Обнаружение и исправление ошибок в канале с шумом. Алгоритмы Хэмминга и Адамара. Кодирование и декодирование линейных блочных кодов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 29.08.2012 |
Размер файла | 3,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Не секрет, что мы живем в век бурного развития вычислительной техники и телекоммуникаций. Основой практически всех сфер современной жизни стали потоки информации. Мы уже не представляем себе ни один офис, торговую фирму, производство, научное учреждение без парка компьютеров, объединенных в локальную сеть с подключением к Интернет. Ни работа, ни быт немыслимы без активного использования мобильных телефонов. Там, где нет сигнала сотовой связи, выручает связь при помощи радиостанций. Ускоренными темпами развиваются системы цифрового спутникового и наземного телевидения высокой четкости.
Все перечисленные технические решения относятся к системам связи, по которым, как правило, в обе стороны осуществляется непрерывная передача огромных объемов информации. В последнее время уже практически не осталось систем, в которых звук, изображение или иной информационный поток передается в аналоговом виде. Этот способ передачи, с которого начинала свою историю радиосвязь, исчерпал свои возможности. Аналоговый сигнал не вмещает необходимый объем данных, кроме того, он подвержен искажению вследствие помех. И разветвление связных систем, и развитие электронной техники в целом приводят ко все большему ухудшению помеховой ситуации в каждой точке пространства, в особенности в крупных индустриальных городах.
Помехи воздействуют и на цифровой сигнал, искажая его и препятствуя верной передаче информации. Поэтому ни одна линия передачи не обходится без кодирования сигнала.
У большинства неискушенных в технике обывателей слово «кодирование» вызывает ассоциации со шпионами и передачей секретной информации. Однако это слово имеет и другое значение, быть может, более обыденное, но зато куда более важное и широкое. Кодирование - прежде всего, средство для экономной, удобной и практически безошибочной передачи сообщений. Новые применения кодов сложились в результате бурного развития различных средств связи, неизмеримо возросшего объема передаваемой информации Аршинов М.Н., Садовский Л.Е. Коды и математика. Рассказы о кодировании. - М.: Наука, 1983. - С. 3 - 7..
Кодирование по-прежнему обеспечивает закрытость канала связи, то есть невозможность несанкционированного доступа к конфиденциальной или коммерческой информации. Однако, кроме этого, кодирование во многих случаях позволяет сжимать объемы сигнала, упрощая передачу сообщений и уплотняя каналы связи. А главное, кодирование с исправлением ошибок позволяет полностью исключить влияние на сигнал помех любого вида и интенсивности.
Решать возникшие в связи с этим задачи было бы невозможно без привлечения самых разнообразных математических методов. Неслучайно поэтому теория кодирования считается сейчас одним из наиболее важных разделов прикладной математики. Разработка кодов, наиболее оптимально решающих те или иные конкретные задачи при передаче данных - наука, имеющая первостепенное значение Крушный В.В. Основы теории информации и кодирования. - Снежинск: Изд-во СГФТА, 2005. - С. 2 - 6..
Не случайно она выделена в отдельную учебную дисциплину - «Основы кодирования и декодирования сигналов». Изучая ее, студенты знакомятся с принципами кодирования информации и наиболее применимыми и общими из существующих кодов, в частности, с кодами Хэмминга и Адамара - классикой теории кодирования. На основе изученного материала они впоследствии смогут участвовать в разработке современных систем обработки информации.
Однако теория, особенно в данном случае, невозможна без практики. Существующие системы связи используют сигнальные процессоры - монолитные интегральные схемы, внутри которых происходит полный цикл кодирования и декодирования сигнала. К потребителю он поступает уже в «готовом» виде, и проследить изменения структуры сигнала, разобрав, скажем, мобильный телефон, не в состоянии ни один «умелец».
Поэтому особую актуальность для организации качественного процесса обучения приобретает разработка и создание практических макетов, на которых «вживую» можно проследить превращение сигнала в результате кодирования и декодирования, отслеживание и исправления ошибок, реакцию устройства на различные сигналы и виды помех.
Разработке лабораторного макета кодека, использующего алгоритмы Хэмминга и Адамара, и посвящен настоящий дипломный проект. В ходе его выполнения нами будет изучена история проблемы и теории кодирования как науки, разновидности систем кодирования и виды кодеков. Далее мы определим особенности кодов Хэмминга и Адамара и исследуем связи между ними, выполним расчет и обоснуем принципы построения кодеков на основе указанных алгоритмов.
Результатами выполнения проекта будут являться разработанные структурные и принципиальные схемы кодеков, их полный расчет, включая учет воздействия шумов, разработка печатных плат лабораторного макета, проведение экспериментов. Будет составлена инструкция по эксплуатации макета, приведены особенности его безопасного использования, выполнен экономический расчет себестоимости опытного образца.
1. Обзор теории информации. Разновидности кодеков
1.1 История теории информации
Можно сказать, что передачей и переработкой информации человек начал заниматься с того самого дня, когда он заслужил право называться человеком. Рисунки пещерных людей, первые попытки создать язык и письменность, передать сообщения на расстояние с помощью костров и звуковых инструментов, расшифровка следов диких животных - все это суть операции по хранению, передаче и обработке информации Крушный В.В. Основы теории информации и кодирования. - Снежинск: Изд-во СГФТА, 2005. - С. 2 - 10..
Однако, несмотря на столь почтенную историю, информация совсем недавно стала предметом подлинно научного изучения. Начало теории информации как науки было положено в 1928 году, когда американский ученый Р. В. Л. Хартли опубликовал в журнале Bell System Technical статью «Передача информации». В статье ученый предложил меру количественной оценки информации. Позже (в 1940 г.) другую, вероятностную меру оценки количества информации, принятую в настоящее время, предложил Клод Шеннон - выдающийся математик и инженер нашего времени. Появившись на свет в качестве специального метода в теории связи, теория информации заняла одно из передовых мест в науке. Это можно объяснить отчасти ее связью с такими современными областями науки и техники, как кибернетика, теория автоматов, теория вычислительных машин, теория кодирования и передачи сигналов, а отчасти - новизной и актуальностью тематики. Так, теория информации нашла применение в биологии, психологии, лингвистике, теоретической физике, экономике, теории организации производства и во многих других научно-технических отраслях.
Слово информация с латыни переводится как разъяснение, сообщение, осведомление, изложение. Существует множество определений этого понятия - от общефилософского (информация есть отражение реального мира) до практического (совокупность сведений для хранения, передачи и преобразования). При этом информация определяет не сами предметы и процессы, а их численные либо описательные характеристики.
Таким образом, информация - это совокупность упорядоченных данных, которая обычно, но не обязательно имеет смысл. Последнее замечание касается сложной и важнейшей проблемы измерения ценности, полезности информации с точки зрения ее использования. В 1960 году советским ученым А. А. Харкевичем выдвинута теория определения ценности информации, послужившая началом работы, связанной с попытками дать строгое математическое определение количества семантической (т. е. смысловой) информации Бриллюэн Л. Наука и теория информации. - М.: Физматгиз, 1959. - С. 8 - 10..
В классической схеме технической кибернетики, разработанной примерно в то же самое время (тогда еще не существовало даже намеков на появление глобальной сети Интернет, и даже о локальных сетях передачи данных еще не помышляли), уже существует канал обмена информацией (см. рис. 1. 1). И это вполне понятно - ЭВМ с момента ее возникновения позиционировалась как автоматическая машина для управления внешними процессами на основе обработки собранной каким-либо путем информации.
На рис. 1. 1. введены следующие обозначения: ИИ - источник информации; ПАК - преобразователь аналог-код; УПОИ - устройство первичной обработки информации; КУ - кодирующее устройство; ДУ - декодирующее устройство; УУ - управляющее устройство; РУ - распределительное устройство; ПКА - преобразователь код-аналог; ОУ - объект управления; ОИ - отображение информации; F - помеха.
Как не странно это звучит, данная схема через полвека с момента ее появления и обозначения основных структурных частей не утратила своей актуальности и полностью описывает процессы, происходящие в современных системах связи. Но вернемся к классической схеме Фано Р. Передача информации. Статистическая теория связи. - М.: Мир, 1965. - С. 64 - 79..
Управление - это целенаправленное воздействие на управляемый объект путем подачи командной информации. Последняя образуется в УУ в результате процесса переработки поступающей к нему осведомительной информации. Устройство, осуществляющее это управление, в общем случае получает информацию о реальных условиях работы объекта от совокупности ИИ. В общем случае это - непрерывные физические сигналы, преобразуемые в код с помощью ПАК и проходящие предварительную обработку в УПОИ для возможности передачи по одному каналу связи. Они кодируются с целью защиты от помех с помощью КУ и передаются управляющему устройству (ЭВМ) после декодирования на стороне приема в ДУ. Процесс обратной передачи обработанного ЭВМ сигнала полностью аналогичен описанному.
Рис. 1. 1. Классическая схема технической кибернетики
В 1948 году были разработаны основные теоретические положения, позволяющие с единых позиций дать количественное описание процессов связи и управления. Клод Шеннон, тогда еще молодой математик, попытался ответить на вопрос, что фактически происходит, когда устанавливается связь между двумя различными точками. Согласно Шеннону Шеннон К. Работы по теории информации и кибернетике. - М.: ИЛ, 1963. - С. 45 - 98., процесс начинается с источника информации, поставляющего информацию с некоторой заданной скоростью. Чтобы изложить сущность процесса связи, Шеннону пришлось ввести понятия скорости поступления информации от источника сообщений в канал связи (производительность источника) и пропускной способности канала связи (информационной емкости сигналов).
При этом основой служит определенный способ измерения количества информации, содержащейся в каких-либо данных (сообщениях). Современная теория информации исходит из представления о том, что сообщения, предназначенные для сохранения или для передачи по каналу связи, не известны заранее с полной определенностью. Известно лишь множество, из которого могут быть выбраны эти сообщения, и в лучшем случае - то, как часто выбирается то или иное из этих сообщений (то есть вероятность сообщений). Неопределенность, с которой сталкиваются в подобной обстановке, допускает количественное выражение, и именно это выражение (а не конкретная природа самих сообщений) определяет возможность их хранения и передачи.
Разработанные Клодом Шенноном основы теории информации в последующие годы были существенно дополнены и расширены работами Н. Винера, В. А. Котельникова и А. Н. Колмогорова Яглом А.М., Яглом И.М. Вероятность и информация. - М.: Наука, 1973. - С. 64..
1.2 История кодирования информации
Кодирование информации имеет столь же давнюю историю, как и собственно теория информации. Коды появились в глубокой древности в виде криптограмм (по-гречески -- тайнописи), когда ими пользовались для засекречивания важного сообщения от тех, кому оно не было предназначено. Уже знаменитый греческий историк Геродот (V век до н. э.) приводил примеры писем, понятных лишь для одного адресата. Спартанцы имели специальный механический прибор, при помощи которого важные сообщения можно было писать особым способом, обеспечивающим сохранение тайны. Собственная секретная азбука была у Юлия Цезаря. В средние века и эпоху Возрождения над изобретением тайных шифров трудились многие выдающиеся люди, в их числе философ Фрэнсис Бэкон, крупные математики Франсуа Виет, Джероламо Кардано, Джон Валлис Аршинов М.Н., Садовский Л.Е. Коды и математика. Рассказы о кодировании. - М.: Наука, 1983. - С. 5 - 9..
С течением времени начали появляться по-настоящему сложные шифры. Один из них, употребляемый и поныне, связан с именем ученого аббата из Вюрцбурга Тритемиуса, которого к занятиям криптографией побуждало, быть может, не только монастырское уединение, но и потребность сохранять от огласки некоторые духовные тайны.
Различные хитроумные приемы кодирования применяли шифровальщики при папском дворе и дворах европейских королей. Вместе с искусством шифрования развивалось и искусство дешифровки, или, как говорят, криптоанализа.
Секретные шифры являются неотъемлемой принадлежностью многих детективных романов, в которых действуют изощренные в хитрости шпионы. Писатель-романтик Эдгар По, которого иногда причисляют к создателям детективного жанра, в своем рассказе «Золотой жук» в художественной форме изложил простейшие приемы шифрования и расшифровки сообщений. Эдгар По относился к проблеме расшифровки оптимистически, вложив в уста своего героя следующую фразу: «...едва ли разуму человека дано загадать такую загадку, которую разум другого его собрата, направленный должным образом, не смог бы раскрыть. Прямо скажу, если текст зашифрован без грубых ошибок и документ в приличной сохранности, я больше ни в чем не нуждаюсь; последующие трудности для меня просто не существуют». Столетие спустя это высказывание было опровергнуто ученым, заложившим основы теории информации, Клодом Шенноном. Шеннон показал, как можно построить криптограмму, которая не поддается никакой расшифровке, если, конечно, не известен способ ее составления Шеннон К. Работы по теории информации и кибернетике. - М.: ИЛ, 1963. - С. 104.. (Следует отметить, что во время и сразу после войны Шеннон трудился на предприятии, изготавливающем криптографические устройства).
В 50-е годы Шеннон работал над проблемой снижения шумов при телефонной и телеграфной передаче сигналов, и здесь вновь потребовалось кодирование. Предназначенное для этой цели кодирующее устройство сопоставляет каждому символу передаваемого текста, а иногда и целым словам или фразам (сообщениям) определенную комбинацию сигналов (приемлемую для передачи по данному каналу связи), называемую кодом или кодовым словом. При этом операцию перевода сообщений в определенные последовательности сигналов называют кодированием, а обратную операцию, восстанавливающую по принятым сигналам (кодовым словам) передаваемые сообщения, - декодированием.
Исторически первый код, предназначенный для передачи сообщений, связан с именем изобретателя телеграфного аппарата Сэмюэля Морзе и известен всем как азбука Морзе. В этом коде каждой букве или цифре сопоставляется своя последовательность из кратковременных (называемых точками) и длительных (тире) импульсов тока, разделяемых паузами. Другой код, столь же широко распространенный в телеграфии (код Бодо), использует для кодирования два элементарных сигнала -- импульс и паузу, при этом сопоставляемые буквам кодовые слова состоят из пяти таких сигналов.
Коды, использующие два различных элементарных сигнала, называются двоичными. Удобно бывает, отвлекаясь от их физической природы, обозначать эти два сигнала символами 0 и 1. Тогда кодовые слова можно представлять как последовательности из нулей и единиц.
Первый, кто понял, что для кодирования достаточно двух символов, был Фрэнсис Бэкон. Двоичный код, который он использовал в криптографических целях, содержал пятиразрядные (как и в коде Бодо) слова, составленные из символов 0, L.
1.3 Передача информации: принципы, определения, особенности
Основные свойства информации можно описать с помощью математической модели, отражающей многие характерные особенности информационной меры, как она обычно понимается на интуитивном уровне Холл И. Комбинаторика. - М.: Мир, 1970. - С. 92.. Источник информации и канал связи, по которому передается информация, можно моделировать, используя вероятностные представления. Энтропия источника информации равна логарифму (эффективного) числа сообщений, которые он порождает. Это - мера сложности описания источника (или, как иногда говорят, мера неопределенности сообщения). Такое понимание энтропии тесно связано с понятием энтропии, используемым в термодинамике.
Физически передачу информации можно представить как индуцирование в приемном устройстве требуемого физического состояния. Отправитель намерен передать сообщение получателю. Суть передачи заключается в воспроизведении на выходе канала связи переданного сообщения. В момент передачи отправитель выбирает нужное сообщение из списка всех возможных сообщений. Получатель заранее не знает, какое из них будет выбрано. (Если бы он был об этом заранее информирован, то никакой необходимости посылать сообщение не было бы.) Канал связи вносит в процесс передачи информации случайный шум, который искажает сообщение и тем самым затрудняет его прочтение. В начале процесса связи получатель находится в полной неопределенности относительно того, какое сообщение выбрано из списка возможных. К концу связи получателю становится это известно, т.е. становится известно точное описание выбранного сообщения.
Способность канала связи передавать информацию характеризуется некоторым числом - пропускной способностью (емкостью), равной логарифму эффективного числа сообщений, различимых на его выходе Галлагер Р. Теория информации и надежная связь. - М.: Советское радио, 1974. - С. 23 - 51.. Процесс передачи информации можно считать надежным, если скорость передачи сообщений меньше пропускной способности канала. В противном случае надежная передача информации оказывается невозможной. Основной результат теории информации состоит в утверждении: если энтропия источника меньше пропускной способности канала, то на его выходе исходное сообщение может быть воспроизведено со сколь угодно малой ошибкой; если же энтропия источника превышает его пропускную способность, то ошибку сделать малой невозможно.
Трудность передачи сообщения не зависит от его содержания; передавать бессмысленные сообщения не менее трудно, чем осмысленные. Например, число 23 в одном контексте может быть ценой одного барреля нефти, а в другом - номером победителя заезда на скачках. Смысл сообщения зависит от контекста и семантики, а трудность его передачи определяется только перечнем возможных сообщений (и их вероятностей).
Любую систему передачи информации можно считать состоящей из трех частей: источника сообщений, канала связи и приемного устройства (рис. 1. 2). Например, при разговоре по телефону источником является говорящий, сообщением - его речь. Каналом связи служат провода, передающие электрический сигнал от говорящего к слушателю - получателю сообщения.
Между отправителем сообщения и каналом связи могут находиться устройства (обозначенные на рис. 1. 2 как кодирующие), преобразующие сообщение в форму, удобную для передачи по каналу связи. Декодирующее устройство, установленное на другом конце канала, восстанавливает принятое сообщение.
По каналу связи может передаваться самая различная информация: текст, живая речь, музыка или изображения. Для каждого источника можно указать перечень сообщений, которые он может генерировать. Например, источник телеграфных или телексных сообщений передает только буквы и не содержит, скажем, нотных знаков. Если по каналу связи передается живая речь, то сигнал лишается полезного содержания при частоте выше 20 000 Гц, верхнего предела, воспринимаемого человеческим слухом. Этими фактами можно воспользоваться при проектировании входа канала связи.
Рис. 1. 2. Процесс передачи информации
Кодирование. Моделью источника информации может служить генератор последовательности случайных величин. Следовательно, генерируемые сообщения можно рассматривать как исходы некоторого случайного испытания. Первоначально полагаем, что список возможных сообщений и их вероятности известны.
Трудность передачи информации зависит от числа возможных сообщений, которые должны быть распознаны получателем. Если это число невелико, то процесс передачи менее сложен, чем при большом числе возможных сообщений. Например, чтобы различить десять возможных сообщений, необходимо передать только одну десятичную цифру (0, 1, 2, ј, 9), а для различения 100 возможных сообщений понадобятся уже две десятичные цифры (00, 01, 02, ј, 99). Каждая дополнительная цифра позволяет увеличить число распознаваемых сообщений в 10 раз. Таким образом, количество информации, необходимой для того, чтобы мы могли различить N сообщений, растет как логарифм числа N, т.е. как log N.
Простейший список возможных сообщений состоит из двух сообщений. Чтобы передать одно из них, необходим символ, принимающий два значения. Количество информации, которую может передать источник, содержащий два равновероятных сообщения, называется битом и служит основной единицей измерения информации. Символ, представляющий такое количество информации, обычно является двоичной цифрой, 0 или 1. Один бит позволяет различать две равновероятные возможности (0, 1), два бита позволяют различать четыре возможности (00, 01, 10, 11), и т.д. Если число равновероятных возможностей равно N, то количество информации, необходимое для представления одной из них, равно log2N битов. Например, чтобы передать одно из 32 возможных сообщений, отправитель мог бы послать получателю последовательность из log232 = 5 битов. Эта последовательность из 5 двоичных знаков сообщит получателю, какое из 32 возможных сообщений было передано.
Другой подход к той же проблеме можно пояснить на примере игры в 20 вопросов. Один из участников игры задумывает нечто, а другой пытается это отгадать с помощью 20 вопросов, допускающих ответы только типа «да - нет». Предположим, например, что первый из участников игры задумывает «Чарлз Диккенс». Второй участник игры может задать вопрос: «Это реальное лицо?», а затем спросить: «Этот человек жив?» и т.д. С каждым вопросом число вариантов отгадки уменьшается до тех пор, пока задуманное не будет идентифицировано. На языке теории информации можно сказать, что второй участник игры (отгадывающий задуманное) с каждым вопросом может получать самое большее один бит информации. С помощью 20 вопросов он может различить самое большее 220 (т.е. приблизительно миллион) различных объектов Касами Т. и др. Теория кодирования. - М.: Мир, 1978. - С. 78..
Если второй участник игры задает свои вопросы не слишком задумываясь, то ему скорее всего понадобится их гораздо больше. Например, чтобы идентифицировать один объект из миллиона возможных, может потребоваться миллион вопросов типа «Задуманный объект - это x?» Чтобы максимально использовать задаваемые вопросы, каждый вопрос должен делить множество возможных ответов примерно на две равные части. Тогда после первого вопроса останется только 500 000 возможных ответов, после второго - только 250 000, и т.д., пока, наконец, после 20-го вопроса не останется только один возможный ответ. Таким образом, в случае N равновероятных сообщений для выбора сообщения требуется около log N битов, а в игре в 20 вопросов для идентификации задуманного объекта требуется log N вопросов, допускающих ответы типа «да - нет».
Если заранее известно, что первый участник игры более чем в половине случаев задумывает «Уильяма Шекспира», то имеет смысл, задавая первый вопрос, спросить: «Это Уильям Шекспир?» Более чем в половине случаев отгадка будет найдена с помощью одного вопроса, и поэтому в среднем число вопросов окажется меньше, чем в описанной выше процедуре. Таким образом, если возможные ответы не равновероятны, то для идентификации наиболее вероятных кандидатов разумнее использовать более короткие последовательности вопросов (и, соответственно, более длинные для идентификации менее вероятных кандидатов).
Точно также и не всегда равновероятны сообщения, порождаемые источниками информации. Если одно сообщение имеет намного более высокую вероятность, чем другие, то для его идентификации мы можем использовать более короткое представление и более длинные - для других, менее вероятных. Предположим, например, что источник генерирует одно из четырех сообщений A, B, C и D с вероятностями 1/2, 1/4, 1/8 и 1/8. Каждое сообщение из этого списка можно было бы представить кодовым словом в два бита (например, представить A кодовым словом 00, B - кодовым словом 01, C - кодовым словом 10 и D - кодовым словом 11). Средняя длина такого представления составляет два бита. Мы могли бы также представить сообщение A кодовым словом 0, B - кодовым словом 10, C - кодовым словом 110 и D - кодовым словом 111. Приняв на выходе некоторую последовательность битов, получатель может решить, какое из четырех сообщений было передано. Средняя длина такого представления равна (1/2 ґ1) + (1/4 ґ2) + (1/8 ґ3) + (1/8 ґ3) = 1,75 бита. Таким образом, представление с переменной длиной кодовых слов в среднем оказывается короче, и при его достаточно продолжительном использовании мы сэкономили бы биты (1,75 по сравнению с 2). В какой-то степени это согласование имеется уже в коде Морзе, где чаще встречающиеся буквы обозначаются более короткими комбинациями точек и тире. Минимальная средняя длина представления ограничена некоторой фундаментальной величиной, называемой энтропией источника Берлекэмп Э. Алгебраическая теория кодирования. - М.: Мир, 1971. - С. 148 - 156..
Источник информации можно представить в виде случайной величины X, принимающей одно из конечного числа возможных значений {1, 2, ј, m} с вероятностью pi (pi - вероятность того, что X = i). Энтропия случайной величины X по определению равна
где логарифмы берутся по основанию 2 и энтропия измеряется в битах. Такое определение энтропии связано с определением энтропии в термодинамике. Энтропия устанавливает нижнюю границу средней длины любого двоичного представления случайной величины.
Рассмотрим случайную величину X, принимающую значения {a, b, c} с вероятностями (1/2, 1/4, 1/4). Код для этой случайной величины мог бы иметь вид (0, 10, 11). Увидев строку 01001110, получатель мог бы однозначно разбить ее на 0, 10, 0, 11, 10, что декодируется в строку {a, b, a, c, b}, причем необходимости в специальном символе для обозначения конца кодированного слова не возникает. Заметим, что средняя длина такого кода составляет (1/2 ґ1) + (1/4 ґ2) + (1/4 ґ2) = 1,5 бита, т.е. совпадает с энтропией источника.
Так же, как мы определили энтропию одной случайной величины, можно определить энтропию последовательности, или множества, случайных величин. Коэффициент энтропии такой последовательности равен пределу отношения энтропии последовательности к числу элементов этой последовательности и называется энтропией сообщения на символ. Если случайные величины коррелированы, то энтропия последовательности меньше суммы энтропий ее элементов.
Один из основных результатов теории информации связан с теоремой, согласно которой выборочную случайную величину можно представить без ошибки с помощью H + 1 бита и невозможно представить источник без ошибки с помощью менее, чем H битов. Отсюда следует, что энтропия является фундаментальным ограничением для представления источника информации, и мы можем найти представления со средней длиной в пределах одного бита энтропии. Оптимальное представление случайной величины (в терминах средней длины) может быть найдено с помощью алгоритма Хаффмана. Этот алгоритм позволяет строить коды для источников с энтропией, не превышающей одного бита.
Теоретически можно вычислить коэффициент энтропии случайного процесса, моделирующего источник информации, а затем найти представления, не превышающие один бит энтропии. Однако многие встречающиеся на практике источники информации обладают структурой, которую очень трудно представить в рамках простой модели. Примером источника, который исследовали многие авторы, служит английский текст. Попытаемся оценить коэффициент энтропии английского языка с помощью различных моделей.
Для простоты предположим, что английский алфавит состоит из 26 букв и одного пробела. В простейшей модели все знаки равновероятны. Можно показать, что энтропия такой модели равна log 27 = 4,76 бита на букву. Но в реальном английском языке буквы не равновероятны (например, буква E встречается с большей вероятностью, чем Q). Используя относительные частоты различных букв для вычисления энтропии, мы получили бы оценку около 4,03 бита на букву. Таков был бы коэффициент энтропии, если бы буквы английского алфавита встречались независимо друг от друга.
Но это не так. Например, за буквой Q почти всегда следует U, и т.д. Воспользовавшись условными распределениями, мы могли бы построить более точную оценку коэффициента энтропии английского языка. Например, если воспользоваться моделью, в которой каждая буква зависит только от предыдущей, то получится оценка примерно в 3,3 бита на букву. Рассматривая распределение букв, которое зависит от трех предыдущих букв, мы получаем оценку примерно в 2,8 бита на букву.
Однако всю сложность зависимостей, существующих в реальном английском языке, ни одна из этих моделей полностью не передает. Зато играя в игру, аналогичную игре в 20 вопросов, и состоящую в угадывании следующей буквы, можно получить гораздо более точные оценки коэффициента энтропии английского языка. Эксперименты с образцами английских текстов показывают, что коэффициент энтропии немного больше, чем 1 бит на букву. Это означает, что в английском языке существует значительная избыточность, которую можно устранить с помощью подходящего кодирования. Например, не составляет никакого труда декодировать следующее английское предложение:
THјRј јS јNLY јNј WјY
Tј FјLL јN THј VјWјLS
јN THјS SјNTјNCј .
IS ONLY ONE WAY
FILL IN THE VOWELS
THIS SENTENCE,
хотя почти половина букв отсутствует. Как показывают оценки коэффициента энтропии, английский язык, вообще говоря, допускает примерно четырехкратное сжатие, если воспользоваться для этого идеальным сжимающим алгоритмом. Например, 300-страничное издание «Повести о двух городах» Чарлза Диккенса можно было бы сократить до объема в 75 страниц такой же печати. Разумеется, в сжатом варианте буквы алфавита от A до Z использовались бы примерно одинаковое число раз, поэтому сжатый текст мог бы выглядеть, как «ZQRRLEWј». Тем не менее механизм «растяжения» позволил бы восстановить первоначальный текст «Повести о двух городах» слово в слово.
Непосредственное применение алгоритма Хаффмана для нахождения оптимального кода требует знания характерного для данного источника информации распределения вероятностей. Однако во многих случаях, как и в примере с английским языком, распределение вероятностей либо неизвестно, либо слишком сложно для того, чтобы его можно было использовать для кодирования. Но и в этих случаях можно придумать такие алгоритмы, которые восстанавливают распределение вероятностей по эмпирическим данным, а затем используют полученную информацию для сжатия данных. Такие алгоритмы называются универсальными. Широко известным примером может служить алгоритм Лемпеля - Зива, который не требует знания статистики источника информации и тем не менее асимптотически оптимален (см. ниже). Основная идея заключается в составлении словаря или таблицы, часто встречающихся фраз и в представлении новых фраз по их префиксам в таблице. Последовательность букв прежде всего необходимо разбить на последовательности, не встречавшиеся ранее. Например, двоичную строку 11010011011100 мы разбиваем на последовательности 1, 10, 100, 11, 0, 111, 00. Затем вместо того, чтобы передавать биты каждой фразы, мы передаем указатель фразы и значение ее последнего бита. Например, если мы используем для указателя три бита, то нашу исходную строку представляем последовательностью (000, 1), (001, 0), (010, 0), (001, 1), (000, 0), (100, 1), (101, 0) и т.д. Самое удивительное заключается в том, что, как показали А.Лемпель и Я.Зив, для всех «хороших» источников информации их алгоритм асимптотически оптимален в смысле сходимости коэффициента сжатия к энтропии. Таким образом, для всех достаточно длинных массивов алгоритм Лемпеля - Зива (не требующий никаких допущений относительно распределения вероятностей источника) позволяет достичь таких же результатов, как если бы мы заранее знали вероятностное распределение и построили для него оптимальный код.
Описанный алгоритм - лишь один из широкого класса аналогичных адаптивных алгоритмов, действующих на основе словаря и называемых алгоритмами Лемпеля - Зива. Они просты, обладают высоким быстродействием и реализуются как с помощью программного обеспечения, так и аппаратно. Их используют, чтобы «удвоить» емкость памяти для хранения данных или эффективную скорость передачи модема, поскольку в большинстве случаев они позволяют вдвое сжать английские тексты.
Сложность по Колмогорову. В 1960-х годах русский математик А.Н.Колмогоров поставил вопрос: «Какова внутренняя сложность описания строки двоичных символов?» Если двоичную строку рассматривать как последовательность независимых и одинаково распределенных случайных величин, то в среднем для ее описания нам понадобилось бы число битов, равное энтропии последовательности. Но что если бы двоичными символами были двоичные цифры, составляющие миллион первых знаков двоичного разложения числа p? В этом случае строка символов кажется случайной, но ее можно получить с помощью простой компьютерной программы. Поэтому если бы мы захотели переслать миллионы битов такой строки куда-нибудь в другое место, где имеется компьютер, то могли бы вместо двоичных знаков переслать программу и попросить компьютер на месте воспроизвести заново эти миллионы битов. Таким образом, сложность описания миллиона битов разложения числа p очень мала Марков А.А. Введение в теорию кодирования. - М.: Наука, 1982. - С. 85 - 117..
Исходя из такого рода соображений, А.Н.Колмогоров определил сложность двоичной строки как длину кратчайшей программы для универсального компьютера, способной генерировать эту строку. (Такое представление о сложности независимо и почти одновременно предложили Г.Чайтин и Р.Соломонофф.) Универсальный компьютер можно рассматривать как машину Тьюринга, которая может моделировать любой другой универсальный компьютер. На первый взгляд кажется, что предложенное А.Н.Колмогоровым определение сложности бесполезно, поскольку зависит от возможностей конкретного компьютера. Но это не так, поскольку любой универсальный компьютер может моделировать любой другой универсальный компьютер, то любая программа, написанная для одного компьютера, может быть конвертирована в программу для другого компьютера путем добавления в качестве префикса «программы имитации», имеющей постоянную длину. Опираясь на эту идею, можно показать, что величина сложности по существу не зависит от компьютера. Внутренняя сложность описания любого объекта не зависит от компьютера или лица, описывающего данный объект. При некоторых предположениях можно доказать, что сложность по Колмогорову есть не что иное, как шенноновская энтропия. Иначе говоря, в среднем длина кратчайшей компьютерной программы, способной воспроизвести случайный объект, равна энтропии вероятностного распределения, из которого этот объект был извлечен. Сложность по Колмогорову предлагает единый подход к проблемам сжатия данных. Кроме того, она служит основой теории статистических выводов (бритва Оккама: «Простейшее объяснение - лучшее») и тесно связана с теорией вычислимости.
Каналы связи. До сих пор мы рассматривали сложность описания источника информации и показали, что естественной мерой этой сложности служит коэффициент энтропии случайного процесса, моделирующего источник. Рассмотрим теперь проблему передачи этого описания по каналу связи. Примерами каналов связи могут служить телеграфные и телефонные провода, передающие информацию посредством электрических сигналов. В сотовых телефонах информация передается с помощью электромагнитного излучения.
Вместо того, чтобы заниматься конкретными деталями той или иной системы связи, мы можем построить ее общую модель. Это делается заданием списков возможных входных и выходных символов, а также функции распределения вероятностей, указывающей вероятность различных возможных выходных символов для каждого возможного входного символа. В простейшем случае выходной сигнал канала равен входному сигналу, и любая поступающая на вход информация без ошибок передается на выход. Например, если бы у нас был канал, который мог бы передавать два символа, и оба они принимались на выходе без ошибки (рис. 1. 3), то с каждым символом мы могли бы передавать один бит информации. Такие каналы получили название каналов без шума. Их пропускная способность равна максимальному количеству информации, которое может поступить на вход. Если канал имеет N возможных входных символов, то его пропускная способность равна log N битов за передачу. Если такой канал может передавать 1 символ в секунду, то его пропускная способность равна log N битов в секунду Сшиффлер Дж. Теория синхронной связи. - М.: Связь, 1975. - С. 32..
Рис. 1. 3. Двоичный канал без шума емкостью в 1 бит.
Однако в общем случае сигналы на входе и выходе канала связи не совпадают. Рассмотрим, например, изображенный на рис. 1. 4 канал связи с двумя входами и двумя выходами. Входами для этого канала служат символы «0» или «1». Если передается «0», то на выходе получатель видит в 90% случаев «0», а в 10% символ «1», что составляет ошибку в 10%. Следовательно, передав по каналу длинную последовательность битов, мы получим на выходе последовательность, в которой 10% двоичных цифр будут ошибочными. Если бы получатель знал, какие знаки неверны, их можно было бы исправить, заменив 0 на 1 и наоборот. Однако, поскольку такой информации у него нет, он может знать значение первого переданного по каналу бита не более, чем с 90%-й уверенностью.
Степень уверенности получателя можно повысить, повторяя сообщение. Например, мы можем трижды повторить передачу первого бита. Взглянув на трижды полученные биты, тот, кому они предназначены, «по большинству голосов» решает, какой именно двоичный знак был ему передан. Ошибиться он может только в том случае, если неверными были два или более битов. Вычисляя вероятность такого события, мы приходим к заключению, что получатель на этот раз будет ошибаться в 2,8% случаев. Увеличивая число повторений, мы можем и далее снижать вероятность ошибки.
Рис. 1. 4. Двоичный симметричный канал
Однако для этого нам понадобится все больше и больше сообщений. В результате скорость передачи информации снизится: например, если мы использовали 9 сообщений для передачи 1 бита, то она составит 1/9 бита на передачу. До Шеннона инженеры-связисты полагали, что повторная передача сигнала - лучшее средство повышения ее надежности, т.е. для того, чтобы снизить вероятность ошибки, надо снизить скорость передачи информации. Но Шеннон в своей основополагающей статье показал, что снижать скорость передачи информации для этого совсем не обязательно. С каждым каналом связи связана некоторая критическая скорость передачи информации, называемая пропускной способностью, или емкостью, канала. Информацию можно передавать со сколь угодно малой вероятностью ошибки и с любой скоростью, если она меньше критической. Для скоростей, превышающих пропускную способность канала, вероятность ошибки не может быть малой, более того, с ростом длины используемого кода она приближается к 1.
В приведенном выше примере двоичного канала его пропускная способность составляет 0,53 бита на передачу. Таким образом, с помощью 100-кратного повторения мы можем передать по этому каналу 53 бита информации с пренебрежимо малой вероятностью ошибки.
Поскольку теорема Шеннона о пропускной способности канала связи в чем-то противоречит нашей интуиции, попытаемся понять, почему эта теорема верна. Рассмотрим канал, изображенный на рис. 1. 5. В этом канале существует 10 возможных входных символов, обозначенных цифрами 0, 1, 2, ј, 9, и десять возможных выходных символов. Каждый входной символ с равной вероятностью порождает выходной символ, обозначенный либо той же цифрой, либо на единицу больше. Например, цифра 3 на входе с равной вероятностью порождает на выходе 3 или 4, а цифра 9, соответственно, - 9 или 0. Поэтому, обнаруживая на выходе канала цифру 5, мы не можем однозначно утверждать, была ли передана цифра 5 или 4.
Рис. 1. 5. Канал с шумом и десятью входами емкостью в 5 битов.
Если мы ограничим множество входных символов четными числами, т.е. 0, 2, 4, 6 и 8, то при любом выходном символе без всякой неопределенности или ошибки сможем указать соответствующий входной символ. Таким образом, используя лишь некоторое подмножество возможных входных символов, мы можем передавать информацию без ошибок. Скорость, с которой мы можем передавать информацию по этому каналу, равна log 5 битов на передачу. Можно показать, что эта скорость оптимальна и совпадает с пропускной способностью канала, изображенного на рис. 1. 5.
Таким образом, если считать, что при передаче длинной последовательности символов все каналы подобны каналу, изображенному на рис. 1. 5, то теорема Шеннона может выглядеть интуитивно более оправданной. Длинная последовательность входных символов может порождать любую выходную последовательность, но по законам теории вероятностей скорее всего породит одну из небольшого множества условно «типичных» выходных последовательностей. Например, в двоичном симметричном канале входная последовательность длины n вероятнее всего породит одну из 2nH(p) условно типичных последовательностей (где H (p) = -p log p - (1 - p) log (1 - p) и p - вероятность того, что «0» будет принят как «1» или наоборот). Так как всего существует 2n возможных выходных последовательностей длины n, нетрудно показать, что можно выбрать ок. 2n/2nH (p) = 2n(1 - H (p)) различных входных последовательностей (называемых кодовыми словами), таких, что их выходные варианты будут существенно неперекрывающимися (как на рис. 4), и, следовательно, получатель сможет различить эти последовательности с очень малой ошибкой. Таким образом, пропускная способность такого канала (скорость, с которой информация может быть передана по нему с пренебрежимо малой ошибкой) по существу равна 1 - H (p) битов на одну передачу.
В общем случае пропускная способность канала определяется разностью между безусловной энтропией выхода канала и условной энтропией канала с заданным входным сигналом. Эта величина называется взаимной информацией между входом и выходом канала; максимум взаимной информации по всем распределениям вероятностей входа является пропускной способностью канала. Если распределение вероятностей, которому подчиняется канал, известно, то эта величина может быть вычислена.
До сих пор мы рассматривали дискретные каналы связи. Это каналы, сигналы на входе и выходе которых представлены дискретными последовательностями символов. Однако во многих практически используемых устройствах передачи информации сигналы имеют вид непрерывно меняющихся функций времени. Важным примером здесь является гауссовский канал с заданной полосой пропускания, где параметры входного сигнала ограничены средней мощностью P ватт и спектром частот в некотором их диапазоне шириной W гц, а на выходе получается входной сигнал, искаженный шумом с плоским спектром частот, средней плотностью рассеиваемой мощности N ватт/гц и с гауссовым распределением вероятностей. В этом случае мы можем воспользоваться «теоремой отсчетов» и показать, что входной сигнал можно представить, взяв 2W его выборочных значений в секунду. Можно показать также, что пропускная способность такого канала определяется по формуле
Такой непрерывный канал служит полезной моделью многих широко используемых на практике каналов радио- и телефонной связи Зюко А.Г., Коробов Ю.Ф. Теория передачи сигналов. - М.: Сов. радио, 1972. - С. 58 - 77..
Коэффициент энтропии источника и пропускная способность канала связаны основной теоремой теории информации, которая гласит: кодирующие и декодирующие устройства, позволяющие безошибочно воссоздавать входной сигнал на выходе, могут быть построены в том и только в том случае, если коэффициент энтропии источника меньше пропускной способности канала. Теория информации ничего не говорит нам о том, как именно такие кодирующие и декодирующие устройства можно сконструировать, она лишь говорит о возможности их существования в принципе, если предположить, что их сложность может быть сколь угодно велика. Создание таких устройств составляет предмет теории кодирования, ставшей самостоятельной наукой со своими методами и важными результатами. Для создания практических кодирующих и декодирующих устройств были разработаны различные тонкие алгебраические методы. Широкому распространению таких кодов способствовали и успехи в развитии технологии интегральных схем. Например, в плейерах для проигрывания компакт-дисков используется один из видов кодов, исправляющих ошибки, который называется кодом Рида - Соломона и способен исправлять до 4000 следующих подряд ошибок.
Последние достижения в области теории информации несколько расширили понятия пропускной способности и сжатия данных на случай сетей каналов связи. Прогресс в теории кодирования позволил создавать модемы для телефонных каналов, вплотную приблизившие скорость передачи информации к их пропускной способности. Универсальные алгоритмы сжатия данных типа алгоритма Лемпеля - Зива ныне широко используются для сжатия компьютерных файлов.
1.4 Методы цифрового физического кодирования
Для описания работы кодеков необходимо рассмотреть, каким образом происходит кодирование физического сигнала в реальных линиях связи (имеется в виду просто способ представления сигнала, без привлечения специальных математических алгоритмов; о них речь пойдет позже). Цифровое кодирование (Digital Encoding), иногда не совсем корректно называемое модуляцией, определяет способ представления битов в физическом канале передачи данных. Существуют различные варианты цифрового кодирования: от простого метода NRZ (Non Return to Zero - без возврата к нулю) до гораздо более сложного HDB3 (High Density Bipolar 3 - биполярное кодирование с высокой плотностью, вариант 3) Бернард Скляр. Цифровая связь. Теоретические основы и практическое применение. - Киев: изд. Вильямс, 2003. - С. 188 - 209..
Простейший метод NRZ используется в протоколах на базе интерфейса RS232, в сетях Ethernet применяется кодирование PE, а в телефонии используется алгоритм HDB3 (этот метод служит для кодирования сигналов в потоках E1 и E2). Выбор метода кодирования зависит от полосы канала связи, используемой кабельной системы, скорости передачи данных и других параметров.
При кодировании цифровых сигналов должны выполняться определенные требования.
1. Малая полоса цифрового сигнала для возможности передачи большого объема данных по имеющемуся физическому каналу.
2. Невысокий уровень постоянного напряжения в линии.
3. Достаточно высокие перепады напряжения для возможности использования сигнальных импульсов (переходов напряжения) для синхронизации приемника и передатчика без добавления в поток сигналов дополнительной информации.
4. Неполяризованный сигнал для того, чтобы можно было не обращать внимания на полярность подключения проводников в каждой паре Прокис Дж. Цифровая связь. - М.: Радио и связь, 2000. - С. 22 - 69..
NRZ - Non Return to Zero (без возврата к нулю)
В этом варианте кодирования используется следующее представление битов: биты 0 представляются нулевым напряжением (0 В); биты 1 представляются напряжением +V.
Рис. 1. 6. Цифровой сигнал при кодировании методом NRZ
Этот метод кодирования является наиболее простым и служит базой для построения более совершенных алгоритмов кодирования. Кодированию по методу NRZ присущ целый ряд недостатков:
- высокий уровень постоянного напряжения (среднее значение 1/2V вольт для последовательности, содержащей равное число 1 и 0);
- широкая полоса сигнала (от 0 Гц для последовательности, содержащей только 1 или только 0 до половины скорости передачи данных при чередовании 10101010);
- возможность возникновения продолжительных периодов передачи постоянного уровня (длинная последовательность 1 или 0) в результате чего затрудняется синхронизация устройств;
- сигнал является поляризованным.
RZ - Return to Zero (возврат к нулю)
Цифровые данные представляются следующим образом: биты 0 представляются нулевым напряжением (0 В); биты 1 представляются значением +V в первой половине и нулевым напряжением во второй, т.е. единице соответствует импульс напряжения продолжительностью в половину продолжительности передачи одного бита данных.
Рис. 1. 7. Метод кодирования RZ
Этот метод имеет два преимущества по сравнению с кодированием NRZ:
- средний уровень напряжения в линии составляет 1/4V (вместо 1/2 V);
- при передаче непрерывной последовательности 1 сигнал в линии не остается постоянным.
Однако при использовании кодирования RZ полоса сигнала может достигать значений, равных скорости передачи данных (при передаче последовательности 1).
NRZ I - Non Return to Zero Invertive (инверсное кодирование без возврата к нулю)
Этот метод кодирования использует следующие представления битов цифрового потока:
- биты 0 представляются нулевым напряжением (0 В);
- биты 1 представляются напряжением 0 или +V в зависимости от предшествовавшего этому биту напряжения. Если предыдущее напряжение было равно 0, единица будет представлена значением +V, а в случаях, когда предыдущий уровень составлял +V для представления единицы, будет использовано напряжение 0 В.
Этот алгоритм обеспечивает малую полосу (как при методе NRZ) в сочетании с частыми изменениями напряжения (как в RZ), а кроме того, обеспечивает неполярный сигнал (т. е. проводники в линии можно поменять местами).
AMI - Alternate Mark Inversion (поочередная инверсия единиц)
Этот метод кодирования использует следующие представления битов: биты 0 представляются нулевым напряжением (0 В); биты 1' представляются поочередно значениями +V и -V.
Этот метод подобен алгоритму RZ, но обеспечивает в линии нулевой уровень постоянного напряжения.
Недостатком метода AMI является ограничение на плотность нулей в потоке данных, поскольку длинные последовательности 0 ведут к потере синхронизации.
Подобные документы
Методы арифметического кодирования. Основные функции программ, реализующие алгоритмы кодирования по методам Хаффмана, Голомба, Фибоначчи и Элиаса. Разработка программно-аппаратных средств оптимального арифметического кодирования и их экономический расчет.
дипломная работа [1,1 M], добавлен 26.05.2012Определение понятий кода, кодирования и декодирования, виды, правила и задачи кодирования. Применение теорем Шеннона в теории связи. Классификация, параметры и построение помехоустойчивых кодов. Методы передачи кодов. Пример построения кода Шеннона.
курсовая работа [212,6 K], добавлен 25.02.2009Методы компрессии информации. Обзор и характеристика существующих методов сжатия информации, основанных на процедуре кодирования Хаффмена. Алгоритмы динамического кодирования методом FGK и Виттера. Программная реализация и руководство пользователя.
курсовая работа [33,2 K], добавлен 09.03.2009Изучение сущности циклических кодов - семейства помехоустойчивых кодов, включающих в себя одну из разновидностей кодов Хэмминга. Основные понятия и определения. Методы построения порождающей матрицы циклического кода. Понятие открытой системы. Модель OSI.
контрольная работа [99,5 K], добавлен 25.01.2011Энтропия и количество информации. Комбинаторная, вероятностная и алгоритмическая оценка количества информации. Моделирование и кодирование. Некоторые алгоритмы сжатия данных. Алгоритм арифметического кодирования. Приращаемая передача и получение.
курсовая работа [325,1 K], добавлен 28.07.2009Выбор и обоснование параметров входа, разработка кодека. Исследование кодов, исправляющих ошибки, которые могут возникать при передаче, хранении или обработке информации по разным причинам. Синтез принципиальной схемы парафазного буфера и декодера.
курсовая работа [582,8 K], добавлен 24.03.2013Использование принципа формирования кода Хэмминга в процессе отладки ошибки. Сложение двоичного числа по модулю в программе и получение кода ошибки для определения разряда, в котором она содержится. Соответствие ошибки определенному разряду операнда.
лабораторная работа [8,0 K], добавлен 29.06.2011Понятие информации и основные принципы ее кодирования, используемые методы и приемы, инструментарий и задачи. Специфические особенности процессов кодирования цифровой и текстовой, графической и звуковой информации. Логические основы работы компьютера.
курсовая работа [55,8 K], добавлен 23.04.2014Оптимальное статистическое (экономное) кодирование. Основные понятия и определения теории кодирования. Принципы построения оптимальных кодов. Способность системы осуществлять прием информации в условиях наличия помех. Увеличение мощности сигналов.
реферат [69,3 K], добавлен 09.07.2009Описание системы кодирования, порядка присвоения кодов единицам информации. Изучение этапов создания классификаторов. Штриховое кодирование и особенности его применения. Юридическая сила документа, полученного из автоматизированной информационной системы.
презентация [409,6 K], добавлен 25.06.2013