Теоремы шеннона. Понятие о теоремах шеннона

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

Займемся общим методом описания структуры источника. Для этого понадобится понятие энтропии. Хотя энтропия давно использовалась во многих физических задачах, и ее понятие в теории информации сильно напоминает классическое определение, тем не менее в теории информации энтропия изучается сама по себе без обращения к многочисленным аналогиям. Для нас энтропия будет просто функцией распределения вероятностей Некоторые аналогии приведены в .

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

Результат, который является целью изучения, - это основная теорема Шеннона из гл. 10, связывающая пропускную способность канала С (более точно будет определена далее) и максимально возможную скорость передачи сигналов. Доказывается замечательная теорема, утверждающая, что можно сколь угодно близко подойти к максимальной скорости передачи сигналов, достигая при этом сколь угодно низкого уровня ошибок. К сожалению, доказательство не является конструктивным, так что теория информации дает границы того, что можно достичь, и не говорит, как. этого достичь. Тем не менее, как уже упоминалось в разд. 1.2, эта теория весьма полезна.

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

Теорема Шеннона - Хартли в теории информации - применение теоремы кодирования канала с шумом к архетипичному случаю непрерывного временно́го аналогового канала коммуникаций, искажённого гауссовским шумом . Теорема устанавливает шенноновскую ёмкость канала, верхнюю границу максимального количества безошибочных цифровых данных (то есть, информации), которое может быть передано по такой связи коммуникации с указанной полосой пропускания в присутствии шумового вмешательства, согласно предположению, что мощность сигнала ограничена, и гауссовский шум характеризуется известной мощностью или спектральной плотностью мощности . Закон назван в честь Клода Шеннона и Ральфа Хартли .

Утверждение теоремы

