Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Шляпоберский В.И. Основы техники передачи дискретных сообщений

.pdf
Скачиваний:
23
Добавлен:
27.10.2023
Размер:
19.24 Mб
Скачать

индекс указывает па номер строки, а второй — на но­ мер столбца. Нетрудно показать, что вес итеративного кода, построенного на базе двух простейших избыточ­ ных кодов с проверкой на четность, равен 4.

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

го используются коды с проверкой

на' четность и коды

„сщроверкои по модулю 3 или 7.

 

" Ц и к л и ч е с к и е к о д ы . Из

всех разновидностей

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

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

членов от фиктивной

переменной х, в которых цифры

О и 1, составляющие

кодовые комбинации, являются ко­

эффициентами переменной. Если число элементов кодо­ вой комбинации равно п, то соответствующий ей много­

член

имеет вид

 

 

 

 

 

 

F

(х)

= c„_i хп~х

+ с „ _ 2 хп~2

+ ... + с2

х2 - f

Ci х -f- с 0 х°,

где

Со,

Си .. ., сП-1

— коэффициенты,

принимающие

зна­

чения 0

или 1. Например, кодовой комбинации

10110001!

соответствует многочлен F(x)

8

+ х6-\-хъ

+ х+

1, а

ком­

бинации

110001010

— многочлен

F(x)

е

+ х7-\-х3+

1.

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

1 +

1 =

Од-'',

1

+

Ox1

=

OJC',

1 х г +

0х'' =

1 х',

0х'

+

1 х1

=

W.

Как следствие, —1 л: = 1 А:.

330

Поясним

сказанное на

примере сложения

трех

многочленов:

 

х 8

-|-

хв

+ х 6 +

 

ж-f-I

+

 

х1

-\- ха

+ х* + д:4 + х 3 +

 

1

 

 

Л:7 4; х в

+

х3

+ х2 4-

1

 

л - 3

+

Xе

+

х*+

х2

+ 1

Аналогичным

образом

осуществляется

умножение

многочленов:

 

 

 

хъ

+

л-3 + х2

-|-

А- + 1

 

 

 

л 8

+

 

х 1 + л-3 + х" +

А"

 

 

 

 

А* +

X3 + X2 +

X -|- 1

 

 

 

хо+л-6

+

х4 -|-

 

1

 

Основным свойством циклических кодов, определив­

шим их наименование,

является

то,

что

циклический

сдвиг элементов разрешенной комбинации на один эле­ мент влево также образует разрешенную комбинацию. Если разрешенную кодовую комбинацию циклического

кода представить в виде v(fn-\,

In-z,

• ••

fi,

fo), то

ком­

бинация v'=($n-b

fn-з,

.. •, fi,

/о, fn-i)

также

является

разрешенной

комбинацией

этого

кода.

Циклический

сдвиг разрешенной кодовой комбинации на один элемент

алгебраически

эквивалентен

умножению

ее

многочлена

на х:

 

 

 

 

 

 

 

 

 

 

 

 

 

Хр(х) = Спп

+ Сп-2Хп-1-\-

 

. . . +CiX2 + C0X.

 

Так как

степень многочлена

«-элементной

кодовой

комбинации

не

может

превышать

( я — 1 ) ,

то

хп

есть

х°.

Отсюда хР(х)=\сп-2хп-<

 

+ ... + С1Л2

+ СоХ +

сп-2,

т. е. xF

(х)

является циклическим

сдвигом

комбинации

F(x).

 

Способы

построения

и основные

свойства

цикличе­

ских кодов легко пояснить, если воспользоваться опре­

делением циклических

кодов,

даваемым

алгебраической

теорией кодирования: циклическим (п, /г)-кодом назы­

вается код, множество кодовых

комбинаций

которого

представляется

совокупностью

многочленов

степени

(п—1)

и

менее,

делящихся на

некоторый

многочлен

Р(х)

степени (п—к),

который является

одним

из

сомно­

