|
|
Т А Б Л И Ц А |
G.8 |
|
|
|
|
|
|
|
|
а) |
|
б) |
|
|
|
1 |
в) |
|
|
Передано |
1 0 1 0 0 1 0 1 0 0' 1 0 |
1 |
1 0 |
0 |
1 0 |
0 1 |
0 1 0 0 0 |
1 0 |
1 1 1 |
|
Принято |
1 П Т l o o i o i o o 1 0 1 | 0 0 0 1 0 0 1 о 1 о о о l j T j l l l |
|
|
|
Зарегистрирова |
1 j T j 1 о о о 1 о 1 1 1 0 |
1 j T j o |
0 |
1 0 |
0 1 |
o i o o o |
ofo] |
ООО |
|
но |
|
|
|
|
|
|
|
|
|
|
Анализ принятой |
1 Щ 1 |
о о |
1 о |
|
i [ F o |
комбинации |
+ |
|
|
+ |
|
|
|
|
|
0 |
1 0 |
11 |
0 |
1 |
0 |
0 |
1 |
|
1|0] 1 |
1 1 |
l |
l |
|
l j T j i |
информационного элемента (столбцы а я б). Если иска женный элемент расположен во второй половине кодовой комбинации, то при сложении по модулю два (столбец в) только одна пара элементов не совпадает, что указы вает на искажение проверочного элемента.
Основным недостатком инверсных кодов является их высокая избыточность.
§ 6 . 4 . СИСТЕМАТИЧЕСКИЕ (ГРУППОВЫЕ) КОДЫ
Систематическими (или линейными) называются та кие блочные разделимые (п, 1г)-коды, в которых k разря дов (обычно первые) представляют собой комбинации
простого кода, а последующие (п—k) |
разрядов являют |
ся проверочными (корректирующими) и образуются с |
помощью линейных операций над |
информационными |
[66]. Основным свойством двоичных систематических ко
|
|
|
|
|
|
|
|
|
дов, определяющим |
принцип |
их построения, |
является |
то, |
что |
двух или |
нескольких |
'разрешенных кодовых |
комбинаций дает также разрешенную комбинацию. |
|
Пусть |
комбинации |
v(aia2 |
. • • ак, |
Ьф2 |
• • • br) |
и |
v'(a'ia'2... |
а'и, Ь'ф'2... |
b'r) |
являются |
'разрешенными ком |
бинациями систематического |
(п, /г)-кода |
(а и b — инфор |
мационные и проверочные элементы соответственно). Со гласно определению каждый проверочный элемент об разуется посредством линейных операций над информа ционным, т. е. путем сложения по модулю 2 определен ных информационных разрядов:
h = |
С 1 а ! © с 2 0 2 © ... @ckak |
( 6 , 2 1 ) |
b\ = |
|
с1а[©с2а2®...®сГ1а'к ) |
|
|
где Cj. сг, • •., c/t |
— |
числа, равные 0 или 1. |
|
Под сложением |
двух n-элементных кодовых комбина |
ций понимается операция, в результате которой новая комбинация 'формируется путем сложения одноименных разрядов. В нашем случае сумма по модулю 2 двух раз решенных комбинаций будет иметь вид
v©v' |
= (ai.@a[); |
( a a © f l Q ; . . . ; |
(ak@ak); |
|
(bi@b[); |
( 6 8 |
< Щ ) ; . . . ; (br |
+ b'r). |
Из выражения |
(6.21) |
следует |
|
bi © b\ = |
d (ах © а]) + |
с2 (а2 + а'_) © |
... © c k (ak © a'k). |
Нетрудно видеть, что проверочные разряды кодовой комбинации, полученной суммированием по модулю 2 двух разрешенных комбинаций, образуются по тому ж е правилу, что и для каждой разрешенной комбинации. Следовательно, сумма двух разрешенных комбинаций систематического кода также является разрешенной ком бинацией. Это положение справедливо и при суммирова нии по модулю 2 любого количества разрешенных ком бинаций систематического кода ' ) .
Вторым свойством систематических (п, k)-кодов, вы текающим из рассмотренного выше, является то, что ми нимальное кодовое расстояние таких кодов равно мини мальному весу его ненулевых кодовых комбинаций. Спра ведливость сказанного вытекает из следующего: 1) вес кодовой комбинации w определяется числом ненулевых
|
|
|
|
элементов в ней, т. е. числом |
единиц; 2) кодовое расстоя |
ние d между |
комбинациями |
и,- и Vj определяется весом |
комбинации |
w(vu), полученной сложением |
по модулю 2 |
(Сравниваемых комбинаций Vk = и,-© vy, 3) |
поскольку ко |
довая комбинация Vk является также и разрешенной ком бинацией рассматриваемого кода, то минимальное ко довое расстояние кода определяется минимальным ве сом его ненулевых кодовых комбинаций. Последнее свой-
J ) В любом систематическом коде нулевая комбинация, т. е. комбинация, состоящая из одних нулей, принадлежит к числу раз решенных, поскольку линейная комбинация нулей есть нуль.
ство очень важно, так как оно значительно упрощает определение корректирующих возможностей кода. Ис пользуя это свойство, можно попытаться задать весь си стематический (п, /ej-код, приводя не все его кодовые комбинации, а только лишь их часть, указав при этом способ, посредством которого однозначно определяются все остальные комбинации.
Покажем, что для формирования систематического (п, &)-кода, содержащего 2к разрешенных кодовых ком бинаций, достаточно иметь К линейно независимых ком
бинаций. Совокупность комбинаций Ь\; и2 ; |
.. .; u;t назы |
вается линейно независимой, если для всех |
возможных |
значений |
с,, за исключением Ci = c 2 |
= . . . |
=Ch = 0, 'соб |
людается |
неравенство1 ) C\V\ @c2V2@ |
. ..® |
СьРиФ®. Вы |
бирая все возможные |
наборы |
значений элементов с\, чи |
сло которых |
равно |
2к, |
получим 2к кодовых комбинаций, |
причем при |
C i = c2 |
= ... = Cft = 0 |
получим нулевую комбина |
цию, которая также является |
разрешенной. |
Таким образом, любой набор из К линейно независи мых кодовых комбинаций порождает (п, ^-систематиче ский код. Обычно такой набор кодовых комбинаций принято записывать друг под другом в виде матрицы, содержащей /г строк и п столбцов. Такая матрица назы вается порождающей матрицей (п, /cj-кода и обозна чается символом С-( П | ;,). Так как информационные раз ряды занимают обычно первые К позиций в кодовых ком бинациях, то порождающую матрицу, содержащую К линейно независимых комбинаций, целесообразно пред ставить состоящей из единичной матрицы kXk, полно стью характеризующей комбинации простого кода:
• 100 . . . о 010 . . . о 001 . . . о
000. . . 1
иприписанной к ней справа матрицы проверочных эле ментов, содержащей К строк и г столбцов:
"10 . . . 0 ЬЦЬЦ . . , Ь 1 Г
101 . . . 0 |
621622 |
. . , Ь2г |
'in. к) |
|
|
(6.22) |
|
|
|
00 |
1 |
Л1ьЬ1иь,к1 |
|
|
|
•) Элементы толя ct , с2 , .... ск могут |
принимать значение 0 или 1. |
Порождающая матрица вида (6.22) называется ка нонической и сокращенно записывается в форме
|
<?(в. л, = [hR{n_k) |
J . |
|
(6.23) |
где /л — |
единичная |
матрица |
размерности |
(kXk), |
R(n-k)xk — |
матрица |
размерности |
(п—k)Xk, |
составлен |
ная из п—k проверочных элементов базисных кодовых комбинации.
При определении значений проверочных элементов приписанной части матрицы следует исходить из основ ных свойств систематических кодов.
Поскольку каждая строка единичной матрицы kXk содержит одну единицу, то вес каждой строки припи
санной части матрицы не должен |
быть меньше d — 1 , а |
сумма по модулю 2 двух любых |
ее строк — не менее |
d—2 единиц. iB общам случае комби-нации приписанной части матрицы находят, перебирая различные комбина ции, содержащие не менее d—1 единиц. Построенные та ким образом К исходных я-элементных комбинаций (п, /г)-кода должны быть линейнонезависимыми.
Процесс кодирования в систематическом коде сводит ся к определению проверочных разрядов посредством линейных операций над К информационными разряда ми. Для этого необходимо составить г независимых сумм по модулю 2.
Выбор позиций 1 к 0 в приписанной части матрицы (6.22) однозначно определяет позиции тех информаци онных элементов, которые должны участвовать в обра зовании проверочных разрядов. Ответ на этот вопрос
|
|
|
|
легко |
получить, если построить проверочную матрицу |
М(П-к), |
имеющую г строк и п столбцов. Для этого к еди |
ничной |
матрице гХг слева |
приписывается, матрица, со |
держащая |
К столбцов и г строк, причем каждая ее стро |
ка должна |
соответствовать |
столбцу проверочных раз |
рядов порождающей матрицы (6.22):
|
ЬцЬп |
. . . |
6 И |
Ю . . . О |
|
м (п, k) |
Ь1гЫл |
. . . Ькг 01 . . . о |
(6.24) |
|
|
|
|
|
|
\birb2r |
. |
bkr |
00 |
1 |
|
Каноническая |
форма |
матрицы |
М(п, к) имеет |
вид |
Min,h)=[R'kx{n+k)f{n-k)]- |
С |
помощью |
матрицы (6.24) |
опе- |
рация кодирования осуществляется просто: позиции, за нимаемые единицами в i-й строке приписанной части мат рицы R'kx{n_ky определяют те информационные разряды, которые должны участвовать в формировании i-ro прове рочного разряда. Поясним сказанное на примере систе матического кода, исправляющего одиночные ошибки при числе разрешенных комбинаций NQ=2!i. Минимальное ко довое расстояние такого кода d = 3. Тогда согласно табл. 6.3 число разрядов в комбинациях корректирующе го кода п = 7, т. е. строится систематический код (7,4). Порождающая матрица такого кода может быть записа
на, например, в следующем |
виде: |
|
|
|
|
|
|
1 0 |
0 |
0 |
1 |
0 |
1 |
|
|
|
0 |
1 0 |
0 |
|
1 1 1 |
|
G ( 7 . 4 ) |
= |
0 |
0 |
1 0 |
|
1 1 0 |
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
0 |
1 |
1 |
|
Нетрудно видеть, |
|
что |
приписанная |
часть матрицы |
G(7,4), содержащая проверочные элементы, |
удовлетворяет |
изложенным выше требованиям: вес каждой строки — не меньше 2, а сумма по модулю 2 двух любых ее строк—не меньше 1. Зная G(7,/,v можно построить прове рочную матрицу М вида
|
1 1 0 |
1 0 |
0 |
" « 7 . 4 ) = 0 |
1 1 1 0 |
|
1 0 |
1 |
1 0 |
1 0 |
0 |
1 |
из рассмотрения которой следует, что проверочные эле
|
|
|
|
|
|
|
менты 6,; |
Ь2; Ьз, согласно |
изложенному выше |
общему |
правилу, |
определяются |
следующими уравнениями: |
|
ai © а2 |
@ а3 © Ь1 |
= 0 |
(6.25) |
|
a2©a3®ai@b2 |
|
= |
0 |
|
|
|
|
fli © <h © |
ui © b3 |
= |
0 |
|
При декодировании с обнаружением ошибок |
принятая |
семиэлементная кодовая комбинация подвергается трем |
проверкам в соответствии с |
ур-ниями (6.25). Если хотя |
бы одно из этих уравнений |
не удовлетворено, то приня |
тая |
комбинация не |
принадлежит |
к числу |
разрешенных |
и, |
следовательно, |
в процессе |
передачи |
произошла |
ошибка! |
|
|
|
324 |
|
|
|
|
При декодировании с исправлением ошибок необхо димо учитывать, какие из уравнений не удовлетворены. Так, если не удовлетворяется одно из трех ур-ний (6.25), то ошибочно принятым является один из проверочных элементов. Когда не удовлетворяются первые два урав нения, то следует исправлять (заменять 0 на 1 или 1 на
|
|
|
|
|
0) |
элемент а3, входящий в оба уравнения. Если не удов |
летворены 1 и 3-е уравнения, |
исправляется элемент щ, |
•а если 2 и 3-е, — то элемент а,к. |
Наконец, в случае, когда |
три |
уравнения не удовлетворены, |
исправляется |
элемент |
:а2. |
Сказанное справедливо только |
при искажении |
одного |
.элемента. При ошибочном приеме двух и более элемен тов правильное декодирование невозможно, так как ко-
.довое расстояние кода d—3.
Предположим, что передаче подлежит информацион ная последовательность 1011. Тогда согласно (6.25) на выходе кодирующего устройства она примет вид 1011000. Пусть под действием помех эта комбинация будет при нята как 1111000. При декодировании в соответствии с (6.25) получим следующие результаты:
|
1- я |
проверка 1010100=1 |
|
|
|
|
2- я |
» |
1010100=1 |
|
|
|
|
3- я |
» |
1010100=1 |
|
|
|
Согласно изложенному выше исправлению подлежит |
второй элемент, |
и принятая |
информационная комбина |
ция примет вид 1011. |
|
|
|
|
|
|
Результат |
проверок |
на четность, записанный в виде |
r-разрядного |
двоичного |
числа, называется синдромом. |
В |
нашем примере синдром S равен 111. Равенство синдро |
ма нулю указывает на |
отсутствие |
ошибок |
в принятой |
комбинации. |
|
|
|
|
|
|
|
|
Если в порождающей матрице G(n,k) |
систематическо |
го (п, &)-кода, записанной в канонической |
форме, ис |
ключить (вычеркнуть) |
I первых строк |
и i первых столб |
цов, то 'полученная •G(n-i,h-i) |
матрица |
будет описывать |
«систематический |
(п—i, |
k—0"К°Д- |
Матрица |
М „ _ ; , и |
по |
лучается из канонической формы М( „, ^ вычеркиванием i первых столбцов. Поскольку при этом число линейнозависимых столбцов матрицы проверок не может умень шиться, то и d M m i нового код а будет то же, что у исход ного. Коды, построенные таким образом, принято назы
вать укороченными |
кодами: Рассмотрим различные виды |
систематических |
кодов; |
К о д ы |
X э м м ин г а. Групповой |
(п, /г)-код, |
матрица |
проверок |
которого |
М( „, Л ) имеет г=/г—/г строк ;и 2''—1 |
столбцов, |
причем |
столбцами M ( „ , w |
являются |
все нену |
левые г-разрядные двоичные 'последовательности, назы вается кодом Хэмминга. Минимальное расстояние та кого кода d = 3 , т. е. кодом исправляются все одиночные ошибки. Таким образом, код Хэмминга полностью за дается количеством проверочных элементов г в кодовой комбинации. Порядок формирования г проверочных эле ментов определяется задаваемым алгоритмом обнаруже ния и исправления искаженного элемента, т. е. требо
ванием, |
предъявляемым к синдрому. |
Одним из таких |
требований |
является |
следующее: |
синдром—двоичное |
r-разрядное |
число, записанное по результатам 1, 2, |
|
r-й проверок, — должен |
указывать |
номер искаженного |
разряда кодовой комбинации. |
|
|
|
Так |
как |
число элементов кодовых |
комбинаций |
п= |
= k+r, |
а число разрядов искомого |
двоичного числа |
г, |
то согласно изложенному должно соблюдаться неравен ство
Единица в правой части учитывает случай отсутствия искажений. Сопоставляя выражение (6.26) с аналогич ным выражением табл. 6.3 для случая r—Ъ, видим, что они совпадают. Подставляя в (6.26) г—п—k, получим
2 * < - ^ - , |
(6.27) |
п + 1 |
|
где п и k могут принимать только целые значения. Не равенство (6.27) является исходным при определении длины кодовой комбинации по заданному числу инфор мационных элементов.
Теперь, исходя из изложенного требования к форми рованию проверочных элементов, определим, какие из разрядов, кодовых комбинаций должны охватываться каждой из г проверок. Обозначим результат каждой проверки через П.
Пусть /7, = 1. Это значит, что один из элементов ко довой комбинации, охватываемых первой проверкой, ис
кажен. Наличие 1 |
в младшем разряде |
синдрома 5 = |
= П^П3П21 |
указывает, что искомый искаженный |
элемент |
является |
нечетным, |
так как единицу в |
первом |
разряде |
имеют все нечетные числа (см. |
табл. 1.1), следователь |
но, они и должны охватываться |
первой проверкой. |
Я х = fli©a3©o5 |
+ |
a 7 © . . . |
Результат второй проверки Я 2 |
определяет второй раз |
ряд синдрома. Из табл. 1.1 находим все числа, имеющие
единицу во втором разряде. Таковыми |
являются 2, |
3, б, |
7, 10, 11, 14, 15 ... Следовательно, |
вторая проверка |
дол |
жна охватывать |
разряды |
|
|
|
Я 2 = |
оа ® а3 © ав © а, © |
а ы |
©... |
|
Рассуждая аналогичным образом, найдем последова |
тельность разрядов, охватываемых |
третьей, четвертой, |
пятой и т. д. проверками (табл. 6.9). |
|
|
Теперь определим, какие позиции кодовых комбина ций занимают проверочные разряды, а какие—информа ционные. При этом необходимо помнить, что в каждую последовательность элементов, охватываемых провер кой, должен входить только одни проверочный элемент.
Сопоставляя |
все последовательности |
|
табл. 6.9, видим, что |
|
|
|
|
|
|
|
|
Т А Б Л И Ц А |
|
6.9 |
|
|
|
|
|
Номер про |
|
|
|
|
|
|
|
|
Номера |
проверяемых разрядов |
|
верки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1, |
3, |
5, |
|
7, |
9, |
1, |
13, |
|
15, |
17, |
19, |
21 ... |
|
|
2 |
2, |
3, |
6, |
|
7, |
10, |
11, |
|
14, |
|
15, |
18, |
19, |
|
22 ... |
|
3 |
4, |
5, |
6, |
|
7, |
12, |
13, |
14, |
|
15, |
20, |
21, |
|
22 ... |
|
4 |
8, |
9, |
10, |
11, |
1 2, |
13, |
14, |
15, |
24, |
25, |
26 ... |
|
5 |
16, |
|
17, |
|
18, |
|
19 |
20, |
21, |
22, |
23, |
|
24, |
|
25, |
26 ... |
|
6 |
32, |
33, |
34, |
|
35 |
36, |
37, |
|
38, |
39, |
40, |
41, |
42 .... |
|
элемент |
а4 входит |
|
только |
|
|
в |
первую |
|
проверку, |
элемент |
а 2 — только |
во |
|
вторую, |
|
элемент |
|
а 4 |
•— только |
в третью, |
элемент |
ав — только |
в |
|
четвертую |
и т. д. Следовательно, |
каждый первый элемент является проверочным, так как он входит только в соответствующую проверку. Эти эле менты формируются на передаче.
В качестве примера рассмотрим преобразование семиэлементного простого кода (К—7) в код Хэмминга, исправляющий одиночную ошибку. Согласно. (6.27) по лучим п— 11; г = 4 . Для такого кода четыре проверочных
|
|
|
|
|
|
разряда Ь^Ь2Ь3 и bti |
согласно |
табл. 6.9 |
расположатся |
на |
1, 2, 4. и 8 позициях |
кодовых |
комбинаций |
и их числен |
ные значения находятся суммированием |
по модулю |
2 |
определенных информационных элементов: |
|
|
bi = ai = a3 © a5 © а7 © аа © |
а11г |
|
b% = а 2 = а3 © а 6 © а, © а 1 о © а 1 1 ( 63 = 04 = ай © а в © а7 ,
К = а 8 = а 9 © а 1 0 © an.
Пусть передаваемая информационная последователь ность имеет вид 1011010. Тогда согласно изложенному принципу кодирования в канал связибудет передана кодовая комбинация 00100111010.
Теперь предположим, что в принятой комбинации ис кажен 9-й разряд — 00100111110. В результате четырех проверок на четность при декодировании получим:
Пх = а\®аг®а5®а'7®а'д®а'п |
|
= |
1, |
Л 2 |
+а2@а3©а6®а7©а[0©ап |
|
= |
0, |
Я 3 |
= а ; © а ; © а ; © а 7 |
= 0, |
|
П* = аа©а'9©а[0@ап |
= |
1, |
|
где а' — разряды принятой комбинации. |
|
Следовательно, синдром 5 = 1 0 0 |
1 . Так как число 1001 |
есть двоичная запись цифры 9, то, следовательно, в при нятой комбинации искажен 9-й элемент, который необ ходимо исправить.
Если к передаваемым в канал связи «-элементным ко
|
|
|
|
|
|
|
|
|
довым комбинациям кода |
Хэмминга (d=3) |
добавить |
( л + 1 ) - й элемент так, чтобы |
в комбинациях |
было четное |
число единиц, то анализ принимаемых комбинаций |
мож |
но будет вести, используя (г-\-1) |
проверку: г |
проверок— |
по процедуре кода |
Хэмминга и ( г - Н ) - у ю |
— |
всей |
ком |
бинации на четность. |
|
|
|
|
|
|
В |
полученном |
-элементном |
коде |
кодовое |
рас |
стояние с ? = 4 , что |
обеспечивает |
исправление |
всех |
оди |
ночных ошибок и обнаружение двойных. |
|
|
|
При проверке возможны три случая: |
|
|
|
1) |
ошибок нет; все (г+1) |
проверки равны |
нулю; |
2) |
одиночная ошибка; последняя |
(г-\-1)-я |
проверка |
равна единице, а первые г проверок указывают номер искаженного разряда;
3) двойная ошибка; последняя ( 7 + 1 ) - я |
проверка |
равна нулю, а хотя бы одна из г проверок |
равна еди |
нице. |
|
Следовательно, двойная ошибка, не исправляемая ко дом, обнаруживается только тогда, когда хотя бы одна из первых r-проверок не равна нулю, а результат послед ней проверки равен нулю.
И т е р а т и в н ы е к о д ы . Комбинационные коды, построенные посредством произведения двух или более исходных систематических (групповых) кодов, называ
|
|
|
|
|
|
|
|
|
|
|
|
|
ются |
итеративными. |
Простейшим |
итератив |
|
|
ным |
кодом |
является |
двухмерный |
код, пост- |
Т А Б Л И Ц А |
роенный |
посредством |
использования |
един |
|
|
ственной |
проверки на четность. |
|
Предполо |
10010 |
0 |
жим, что требуется |
передать |
блок |
симво |
01111 |
0 |
лов, |
состоящий |
из |
|
семи |
пятиэлементных |
|
11001 |
1 |
комбинаций |
(в общем |
случае число элемен |
тов в комбинациях и число .комбинаций, со |
10001 |
0 |
ставляющих |
блок, |
могут |
быть |
любыми). |
00010 |
1 |
Располагая |
все кодовые комбинации |
одну |
01010 |
0 |
под |
другой |
в |
виде |
|
таблицы |
и |
произведя |
|
11100 |
1 |
семь |
проверок |
на четность |
по |
строкам и |
пять по столбцам, найдем значения |
прове |
|
|
рочных элементов, |
которые |
расположим, |
00001 |
1 |
как |
показано в табл. 6.10. Элемент, распо |
|
|
ложенный в правом нижнем углу, может |
|
|
формироваться |
как результат проверки на четность |
про |
верочных |
разрядов нижней строки или проверочных |
раз |
рядов правого столбца. В обоих случаях будет получен одинаковый результат.
Полученный кодовый |
блок содержит 8 X 6 = 48 эле |
ментов при избыточности, |
равной: /? = 0,27. По мере уве |
личения информационных комбинаций в блоке можно уменьшить избыточность кода. Такой код позволяет ис править одиночные ошибки, так как при одиночной ошиб ке в результате декодирования не совпадут одна про верка на четность по строке и одна по столбцу, что ука зывает на искажение общего для данной строки и столб ца информационного элемента. Кроме того, код обнару живает все двойные и тройные ошибки. Не обнаружива ются четверные ошибки при условии искажения двух элементов в одной строке и двух элементов© другой, рас
положенных попарно |
в -двух столбцах, например, при |
искажении элементов |
щ, ,• .и а,-, к, aitj и aijt, где первый |