Рассматривая все возможные многоуровневые и многофазные методы шифрования, теорема Шеннона - Хартли утверждает, что пропускная способность канала texvc , означающая теоретическую верхнюю границу скорости передачи данных, которые можно передать с данной средней мощностью сигнала Невозможно разобрать выражение (Выполняемый файл texvc через аналоговый канал связи, подверженный аддитивному белому гауссовскому шуму мощности Невозможно разобрать выражение (Выполняемый файл texvc равна:

Невозможно разобрать выражение (Выполняемый файл texvc не найден; См. math/README - справку по настройке.): C=B\log_2\left(1+\frac{S}{N}\right), Невозможно разобрать выражение (Выполняемый файл texvc не найден; См. math/README - справку по настройке.): C - пропускная способность канала, бит /с; Невозможно разобрать выражение (Выполняемый файл texvc не найден; См. math/README - справку по настройке.): B - полоса пропускания канала, Гц ; Невозможно разобрать выражение (Выполняемый файл texvc не найден; См. math/README - справку по настройке.): S - полная мощность сигнала над полосой пропускания, Вт или ²; Невозможно разобрать выражение (Выполняемый файл texvc не найден; См. math/README - справку по настройке.): N - полная шумовая мощность над полосой пропускания, Вт или ²; Невозможно разобрать выражение (Выполняемый файл texvc не найден; См. math/README - справку по настройке.): S/N - отношение мощности сигнала к шуму (SNR) .

История развития

Напишите отзыв о статье "Теорема Шеннона - Хартли"

Отрывок, характеризующий Теорема Шеннона - Хартли

– Ну и где же мой новый друг? – расстроено спросила Мария. – Разве вы не надеялись его здесь найти?
Стелла никак не могла понять, что же такое могло произойти, что заставило бы Светило покинуть свою «солнечную» обитель?..
– Может что-то случилось? – задала совершенно глупый вопрос я.
– Ну, естественно – случилось! Иначе он бы никогда отсюда не ушёл.
– А может здесь тоже был тот злой человек? – испуганно спросила Мария.
Честно признаться, у меня тоже мелькнула такая мысль, но высказать её я не успела по той простой причине, что, ведя за собой троих малышей, появился Светило... Детишки были чем-то смертельно напуганы и, трясясь как осенние листики, боязливо жались к Светилу, боясь от него отойти хоть на шаг. Но детское любопытство вскоре явно пересилило страх, и, выглядывая из-за широкой спины своего защитника, они удивлённо рассматривали нашу необычную тройку... Что же касалось нас, то мы, забыв даже поздороваться, вероятно, с ещё большим любопытством уставились на малышей, пытаясь сообразить, откуда они могли взяться в «нижнем астрале», и что же всё-таки такое здесь произошло...
– Здравствуйте, милые... Не надо вам было сюда приходить. Что-то нехорошее здесь происходит... – ласково поздоровался Светило.
– Ну, хорошего здесь вряд ли можно было бы ожидать вообще... – грустно усмехнувшись, прокомментировала Стелла. – А как же получилось, что ты ушёл?!... Ведь сюда любой «плохой» мог за это время явиться, и занять всё это...
– Что ж, тогда ты бы обратно всё «свернула»... – просто ответил Светило.
Тут уж мы обе на него удивлённо уставились – это было самое подходящее слово, которое можно было употребить, называя данный процесс. Но откуда его мог знать Светило?!. Он ведь ничего в этом не понимал!.. Или понимал, но ничего об этом не говорил?...
– За это время много воды утекло, милые... – как бы отвечая на наши мысли, спокойно произнёс он. – Я пытаюсь здесь выжить, и с вашей помощью начинаю кое-что понимать. А что привожу кого, так не могу я один такой красотой наслаждаться, когда всего лишь за стеной такие малые в жутком ужасе трясутся... Не для меня всё это, если я не могу помочь...
Я взглянула на Стеллу – она выглядела очень гордой, и, конечно же, была права. Не напрасно она создавала для него этот чудесный мир – Светило по-настоящему его стоил. Но он сам, как большое дитя, этого совершенно не понимал. Просто его сердце было слишком большим и добрым, и не желало принимать помощь, если не могло делиться ею с кем-то другим...
– А как они здесь оказались? – показывая на испуганных малышей, спросила Стелла.
– О, это длинная история. Я время от времени их навещал, они к отцу с матерью с верхнего «этажа» приходили... Иногда к себе забирал, чтобы от беды уберечь. Они же малые, не понимали, насколько это опасно. Мама с папой были здесь, вот им и казалось, что всё хорошо... А я всё время боялся, что опасность поймут, когда уже поздно будет... Вот и случилось только что это же самое «поздно»...
– А что же такого их родители натворили, что попали сюда? И почему они все «ушли» одновременно? Они погибли что ли? – не могла остановиться, сердобольная Стелла.
– Чтобы спасти своих малышей, их родителям пришлось убить других людей... За это здесь и платили посмертно. Как и все мы... Но сейчас их уже и здесь больше нет... Их нигде нет более... – очень грустно прошептал Светило.
– Как – нет нигде? А что же случилось? Они что – и здесь сумели погибнуть?! Как же такое случилось?.. – удивилась Стелла.
Светило кивнул.
– Их убил человек, если «это» можно назвать человеком... Он чудовище... Я пытаюсь найти его... чтобы уничтожить.
Мы сразу же дружно уставились на Марию. Опять это был какой-то страшный человек, и опять он убивал... Видимо, это был тот же самый, кто убил её Дина.
– Вот эта девочка, её зовут Мария, потеряла свою единственную защиту, своего друга, которого тоже убил «человек». Я думаю, это тот же самый. Как же мы можем найти его? Ты знаешь?
– Он сам придёт... – тихо ответил Светило, и указал на жмущихся к нему малышей. – Он придёт за ними... Он их случайно отпустил, я ему помешал.
У нас со Стеллой поползли по спинам большие-пребольшие, шипастые мурашки...
Это звучало зловеще... А мы ещё не были достаточно взрослыми, чтобы кого-то так просто уничтожать, и даже не знали – сможем ли... Это в книгах всё очень просто – хорошие герои побеждают чудовищ... А вот в реальности всё гораздо сложнее. И даже если ты уверен, что это – зло, чтобы побеждать его, нужна очень большая смелость... Мы знали, как делать добро, что тоже не все умеют... А вот, как забирать чью-то жизнь, даже самую скверную, научиться ни Стелле, ни мне, пока ещё как-то не пришлось... И не попробовав такое, мы не могли быть совершенно уверены, что та же самая наша «смелость» в самый нужный момент нас не подведёт.
Я даже не заметила, что всё это время Светило очень серьёзно за нами наблюдает. И, конечно же, наши растерянные рожицы ему говорили обо всех «колебаниях» и «страхах» лучше, чем любая, даже самая длинная исповедь...
– Вы правы, милые – не боятся убить лишь глупцы... либо изверги... А нормальный человек к этому никогда не привыкнет... особенно, если даже ещё не пробовал никогда. Но вам не придётся пробовать. Я не допущу... Потому что, даже если вы, праведно кого-то защищая, мстить будете, оно сожжёт ваши души... И уже больше никогда прежними не будете... Вы уж поверьте мне.
Вдруг прямо за стеной послышался жуткий хохот, своей дикостью леденящий душу... Малыши взвизгнули, и все разом бухнулись на пол. Стелла лихорадочно пыталась закрыть пещеру своей защитой, но, видимо от сильного волнения, у неё ничего не получалось... Мария стояла не двигаясь, белая, как смерть, и было видно, что к ней возвращалось состояние недавно испытанного шока.
– Это он... – в ужасе прошептала девчушка. – Это он убил Дина... И он убьёт всех нас...
– Ну это мы ещё посмотрим. – нарочито, очень уверенно произнёс Светило. – Не таких видели! Держись, девочка Мария.
Хохот продолжался. И я вдруг очень чётко поняла, что так не мог смеяться человек! Даже самый «нижнеастральный»... Что-то в этом всём было неправильно, что-то не сходилось... Это было больше похоже на фарс. На какой-то фальшивый спектакль, с очень страшным, смертельным концом... И тут наконец-то меня «озарило» – он не был тем человеком, которым выглядел!!! Это была всего лишь человеческая личина, а нутро было страшное, чужое... И, была не была, – я решила попробовать с ним бороться. Но, если бы знала исход – наверное, не пробовала бы никогда...

Теория кодирования информации является одним из разделов теоретической информатики. К основным задачам, решаемым в данном разделе, необходимо отнести следующие:

    разработка принципов наиболее экономичного кодирования информации;

    согласование параметров передаваемой информации с особенностями канала связи;

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

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

3.1. Постановка задачи кодирования. Первая теорема Шеннона

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

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

Введем ряд с определений.

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

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

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

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

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

Кодер - устройство, обеспечивающее выполнение операции кодирования .

Декодер - устройство, производящее декодирование .

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

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

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

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

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

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

Отношение т/n, очевидно, характеризуетсреднее число знаков вторичного алфавита, которое приходится использовать для кодирования одного знака первичного алфавита - будем называть егодлиной кода илидлиной кодовой цепочки и обозначимК(А,В). Следовательно

Обычно N>M и I(А) > I(B), откуда К(А,В) > 1 , т.е. один знак первичного алфавита представляется несколькими знаками вторичного. Поскольку способов построения кодов при фиксированных алфавитахА и Б существует множество, возникает проблема выбора (или построения) наилучшего варианта - будем называть егооптимальным кодом. Выгодность кода при передаче и хранении информации - это экономический фактор, так как более эффективный код позволяет затратить на передачу сообщения меньше энергии, а также времени и, соответственно, меньше занимать линию связи; при хранении используется меньше площади поверхности (объема) носителя. При этом следует сознавать, что выгодность кода не идентична временной выгодности всей цепочки кодирование-передача-декодирование; возможна ситуация, когда за использование эффективного кода при передаче придется расплачиваться тем, что операции кодирования и декодирования будут занимать больше времени и иных ресурсов (например, места в памяти технического устройства, если эти операции производятся с его помощью).

Как следует из β.1), минимально возможным значением средней длины кода будет:

Данное выражение следует воспринимать как соотношение оценочного характера, устанавливающее нижний предел длины кода, однако, из него неясно, в какой степени в реальных схемах кодирования возможно приближение К(А,В) кK min (A,B). По этой причине для теории кодирования и теории связи важнейшее значение имеют две теоремы, доказанные Шенноном. Первая - ее мы сейчас рассмотрим - затрагивает ситуацию с кодированием при отсутствии помех, искажающих сообщение. Вторая теорема относится к реальным линиям связи с помехами и будет обсуждаться в гл. 5.

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

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

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

Из (3.2) видно, что имеются два пути сокращения K min (A,B):

    уменьшение числителя - это возможно, если при кодировании учесть различие частот появления разных знаков в сообщении, корреляции двухбуквенные, трехбуквенные и т.п. (в п.2.3. было показано, что I 0 >I 1 >I 2 >…>I ∞);

    увеличение знаменателя - для этого необходимо применить такой способ кодирования, при котором появление знаков вторичного алфавита было бы равновероятным, т.е. I (B) =log 2 M.

В частной ситуации, рассмотренной подробно К. Шенноном, при кодировании сообщения в первичном алфавите учитывается различная вероятность появления знаков (то, что в п.2.3. мы назвали "первым приближением"), однако, их корреляции не отслеживаются - источники подобных сообщений называютсяисточниками без памяти. Если при этом обеспечена равная вероятность появления знаков вторичного алфавита, то, как следует из β.2), для минимальной средней длины кода оказывается справедливым соотношение:

В качестве меры превышения К(А,В) над K min (A, B) можно ввестиотносительную избыточность кода (Q(A,B):

Данная величина показывает, насколько операция кодирования увеличила длину исходного сообщения. Очевидно, Q(A,B) → 0 приК(А,В) К min (А,В). Следовательно, решение проблемы оптимизации кода состоит в нахождении таких схем кодирования, которые обеспечили бы приближение средней длины кода к значению K min (AB),равному отношению средних информации на знак первичного и вторичного алфавитов. Легко показать, что чем меньшеQ(A,B), тем I fin (B) ближе к Ist(A)) ,т.е. возникает меньше информации, связанной с кодированием, более выгодным оказывается код и более эффективной операция кодирования.

Используя понятие избыточности кода, можно построить иную формулировку теоремы Шеннона:

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

Наиболее важной для практики оказывается ситуация, когдаМ = 2, т.е. для представления кодов в линии связи используется лишь два типа сигналов - технически это наиболее просто реализуемый вариант (например, существование напряжения в проводе (будем называть этоимпульсом) или его отсутствие (пауза); наличие или отсутствие отверстия на перфокарте или намагниченной области на дискете); подобное кодирование называетсядвоичным. Знаки двоичного алфавита принято обозначать "О" и "1", но нужно воспринимать их как буквы, а не цифры. Удобство двоичных кодов и в том, что при равных длительностях и вероятностях каждый элементарный сигнал (0 или 1) несет в себе 1 бит информации (log 2 M = 1); тогда из β.3)

