книги из ГПНТБ / Вулконский Б.М. Теория автоматического управления учебное пособие
.pdfВеличина i зависит от уровня шумов (степени искажения), при сущих каналу, и от распределения вероятностей символов на входе канала.
Обозначим самое большое значение средней информации, ко торое может быть достигнуто изменением вероятностей символов на входе при заданном уровне шумов, через /тахТогда наиболь шее количество информации, которое можно передать по каналу за единицу времени, или пропускная способность канала с шумами будет
С = , (74)
где т — средняя длительность символов.
Величина С может быть легко вычислена для конкретных ка налов. Например, для канала, в котором все символы в равной степени подвержены искажению с вероятностью правильной пере
дачи р и ошибки |
q, |
средняя |
информация |
на символ |
|
/ = log т + |
р log./? |
1]log т ^ |
дв. ед./символ. |
||
(см. пример 6 ). |
|
|
|
\ |
|
было получено в предположении, что все символы |
|||||
Это значение |
|||||
на входе канала |
имеют равную вероятность. Нетрудно понять, что |
||||
оно ,и является максимальным, так как при любом другом рас
пределении вероятностей первое слагаемое будет меньше |
log «г. |
|||
Следовательно, для такого канала |
|
|
|
|
С = |
log w + р logр + q log |
j-J |
дв. ед./сек. |
(75) |
В частном случае двоичного канала |
(т — 2) |
|
||
|
С = -^-(1 -\-р log/? - f q log q) дв. |
ед./сек |
(76) |
|
Итак, будем считать, что пропускная способность канала с шу мами нам известна.
В отсутствии шумов мы убедились, что знание С позволяет точно оценить возможную скорость передачи информации по ка налу. Эта скорость ни при каком методе кодирования не может превзойти величины
"Ц= -у - символов/сек.
Однако скорость передачи информации, сколь угодно близкая к и, всегда ;может быть получена.
50
При наличии шумов, кроме скорости, следует еще учитывать степень точности передачи, характеризуемую вероятностью ошиб ки в определении каждого переданного символа. За снижение ве роятности ошибки в этом случае мы должны платить уменьше нием скорости передачи. Так, если не накладывать вообще ника ких ограничений на скорость передачи, то легко можно добить
|
ся того, что вероятность ошибки в определении каждого передан |
||||
|
ного символа окажется сколь угодно малой. Для Этого,, например, |
||||
|
достаточно очень много раз повторить каждый передаваемый сим |
||||
|
вол. Однако для получения очень малой вероятности ошибки та |
||||
|
кая простая процедура привела бы уж к очень сильному умень |
||||
|
шению скорости передачи. |
|
того, |
||
|
Заслугой теории информации является доказательство |
||||
|
что для получения малой вероятности ошибки в действительности |
||||
|
нет необходимости в таком резком снижении скорости 'передачи. |
||||
, |
Для любого канала с шумами всегда можно подобрать |
||||
специальный |
код, позволяющий передавать |
сообщения |
по |
||
|
|
* |
„ |
|
С |
|
этому каналу со скоростью сколь угодно близкой к v = —т— |
||||
|
символов/сек. |
(но обязательно' несколько |
меньшей), |
так, |
|
|
чтобы вероятность ошибки в определении каждого передан |
||||
|
ного символа оказалась меньше любого наперед заданного |
||||
|
числа s. |
|
|
|
|
|
Сформулированное положение носит название основной тео |
||||
|
ремы кодирования |
при наличии шумов (теоремы |
Шеннона) |
. 7 |
е, |
|
Разумеется, код, |
о котором идет речь в теореме, зависит от |
|||
ичем меньше е, тем он будет сложнее. Это находит отражение и в доказательстве теоремы, которое базируется на кодировании сразу длинных блоков из большого числа знаков. В связи с этим
ипередача со скоростью, близкой к v, при малой вероятности ошибки будет, как правило, сопряжена со значительным запазды ванием при декодировании каждого переданного символа. Деко дирование возможно лишь после того, как будет принят весь блок знаков.
Доказательство теоремы Шеннона, даже упрощенное, само по себе достаточно сложно и представляет больше теоретический чем практический интерес, поэтому мы его не приводим.
Из доказательства следует лишь, что если разбивать сообще ния на блоки, состоящие из сколь угодно брльшого числа знаков,
то при любом v < - г - вероятность ошибки е может быть получена
сколь угодно малой. Однако остается не ясным, как сопоставлять кодовые комбинации с блоками сообщений и как велико должно быть число знаков в блоках.
Усилиями ряда ученых эта практическая сторона вопроса ре шена в настоящее время лишь частично и для некоторых специ
51
альных каналов. Предложенные коды носят название кодов, об наруживающих п исправляющих ошибки, шли корректирующих кодов.
§ 9. КОРРЕКТИРУЮЩИЕ КОДЫ
Идея корректирующих кодов заключается в том, что вместо использования для обнаружения ошибок высокой избыточности кода строится специальный аппарат проверки, который приме няется совместно с кодом малой избыточности.
Таким образом, в отличие от системы, которая основана только па избыточности и которая приводит к резкому снижению скоро сти передачи, получается более эффективная система, обеспечи вающая достаточно высокую скорость передачи информации.
Принцип построения корректирующих кодов состоит в том, что к информационным символам в кодовой комбинации добавля ются специальные проверочные пли контрольные символы, кото рые служат лишь для обнаружения и исправления ошибок. В ре зультате общее число символов в кодовой комбинации корректи рующего кода
|
R = R H+ R Ki |
(77) |
где R„ — 1/исло |
информационных символов; |
|
/ R K— число |
контрольных символов. |
|
Корректирующая способность кода определяется так называе |
||
мым кодовым расстоянием d — числом позиций, по которым |
раз |
|
личаются между собой кодовые комбинации. Например, в случае кодовых комбинаций
|
|
1 |
1 |
0 |
1 1 |
|
|
|
|
1 |
0 |
1 |
1 |
0 |
|
|
|
X Х.Х |
|
||||
число позиций, по которым различаются комбинации, |
равно трем |
||||||
(обозначены |
крестиками) |
и, следовательно, кодовое |
расстояние |
||||
d = 3. |
кода обнаруживать и исправлять ошибки определяет |
||||||
Свойства |
|||||||
ся именно |
величиной d. |
Покажем это на примере. |
Пусть дано |
||||
восемь комбинаций двоичного кода по три символа и все они ис пользуются в канале:
0 0 0 ; 0 0 1 ; 1 0 1 ; 1 0 0 ; 1 1 0 ; 0 1 0 ; 0 1 1 ; 1 1 1 ;
Наименьшее кодовое расстояние между любыми двумя соседни ми комбинациями равно единице. Если действие помехи прояв ляется в искажении одного символа, т. е. где-то вместо 0 появится 1 или наоборот, то эта ошибка не может быть обнаружена. Иска женная комбинация будет принята за соседнюю.
52
Будем теперь использовать в канале не все восемь комбинаций, а четыре и такие, чтобы кодовое расстояние между ними равня лось двум:
0 0 0 ; 1 0 1 ; 1 1 0 ; 0 1 1 .
В этом случае ошибка в любом символе комбинации превращает ее в запрещенную, не похожую ни на одну из разрешенных, и ошибка сразу обнаруживается.
Для построения еще более мощного корректирующего кода будем использовать всего две комбинации из восьми с кодовым расстоянием, равным трем:
0 0 0 ; 1 11 ;
И теперь одиночная ошибка превратит кодовую комбинацию в за прещенную. Однако эта искаженная комбинация будет все-таки ближе к истинной, чем к какой-либо другой' то есть в данном слу чае ошибка может быть не только обнаружена, но и указано ее
положение, а следовательно, она |
может |
быть |
исправлена. |
|
Пусть, например, в |
результате искажений получена |
комбинация |
||
1 0 0. Легко понять, |
что в действительности было передано 0 0 0, |
|||
так как 1 0 0 ближе к 0 0 0 , чем к 1 1 1 . |
быть |
повышена и |
||
Корректирующая |
способность кода |
может |
||
далее путем увеличения кодового расстояния. Кодовое расстоя ние связано с числом дополнительных контрольных символов в ко довой комбинации простой зависимостью
d = \ + R K. |
(78) |
В этом выражении единица определяет минимальное кодовое расстояние, необходимое для отличия одной кодовой комбинации от другой. В соответствии с (78) корректирующие возможности различных кодов приведены табл. 16.
|
|
Таблица |
16 |
d |
Як |
Корректирующая способность |
|
1 |
0 |
Отличает одну |
комбинацию от другой |
21 Обнаруживает одиночную ошибку
32 Обнаруживает две ошибки или обнаруживает одну и исправляет одну.
43 Обнаруживает три ошибки или обнаруживает две
нисправляет одну.
Из таблицы видно, что корректирующая возможность кода может быть использована по усмотрению как для обнаружения, так и для исправления ошибок.
53
Огфеделщм теперь зависимость, которой связано между собой число информационных и контрольных символов.
Рассмотрим R двоичных позиций в предположении, что среди них никогда не встретится более одной ошибки. Из этого числа выберем R„ позиций для передачи информации, а остальные R K используем для проверки.' Из RK двоичных символов может быть
составлено 2 Кк различных комбинаций, которые должны указы вать:
1 ) отсутствие ошибки;
2 ) 'наличие ошибки и ее положение среди R позиций.
Всего получается R + 1 необходимых указаний, откуда следует условие
2r k = |
/? + 1, |
|
или |
|
|
/?K = |
log(/? + l). |
(79) |
Формула (79) позволяет определить требуемое число контроль ных символов для обнаружения и исправления одиночной ошибки в различных двоичных кодах. Так, например, в случае трехразряд ного двоичного кода каждая комбинация должна содержать два контрольных символа. В результате лишь один символ может ис пользоваться для передачи информации.
§ 10. КОДЫ С ПРОВЕРКОЙ НА ЧЕТНОСТЬ
а) Коды, обнаруживающие одиночную ошибку
При использовании двоичного кода (простейшим методом вы явления ошибки является проверка на четность. Если в кодовой комбинации не может быть более одной ошибки, то метод дает полную уверенность, что*комбииация из R символов принята без ошибочно. Для осуществления проверки на четность к информа ционным символам кодовой комбинации добавляется один сим
вол, который выбирается так, чтобы общее число 1 |
(или 0 |
) |
|
в ко |
|||||||||
довой комбинации было четным. Например:- |
|
|
1 |
|
|
|
|
|
|||||
контрольный символ |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
|
информационные символы |
|
|
|
|
|
1 |
|
|
|
|
|
|
0 |
кодовая комбинация |
1 |
0 |
1 |
1 |
0 |
0 1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
число 1 в комбинации |
|
|
|
|
4 |
|
|
|
|
2 |
|
|
|
Такая процедура позволяет обнаружить на приемной стороне ошибку, однако не дает указания, в каком символе произошла ошибка. Признаком ошибки в кодовой комбинации является не четность числа символов, по которым производится проверка на четность ( 1 или 0), на приемной сторонй канала. Двойная ошибка при таком кодировании не обнаруживается.
54
б) Коды, исправляющие одиночную ошибку
В кодах, исправляющих одиночную ошибку, заложен тот же принцип проверки на четность. Однако, если для обнаружения одиночной ошибки достаточно было разовой проверки на четность, то для обнаружения и исправления ее необходимо осуществить R K таких проверок.
Общий метод кодирования в этом случае состоит в следующем. Если имеются Rn информационных и R K контрольных символов, то последние выбираются так, чтобы Я к проверочных сумм, со ставленных из различных комбинаций однотипных информацион ных и контрольных символов, были четными. Для этого первый информационный символ включается во все R K проверочных сумм; следующие R K информационных символов — в R K— 1 провероч
ных сумм, .следующие ■ к v к—-—^символов в RK— 2 проверочных
сумм и т. д. В каждую проверочную сумму включается только один контрольный символ и встречается он в проверочной сумме лишь один раз. Поясним это на примерах.
Начнем с двоичного кода «один из трех», что соответствует одному информационному символу и двум контрольным в кодовой комбинации из трех символов. В этом случае кодирование осуще ствляется по табл. 17.
|
Т а б л и ц а |
17 |
|
Информационный символ |
Контрольный символ |
Проверочные суммы |
|
А |
а 2 |
а 3 |
|
X |
X |
|
• 1 |
X |
|
X |
2 |
|
|
||
Приемник вычисляет суммы по строкам |
1 и 2. А2 и А3 выби |
||
раются так, чтобы А\ + А2и А\ + А3 были четными по сумме одно типных символов (0 или 1). Если на приёмной стороне одна из сумм окажется нечетной, tq ошибка в контрольном символе этой суммы. Если обе суммы нечетны, то ошибка в информационном символе. Например, передается 0 и проверка производится по сумме единиц. В результате Кодирования получим комбинацию 0 0 0. Ошибка в первом контрольном символе даст нечетность пер вой суммы 0 1 0. Ошибка в информационном символе даст нечет ность сразу двух сумм 1 0 0 . ,
\ |
55 |
|
Рассмотрим более сложный код «одиннадцать из пятнадцати». Составим в соответствии с правилом кодирования таблицу коди рования (табл. 18).
Таблица 18
|
Информационные символы |
Контрольные символы |
Суммы |
||||
Ах A. 4;t 4( 4 5 4 ЙЛт 4 S А3 |
4щ Лц |
А12 <4i3 Л и 4j3 |
|
||||
X |
X X |
X |
X X X |
|
|
X |
1 |
X X X |
X X |
|
X X |
X |
2 |
||
X X |
X X |
X |
X |
X |
X |
3 |
|
X |
X X X |
X |
|
X X |
X |
4 |
|
Контрольные символы, как и прежде, выбираются так, чтобы суммы 1, 2, 3 и 4 (по строкам) однотипных символов были чет ными.
Если на приемной стороне канала обнаружена нечетность одной суммы, то это указывает на ошибку в контрольном символе этой суммы.
Ошибки в информационных символах дают нечетность 2 , 3 или 4 проверочных сумм. Если нечетны четыре суммы, то ошибка в первом информационном символе; если нечетны три суммы, то ошибка в символе, который является общим для этих сумм, но не входит в четвертую; если нечетны две суммы, то ошибка в сим воле, который входит в них, но не входит в две другие.
§ И. ЭФФЕКТИВНОСТЬ КОРРЕКТИРУЮЩИХ кодов
Корректирующие коды с проверкой на четность обычно исполь зуются следующим образом. Дано некоторое сообщение, кодиро ванное двоичными символами, например: v
00001011001111001010fl0011101110111000010101
Требуется перекодировать сообщение корректирующим кодом, пусть кодом «одиннадцать из пятнадцати». В этом случае исход ное сообщение делится на группы по одиннадцать символов в каждой:
0 0 0 |
0 1 0 1 |
|
1 0 |
0 1 |
\ \у |
|||||||
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
|
|
0О1 1 1 0 '1 |
1 |
1 О1 |
|
|||||||||
1 10000 10 |
1 |
0 1 |
|
|||||||||
56
Эти группы дополняются четырьмя контрольными символами в соответствии с таблицей кодирования:
|
0 0 0 0 1 0 1 1 0 0 1 |
0111 |
' |
1 1 1 0 0 1 0 1 0 1 1 |
1111 |
|
0 0 1 1 1 0 1 1 1 0 1 0 1 1 1 |
|
|
1 1 0 0 0 0 1 0 1 0 1 |
1110 |
Приемник, получив эти кодовые комбинации, применяет про верки на четность для исправления ошибок, затем устраняет по следние четыре символа в каждой пятнадцатизначной комбинации и таким образом восстанавливается исходный сигнал.
Этот метод обеспечивает безошибочную передачу, когда на R символов никогда не приходится более одной ошибки. Естествен но, что такое условие никогда в точности не выполняется. При передаче сигналов по каналу обычно имеет место совокупность случайных ошибок с вероятностью ошибки в каждом символе р.
Покажем, что и в этом случае использование кодов с провер кой на четность целесообразно, так как они способнызначитель но уменьшить число ошибок и оставить малую вероятность неис правленных ошибок. Рассмотрим код R, R„, R K.
Пусть р — вероятность ошибки в некотором определенном сим воле;
Р0— вероятность неправильной комбинации после декоди рования.
В последовательности из R символов определим следующие
вероятности: |
|
|
|
|
|
р 0 = ( 1 —p)R |
|
— вероятность |
отсутствия ошибки; |
||
p l = Rp( 1—p )R_I |
— вероятность |
одной |
ошибки; |
||
р, = — Цг----- р 2 ( 1 —p ) R ~ 2 |
— вероятность |
двух |
ошибок в двух |
||
R\ |
|
разных позициях; |
|
||
-pn( l - p ) R- |
вероятность |
п ошибок в п разных |
|||
Рп = nl (R—я)! |
|||||
|
|
'ПОЗИЦИЯХ. |
|
\ |
|
Если ошибок нет или имеется одна ошибка на всю последова тельность R, то сигнал будет принят правильно. Если имеются 2, 3, . . . , п ошибок, то окончательная декодированная комбинация будет не верца. Следовательно, вероятность неправильной комби нации после декодирования
Р * = Р г + Р ъ + ■ • • + Р*== 1 - Р о — Pi-
Если р мало, то членами е р3, pi и т. д. можно пренебречь и приближенное выражение для Ро запишется в -виде
P0~ P 2 ~ - j - R ( R - \ ) P ' 2. |
(80) |
57
Сравним эту величину с ожидаемым числом ошибок для кода без коррекции. В этом случае применяются только информа ционных символов с вероятностью ошибки, равной
(81)
Отношение Ро'/Ро служит мерой качества корректирующего кода. Для оценки эффективности кода можно рассматривать так же новую вероятность ошибки в одном символе после декодиро вания
|
|
|
= |
|
|
|
(82) |
|
Значения Р0', |
Р0, |
PolРа и р'-для |
некоторых корректирующих |
|||||
кодов |
приведены в табл. 19. |
|
|
|
|
|||
|
|
|
Табл и ц а |
19 |
|
|
|
|
|
Код |
|
Ра' |
Ра |
Ра':Ра |
Р' |
||
R |
я„ |
Як |
||||||
|
|
|
|
|
||||
3 |
1 |
2 |
Р |
3/7= |
• 1/Ъ |
/7 |
3/7^ |
|
7 |
4 |
3 |
Ар |
21/7^ |
4/21 |
р |
21/4 /;= |
|
15 |
11 |
4 |
ПР |
105/7- |
11/105/7 |
105/11/7'-’ |
||
31 |
26 |
5 |
26/7 |
465/7= |
26/465/7 |
465/26/7= |
||
Как видно из таблицы, применение кодов с проверкой на чет ность значительно снижает вероятность ошибки даже в том слу чае, когда передача сопровождается совокупностью случайных ошибок.
Интересно сравнить 'полученные результаты с теоретическими выводами Шеннона.
Выше мы показали, что пропускная способность двоичного ка нала с шумом равна
C = - t - [1-j-p logp + (1—/?) log (1 — р)] дв. ед./сек.
При этом максимальное количество информации, которое спо собен переносить один символ,
гтах= 1 + Р l0gp + (1 — р) log (1 — р) дв. ед./символ.
58 |
\ |
Шеннон доказал, что теоретически возможно найти такрй метод кодирования, который бы почти полностью реализовал про пускную способность канала при исчезающе малой вероятности ошибки, т. е. такой метод, который бы обеспечил практически безошибочную передачу каждым символом г'тахдв. ед. информации.
Пусть р = 10-2. Тогда. гтах = 0,9 дв. ед./симв., что означает, что только один дополнительный символ на каждые девять был бы достаточен для исправления ошибок (напомним, что для двоичного канала без шумов /тах = 1 дв. ед./симв.).
Согласно же табл. 2, корректирующие коды с проверкой на четность требуют гораздо большего числа дополнительных конт рольных символов и не дают полного исправления ошибок. Так, например, код «4 из 7» требует 3 дополнительных символа на 4 исходных.
Таким образом, рассмотренные коды, как видно, очень далеки от теоретического предела.
Более эффективный метод построения корректирующих кодов был предложен Вагнером*. Его метод состоит в отыскании в ко довой комбинации символа, ошибочного с наибольшей вероят ностью, и в его исправлении. Для обнаружения такого символа используются некоторые априорные данные о корреляции в пере даваемом сигнале. Этот метод приводит к снижению избыточно сти кода, и, следовательно, к увеличению скорости передачи.
В целом же проблема корректирующих кодов требует еще сво его решения.
Пр и м е р ы .
14.Автоматическая аппаратура радиоразведки ведет на
блюдение в заданном секторе и регистрирует радиолока ционные станции по двум параметрам сигнала: длине волны и ча стоте посылок. Диапазон возможных значений длин волн условно разбит на четыре поддиапазона Яь Я2, Я.3, Х4; диапазон значений частоты посылок — на три поддиапазона Fь Е2, F3.
Данные разведки непрерывно поступают на кодирующее устрой ство в виде комбинации двух дискретных величин:
—номер поддиапазона длин волн Я3;
—номер поддиапазона частот посылок F K.
Априорные вероятности сообщений заданы следующей табли цей:
|
р (Я,Л) = |
0,04 |
Р(Х3К)== 0.20 |
' |
|
|
P(X3Fj) = |
0,04 |
P(X<Fo) = |
0,09 |
|
|
Р (Xafj) = |
0,01 |
P(X]Fg) = |
0,12 |
|
|
Р (XjF,) = |
0,06 |
Р (X,F3) = |
0,10 |
|
|
P(X1F3) = |
0,06 |
/ Р (X3F3) = |
0,10 |
|
|
Р (X3F„) = |
0,08 |
Р (Х4Я3) = 0,10 |
|
|
* |
Коды с обнаружением |
н исправлением ошибок. Сб. |
статей под ред. |
||
А. М. |
Петровского. И|П, 1956. |
|
|
|
|
59
