стояние от переданной комбинации будет равно /. По этому при l^d—1 принятая кодовая комбинация не мо жет оказаться одной из разрешенных.
Для правильного декодирования с исправлением оши бок связь между кодовым расстоянием d и допустимым числом искаженных элементов t определяется следую щими соотношениями: если d нечетное число, то число
искаженных элементов не должно превышать •>'
если d четное число, то число искаженных элементов не
должно превышать |
. Сопоставляя эти соотноше- |
Y |
2 |
ния, видим, что оба выражения дают одинаковые значе ния допустимого числа искаженных элементов при d, равном 3 и 4, 5 и 6 и т. д.
Однако помехоустойчивость кода при четном значе нии d выше, чем при ближайшем меньшем нечетном. Так, нетрудно показать, что при четном d наряду с исправ
лением |
всех ошибок кратности, не превышающей |
(d—2)/2, |
одновременно обеспечивается обнаружение всех |
комбинаций, в которых искажены не более d\2 элемен тов. Например, при d—З избыточный код позволяет или исправлять одиночные ошибки в комбинациях, или обна руживать комбинации, число искаженных элементов ко торых не превышает двух. При d—4 избыточный код наряду с исправлением одиночных ошибок обнаружива ет комбинации, число искаженных элементов которых не
превышает двух. Соотношения 1^-—-и опре деляют лишь кратность гарантийно обнаруживаемых и исправляемых ошибок, наряду с которыми обычно обна руживается и исправляется часть ошибок и более высо кой кратности.
При использовании избыточных кодов для исправле ния и одновременного обнаружения ошибок более высо
кой кратности величина кодового расстояния |
при |
<l>t |
должна удовлетворять выражению d^l-\-t+\, |
|
где |
it— |
число обнаруживаемых ошибок; t — число |
исправляемых |
ошибок. |
|
|
|
|
Таким образом, задача построения избыточного кода |
сводится к выбору из N=2n |
кодовых комбинаций |
та |
ких N0 «-разрядных комбинаций, для которых обеспечи |
вается максимально возможное расстояние d. В |
общем |
виде эта задача до настоящего времени |
не решена. |
В |
табл. 6.3 приведены некоторые частные результаты, ус танавливающие связь между числом проверочных эле ментов г и числом элементов избыточного кода /г для различных d.
Т А Б Л И Ц А 6.3
Число проверочных элементов г
|
О |
|
1 |
|
> I o g 2 ( « + l) |
|
3slog2(2n) |
|
п( п— |
> l o g , [ 2 N + ( n — ! ) ( « — 2 ) |
|
n(n—1) |
>log2 |
— л ( п - l ) ( n - 2 ) |
6 |
|
П р и м е ч а н и е , |
л и"п могут п шшмать значе |
ние только целых |
чисел |
Существующие методы построения избыточных кодов решают в основном'задачу нахождения такого алгорит ма кодирования и декодирования, который позволял бы наиболее просто построить и реализовать код с задан ным значением d. Поэтому различные избыточные коды при одинаковых d сравниваются по сложности кодирую щего и декодирующего устройств. Этот критерий явля ется определяющим при выборе того или иного кода.
Коды, обладающие большей избыточностью, обла дают и большей помехоустойчивостью. Увеличение избы точности приводит к уменьшению производительности системы, так как значительно возрастает число элемен тов в кодовых комбинациях. Поэтому выбор кодов с оп ределенными корректирующими возможностями, а следо вательно, и с определенной избыточностью должен быть всегда строго обоснован, исходя из характера распреде ления ошибок в канале связи и получения необходимой достоверности принимаемой информации. Только при
таком подходе можно выбрать код с минимальной избы точностью и тем самым при обеспечении заданной до стоверности получить наибольшую производительность системы.
Реализация метода декодирования по критерию мак симального правдоподобия посредством сравнения при нятой комбинации с каждой из хранящихся в декоди рующем устройстве как разрешенной, так и неразрешен ной комбинацией практически возможна только при сра внительно малых п, т. е. когда число комбинаций N=2N невелико'1 ). Однако для получения высокой достоверно сти принимаемой информации с помощью избыточных кодов часто оказывается необходимым применять зна чения п порядка сотен. Поэтому основной задачей сов ременной теории кодирования является отыскание таких методов кодирования, которые позволяют осуществлять обнаружение 'и исправление ошибок не путем сравнения с хранящимися в памяти кодовыми комбинациями, а с помощью относительно простых операций, производимых
над принятой кодовой |
комбинацией. |
|
§ 6.3. ПРОСТЕЙШИЕ И З Б Ы Т О Ч Н Ы Е |
КОДЫ |
К о д с ч е т н ы м |
ч и с л о м е д и н и ц . |
Блочный код, |
образуемый добавлением одного элемента к комбина циям простого ^-элементного кода, представляет собой код с четньгм числом единиц при условии, что количе
ство единиц в кодовых комбинациях полученного |
ново |
го п = £4-1-элементного кода |
будет четным. Такой код |
характеризуется минимальным |
расстоянием d—2 |
и по |
этому согласно (6.9) позволяет обнаружить все кодовые комбинации, содержащие один искаженный элемент. На личие четного числа единиц в любой неискаженной ко довой комбинации дает возможность обнаружить все комбинации, в которых искажено нечетное число эле ментов. Избыточность кода с четным числом единиц Я —
=1/п минимальна.
Полагая, что искажения двух или более элементов в комбинации являются событиями взаимно независимыми, найдем вероятность обнаруживаемой и необнаруживае-
') Объем памяти декодирующего устройства должен быть рас считан на хранение п-2п дв. ед. Например, при л = 20 объем па мяти составляет порядка 2-107 дв. ед.
мой ошибок для данного кода. Вероятность обнаружи ваемой ошибки будет равна сумме вероятностей появле ния нечетного числа ошибок (одиночной, тройной и т . д . ) . Тогда согласно (6.7) получим
Р00 = С' pqn~l + С, 3 ,р 3 <Г 3 + Съпpq'1-5 + . . . (6.10)
Аналогично находим вероятность необнаруживаемых ошибок
L „ р q - f С„ р 4 о |
(6.11) |
Пренебрегая весьма малыми значениями вероятно стей ошибок, начиная с тройной, найдем отношение ве роятностей необнаруживае'мой и обнаруживаемой оши бок
В качестве примера, поясняющего образование кода с четным числом единиц, в табл. 6.4 приведен ряд комби наций шестиэлементного кода, первые пять элементов
|
Т Л Е Л |
II Ц А |
6.4 |
|
|
Т А Б Л И Ц А |
6.5 |
|
1 |
2 |
3 |
4 |
5 |
6 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
которого являются информационными, а шестой — про верочным. Избыточность этого кода R= 1/6« 0,166; от ношение числа необнаруживаемых к числу обнаруживае мых ошибок при р = Ю _ 3 составит 5 - Ю - 3 , т. е. на тыся чу обнаруживаемых ошибок приходятся пять необнару живаемых. Процедура декодирования такого кода сво дится к подсчету числа единиц в принимаемой комбина ции посредством двоичного элемента (триггера). Если но окончании приема комбинации двоичный элемент не вернулся в исходное положение, то это указывает на на личие искажений.
К о д с |
п о с т о я м |
н ы м в е с о м. К этому виду |
блоч |
ных кодов |
относятся |
все коды, в которых каждая |
раз- |
решенная комбинация содержит одинаковое число еди ниц. Число разрешенных комбинаций такого кода No оп ределяется как число сочетаний из п элементов по т, где т—вес кода:
Типичным примером кода с постоянным весом явля ется семиэлементный код, вес каждой разрешенной ком бинации которого равен трем. Из общего числа комби наций семиэлементного кода Л/ = 2 7 = 128, число разре шенных N0 составляет 35 (С^ ) . Некоторые комбинации такого кода приведены в табл. 6.5. Избыточность семи элементного кода с весом 3, подсчитанная по ф-ле (6.6), равна:
д = |
1 — ''°£2 3 |
5 |
^ 0 , 2 6 . |
|
log2 |
2' |
|
|
Минимальное кодовое расстояние |
кода с постоянным |
весом равно двум, т. е. такой |
код |
обнаруживает все |
одиночные ошибки. Однако, как видно из табл. 6.5, код с постоянным весом обнаруживает также двойные, тройные и т. д. ошибки одинаковых элементов, за исклю чением случаев, когда одна из единиц переходит в нуль, а один из нулей — в единицу. Искажение такого вида называется смещением. Очевидно, что при переходе двух единиц в нуль и двух нулей в единицу искажения также
|
|
|
|
|
|
|
|
|
не |
обнаруживаются. |
|
|
|
|
|
|
Определим |
помехоустойчивость |
n-элементиого |
ко |
да |
с весом т. Согласно (6.7) вероятность |
ошибочного |
приема одной из т единиц равна |
pqm~\ |
а |
вероят |
ность ошибочного |
приема одного из |
(п—т) |
|
нулей |
— |
С1п-т |
pqn~m~l- |
Если |
пренебречь весьма |
малой |
вероятно |
стью приема двух или более элементов, то вероятность необнаруживаемой ошибки
РВо = Cl pqm~l |
Сп-т pqn-m-1 |
= |
т(п- |
т) рг qn~2 = |
= т(п — т) р2(1 |
— р)п~~2 « |
т (л — т) р 2 [ 1 — (п — 2) р]. |
|
|
|
|
(6.13) |
Вероятность обнаруживаемой ошибки определим как |
разность |
|
|
|
|
^оо = Р« - Р»о « |
пр - т {п-m)p2 |
[1 - |
(п — 2) р\, (6.14) |
где Рк |
— |
вероятность |
искажения |
комбинации, Я к = |
= 1 — i ( l — р ) п т а п р . |
|
|
|
|
|
|
Отсюда отношение вероятностей необнаруживаемой и |
обнаруживаемой ошибок будет |
равно: |
|
|
|
= |
Лю = |
пг (п — т) р2 |
[1 — (п — 2) р] |
_ |
|
|
Роо |
пр-т(п-т) |
р"-\\ — {п—2)р] |
|
|
= |
|
|
1 |
|
|
. |
(6.15) |
|
|
|
|
т |
|
_ , |
|
|
|
т(п—т) |
р2[1 — |
(п — 2) р] |
|
|
Для |
семиэлементного кода |
с |
весом |
3 |
выражение |
(6.15) примет вид |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
Л = = |
|
7 |
|
|
|
|
|
|
|
|
12р(1-5р) |
1 |
|
|
|
|
|
|
|
|
5 |
|
|
Полагая |
р = 1 0 _ 3 |
, найдем, что т]= |
, т. е. пример- |
|
|
|
|
|
|
2940 |
|
|
но на три тысячи |
обнаруженных |
ошибок |
приходится |
пять необнаруженных. Это значит, что помехоустойчи вость семиэлементного кода с весом 3 при /? = 10~3 при мерно втрое выше помехоустойчивости шестиэлементного кода с четным числом единиц.
Ошибки при приеме комбинаций кода с весом т об наруживаются посредством счетчика единиц, коэффици ент счета которого равен т. Если по окончании приема комбинации счетчик не вернется в исходное положение,
это |
означает, |
что принятая комбинация |
|
искажена. |
|
К о д с ч и с л о м е д и н и ц , |
к р а т н ы м |
т р е м . |
Такой |
код |
строится |
аналогично коду |
с четным |
числом |
единиц: |
к кодовым комбинациям /^-элементного простого кода до
бавляются два проверочных элемента |
так, чтобы число |
единиц в кодовых комбинациях нового |
п = й + 2 - э л е м е н т - |
ного кода было кратно 3. Этот код позволяет обнаружить все одиночные и BGe четные ошибки одинаковых элемен тов (двойные, четверные и т. д . ) . Не обнаруживаются двойные ошибки вида смещения и тройные ошибки оди наковых элементов. Пренебрегая весьма малой вероят ностью появления тройных ошибок, можно считать, что необнаруженные ошибки будут иметь место только при наличии двойных ошибок типа смещения.
Согласно принципу |
построения кода |
любая |
п-эле- |
ментная комбинация |
может содержать |
3/ единиц, где |
i-—целое |
число, принимающее одно из значений |
1 , 2 , . . ., |
/. Причем |
/< — . Отсюда по аналогии с (6.13) |
напишем |
|
3 |
|
выражение, определяющее вероятность необнаруживаемой ошибки
о |
г \ „„3/—1 ^.1 |
3i — 1 |
(6.16) |
|
|
|
Нетрудно -показать, что Рт |
максимыльно пр.и мини |
мальном значении |
разности ^ |
3ij . |
|
Отношение вероятностей необнаруживаемой и обна руживаемой ошибок равно:
' к 'НО
В качестве примера, поясняющего построение кода с числом единиц, кратным трем, в табл. 6.6 приведены не-
|
|
|
|
|
|
Т А Б Л П Ц А |
|
6.6 |
|
|
|
|
|
Комбинации пятиэлементного |
Комбинации кода с числом единиц, |
кратным Э |
|
|
|
кода |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
3 |
4 |
5 |
1 |
|
2 |
3 |
|
4 |
5 |
6 |
7 |
1 |
0 |
|
1 |
1 |
0 |
1 |
0 |
|
|
1 |
1 |
0 |
0 |
0 |
0 |
|
1 |
0 |
1 |
0 |
0 |
|
1 |
0 |
|
1 |
0 |
1 |
0 |
0 |
|
0 |
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
|
0 |
1 |
1 |
1 |
0 |
|
1 |
1 |
1 |
1 |
0 |
|
|
1 |
1 |
1 |
1 |
1 |
которые комбинации семиэлементного кода, полученные добавлением к комбинациям обыкновенного пятиэлементного кода двух проверочных элементов. Наибольшее зна чение вероятность необнаруживаемой ошибки такого кода будет для комбинаций, содержащих три единицы:
Р н 0 = С3 pq2 C\pqs « 12 p V - |
(б-1 8) |
В случае, когда число единиц равно шести, Ря0 будет меньше.
Пользуясь (6.17), найдем отношение вероятностей не обнаруживаемой и обнаруживаемой ошибок
г, |
1 2 Р 2 ( 1 - Р ) 5 |
1 |
(6Л9) |
7 р - I 2 p 2 |
(1 — р)6 |
|
|
|
12рП—5р)
Сопоставляя (6.19) с аналогичным выражением для
кода с |
весом 3, видим, что 'при /г = 5 они 'равны, |
т. е. |
помехоустойчивость |
обоих кодов для искажений |
типа |
смещения |
одинакова. |
|
|
Рассматриваемый |
код обладает еще одной возмож |
ностью обнаружения ошибок: если первый проверочный элемент равен нулю, то второй всегда равен нулю. Эту особенность кода можно использовать при построении устройств, анализирующих правильность принимаемых комбинаций. Обнаружение ошибок в таком коде осуще ствляется посредством счетчика на 3.
К о р р е л я ц и е й и ы й к о д. Повышение эффективно сти кодов с обнаружением ошибок может быть достиг нуто не только увеличением их избыточности, но и вве дением определенных зависимостей между элементами кодовых комбинаций. Этог принцип использован в кор реляционном коде, для построения которого каждый эле мент обыкновенного (первичного) кода преобразуется в два элемента, при этом единица преобразуется в 10, а
нуль — в 01 |
(рис. 6.2). Таким образом, |
|
корреляционный |
код |
будет содержать |
вдвое |
боль- |
, . |
|
|
|
|
. |
|
|
|
. |
ше |
J |
|
г |
чем |
|
|
„ комбинации пеактого коаь |
элементов, |
|
первичный |
; |
0 |
|
i |
|
n |
n |
код. Поэтому |
независимо от чис- |
\ |
|
у |
|
\ |
|
|
|
|
|
лакоэффициенэлементов избыточностпервичноги кодакор- j\i \ |
|
|
|
|
|
|
|
|
|
реляционного |
кода R=\/2. |
|
[ \ |
|
|
\ |
I |
\ |
|
I |
\ |
Помехоустойчивость |
корреля- |
\ \ , |
|
|
I |
0 |
V |
0 |
I |
V |
ционных кодов обусловлена тем, 1 f 0 |
|
|
|
|
1 с< J |
что |
появление |
необнаруживае- |
KMSamV№ |
|
|
|
мрршционногоШо |
МОЙ 'Ошибки |
ВОЗ'МОЖИО |
только в Рис. |
|
6.2. Принцип |
фор |
том |
случае, |
когда |
два |
рядом |
рас- |
мир°вания |
элементов |
|
J |
|
|
г |
|
г |
корреляционного |
|
кода |
положенных |
элемента, |
|
соответст- |
|
|
|
|
|
|
|
|
|
|
вующих одному элементу первичного кода, будут иска жены так, что единица перейдет в нуль, а нуль — в еди
ницу. Вероятность |
такого события Рно |
= р2- Отсюда, зная |
Рно, найдем |
отношение вероятностей |
необнаруживаемой |
и обнаруживаемой |
ошибок |
|
|
|
_ |
р 2 |
р |
|
|
^ ~ |
Юр — р 2 |
~~ 10 — р |
Полагая |
р=>\0~3, |
получим |
т. е. примерно на де |
сять тысяч обнаруженных ошибок приходится одна не обнаруженная,
При симметричном канале эффективность корреляци онного кода с инверсией символов и с повторением сим волов будет одинакова. В случае же передачи по несим метричному каналу, для которого р1Фр°, эффективность корреляционного кода с инверсией символов будет выше.
Во всех рассмотренных выше случаях предполага лось, что при переходе от кода с числом элементов к к коду с числом элементов п вероятность искажений эле ментов оставалась неизменной. Это справедливо только в том случае, когда при переходе от одного кода к дру гому длительность передачи элементов то остается посто янной. При этом производительность системы уменьша ется во столько раз, во сколько п больше к.
И н в е р с н ы й к о д . В основу построения этого ко да, характеризующегося высокой эффективностью при простоте реализации, положен метод повторения исход ной кодовой комбинации. Причем передаваемая комби нация в зависимости от четного или нечетного числа еди ниц в ней либо просто повторяется, либо повторяется в инвертированном виде. Поясним сказанное на примере пятиэлементного кода.
Пусть пятиэлементная комбинация (табл. 6.7) содер жит четное число единиц. Тогда согласно принципу по
строения |
кода дополнительные пять элементов будут со- |
|
|
|
|
|
|
Т А Б Л И Ц А |
6.7 |
|
|
|
|
|
|
|
Комбинации |
|
первичного |
кода |
|
|
Комбинации |
инверсного |
кода |
|
|
|
основные |
элементы |
дополнительные элементы |
|
|
|
|
|
|
1 |
0 |
|
0 |
1 |
0 |
1 |
0 |
|
0 |
1 0 |
1 |
0 |
|
0 |
1 |
0 |
1 0 |
|
1 1 0 |
1 0 |
|
1 1 0 Т О ] |
|
1 |
0 0 |
|
1 |
0 |
1 |
0 |
0 |
|
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
|
1 |
1 |
1 |
впадать с основным. Если же передаваемая |
комбинация |
содержит |
нечетное число единиц, то дополнительные |
эле |
менты будут соответствовать инвертированной исходной комбинации. Таким образом, избыточность инверсного кода /?=0,5; а минимальное кодовое расстояние d—4 при любом к. Следовательно, такой код позволяет обна руживать все тройные ошибки. Однако благодаря внут ренней связи между элементами кодовой комбинации, что позволяет также рассматривать этот код как корре ляционный, необнаруженная ошибка будет иметь место 318
только в том случае, если одновременно исказятся два элемента в исходной комбинации и соответствующие им два элемента повторяемой комбинации. Вероятность по явления такого искажения приближенно может быть оп ределена из выражения
Ра0~С2п/2р\ |
(6.20) |
при п=ч10 получим Л ю ~ Ю 4 . Зная Рпо, |
найдем отноше |
ние вероятностей |
необнаруживаемой |
и обнаруживаемой |
ошибок |
|
|
|
|
|
ti - |
- |
= |
|
|
Л ; р3. |
|
Юр—Юр* |
|
1 |
|
|
Полагая р = 1 0 ~ 3 , получим |
п = |
— |
, т. е. на 109 обна- |
г |
|
|
1 |
10э |
|
руживаемых ошибок будет приходиться одна необнаруживаемая.
Процедура обнаружения ошибок при приеме комби наций инверсного кода состоит из двух операций. Сна чала суммируются единицы, содержащиеся в первых я/2 элементах. Если их окажется четное число, то вторые /г/2 элементов принимаются в прямом виде. После этого обе зарегистрированные комбинации сравниваются по
элементно (первый элемент |
с первым, второй |
со вторым |
и т. д.) : ) |
и при обнаружении хотя бы одного |
несовпаде |
ния вся |
последовательность |
из п элементов |
бракуется. |
Если же количество единиц среди первых /г/2 элементов нечетное, то вторые /г/2 элементов принимаются инвер тированными. Затем, как и в предыдущем случае, обе зарегистрированные комбинации сравниваются поэле ментно. Наличие несовпадений указывает на то, что при нятая комбинация искажена (табл. 6.8, элементы, при нятые с искажением, обведены).
Инверсный код (d=A) можно использовать и для ис правления одиночных ошибок. Предположим, что в при нятой комбинации-один из элементов искажен (столбец а). Если этот элемент расположен в первой половине ко довой комбинации, то при сложении по модулю два пер вой и второй половин кодовых комбинаций совпадает только одна пара, что является признаком искажения
') Операция поэлементного сравнения кодовых комбинаций представляет собой поразрядное сложение их по модулю два.