и первая теорема Шеннона получает следующую интерпретацию:

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

Применение формулы (3.4) для двоичных сообщений источника без памяти при кодировании знаками равной вероятности дает:

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

Возможны следующие особенности вторичного алфавита, используемого при кодировании:

    элементарные сигналы (0 и 1) могут иметь одинаковые длительности (τ 0 =τ 1) или разные (τ 0 ≠τ 1);

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

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

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

1. При любой производительности источника сообщений, меньшей пропускной способности канала, существует способ кодирования, позволяющий передавать по каналу все сообщения, вырабатываемые источником.

2. Не существует способа кодирования, обеспечивающего передачу сообщений без их неограниченного накопления, если производительность источника сообщений больше пропускной способности канала.

Кодирование, о котором идет речь в этой формулировке, называется эффективным (безызбыточным) кодированием.

Пример эффективного кода

Источник

Сообщения

Вероятности

Эффективный

Множество сообщений – X = {x 1 , ... , x 8 }.

Энтропия множества сообщений – H (X ) = 2,76 бит.

Максимальная энтропия источника – H max = 3,00 бит.

Избыточность источника – R = (3,00– 2,76)/3 = 0,08 .

Среднее число символов на сообщение–l i p i = 2,84 .

Избыточность (остаточная) кода – R к = (3,00– 2,84)/3 =0,05 .

Основная теорема Шеннона о кодировании для канала с помехами

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

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

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

Пример помехоустойчивого кода

Исходный неизбыточный код

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

Разрешённые кодовые комбинации

Запрещённые (избыточные) кодовые комбинации

Основным практическим следствием теорем Шеннона является построение системы передачи данных с использованием двух ступеней кодирования‑декодирования: для устранения избыточности источника и для повышения помехоустойчивости, как это показано на Error: Reference source not found.

9.Эксперимент по нахождению модели объекта.

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

Рассмотрим проблему согласования источника сообщений и канала при передаче последовательности сообщений. Пусть источник сообщений выдает сообщения с некоторой скоростью (сообщений/ед. времени), называемой технической производительностью источника. Пусть по каналу можно передавать без искажений сообщения со скоростью, не превышающей некоторую величину(сообщений/ед. времени), называемую технической пропускной способностью канала. Очевидно, что если выполняется условие<, то канал успевает передать все сообщения, поступающие на его вход от источника, и передача будет вестись без искажений. Что произойдет, если>? Можно ли в этом случае обеспечить передачу без искажений? Если исходить только из технических характеристик, то, очевидно, нельзя. А если учесть информационные характеристики? Ведь нам известно, что если последовательность обладает информационной избыточностью, то её можно сжать, применив методы экономного кодирования. Рассмотрим подробнее такую возможность.