жителей

разложения

бинома

,v" + l .

Многочлен

Р(х)

принято называть

образующим.

 

 

 

 

Обозначим через G(x) многочлен, соответствующий кодовой комбинации /г-элементного простого кода, а че­ рез F(x) многочлен, соответствующий кодовой комбина­ ции образованного «-элементного циклического кода.

331

'Тогда согласно данному выше определению кодовый многочлен F(x) может быть образован умножением мно­ гочлена сообщения G(x) на образующий многочленР(х):

F (х) ~ G(x) Р (х).

(6.28)

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

Для формирования кодового многочлена F(x) вос­ пользуемся методом [66], при котором коэффициенты при членах высших порядков будут соответствовать инфор­ мационным элементам, а коэффициенты при членах низ­

ших

порядков—проверочным элементам.

Умножим

G(x)

на хг.

Деление

полученного выражения

xrG(x)

на

Р(х)1)

дает

частное

Q(x) п остаток

R(x) степени,

мень­

шей г. Отсюда

 

 

 

 

 

 

xr G (х) = Q (х) Р (х) +

R (х).

 

(6.29)

Так как вычитание по модулю 2 полностью совпадает со сложением, то

хг G (х) +

R {х) = Q (х) Р (х).

(6.30)

Поскольку частное Q(x)

и.меет ту же степень, что

G(x),

то оно также является комбинацией простого /г-элемент-

ного

кода

и,

следовательно,

левая

часть

выражения

(6.30)

есть

кодовый многочлен:

 

 

 

 

 

 

F(x)

=

xrG(x)

+ R(x).

 

(6.31)

Анализируя

выражение

(6.31), видим, что первое сла­

гаемое xrG(x)

имеет

нулевые

коэффициенты

в г

членах

низшего порядка, а степень второго

слагаемого

меньше

г. Следовательно, коэффициенты г членов низшего по­

рядка кодового многочлена

F(x)

являются

такими же,

что и коэффициенты остатка R(x),

а

коэффициенты k

членов высшего порядка функции F(x)

имеют те же ко­

эффициенты, что и многочлен G(x).

Таким

образом, ко­

эффициенты остатка R(x)

соответствуют

проверочным

элементам, а коэффициенты членов степени г и выше — информационным элементам.

Поясним сказанное на примере. Пусть для помехо­ устойчивого кодирования |12-эле,ментно>го первичного -ко-

') В двоичной форме записи операция умножения на х' экви­

валентна приписыванию справа г нулей.

332

Да (k=<\2) .используется образующий многочлен пятой степени Р(х) = х 5 + х4 + х2+\, т. е. число проверочных эле­ ментов будет равно пяти (/" = 5). Определим значения проверочных элементов для 'Комбинации 010001011001

 

G (х) = х 1 0

+ х е + х* + Xs

+

1.

 

Помножим многочлен сообщения

G(x)

на Xs и полу­

ченное произведение разделим на Р(х).

Путем последо­

вательного деления найдем частное Q(x)=xi0

+ x9 + x&-\-\

и остаток R(x) = х 4 + х 2

+ 1.

 

 

 

 

Кодовый

многочлен

F(x)

получают сложением остат­

ка R(x) с

x5G(x)

 

 

 

 

 

F(x)

= х 1 5 - I - х11

-|- х 9

+ хв + х 5

+

х 4

+ x 2 - j - 1,

Отсюда передаваемая в канал связи комбинация цик­ лического 17-элементного кода будет иметь вид

010001011001

10101

информационные

проверочные

элементы

элементы

Под влиянием помех в канале принятая последова­ тельность элементов может отличаться от переданной, т. е. кодовый многочлен F(x) преобразуется в многочлен Н(х). Так как многочлены складываются по модулю 2, то Н(х) можно представить как сумму двух многочле­ нов:

 

 

 

H(x)

= F(x)

+ E{x),

 

 

 

(6.32)

где Е(х)

многочлен

ошибок,

содержащий

столько

членов, сколько элементов в

принимаемой

комбинации

не совпадает с переданной.

 

 

 

 

 

 

Пусть

в

переданной

кодовой

 

комбинации

01000101100110101

F(x)=xis

+ xu+x* + x*+x5

+ xl

+

x2+]

