
книги из ГПНТБ / Вулконский Б.М. Теория автоматического управления учебное пособие
.pdfтэта. Условие (69) при этом, как правило, не выполняется и согла сование получается неудовлетворительным.
Значительно лучшее решение получается, когда кодируются посредством групп символов сравнительно длинные группы зна ков или блоки сообщений.
В 1948—1949 гг. К. Шенноном и независимо от него Р. М. Фэно был предложен метод кодирования, обеспечивающий эффективное согласование, для наиболее интересного для практики случая — канала, использующего двоичный алфавит символов одинаковой длительности. Этот код носит название кода Шеннона — Фэно. Процесс кодирования по методу Шеннона — Фэно состоит в сле дующем.
Все сообщения (знаки) исходной схемы располагаются в по рядке убывания их вероятностей и разбиваются на две группы, так чтобы суммарные вероятности групп были по возможности одинаковыми. Для сообщений первой группы в качестве первого символа кодовой комбинации используется 1 , для сообщений вто рой группы — символ 0, или наоборот. Каждая из полученных групп вновь разбивается на две части по возможности с близкими суммарными вероятностями. Вторым символом кодовой комбинат ции выбирается 1 или 0 , в зависимости от того, к какой подгруппе принадлежит данное сообщение. Этот процесс продолжается, пока каждая подгруппа не будет содержать одно единственное сооб щение.
Таблица б
z, z. z3 z.
0,5 0,25 0,125 0,125
Покажем, что такой метод ко дирования действительно обеспе чивает эффективное согласование кода .с каналом.
Пусть имеется исходная схема сообщений, представленная табл. 6 .
Закодируем сообщения кодом феннона—Фэно. Процесс кодиро вания представим табл. 7.
Т а б л и ц а 7
Подгруппы и их Сообщения вероятностиАприорные кодовые обозна
чения
z , |
0,5 |
) 1 |
1 1 . |
|
Z., |
0,25 |
1 |
|
|
z3 |
0,125 |
о |
О |
О — |
Z. |
0,125 |
Кодовые
комбинации
1
01
001
000
Подсчитаем вероятности появления отдельных символов кода О и 1 .
40
Вероятность появления некоторого символа равна отношению среднего числа данных символов на одну кодовую комбинацию к среднему числу всех символов на одну комбинацию
|
м |
А |
|
|
2 |
/> ( * ) * ,; |
|
я (л ,) |
= ^ --------------. |
(73) |
|
|
2 P(Zk)/VzK |
' |
|
|
k=l |
|
|
где N t j — число символов |
At |
в кодовой |
комбинации; |
zk |
|
в комбинации. |
|
Nzk — число всех символов |
В нашем примере:
Р(0) =0,5;
Я (1)=0,5.
Следовательно, полученный код является оптимальным, так как появление 0 и 1 равновероятно.
В оптимальности кода можно убедиться также, рассчитав тре буемые для эффективного согласования длительности кодовых комбинаций по формуле (69), как это мы делали в примере 12.
logP(Z k) |
- log т |
1 |
|
. 0 |
1 |
С |
Г |
|
I ° g 2 = |
г |
|
|
|
&П |
|
**П |
|
t\ — t0\ — 2 ^о; |
t, — 3*0; |
ti |
— 31, |
|
что в точности соответствует относительным длительностям кодо вых комбинаций, полученных в результате кодирования по ме тоду Шеннона — Фэно.
Однако |
не всегда удается |
осуществить |
Т а б л и ц а |
8 |
|||||
такое оптимальное кодирование, так как не |
|
|
|
||||||
всегда можно разбить сообщения |
на группы |
|
г, |
Zn |
|||||
равной суммарной вероятности. Поэтому, как |
|
||||||||
уже указывалось, обычно приходится осу |
|
|
|
||||||
ществлять предварительную компоновку со |
P( Zj) |
0,7 |
0,3 |
||||||
общений в блоки, |
которые затем |
и кодировать |
|||||||
методом Шеннона — Фэно. |
|
|
|
|
|
||||
|
Пусть дана исходная схема сообщений (табл. 8 ). |
|
не |
||||||
|
|
|
Применёние |
Метода Шеннона — Фэно |
|||||
|
Т а б л и ц а |
9 |
посредственно |
к исходной |
схеме |
приводит к |
|||
|
простому коду |
(табл. 9). |
|
|
|
||||
|
|
|
Очевидно,. что этот метод здесь оказыва |
||||||
Zj |
P ( Z j) |
Код |
ется бесцельным. Действительно, |
при двоич |
|||||
ном алфавите пропускная способность канала |
|||||||||
|
|
|
|||||||
г, |
0,7 |
1 |
|
|
1 |
|
|
|
|
|
С = т - дв. ед./сек, |
|
|
||||||
|
0,3 |
0 |
|
|
|
||||
|
|
|
W) |
|
|
|
41
полученный же код обеспечивает скорость передачи информации
- ( 0 , 7 log 0,7 + 0,3 lo g 0,3) |
0,881 |
. |
h |
—7 — |
дв. ед ./сек |
|
|
и, следовательно, не является эффективным.
Будем теперь осуществлять кодирование не отдельных сооб щений, а блоков, состоящих из двух сообщений. Исходная схема
запишется теперь в следующем виде |
(табл. |
|
1 0 ). |
|||||
|
|
Т а б л и ц а |
10 |
|
|
|
||
Z jZ u |
Z,z, |
z,z3 ZnZj |
Z 3Z 2 |
|||||
P ( Z j Z k) |
0,49 |
0,21 |
0,21 |
0,09 |
||||
Результаты кодирования, |
как и прежде, |
|
сведем в табл. 11. |
|||||
|
|
Т а б л и ц а |
11 |
|
|
|
||
ZjZk |
P(ZjZk) |
Подгруппы и их |
Код |
|||||
кодовые обозна- |
||||||||
|
|
|
|
чения |
|
|
" ^ |
|
Z,Z, |
0,49 |
|
) |
1 |
1 |
|
|
1 |
z,z„ |
0.21 |
|
} |
) |
1 |
|
01 |
|
ZoZ| |
0,21 |
|
1 |
0 1 |
0 ! |
|
001 |
|
Z3ZL. |
0,09 |
|
1 |
и } |
о |
|
000 |
Подсчитаем^ скорость передачи информации, обеспечиваемую этим кодом.
v _ ± _ - (0,49 log 0,49 + 0,42 log 0,21 -(-0,09 log 0,09)
т~ 0,49t0-j- 0,42 t0-(- 0,6310-j- 0,2710
0,974 —-—7 — дв. ед./сек.
Как видно, уже двухзначное блочное кодирование привело к
коду, |
весьма |
близкому |
к оптимальному (г' |
отличается |
от |
С на |
|||
3%). |
Кодирование |
трехзначных |
блоков |
дало |
бы |
нам |
|||
0,986 |
|
‘ |
■ . |
что отличается |
от теоретического предела |
||||
г = —4— |
* |
Дв. ед./сек., |
|||||||
|
г0 |
|
|
|
|
|
|
|
|
всего на |
1,5%. |
|
|
|
|
|
Достигнутое в рассмотренном примере приближение скорости передачи информации к пропускной способности канала при большей разнице в вероятностях сообщений исходной схемы мо жет быть менее быстрым, однако во всех случаях при переходе к
42
кодированию все более длинных блоков степень близости скорости передачи к пропускной способности канала может быть сколь угодно увеличена.
Метод *Шеннона — Фэно дает положительные результаты н- тогда, когда между отдельными сообщениями или знаками исход ной схемы существует корреляция. В этом случае необходимо лишь подвергать кодированию сочетания (блоки), в пределах ко-, торых действуют взаимные связи.
Пp-и м е р ы.
13.Телеметрическая аппаратура ракеты каждые 2 сек зам ряет значение некоторого параметра.
Измеряемый параметр может принимать два значения: Z\ с
вероятностью P{Z\) — 0,89 и Z2 с вероятностью P(Z2) = 0,11.
На пункт обработки информация передается по каналу, рабо тающему двумя символами 0 и 1. Длительность символов одина
кова и равна 2 |
сек. |
|
Определить |
эффективный код Шеннона — Фэно для передачи |
|
информации по каналу. Оценить избыточность кода. |
||
Р е ш е н и е . |
Пропускная способность канала |
|
|
С = ^ - = 0 ,5 дв. |
ед./сек. |
Применим метод Шеннона — Фэно |
к двухзначным сочетаниям |
|
(табл. 1 2 ). |
|
|
|
Т а б л и ц а |
12 |
|
|
Блоки |
Вероятность |
Подгруппы и ко |
||
довые обозначе- |
||||
|
блоков |
|
ния |
|
|
|
|
|
|
Z.Z, |
0,792 |
1 1 |
1 1 |
|
ZjZo |
0,098 |
1 |
о»— |
|
Z'xR-2 |
0,098 |
о |
о |
|
0,012 |
|
|
|
Код
1
01
001
000
Скорость передачи информации для полученного кода
|
i |
- (0,792 log 0,792 + |
0,196 log 0,098 + |
0,012 log 0,012) |
|
1 |
x “ |
|
0,792-2 + 0,098-4 + 0,098-6 + |
0,012-6 |
|
|
|
' |
= 0,38 |
дв. ед./сек. |
|
Избыточность кода составляет
I = |
1 - - |
= |
1 + |
(0,75 log 0,75 + 0,25 log 0,25 ) = |
|
* * max |
|
= 1 — 0 , 8 = 0 , 2 = 2 0 % , |
|
|
|
|
|
|
где |
вероятности |
символов определены по формуле (73): |
||
Р(0) |
= 0,25; |
Р(1) |
= |
0,75. |
43
Как видно, полученный код далек от оптимального.
Применим метод Шеннона — Фэно к трехзначнум сочетаниям.
|
|
Т а б л и ц а |
|
13 |
|
|
|
z , z , z , |
0,705 |
P |
|
|
|
1 |
|
|
|
|
|
|
|
||
z , z , z . |
0,088 |
1 1 |
1 |
|
O il |
||
z xz ^ z x |
0,088 |
1 ! |
|
0 |
|
010 |
|
z , z , z , |
0,088 |
} |
|
1 |
|
001 |
|
z ,z .,z ., |
0,010 |
0 |
|
|
l |
00011 |
|
Z-iZjZ-, |
0,010 |
» ) „ ! • |
0 |
00010 |
|||
Z..Z..Z i |
0,010 |
00001 |
|||||
|
|
|
1 |
||||
Z 2Z 2Z 3 |
0,001 |
) |
1 ° |
00000 |
|||
0 |
i' = 0,45 дв. ед./сек;
Я(0) = 0,336; Я (1 ) = 0,664;
/ = 1 -0,921 =0,08 = 8"/о-
Полученный код близок к оптимальному и может быть реко мендован для использования.
§ 7. КОД ХАФФМЕНА
Метод кодирования Шеннона — Фэно позволяет построить оптимальный код лишь в частном случае, когда удается разбить сообщения на подгруппы равной суммарной вероятности. Если же это сделать не удается, то метод не обеспечивает получения оптимального кода. К нему дишь можно сколь угодно приблизить ся, подвергая кодированию все более и более длинные блоки со общений, т. е. устремляя число сообщений в исходной схеме к бесконечности. При достаточно сложных исходных схемах это свя зано с необходимостью выполнения ряда громоздких последова,- теЛьных приближений дсГ получения кода с требуемой' избыточ ностью.
Рассмотрим более универсальный метод кодирования, предло женный Хаффменом. Метод Хаффмена обеспечивает получение кода с минимальной избыточностью для данной исходной схемы с ко нечным числом сообщений.' Кроме того, он применим для кода с любым основанием т.
Процедура метода заключается в следующем. Имеется исход ное множество М сообщений 1\, Z2, . . . , ZM с априорными вероят ностями P(Z]), P(Z2), . . . , P (Z M)- Требуется закодировать сооб щения при помощи кода с основанием т.
44
Исходное множество сообщений располагается в порядке убы вания вероятностей сообщений. Далее, п0 наименее вероятных со общений объединяются в одно составное сообщение, вероятность которого равна., сумме вероятностей составляющих сообщений. В качестве последних символов кодовых комбинаций для этих По сообщений выбираются п0 различающихся символов из алфа вита кода.
Затем составляется первое вспомогательное множество, кото рое включает составное сообщение и все остальные сообщения исходного множества, не вошедшие в составное сообщение. Та ким образом, первое вспомогательное множество будет содержать М\ — М — п0 + 1 сообщений. Элементы вспомогательного множе ства должны быть переставлены, если это необходимо, так, что бы они были снова упорядочены в соответствии с их вероятно стями. '
С первым вспомогательным множеством поступают точно так же, как с исходным. Однако в составное сообщение объединяется теперь т наименее вероятных сообщений. При объединении сооб щений в составное могут возникнуть обстоятельства, когда возни кает альтернатива в выборе наименее вероятных сообщений. В этом случае можно произвести любой выбор. Последним симво лом для т сообщений, входящих в. составное сообщение первого вспомогательного множества, выбираются различные символы алфавита кода в произвольной последовательности. Если в числе т сообщений оказывается составное сообщение исходного множе ства, то очередной символ кодовых комбинаций для составляющих его сообщений будет одинаковым.
Эта процедура повторяется до тех пор, пока число сообщений в последнем из образованных вспомогательных множеств не уменьшится до т. Каждому из этих т сообщений сопоставляется свой символ изалфавита кода. Затем эти т сообщений объеди няются, образуя одно составное сообщение, имеющее вероятность, равную единице, и кодирование окончено.
Поскольку рассмотренная процедура кодирования предусмат ривает, что последнее вспомогательное множество всегда имеет одно сообщение, вероятность которого равна единице, .а число сообщений в каждом предшествующем множестве увеличивается на т — 1 , пока мы не приходим к первому вспомогательному мно-
Mi - |
1 |
должно быть целым числом. Но |
жеству, то отношение т |
|
М\ = М — п0 + 1. Поэтому п0 следует выбирать так, чтобы —ру
било целым. Причем по должно быть по меньшей мере равно двум и не превышать т.
Рассмотрим в качестве примеров задачи кодирования множе ства из М = 9 сообщений двоичным алфавитом (т = 2) и множе ства из М = 8 сообщений кодом с основанием т = 4.
45
Таблица 14
|
Процедура кодирования |
при М—9, /п=2, |
Ло = 2| |
М—Пр |
9 - 2 |
|
|
|
т—1 ~ |
2—1 |
|
||||
|
|
В е р о я т н о с т и с о о б щ е н и й |
|
|
|
||
Исходное |
|
|
Вспомогательные |
|
|
Код |
|
множество |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1 |
|||||||
|
|
|
|
|
|
|
,->1,00 |
-
0,20 |
0,20 |
0,20 |
0,20 |
0,18 |
0,18 |
0,18 |
—-0,20 |
0,18 |
|||
|
-0,14 |
->0,18 |
0,18 |
0,10 |
0,14 |
0,141 |
|
0,10 |
0,10 |
о.ю )— |
|
0,10 |
0,10 |
0,101 |
|
0,10 |
0,10 |
о.ю)— |
|
0,10 |
0,101 |
|
|
0,08 |
0,08 )— |
|
|
0,081 |
|
|
|
0,06) |
|
|
|
|
|
-0,40 |
-0,60 1 |
1 |
|
-0,36 |
0,40)— |
|
|
-0,24 |
0,361 |
|
|
|
0,24 |
0,24 J— |
|
10 |
|
0,20 |
0,201 |
— |
|
|
0,20 |
0,20)— |
|
000 |
|
0,181 |
|
|
|
|
0,18)---- |
|
|
|
|
— |
|
|
|
011 |
|
|
|
|
110 |
111
0010
ООП
0100
0101
Результаты кодирования сведены в таблицы 14 и 15. Там же даны априорные вероятности сообщений исходных множеств.
Т а б л и ц а 15
Процедура |
кодирования |
при АГ=8, т = 4, |
ттс = 2 |
8 - 2 _ 0 |
|
4 - 2 |
|||||
|
|
|
|
||
|
Вероятности |
сообщений |
|
Код |
|
Исходное |
Вспомогательные множестпа |
||||
|
|||||
множество |
|
||||
|
|
|
|
||
|
|
-0.401 |
->1,00 |
|
|
0,22 |
0,22 |
|
р |
||
0,22 |
|
1 |
|||
0,20 |
0,20 |
0,20 |
|
2 |
|
0,18 |
0,18, |
0,18 |
|
3 |
|
0,15 |
0,15 |
|
|
00 |
|
0,10 |
0,10 |
|
|
01 |
|
0,08 |
0,08 |
|
|
02 |
|
0,05 \ |
->0,07 |
|
|
030 |
|
|
|
|
|||
0,02) |
|
|
|
031 |
Для того чтобы убедиться в эффективности метода, подсчи таем избыточность полученных кодов.
Д л я д в о и ч н о г о к о д а
/ / max = log2 = l дв. ед.
Вероятности появления 0 и 1, вычисленные по формуле (73),
Р (0) = 0,56; Р(1) = 0,44;
тогда
Я = — (0,56 log 0,56-j-0,44 log 0,44)— 0,989 дв. ед.
и
1 = \ |
= |
1 |
— 0,989= 0,011 = 1%. |
■fJuiax |
|
|
|
Д л я к о д а с о с н о в а н и е м т = 4 |
|||
Я тах = |
^ |
4 |
= 2 дв. ед.; |
Я (0 ) = 0,41; |
|
|
Р (2 ) = 0,19; |
Я (1 ) = 0,23; |
|
|
Р(3) = 0,17; |
47
н = -(0 ,4 1 logo,41 + 0,23 log0,23 -f 0,19 log 0,19 +
-h 0,17 log0,17) = 1,903 |
ед. ед.; |
’ / = 1 — 1,92°3 - — 0,049 - |
5%. |
Как видно, рассмотренный метод прост, универсален и позво ляет получить эффективные коды с весьма малой избыточностью. Причем для данного исходного множества сообщений эта мзбыточность является минимальной.
Г л а в а 3
ПЕРЕДАЧА ИНФОРМАЦИИ ПРИ НАЛИЧИИ ШУМОВ
§8. СОГЛАСОВАНИЕ КОДА С КАНАЛОМ ПРИ НАЛИЧИИ ШУМОВ
Впредыдущей главе обсуждались вопросы передачи информа-. ции по каналу, в котором отсутствуют какие бы то ни было иска жения, то есть обсуждались случаи, когда передача ведется в от сутствии шумов (помех).
Вдействительное™ передача, как правило, сопровождается теми или иными видами помех, искажающими сигнал в процессе передачи.
И если раньше мы стремились построить код, избыточность которого была бы минимальной, то при наличии помех в канале дело будет обстоять иначе. В этом случае только определенная избыточность может помочь точно восстановить переданное со общение по принятому сигналу.
При сильных'помехах мы даже стремимся к увеличению'избы точности, например, дублируя каждый сигнал по нескольку раз или, как это практикуется в телефонной связи, заменяя каждую букву словом, начинающимся с этой буквы.
Ясно, что использование методов Шеннона — Фэноили Хафф
мена, приводящих к минимальной избыточности кода, здесь уже нецелесообразно. Задача теперь заключается в том, чтобы по строить код с избыточностью, достаточной для практически без ошибочной передачи, и при этом не слишком сильно потерять в скорости передачи информации.
Рассмотрение вопроса начнем с математического описания ка нала с шумами.
Напомним, что в отсутствии шумов пропускная способность канада определялась как наибольшее количество информации, ко торое можно передать по каналу за единицу времени. Обобщим это определение на случай канала с шумами. Согласно (28), для такого канала среднее количество информации, переносимое, одним символом,
|
i = H ( A ) - H a {A). |
4 |
49 |