Пусть V u - (информационная) производительность источника, т.е. количество информации, производимое источником в единицу времени; C k – (информационная) пропускная способность канала, т.е. максимальное количество информации, которое способен передать канал без искажений за единицу времени. Первая теорема Шеннона утверждает, что безошибочная передача сообщений определяется соотношением V u и C k .

Первая теорема Шеннона: если пропускная способность канала без помех превышает производительность источника сообщений, т.е. удовлетворяется условие C k > V u ,

то существует способ кодирования и декодирования сообщений источника, обеспечивающий сколь угодно высокую надежность передачи сообщений. В противном случае, т.е. если C k < V u

Такого способа нет.

Таким образом, идеальное кодирование по Шеннону по существу представляет собой экономное кодирование последовательности сообщений при безграничном укрупнении сообщений. Такой способ кодирования характеризуется задержкой сообщений

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

    Теорема Шеннона для канала с помехами

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

Возникает вопрос, возможен ли такой способ кодирования, при котором сообщения передаются через канал без ошибок с некоторой ненулевой скоростью V k. 0 (действие ошибок полностью устраняется при кодировании)? В первой главе рассматривались методы помехоустойчивости кодирования, основанные на введении избыточности. Однако для полного устранения ошибок их применение потребовало бы введения бесконечной избыточности, что привело бы к снижению скорости передачи сообщений до нуля.

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

Вторая теорема Шеннона: для канала с помехами существует такой способ кодирования, при котором обеспечивается безошибочная передача всех сообщений источника, если только пропускная способность канала превышает производительность источника, т.е. C k > V u .

Возникающая ситуация поясняется на рис. 19. На вход канала поступают типичные последовательности источника А Т . Они кодируются последовательностями канала , причем для этой цели используется только часть возможных последовательностей каналаА к . Под действием помех входные последовательности изменяются и переходят в выходные последовательности канала В к , вообще говоря, не совпадающие с переданными.

Получив одну из последовательностей В к на выходе канала, мы должны принять решение относительно переданной последовательности. Как это сделать? Разобьем множество В к на непересекающиеся подмножества S k так, чтобы каждой переданной последовательности соответствовало своё подмножество S k .. При этом выберем подмножества так, чтобы для каждой вход-

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

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

Рис. 19. Преобразование типичных последовательностей при передаче через канал с помехами.

Канал

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

Теорема Шеннона для канала с помехами не указывает конкретного способа кодирования, обеспечивающего достоверную передачу информации со скоростью сколь угодно близкой к пропускной способности канала, а лишь указывает на принципиальное существование такого способа. Кроме того, как и в первой теореме, кодирование будет сопровождаться задержкой сообщений не менее , где
. Поэтому идеальное кодирование технически нереализуемо. Однако из формулы для вероятности ошибки вытекает крайне важный практический вывод:достоверность передачи сообщений тем выше, чем больше длительность кодируемой последовательности и чем менее эффективно используется пропускная способность канала, т.е. чем больше запас C k - Vu .

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

    Значение результатов Шеннона для задач передачи, хранения и поиска информации.

Теорема Шеннона и передача информации.

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

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

Для наглядного пояснения роли теоремы Шеннона прибегнем к следующему сравнению. Пусть имеется трубопровод для доставки от источника некоторого жидкого продукта. Технические возможности трубопровода определяются количеством жидкости, которое можно передать по нему в единицу времени. Производительность источника определим количеством чистого продукта, поступающего от него в единицу времени, а пропускную способность трубопровода – как максимально возможную скорость передачи чистого продукта, соответствующую условию, что от источника поступает чистый продукт без примесей. Аналогом канала с помехами может служить трубопровод с утечкой. Пропускная его способность будет меньше. Чем в трубопроводе без утечки, на величину утечки продукта за единицу времени. Можно теперь представить, какой эффект вызвало бы утверждение, что существует такой способ введения примеси («избыточности») в продукт, при котором, введя количество примеси, равное утечке в трубопроводе, можно по нему доставлять продукт без потерь со скоростью, отвечающей пропускной способности трубопровода с утечкой. Именно такой смысл имеет теорема Шеннона применительно к задаче передачи информации. Продолжая аналогию этого примера, можно сказать, что такой способ введения примеси требует наличия некоего «отстойника», в котором примесь будет отстаиваться в течении определенного времени перед подачей в трубопровод (в идеале – бесконечное время). После такого «отстоя» при движении жидкости по трубопроводув утечку будет уходить только примесь.

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

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