искажен

седьмой

элемент

и

она

принята,

как

01000111100110101

Н(х)=\х15

+ хг* + х * ° + х 9 + х8 + х 5

+ х 4 +

+ х 2 + 1 .

Нетрудно

видеть, что комбинацию

Н(х)

мож­

но рассматривать

как сумму

по модулю

2

комбинаций:

^01000101100110101

^00000010000000000

01000111100110101

F{x)=x1&+xn+

 

x9+xs+x5+x4+x2

+ l

®£(*) =

х10

 

 

Н{х)=х11-fx1"+х°8+х5

-4-х4

+ х 2 + 1

333

Основным критерием наличия в принимаемом сооб­

щении

Н(х)

ошибки является его неделимость без

ос­

татка

на образующий многочлен Р(х).

Если Н(х)

де­

лится

на Р(х),

то принятое сообщение

рассматривается

как правильное, даже если и произошла ошибка (случай

необнаруженной ошибки). Так как

H(x)=f(x)+E(x),

то

неделимость

И(х)

на Р(х)

определяется . тем,

что

Е(х)

не делится

на

Р(х).

 

 

 

 

Корректирующая

способность

циклического

кода

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

роении циклического

кода.

 

 

 

Рассмотрим некоторые основные свойства цикличе­

ских кодов.

 

 

 

 

 

Свойство

1. Циклический код, образующий

многочлен

которого

Р(х)

содержит больше

одного члена, обнару­

живает все одиночные ошибки.

 

 

 

При

одиночной

ошибке в !-м разряде

многочлен

ошибки

будет иметь вид Е(х)—х1

и для

обнаружения

ошибки

не должен

делиться без

остатка

на

Р(х). Оче­

видно, что А"' не делится без остатка на многочлен, со­ держащий более одного члена. Простейшим таким мно­ гочленом является (х+\).

Свойство 2. Циклический код, образованный много­ членом Р(х)=х+1, обнаруживает не только одиночные ошибки, но и любое нечетное число ошибок.

Для обнаружения ошибок при образующем много­ члене Р(х) = х+\ кодовый многочлен F(x) должен де­ литься на Р(х) без остатка, т. е.

 

F(x)

= (x+l)Q(x)

=

xQ{x)+Q(x).

 

 

 

Если

Q(x)

содержит

пг членов,

то

xQ(x)

также

со­

держит m членов. Из общего числа

Ъп

членов

в

Q(x)

и

xQ(x) nil

пара

членов, имеющих

одинаковые

степени,

при суммировании по модулю 2 дадут нули. Тогда в

функции F(x)

останется

2(m—т,)

членов, т. е.

четное

число. Отсюда

следует,

что кодовый многочлен

любой

комбинации циклического кода, образованного много­ членом Р(х)=х+1 содержит четное число членов.

При нечетном числе ошибок многочлен ошибок Е(х) будет содержать нечетное число членов и, следователь­ но, не будет делиться на Р(х).

334

Свойство 3. Циклический код, образованный много­ членом Р(х), обнаруживает все одиночные и двойные ошибки, если значность «ода л меньше или равна сте­

пени / двучлена

х1+1,

где

/ — наименьшее

число,

при

котором х'+

\ делится

на

Р(х)

без

остатка.

 

 

 

 

Для обнаружения двойных ошибок необходимо, что­

бы

многочлен

ошибок

Е(х)

=x{

+ xj

не делился

на

Р(х)

при

любом

I,

j<n.

 

'Полагая

i<j,

преобразуем

 

Е(х):

 

 

 

 

 

 

 

Е{х) =

 

 

х1(\+х^).

 

 

 

 

 

Так

как

 

i ) <n^Zl,

