книги / Оптимальные методы передачи сигналов по линиям радиосвязи
..pdfГ Л А В А 9,.
ПРИМЕНЕНИЕ ОПТИМАЛЬНОГО КОДИРОВАНИЯ КАК СРЕДСТВА СОГЛАСОВАНИЯ СПОСОБА ПЕРЕДАЧИ ДВОИЧНЫХ СИГНАЛОВ С ОСОБЕННОСТЯМИ РАСПРОСТРАНЕНИЯ РАДИОВОЛН
9.1. ОБЩИЕ СВЕДЕНИЯ О ПОМЕХОУСТОЙЧИВЫХ КОДАХ
Е сли рассмотренные до сих пор методы повышения надёжно
сти работы линий связи сводились, если можно сказать, к аппара турному решению проблемы, т. е. к применению более совершенных и более сложных передающих и приёмных устройств, что приводи ло в конечном счёте к уменьшению относительного числа ошибочно принятых знаков, то в этой главе рассматривается другой подход к решению проблемы помехоустойчивости, не затрагивающий исполь зуемой радиотехнической аппаратуры.
Речь идёт о применении особых кодов, обладающих способно стью с достаточной надёжностью передавать дискретную информа цию, несмотря на то, что часть передаваемых знаков подвергается искажениям.
Таким образом, если аппаратурное решение проблемы помехо устойчивости сводилось к уменьшению числа ошибочно принятых знаков и в этом заключалось «согласование» способов передачи сиг налов с особенностями среды, в которой распространяются волны, то при применении оптимальных кодов речь идёт о приспособлении способа передачи сигналов путём соответствующего их кодирования к имеющей место вероятности искажений передаваемых двоичных знаков, точнее, к вероятностным законам искажений этих знаков.
В дальнейшем ограничимся рассмотрением только равномерных кодов, т. е. кодов, в которых каждая передаваемая буква или циф ра (при передаче данных) изображается кодовой комбинацией оди наковой длины. Обозначим эту длину через п 1). В двоичных систе мах связи, которые здесь только и рассматриваются, при длине п кодовой комбинации можно передавать по линии связи 2 " разных букв (символов или команд). Так, например, пятизначный теле графный код позволяет передавать 32 различных символа. Для
!) Здесь и я дальнейшем для удобства читателя применяется система обо значений, принятая в §§ 22—27 монографии А. А. Харкевича «Борьба с помеха ми» {26], где вопрос об оптимальном кодировании рассмотрен достаточно под робно.
— 111
увеличения этого числа, как известно, в телеграфных аппаратах ис пользуется регистр.
Если число подлежащих передаче букв равно Л/'о = 2л, то все ко довые комбинации окажутся использованными и при искажении любого знака в месте приёма будет отпечатана ошибочная буква. Такой код никакой помехоустойчивостью не обладает, и любое ис кажение будет проявляться в отпечатывании неправильного знака.
Помехоустойчивостью может обладать только код, характери зующийся избыточностью, т. е. код, для которого N < 2 n.
Обозначим через N0=2n— число букв, которые можно было бы передать при полном использовании всех комбинаций. Фактически же для передачи используется меньшее число комбинаций и имен но неиспользуемые комбинации обеспечивают достижение требуе мой помехоустойчивости.
В современной практике находят применение два вида кодов: коды, обнаруживающие ошибку, и коды, исправляющие (корректи рующие) ошибку. При применении кода, обнаруживающего ошиб ку в кодовой комбинации, в случае возникновения ошибки теле графный аппарат вместо буквы отпечатывает условный знак, на пример звёздочку. Среди кодов, обнаруживающих ошибки, разли чают коды, обнаруживающие одну, две и т. д. ошибки в кодовой комбинации. Исправляющие коды позволяют отпечатать правиль ную букву при одной, двух и т. д. ошибках в кодовой комбинации. Способность кодов обнаруживать или исправлять заданное число ошибок называется его обнаруживающей или соответственно ис правляющей способностью.
Проще всего понять принцип построения кода, обнаруживающе го одну ошибку в кодовой комбинации. Ошибка может проявиться либо в превращении 0 в 1, либо 1 в 0. Достаточно к пяти информа ционным знакам в кодовой комбинации (или вообще к к знакам) добавить один контрольный, вводимый с таким расчётом, чтобы сум ма единиц в шестизначной кодовой комбинации [или в общем слу
чае в (/с+1)-значной комбинации] |
была чётной, чтобы полу |
|
чить код, обнаруживающий |
одну |
ошибку. Действительно, |
если один знак (безразлично, |
информационный или контрольный) |
будет принят ошибочно, то сумма единиц окажется нечётной, что и будет сигнализировать о наличии ошибки. Несложное суммирую щее электронное устройство в приёмном телеграфном аппарате бу дет при этом обеспечивать отпечатывание знака, дающего знать о происшедшей ошибке. Такой код, однако, не способен обнаружи вать две ошибки, ибо при -превращении двух нулей в единицы или нуля в единицу и единицы в нуль — сумма единиц будет продол жать оставаться чётной. Интересно отметить, что такой код обла дает способностью обнаруживать нечётное число ошибок, т. е. три, пять и т. д.
Для обнаружения одной и двух ошибок необходимо вводить большее число контрольных знаков. Рассмотрим в виде примера код с пятью информационными знаками, который обладает способ-
— 112 —
ностыо обнаруживать одну и две ошибки. Для этого необходимо ввести ещё три контрольных знака, и код превратится в восьмизнач ный (с пятью информационными и тремя контрольными знаками). Получившийся код может быть изображён с помощью схемы:
flia2a3fl4a.Haiia7a8,
где разделительная черта отделяет информационные знаки от кон трольных.
Введём контрольные знаки с таким расчётом, чтобы при безо шибочной передаче буквы были бы чётными следующие три суммы:
аi + |
я2-Ь я3 -г |
аА+ а й— чётное число ' |
(9-1) |
|
f l2 + |
а3 + |
Я4 + |
Я;, -J- Я?= четное число ■• |
|
я3 + я4+ |
я3 + |
ai + ан= чётное число , |
|
Если искажён один из восьми знаков, то одна, две или три сум мы становятся нечётными.
Если искажены два знака, то в зависимости от того, в какие суммы входят искажённые знаки, нечётными сделаются одна или две суммы.
Применяя правило сложения двоичных чисел по модулю 2 и
обозначая символ такого сложения через + , условие (9.1) можно представить в более компактной форме:
а\ + |
Яг + я3 -г я4 |
~h ас, — О |
|
(9-2) |
|||
я2 4 |
- я3 + я44 |
- |
я5 |
- |
0 |
• » |
|
|
4 я7 = |
|
я3 + я4 + аъ-f- Я| + я8= О
Напомним правило сложения по модулю два:
0 + 0 = 1 , 0 + 1 - 1 , 1 -f- 0 = 1 и 1 + 1 = 0.
Таким образом, 0 в двоичной системе счисления является символом чётного числа.
Заметим, что коды рассматриваемого типа (с добавлением оп ределённого, одинакового для всех букв числа контрольных знаков) получили название систематических. Они обозначаются символом (п, к), где п — полное число знаков, образующих кодовую комби нацию, а к — число знаков, несущих в себе информацию. Таким образом, в каждом кодовом обозначении содержится (п—к) кон трольных (т. е. избыточных знаков). В таком обозначении рассмот ренные два кода следует выражать символами (6,5) и (8,5).
В современной технике связи наибольший интерес представляют исправляющие коды, которые позволяют не только обнаружить, но и исправить ошибку и, стало быть, вместо искажённого отпечатать правильный знак (а не звёздочку, как в случае кодов, обнаружи вающих ошибку). Исправляющая способность таких кодов также
8—693 |
— 113 — |
достигается путём введения в кодовые комбинации той или иной из быточности.
Рассмотрим с этой точки зрения коды с пятью информацион ными знаками (к=5), обеспечивающие возможность передачи 32 различных букв 1) и обладающие способностью корректировать один искажённый знак в кодовой комбинации. Таким образом, при одной ошибке (и только при одной) телеграфный аппарат будет отпечатывать правильный (т. е. действительно переданный) знак.
Для понимания принципа построения исправляющих кодов удоб но ввести понятие о кодовом расстоянии. Под кодовым расстоя нием между двумя кодовыми комбинациями понимают минималь ное число знаков, на которые отличаются эти комбинации. Иными словами, кодовое расстояние численно равно минимальному числу ошибок, при возникновении которых одна кодовая комбинация пе реходит в другую.
Расстояния между кодовой комбинацией 00000 и тремя комби нациями 00001, 00011 и 11111 равны соответственно 1, 2 и 5. В об щем случае кодовое расстояние может быть определено путём сум мирования по модулю 2 двух комбинаций и подсчёта числа единиц в сумме [26]. Например, для комбинаций 10101 и 00110 такое сум мирование даёт
. 10101
+ 00110
10011, т. е. d = 3.
Кодовое расстояние характеризует возможность превращения под действием ошибок одной кодовой комбинации в другую. Так, например, если кодовое расстояние равно единице, то код помехо устойчивостью не обладает, так как уже при одной ошибке одна комбинация превращается в другую.
Охарактеризуем с точки зрения кодового расстояния стандарт ный пятизначный код стартстопных телеграфных аппаратов, кото рый использует 32 комбинации от 00000 до 11111.
Всего имеет место С|2 =496 двухбуквенных сочетаний. Простой
подсчёт показывает, что кодовые расстояния между ними распреде лены так, как показано в табл. 9.1.
|
|
|
|
Т А Б Л И Ц А 9.1 |
|
Число двухбуквенных сочетаний |
80 |
160 |
160 |
80 |
16 |
Кодовые расстояния |
1 |
2 |
3‘ |
4 |
5 |
*) Здесь и в дальнейшем говорится о буквах, составляющих заданный ал фавит, с учётом того, что в общем случае роль букв могут играть любые симво лы, команды и т. д.
— 1/4 —
Не имея избыточности, такой код исправляющей способностью, конечно, не обладает.
Если строят код, который обладал бы способностью исправлять все одиночные ошибки, то следует выбрать для букв алфавита та кие кодовые комбинации, которые отличались бы друг от друга не менее, чем на расстояние d = 3. В составленной для такого кода таблице типа 9.1 не встречалось бы кодовых расстояний меньше 3. Это явилось бы гарантией исправления всех одиночных ошибок. Действительно, если бы в двух кодовых комбинациях произошло по одной ошибке, то даже в наиболее неблагоприятном случае они не приблизились бы друг к другу более, чем на d= 1, и их всегда в месте приёма можно было бы уверенно различить.
Как будет показано ниже, для исправления всех одиночных оши бок в коде для 32-буквенного алфавита необходимо применять девятизначный код, пять знаков которого являются информацион ными, а четыре — контрольными. Под действием одиночных ошибок кодовая комбинация
ОООООЦОООО
может превратиться в любую из девяти перечисленных ниже комбинаций:
100000000
010000000
• • • всего девять комбинаций. (9.3)
000000000
000000001
Приёмный телеграфный аппарат должен быть сконструирован таким образом, чтобы при воздействии на него правильной комби нации и любой из девяти перечисленных ошибочных, отпечатыва лась бы буква, соответствующая пятизначной кодовой комбинации 00000. Далее необходимо, чтобы любые одиночные ошибки в других кодовых комбинациях не приводили бы к комбинациям перечис ленным в (9-3), а также к неискажённой комбинации 00С000000.
Заметим, что при современном развитии уровня электронных вы числительных машин распознавание буквы по десяти искажённым комбинациям не составляет никакого труда. Достаточно заложить в постоянную память машины программу от печатать букву, соот ветствующую пятизначному обозначению 00000, при воздействии одной из десяти известных комбинаций.
Простые расчёты показывают, что, если для каждой буквы ал фавита необходимо располагать десятью разными комбинациями, то для 32-буквенного алфавита необходимо располагать, по край ней мере, 320 разными комбинациями, притом такими, чтобы кодо вые расстояния между этими комбинациями не были бы меньше <*=3.
8* |
— 115 |
На рис. 9.1 графически показан принцип работы кода, исправ ляющего одну ошибку. Здесь через А\—Аы обозначены кодовые
о
о
комбинации, соответствующие N переда ваемым буквам. Под действием одиноч ных искажений эти комбинации могут превратиться в 1CW (для рассмотренного выше девятизначного кода) комбинаций, образующих N непересекающихся мно жеств В. В зависимости от того, к какому из этих множеств В принадлежит при нятая комбинация, однозначно опреде ляется переданная буква.
Определим теперь наименьшее коли чество знаков п в кодовой группе, необ ходимое для передачи N-буквенного ал фавита, при котором кодовое расстояние между комбинациями превышает задан ное значение d. В рассмотренном выше примере N=32, a d = 3. Докажем, что п
/ Л* действительно должно быть равным 9. Обозначим число исправляемых в ко
довой комбинации ошибок через q. Тог да минимальное кодовое расстояние меж ду кодовыми комбинациями должно быть равно
<*-=2?+ 1, |
(9.4) |
т. е. это расстояние должно быть равно 3 в кодах, исправляющих одну ошибку, 5 в коде, исправляющем две ошибки, и т. д.
Обозначим через
\ = C qn |
(9.5) |
число ошибочных, подлежащих исправлению кодовых комбинаций, в л-значном коде, обладающем исправляющей способностью q, т. е. исправляющем q ошибок. В ЛУ-буквенном алфавите должно быть исправлено всего NXq ошибочных комбинаций. Это число должно быть меньше избыточных кодовых комбинаций, не используемых в качестве передаваемых правильных сигналов, т. е. согласно приня
тым обозначениям
I
N \ K N 0- N t |
(9.6) |
где N0= 2я, тогда как N= 2К.
Напомним, что л — полное число знаков в кодовой комбинации, а к — число информационны^ знаков.
' Если код должен исправлять ошибки кратности 1,2 и т. д. до q включительно, то ф-ла (9.6) принимает вид
— 116 —
N \Х ,< Л Г „ — N. |
(9,7) |
1 |
|
Формулы (9.6) и (9.7) удобнее представить в виде |
|
1 + ^q |
(9.6а) |
|
|
Nn |
(9.7в) |
-------- > " • |
|
i + 21 ^ |
|
Задаваясь разными значения q, можно определить нижний пре дел N, т. е. число букв в алфавите, который может быть закодиро ван с помощью /г-значного кода.
В табл. 9.2, заимствованной из [45], приведены формулы для вы
числения N для различных значений кодовых расстояний. |
|
||||||
Формула для d= 1 |
получена из (9.6а) |
и (9.5), принимая во вни |
|||||
мание, что при <7=0 |
Я9= 0. |
|
|
|
|
||
|
|
|
|
|
|
Т А Б Л И Ц А 9.2 |
|
Кодовое |
Число исправ |
|
|
|
|
|
|
ляемых ошибок |
Число букв в алфавите |
N |
Примечание |
||||
расстояние |
в ко овоЛ |
ком |
|||||
d |
бинации |
ц |
|
|
|
|
|
I |
0 |
|
|
2п |
|
Исправляющей |
и обна |
|
|
|
|
|
|
руживающей способности |
|
|
|
|
|
|
|
нет |
|
2 |
— |
|
|
2я -1 |
|
Обнаружение |
одной |
|
|
|
|
2п |
|
ошибки |
|
3 |
1 |
|
|
|
Исправление |
одной |
|
|
< |
1 + л |
|
||||
|
|
|
|
ошибки. |
|
||
|
|
|
|
пП—1 |
|
|
|
4 |
|
|
|
|
|
|
|
|
|
< |
2 |
|
Исправление |
одной и |
|
|
|
|
|
п |
|
обнаружение двух ошибок |
|
|
|
|
|
|
|
2п
|
^ |
1 о |
Исправление q ошибок |
2<7+1 |
я |
H - ^ + c J + - - + c * |
|
|
|
Формула для d —3 получена из тех же формул при <7= 1 . Формула для d = 2 q + 1 получена из (9.7а) и (9.5).
— 117 —
Общие формулы для чётных значений d пока не найдены. Фор мулы для d = 2 и d = 4 получены из рассмотрения конкретных слу чаев кодирования.
Формула для d = 3 показывает, что при п = 9 число букв в алфа вите достигает значения /У=51,2, т. е. 32-буквенный алфавит дейст вительно может быть закодирован девятизначным кодом, исправ ляющим один знак.
В табл. 9.3 [4.6] приведены значения N в алфавите для равномер ных n-значных кодов, исправляющих q ошибок в каждой кодовой комбинации.
|
|
|
|
|
|
|
Т А Б Л И Ц А 9.3 |
|
п |
|
|
|
*~>нсло исправляемых ошибок |
|
|
||
1 |
2 |
3 |
4 |
5 |
6 |
|||
|
||||||||
3 |
2 , 0 |
|
|
|
|
|
||
4 |
3 |
. 2 |
|
|
|
|
|
|
5 |
5 . 3 |
2 , 0 |
|
|
|
|
||
6 |
9 |
, 1 |
2 9 |
|
|
|
|
|
7 |
1 6 , 0 |
4 , 4 |
2 , 9 |
|
|
|
||
8 |
2 8 , 4 |
6 , 9 |
2 , 8 |
|
|
|
||
9 |
5 1 . 2 |
И Л |
3 . 9 |
2 , 0 |
|
|
||
10 |
9 3 , 1 |
1 8 . 3 |
5 , 8 |
2 . 7 |
|
|
||
1 1 |
1 7 0 , 7 |
3 0 , 6 |
8 , 8 |
3 . 6 |
2 , 0 |
|
||
12 |
3 1 5 , 8 |
5 1 . 8 |
1 3 , 7 |
5 , 2 |
2 , 6 |
|
||
13 |
5 * 5 . 2 |
8 9 , 0 |
2 1 , 6 |
7 , 5 |
3 , 4 |
2 , 0 |
||
14 |
1 0 9 2 , 3 |
1 5 4 , 4 |
3 4 , 9 |
1 1 . 1 |
4 , 7 |
2 . 5 |
||
15 |
2 0 4 8 . 0 |
2 7 0 , 8 |
7 6 , 8 |
1 6 , 8 |
6, 6 |
3 . 3 |
Из табл. 9.3 следует, что для исправления одного знака в 32-бук венном алфавите необходимо применять 9-значный код (см. рас смотренный выше пример), для исправления двух знаков—12-знач ный и, наконец, для исправления трёх знаков — 14-значный.
Более полно вопрос построения кодов, обнаруживающих и ис правляющих ошибки, изложен в книге Харкевича [26]. Там же при ведена обширная библиография по оптимальному кодированию за время с 1961 г. по июнь 1962 г. и дана ссылка на книгу, содержа щую исчерпывающую библиографию за предыдущие годы.
Теория оптимального кодирования достигла за последние годы высокой степени развития на базе линейной и коммутативной ал гебры, теории групп, теории множеств и математической логики. Предложено большое число кодов, удовлетворяющих специально поставленным требованиям. Достаточно отметить, что приведённая в [26] (по-вйдимому, ещё далеко не полная) классификация исправ ляющих кодов содержит 18 наименований.
— 118 —
■9.2. ПРАКТИЧЕСКИЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ОПТИМАЛЬНЫХ КОДОВ ДЛЯ ПОВЫШЕНИЯ НАДЕЖНОСТИ РАБОТЫ КАНАЛА СВЯЗИ
Если рассмотренное в предыдущих главах повышение надёжно сти работы канала связи достигалось вследствие более или менее существенного усложнения передающей и приёмной аппаратуры, то, как можно видеть из изложенного в разделе 9.1, при использова нии кодов надёжность возрастает в результате введения избыточ ности, т. е. в конце концов за счёт некоторого уменьшения пропуск ной способности канала связи.
При практическом использовании в каналах связи исправляю щих кодов могут встретиться два случая.
Если помехи или замирания действуют таким образом, что дли тельность ошибок равна или меньше длительности передачи отдель ного знака, причём ошибки возникают независимо, то достаточно хороший результат могут дать рассмотренные выше систематиче ские коды. В зависимости от закона распределения частоты возник новения ошибок следует остановиться на коде с той или иной ис правляющей способностью. Естественно, что оптимальное согласо вание требует применения кода с наименьшей возможной в данных условиях исправляющей способностью.
В тех случаях, когда замирания или импульсные помехи (здесь следует заметить, что оптимальное кодирование является весьма эффективным средством борьбы с помехами именно такого типа, борьба с которыми до сих пор не рассматривалась) обладают боль шой длительностью по сравнению с длительностью кодового знака и искажают целую последовательность передаваемых знаков, рас смотренные коды теряют свои оптимальные свойства, ибо требуют большой исправляющей способности, а следовательно, и большой избыточности.
Здесь большую помощь может оказать принцип кодирования, предложенный в 1960 г. Э..Л. Блохом и А. А. Харкевичем [47]. Этот принцип заключается в том, что путём предварительной записи пе редаваемых знаков на магнитофонной ленте (или путём запомина ния с помощью какого-либо другого устройства) и ценой примене ния программного устройства отдельные знаки кодовых комбинаций передаются по каналу связи не в той последовательности, как они были записаны на ленте, а с разбивкой во времени через интервал
т, где т — время передачи элементарного знака.
Так, например, если подлежит передаче последовательность
| Q,^CLtCL^ . . . d-t | \ 2 • • • »
l<— т------>|
то по каналу связи передаётся последовательность ахап la2al
и т. д. Если, к примеру, импульсная помеха исказила знаки а?—а5 и при обычном способе передачи потребовалось бы применять код с исправлением пяти ошибок, то при новом способе передачи число
— Л 9 —
последовательно искажённых знаков существенно уменьшается. Развивая этот способ и применяя более сложный закон разбивки передаваемых знаков во времени, можно групповые ошибки свести к одиночным, случайным образом распределённым, когда оптималь ными являются рассмотренные выше систематические коды с той или иной исправляющей способностью.
Всё изложенное здесь имело целью показать, что принцип ко дирования действительно является весьма эффективным средством согласования способа передачи сигналов с особенностями среды, в которой происходит распространение радиоволн.