Возникает вопрос, при каких условиях возможно достоверное хранение информации, т.е. получение из ЗУ данных в том виде, в каком они были туда помещены.

Для ответа на этот вопрос в соответствии с шенноновским подходом необходимо перейти от технических характеристик к информационным:

Для запоминаемых данных определить среднюю энтропию записи;

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

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

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

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

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

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

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

В соответствии с шенноновским подходом перейдем к информационным характеристикам:

Для последовательностей аргументов поиска определим среднюю энтропию аргументов. Если на аргументы действуют ошибки, то необходимо учесть увеличение средней энтропии вследствие ошибок;

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

Тогда для информационных показателей будет справедлива следующая формулировка теоремы Шеннона для задачи поиска информации:

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

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

Как упоминалось во второй главе, разработка технически реализуемых способов помехоустойчивого поиска в настоящее время находится в зачаточном состоянии своего развития. Имеющиеся здесь результаты существенно скромнее, чем, например, в помехоустойчивом кодировании, где создана обширная и глубокая математическая теория кодирования. В чем здесь дело? Почему бы не воспользоваться результатами теории кодирования для решения родственной задачи поиска.

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

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

    Сжатие данных.

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

Существует два подхода (или два этапа) сжатия данных:

    сжатие, основанное на анализе конкретной структуры и смыслового содержания данных;

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

4.1. Сжатие на основе смыслового содержания данных

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

Переход от естественных обозначений к более компактным. Значения многих конкретных данных кодируются в виде, удобном для чтения человеком. При этом они содержат обычно больше символов, чем это необходимо. Например, дата записывается в виде «26 января 1982 г.» или в самой краткой форме: «26.01.82». при этом многие кодовые комбинации, например «33.18.53» или «95.00.11», никогда не используются. Для сжатия таких данных день можно закодировать пятью разрядами, месяц – четырьмя, год – семью, т.е. вся дата займет не более двух байтов. Другой способ записи даты, предложенный еще в средние века состоит в том, чтобы записывать общее число дней, прошедших к настоящему времени с некоторой точки отсчета. При этом часто ограничиваются четырьмя последними цифрами этого представления. Например, 24 мая 1967 года записывается в виде 0000 и отсчет дней от этой даты требует, очевидно, два байта в упакованном десятичном формате.

Аналогичным образом могут быть сжаты номера изделий, уличные адреса и т.п.

Подавление повторяющихся символов. Во многих данных часто присутствуют повторяющиеся подряд символы: в числовых – повторяющиеся старшие или младшие нули, в символьных – пробелы и т.п. Если воспользоваться специальным символом указывающим на повторение, а после него помещать в закодированном виде число повторений, то тем самым можно уменьшить избыточность, обусловленную повторениями. Например, подавление повторений может быть произведено по следующей схеме. В коде ДКОИ-8 большая часть допустимых кодовых комбинаций не используется. Одну из таких комбинаций (например, с нулем во второй позиции) можно использовать как признак повторения. Тогда байт следующего вида с последующим байтом кода символа заменяют цепочку повторяющихся символов

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

Эффективность такого метода определяется числом и размерами участков повторяющихся символов.

Кодирование часто используемых элементов. Некоторые данные, такие ка имена и фамилии, принадлежат множеству возможных значений очень большого размера. Однако в большинстве случаев используется лишь малая часть возможных значений (действует правило «90/10»-в девяноста процентах случаев используется 10 процентов возможных значений). Поэтому для сжатия данных можно определить множество наиболее часто используемых значений, экономно закодировать его элементы и использовать эти коды вместо обычного представления. В частности, имена людей можно кодировать одним байтом, что дает 256 возможных кодовых комбинаций. Если при этом использовать первый разряд как признак пола, то получится 128 женских и 128 мужских имен. Как обеспечить возможность записи имен, не входящих в закодированные? Для этого можно, например, условиться, что некоторая специальная кодовая комбинация длиной в один байт означает, что последующие байты содержат полное написание имени в обычном коде ДКОИ-8.

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

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

    элемент данных совпадает с предыдущим;

    элемент данных имеет следующее по порядку значение;

    элемент совпадает с предыдущим кроме последнего символа;

    элемент совпадает с предыдущим кроме двух (трех, четырех и т.д.) последних символов;

    элемент длиной l байтов не имеет связи с предыдущим.

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

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




Top