то

xi_i+\

 

не

делится

на

Р(х)

и,

следовательно,

код

обнаруживает

все

 

двойные

ошибки.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

•Все одиночные ошибки обнаруживаются согласно до­

казанному

выше, так

как

Р(х)

имеет больше,

чем один

член.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Согласно табл. 6.2 число проверочных разрядов си­

стематического (п, /?)-кода,

обнаруживающего

двойные

ошибки

(d = 3),

определяется

из

выражения

 

2т^п+1.

Очевидно, что наибольшая экономичность кода

обеспечи­

вается при п = 2г—1.

Поэтому при построении циклических

кодов

значительный

интерес

представляют

 

значения

/=*2Г —1. В этом случае существует, по крайней мере,

один многочлен

Р(х)

степени

г,

на

который

двучлен

\+х'-~~'

делится

без

остатка.

 

 

 

 

Таким образом, можно утверждать, что для любого г

существует циклический код

длиной

п=2г—1,

образо­

ванный многочленом

Р(х)

степени г, который обнаружи­

вает все

одиночные и двойные

ошибки.

 

В общем случае двучлен вида

х 2 _ 1

+ 1 является наи­

меньшим

общим

кратным

для

всех

неприводимых')

многочленов степени

г.

 

 

 

 

 

В табл. 6.11 приведены все неприводимые многочле­ ны до шестой степени включительно и некоторые много­

члены от седьмой до десятой степени.

 

 

 

Свойство

4. Циклический

код,

образованный

много­

членом вида Р(х)=\(х+,\)Р,(х),

 

позволяет

обнаружить

все одиночные, двойные и тройные ошибки, если

степень

г' неприводимого

многочлена Р'(х)

такова,

что

двучлен

2Г —1 будет

больше или 'равен числу

элеметов

кода п.

') Неприводимым

называется

многочлен,

делящийся без остат­

ка только на единицу

и на себя.

 

 

 

 

 

335

г

1

2

3

4

5

6

7

8

9

10

Т А Б Л И Ц А 6.11

Вид неприводимого многочлена

Х+1

х*+х+\

х3г+ 1 х*+х+\

xi

+ x+ 1

 

.v''+.v3 +l

 

х^+хл+х-+х+\

х52+1

 

х*+х3+\

 

х532

+ х+\

х5

+ х'' +

х-+х+\

х5

+

х'' + х3

+ х+ 1

Х 5 + А - 4 + Х 3

+ А - 2 + 1

А - 6 + Х 3 + 1

 

xe

+

xs+\

 

xe + xi+xz

+ x+ 1

х 6 + . с 1 + д:3 + х + I

хв5

+ хг

+ х+ 1

А - 6 + А 5 + А - 3

+ А-2 + 1

А 6

+ А - 5 + А 4 + Х - Н

А"6

+ А - 5 + А - 4 + А 2 + 1

А 7

+ А - ° + 1

ха

+ х*+х3 + х°-+\

А-8 +А-° + А 5 + А''+ 1

А-9 + А 4 + 1 А-° + А - 5 + 1

А-1 0 + А 3 + 1

А^ + А " 1 - ! - !

П=1=2ГI

1

3

7

15

31

63

127

255

511

1023

Справедливость данного следствия вытекает из пре­ дыдущего. Сомножитель (х+\) обнаруживает одиноч­ ные и тройные ошибки, а Р (х) — двойные.

336

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

 

Е (х) = х1 + x i + l + х1 + x i + l .

 

(6.33)

После преобразований получим Е(х) =-(x+\)i(xi

+

xi).

Этот многочлен

не делится на Р(х) — (х+

1)Р'(х)

без

остатка, так

как х^ + х1 ие делится на Р'(х),

что

было

показано при рассмотрении свойства 3.

 

 

 

Свойство

5.

Циклический код,, образованный

много­

членом степени г, обнаруживает любой пакет ошибок длиной г и менее ' ) .

Пакету

ошибок

длиной г

соответствует

многочлен

ошибок

вида

Е(х)

— х*+ ...

+ . . . - f x '

при

/—1 =

—'1.

Вынося

за скобку х1,

получим

 

 

 

 

 

 

 

 

£ ( * ) = * ' ( / - ' + . . . +

1).

 

 

(6.34)

Поскольку степень многочлена, стоящего в скобках,

меньше г, то многочлен Е(х)

не делится на образующий

многочлен

Р(х),

степень

которого т, что и

 

обеспечивает

обнаружение

пакетов ошибок

длиной

т и

менее.

 

Оценим, чему равна часть необнаруживаемых паке­

тов ошибок, если длина

пакета 6 =•/"+• 1.

 

 

 

Многочлен

ошибок,

соответствующий

данному слу­

чаю, имеет вид

 

 

 

 

 

 

 

 

 

 

 

 

Е(х)

= х'(хГ +

... 4- 1).

 

 

 

 

Деление Е(х)

на Р(х)

без остатка

возможно

только,

если Е(х)

—xiP(x).

 

В о всех остальных

случаях в

резуль­

тате деления получится остаток степени ."(,г—1), количе­ ство вариантов которого в зависимости от вида много­ члена ошибок не превышает 2Г —4. Таким образом, ко­ личество пакетов ошибок длиной ( r + l ) , необнаружи­ ваемых циклическим кодом, составляет 1/2г~! часть всех

пакетов длиной

( i r + 4 ) .

что Ь>г+Л.

 

 

Теперь предположим,

Для

пакета оши­

бок длиной b

многочлен

ошибок

имеет

вид Е(х) =

') Пакетом ошибок длиной b будем называть группу из b еди­ ничных элементов, начинающуюся и кончающуюся ошибочными еди­ ничными элементами, в которой число правильных единичных эле­ ментов, разделяющих два соседних ошибочных единичных элемента, всегда меньше данного числа Ь.

337

= xiь~1 + . . . + i l ) • Поскольку b-~[>r,

то

многочлен

ошибок может делиться без остатка на Р(х).

Возможное

число вариантов многочленов ошибок равно 2Ь—2. При и> делении на образующий многочлен получается 2Г ос­ татков и только один из них будет нулевым. - П р и 1 количество необнаруживаемых пакетов ошибок состав­ ляет 1/2г часть от общего числа пакетов.

Основной задачей, решаемой при построении цикли­

ческих

кодов, является

выбор образующего многочлена,

исходя

из

требуемых

корректирующих свойств

кода.

Для кодов, обнаруживающих двойные ошибки

( d = 3 ) ,

степень

образующего многочлена

г и значность

кода а

выбираются

из условия

п = 2г—1.

Лри этом в качестве

образующего многочлена может быть выбран любой из

неприводимых многочленов степени

г

(см. табл.

6.10).

Так, при /-=3 можно построить 'циклический

код

(7,4);

при г—А — код (15,11); при г = 5 — код (63,58).

 

При

построении

'кодов, обнаруживающих

одиночные,

двойные

и тройные

ошибки ( r f = 4 ) ,

берется образующий

многочлен вида Р(х) = ' ( х + 1 )Р'(х),

Где Р'(х)

обра­

зующий многочлен степени г' для кода с d=3.

Длина

кодовой комбинации выбирается из условия

п = 2 г — 1 ;

число

проверочных

разрядов равно: г =

г'+\.

 

 

В

качестве примера, поясняющего выбор

образующего

много­

члена и формирование проверочных элементов, рассмотрим построе­ ние циклического кода с d = 3 для передачи одиниадцатиэлементпых

комбинаций

(К=Ы).

При этом число

проверочных

разрядов

г = 4.

Образующий

многочлен

такого (15, '11)-кода может быть

любым

из

трех

неприводимых

многочленов

четвертой степени, например,

Р(х)

= х'1+х+\,

или в двоичной форме 10011.

 

 

 

Строками порождающей матрицы циклического (п, £)-кода яв­

ляются

соответственно

образующие

многочлены

Р(х);

хР(х);

х2Р(х);

...; х''-1Р(х),

дополненные слева

нулями. Поэтому

порож­

дающая

матрица искомого кода будет

иметь вид

 

 

 

 

 

 

 

00010011010111I

 

 

 

 

 

 

 

_ 001001101011110

 

 

 

 

 

0

5 , 4 )

010011010111100

 

 

 

 

 

 

 

100110101111000

 

 

Нетрудно видеть, что все исходные кодовые комбинации раз­ личны, имеют вес d и благодаря циклическому сдвигу линейнонеза-

висимы. Кодовое расстояние между любыми парами кодовых комби­ наций также не меньше d. Остальные разрешенные кодовые комби­

нации могут быть получены суммированием по модулю 2 любых со­ четаний исходных комбинаций.

338

Проверочная

матрица

Ип, п-ь. циклического

(п,

£)-кода строит-

ся ма

основе

 

многочлена

h(x),

полученного

делением

двухчлена

 

на образующий

многочлен

Р(х):

 

 

 

 

 

Последовательность

многочленов

h(x);

xh(x);

x2h(x),

....

хп~''~*

h(x)

является

строками

матрицы

М размерностью

(п,

n—k).

Первая строка представляет собой многочлен h(x)

с приписанными

слева

1)

нулями. Остальные

строки

получаются

в результате ци­

клического

сдвига

первой. Для

рассматриваемого примера получим

 

=

х

Л 4 " , ' , = х П + х° + * 7 + *6 + х 3 + х2

+ х + 1,

 

 

 

 

+ х + 1

 

 

 

 

 

 

 

или в двоичной

форме

100П0.101ФШ, откуда

 

 

 

 

 

 

 

 

 

 

 

000100110101111

 

 

 

 

 

 

 

 

 

 

 

001001101011110

 

 

 

 

 

 

 

 

М ( 1 5 , 4 )

=

010011010111100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

100110101111000

 

 

 

 

Цикличность перестановок, определяющая строение рассматри­ ваемых кодов, а также изложенный выше способ построения комби­

наций

циклических кодов

путем

деления

многочлена

исходной ко­

довой

комбинации на образующий

многочлен с приписыванием

остат­

ка значительно облегчают построение

кодирующих и декодирующих

устройств,

основой которых

являются

регистры сдвига

с

обратны­

ми связями.

 

 

 

 

 

 

 

 

 

 

 

 

 

iB [66] рассматривается

и другой

способ задания

цик­

лических

(п, к)-кодов,

основанный

на представлении об­

разующего

многочлена

Р(х)

в

виде

произведения

нес­

кольких

многочленов

и нахождении

Р(х)

по

заданным

значениям

его корней.

 

доказывается, что если F(x) —

В

теории кодирования

многочлен

циклического

(п,

/г)-кода и F.(x)

для некото­

рого значения а равна нулю, то многочлен F(x)

делится

на т(х),

если т(х)

— неприводимый многочлен мини­

мальной степени и

т(а)=0.

 

 

 

 

 

 

 

 

•Пусть

 

а\\ ач\

 

ат

— корни многочлена

Р(х),

все

различны <и каждый

из них является

корнем

минималь­

ных

многочленов

т\(х)\

 

лго(х);

...;

 

тт(х).

Тогда

неко­

торый многочлен

F(x)

будет принадлежать циклическо­

му (п, 6)-коду, если

а,; о2 ;

 

ат—будут

его корнями.

Многочлен F(x)

в

силу

определения

циклического

кода должен делиться на каждый из минимальных

мно­

гочленов,

 

а следовательно,

и на их наименьшее

общее

кратное НОКТак как многочлен,

на который

делится

339

Соседние файлы в папке книги из ГПНТБ