![](/user_photo/_userpic.png)
книги из ГПНТБ / Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования
.pdfназываемой порождающей пли генераторной. Из опре деления базиса следует, что совокупность всех линейных комбинаций вектор-строк матрицы G, называемая про странством строк, образует векторное пространство раз мерности in.
Например, в качестве порождающей матрицы векторного пространства V„, образованного выше введением операций сложения по модулю 2 и умножения на скаляр над множеством я-разрядиых двоичных слов, может быть выбрана единичная матрица порядка п
1 |
0 |
0 . . . |
О |
О |
I |
0 . . . |
О |
G = |
|
|
|
О 0 |
0 . . . . |
1 |
|
Линейным групповым |
|
кодом |
называют множество |
слов, являющееся подпространством пространства Vn размерности п.
Для получения корректирующего кода длиной а раз рядов с заданным минимальным расстоянием d необхо димо выбрать некоторое подмножество Vk из Vn та.кпм образом, чтобы V), являлось векторным подпространст вом пространства У,,, а расстояние между любыми дву мя векторами из Vk должно быть не меньше требуемого значения d. Индекс k в обозначении векторного подпро
странства |
Vu означает |
его |
размерность, |
т. е. мощность |
Vk равна |
2''. |
|
|
|
Пусть X, Y — кодовые векторы, тогда {см. (1-1)] име |
||||
ет место |
равенство |
|
|
|
|
d{X, |
Y) = |
W~{X+Y). |
|
Так как по определению линейного группового кода |
||||
X+Y также является |
кодовым вектором, |
то из данного |
равенства следует вывод: минимальное расстояние d линейного группового .кода равно минимальному весу его •ненулевых элементов.
Выбрав в Vk k базисных векторов, получим порож дающую матрицу G линейного кода. Перестановка столб цов и элементарные преобразования над строками ма трицы G (в алгебре под элементарными преобразования ми понимаются: перестановка любых двух строк матри цы, прибавление к одной строке другой, умноженной но
зО
скаляр) не изменяют пространства строк и, тем самым, минимального расстояния d. Любая матрица G с помо щью -указанных преобразований может быть приведена к виду
1 |
0 0 |
. . . О |
аи |
я , , 1 . . . |
я,, я _ „ | " |
|
10 |
1 0 . . . |
0 |
а„ |
д . , |
'г, -п-fc |
|
|
|
|
|
|
|
= I I U A | |
О О О |
|
|
аул Сь |
аЬ, n-li |
||
где I/t — единичная |
матрица |
порядка /е. |
||||
Возьмем |
произвольное |
/г-разрядное двоичное число |
||||
S=(si, s2, ..., |
s/{), |
которое |
может |
рассматриваться как |
прямоугольная матрица размером (1Х/г). Произведение1 этой матрицы на матрицу G' равно:
где |
/Y = SG'=(Si, s2, |
s,,, СЬ С2, |
Cn-k), |
|
|
|
|
|
|
|
|
/ = 1 . |
2, |
(2-1) |
|
(=1 |
|
|
|
Так |
как X является |
линейной |
комбинацией строк G', |
|
то это |
кодовый вектор |
(элемент |
кода). Из |
полученного |
равенства следует, что первые k .компонент выбираются
произвольно, в то время как остальные (п—/г) |
компо |
|||||||||
нент |
определяются |
первыми |
компонентами. |
В |
|
связи |
||||
с этим первые к компонент называются |
информационны |
|||||||||
ми, |
а последние — контрольными |
символами. Код |
такого |
|||||||
типа |
называется систематическим (п, k)-кодом |
или |
раз |
|||||||
делимым |
кодом. |
|
|
|
|
|
|
|
|
|
Из описанной процедуры преобразования порождаю |
||||||||||
щей |
матрицы следует, что любой линейный групповой |
|||||||||
код может |
быть представлен |
в форме разделимого |
кода. |
|||||||
1 |
Произведением двух |
матриц |
В = |
||6^||,„,п |
и С = |
Цс^-Ц,,^, |
кото |
|||
рые заданы в определенном порядке |
(первая и |
вторая) |
и размеры ко |
торых связаны условием: число столбцов первой матрицы равно числу
строк второй, |
называется |
матрица |
D = ||rfi : -||m ,p, элементы которой |
|
определяются |
следующим |
образом: |
|
|
|
п |
|
|
|
dti= |
У>Ь^сн, |
( = 1, 2 |
т ; / = 1, 2, |
р. |
У=1
31
Таким образом, процедура кодирования (п, к) -кодом сводится iK решению (п—k) уравнений (2-1), позволяю щих вычислить значения контрольных разрядов. Исходя из этих уравнений можно записать матрицу Н размером
(п—k)Xn, называемую проверочной |
или |
контрольной: |
||
|
<?2 |
|
1 О |
|
|
(Г* |
Я,,2 |
О =1 |
|
Н: |
|
|
|
|
al, |
n-h я 2, n-h |
• «h, 7>-h |
О О |
|
|
|
А | 1 п - й ll> |
|
|
где А [ — транспонированная 'подматрица |
А матрицы G ' ; |
|||
1п-& — единичная 'матрица порядка |
(п—!г). |
|||
Каждый |
из п столбцов |
матрицы |
Н соответствует од |
ному разряду кода, при этом столбцы подматрицы At соответствуют информационным разрядам, а столбцы ма трицы 1„_/£ — контрольным. Позиции единиц в i-м век тор-столбце подматрицы At показывают, в .каких кон трольных соотношениях типа (2-1) участвует г'-й инфор мационный разряд, т. е. значения каких контрольных разрядов зависят от значения t'-ro информационного раз ряда. Позиции единиц в г'-й вектор-строке .подматрицы А / показывают, какие разряды включаются в г'-ю сумму по модулю 2, значение которой приписывается t'-му кон трольному разряду.
Например, пусть контрольная матрица Н имеет вид:
|
1 1 0 |
1 |
1 0 |
0 |
||
Н: |
1 0 |
1 1 |
0 |
1 0 |
||
|
0 |
1 1 1 |
0 |
0 |
1 |
Тогда при кодировании числа 1001 получаем 1001.001. Действи тельно, из первой вектор-строки Н следует, что значение первого контрольного разряда (счет информационных и контрольных разря дов условимся вести слева направо) равно сумме по модулю 2 зна чений первого, второго и четвертого информационных разрядов. В со ответствии с этим для кодируемого числа получаем 1+0 + 1=0. Ана логично вычисляются остальные разряды.
Матрицы С и Н связаны следующим легко-проверяе мым соотношением:
G ' H / = 0, |
(2-2) |
32
где Н( — транспонированная контрольная матрица. По этому если принятое слово X принадлежит кодовому множеству, т. е. в .нем отсутствуют ошибки, то матричное •произведение
* H ( = SG'H, = S-0 = 0. |
(2-3) |
Другими словами, выполнение равенства (2-3) свиде тельствует о том, "что слово X принадлежит кодовому множеству. Это же равенство непосредственно следует из правила построения и использования •контрольной ма трицы Н, если вспомнить, что
k
|
|
Cj + |
S SiOtj |
= 0. |
|
|
|
|
(=i |
|
|
Если же |
при передаче возникли ошибки, то |
|
|||
|
(Х+Е) Н( = ХН г - | - £ Н ( |
= 0-|-ЕН/ = £ Н ; , |
(2-4) |
||
где |
E=(eh |
е2 , ..., еп)—вектор |
ошибки. Значение EUt |
||
называется корректором или синдромом. Длина |
коррек |
||||
тора |
(число |
разрядов) |
равна |
(п—к). Таким |
образом, |
для обнаружения некоторого множества ошибок Ф дол жно выполняться следующее неравенство:
EiUt^0 для всех £ г £ Ф . (2-5)
Тогда ненулевая величина корректора будет свиде тельствовать о наличии ошибки. Для обнаружения и исправления множества ошибок Ф, кроме того, необхо димо, чтобы различным ошибкам соответствовали раз личные значения корректора, т. е.
EiHi^EjHi, если
Теорема 2-1. Линейный групповой код имеет мини мальное расстояние d в том и только в том случае, если любые d—1 или менее вектор-столбцов контрольной ма трицы Н линейно независимы.
Доказательство. Матричное произведение (2-4) запи шем следующим образом:
EHl = ei.hi + e2fi2+ .... |
+enhn, |
где 6j — компоненты вектора ошибок, hi— i-fi векторстолбец матрицы Н (или i-я вектор-строка матрицы Н,).
Тогда неравенство (2-5)
п
|
1=1 |
3-236 |
33 |
является условием линейной независимости векторов hi. Так как кратность возникшей ошибки определяется чис лом в{фО (или весом вектора ошибки), то для обнару жения произвольных >(d—1) или менее ошибок необхо димо и достаточно, чтобы любые (d—1) или менее век торов hi были линейно независимы. Отсюда непосредст венно следует утверждение теоремы, если вспомнить, что максимальная кратность ошибок, обнаруживаемых ко
дом с минимальным расстоянием d, равна d—1. |
Теорема |
|||||
доказана. |
|
|
|
|
|
|
Часто на практике возникает задача получения из |
||||||
данного |
систематического |
(/г, &)-кода, описываемого с по |
||||
мощью |
матриц |
G' или |
Н', укороченного |
(п', |
&')-кода |
|
с тем ж е минимальным |
расстоянием. Эта |
задача |
реша |
|||
ется очень просто, так как отбрасывание любых |
|
(k—k') |
||||
столбцов подматрицы Aj матрицы Н (аналогично, |
отбра"- |
|||||
сывание |
(k—k') |
строк матрицы G' и получающихся в ре |
||||
зультате этой операции столбцов из всех нулей) |
не изме |
няет минимального расстояния d. Справедливость этого непосредственно следует из доказанной теоремы, так как исключение из рассмотрения части столбцов /г, матрицы Н не может повлиять на линейную независимость (зави симость) оставшихся столбцов.
Рассмотренные линейные 'групповые корректирующие •коды допускают весьма компактное описание с помощью порождающей или проверочной матриц. Эти коды пред ставляют особый интерес по следующей причине: описан конструктивный способ кодирования и декодирования, т. е. исправления возникших ошибок, отличный от метода перебора. Поэтому групповые коды имеют центральное значение, хотя существуют некоторые негрупловые коды, которые также поддаются простому математическому
описанию и достаточно просто декодируются. |
|
||
Важным |
понятием |
в теории кодирования |
является |
понятие эквивалентности |
кода. Два кода называют экви |
||
валентными, |
если их порождающие матрицы |
совпадают |
|
с точностью до порядка |
следования вектор-столбцов. При |
этом кодовые векторы, соответствующие этим кодам, от личаются только порядком следования символов. Отсюда следует, что перестановка столбцов матрицы G порож дает эквивалентный код.
2-2. к о д ы х э м м и Н г А
Коды Хэмминга с минимальным расстоянием d=S наиболее просто описываются с помощью контрольной матрицы Н. Из теоремы 2-1 следует, что матрица Н, вектор-столбцы которой различны и отсутствует нулевой столбец, соответствует коду с минимальным расстоянием d=3. Действительно, в этом случае не существует таких двоичных коэффициентов ai и а2 , одновременно не рав ных нулю, что
где h\ и hj — вектор-столбцы рассматриваемой матри цы Н.
Для определенности выберем в качестве вектор-столб цов матрицы Н различные четырехразрядные двоичные числа (исключая число нуль):
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 н = 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Перестановкой столбцов, содержащих одну единицу, показанную матрицу можно привести к виду
|
0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 |
|
|
н, |
0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 |
= I | A L |
|
1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 |
|||
|
|
||
|
I 1 0 1 1 0 1_0 1 0 1 0 0 0 1 |
|
|
где 14 — единичная матрица порядка 4. |
коду Хэмминга |
||
Данная матрица Н соответствует |
(15, 11) с минимальным расстоянием d=3. Использова ние такого кода позволяет исправить любую одиночную ошибку или обнаружить произвольную ошибку кратно сти 2. Если нумерацию информационных и контрольных, разрядов разделимого кода производить слева направо, то в соответствии с матрицей Н получаем систему ли нейных уравнений, с помощью которых вычисляются кон трольные разряды
c,== - ,+s e +s 7 + se + s i + s 1 0 + s11; '
^ = s2 + s3 + s4 + s8 + so + sio + s n; . (2-6)
3* |
35 |
где Ci — контрольные разряды, s; — информационные раз ряды.
Если при передаче кодового слова возникнет одиноч ная ошибка, то окажутся невыполненными те контроль ные соотношения (уравнения для с^, в которые входит значение ошибочного разряда. Например, если ошибка возникла в ^первом информационном разряде, то окажут ся невыполненными третье и четвертое уравнения, т. е. корректор будет равен ООП, совпадая с первым векторстолбцом матрицы Н. Отсюда получаем алгоритм опре деления места одиночной ошибки: местоположение век тор-столбца матрицы Н, совпадающего с вычисленным корректором, указывает место ошибки. Ясно, что вычис ленное значение корректора обязательно совпадает с одним из вектор-столбцов матрицы Н, так как в каче стве вектор-столбцов были выбраны все возможные дво ичные 4-разрядные числа.
Если возникнет ошибка кратности 2, то полученное значение корректора также будет совпадать с одним из вектор-столбцов матрицы Н и ошибки автоматически ис правляются. Однако заметим, что после такого «исправ ления» получается кодовое слово, не совпадающее с тре буемым кодовым словом. Значение корректора, соответ ствующее ошибке кратности 2 и более, получается при помощи поразрядного суммирования по модулю 2 век тор-столбцов матрицы Н, соответствующих ошибочным разрядам.
Например, если ошибка произойдет в первом и втором инфор мационных разрядах, то, складывая первый и второй вектор-столбцы, получаем:
0 + 0 = 0 ; |
|
|
|
|
|
0 + |
1 = |
] ; |
|
|
|
1+0 = 1; |
|
|
|
||
1 + |
1=0. |
|
|
|
|
Другими словами, если при передаче кодового слова |
|||||
.(Sl, |
S2, |
S3, Si, S5, |
. . ., S i i , CU |
CZ, |
C 3 , Ci) |
возникнет ошибка в s4 и |
Sa, то при автоматическом ис |
||||
правлении будет получено |
слово (si, |
S2, |
S3, s,x, S5, ..., s u , |
||
Си c 2 , c 3 , d ) , которое хотя |
и не совпадает с переданным, |
но является кодовым. Поэтому, когда вероятность воз никновения ошибок кратности более единицы значитель на, автоматическое исправление ошибок оказывается не36
желательным. В этом случае необходимо предусматри вать только обнаружение ошибки (принятое слово содер жит ошибки, если корректор не равен нулю). Доля Pi обнаруживаемых ошибок кратности i ( i ^ 3 ) определяет ся из соотношений
|
Pi=Kt |
|
(2-7) |
где п — длина |
кода; Кг— количество |
ошибок |
кратности |
i из общего |
количества возможных |
ошибок |
С) при |
возникновении которых сумма соответствующих столб цов матрицы Н не равна нулю.
Резюмируя вышесказанное относительно кода Хэмминга, можно отметить следующее: этот код с г кон
трольными |
разрядами |
имеет длину |
п=2г—1 разрядов, |
из которых |
к = 2г—1—г |
являются |
информационными. |
В табл. 2-1 приведены параметры неукороченных кодов этого класса, 'представляющих интерес с точки зрения их использования в ЦВМ.
Значение отношения kin является важной характери
стикой |
кода, которую |
называют |
нормой кода, |
скоростью |
||||||
передачи или избыточностью. |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
Т а б л и ц а |
2-1 |
|
Число |
информаци |
4 |
11 |
26 |
57 |
4 |
11 |
26 |
57 |
|
онных разрядов |
k |
|
|
|
|
|
|
|
|
|
Число |
контрольных |
3 |
4 |
5 |
6 |
4 |
5 |
6 |
7 |
|
разрядов г |
|
|
|
|
|
|
|
|
|
|
|
k |
k |
0,57 |
0,73 |
0,84 |
0,9 |
0,5 |
0,69 |
0,81 |
0,89 |
Отношение |
-=ТГ\— |
|||||||||
|
п |
Й+Г |
|
|
|
|
|
|
|
|
Минимальное |
рас |
3 |
3 |
3 |
3 |
4 |
4 |
4 |
4 |
|
стояние |
d |
|
|
|
|
|
|
|
|
|
Кроме кодов |
с |
минимальным |
расстоянием |
й = Ъ |
в табл. 2-1 приведены параметры кодов с минимальным расстоянием d=4. Эти коды получаются из вышерассмотренных кодов Хэмминга добавлением одного кон трольного соотношения, представляющего собой резуль тат суммирования по модулю 2 всех разрядов кодового слова. При этом контрольная матрица Н [на примере
37
рассматриваемого нами кода (15, l l ) j имеет вид:
0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0
0 1 1 1,0 о о 1 1 1 1 о 1 о о о
Hje.u"—[J 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 I 0 I 0 I 0 0 0 I 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
В этом случае операция кодирования может выпол няться б два этапа. На .первом этапе вычисляется кодо вое слово при использовании матрицы Н, соответствую щей коду с d=3, а на втором этапе добавляется один дополнительный .контрольный разряд, в котором записы вается результат суммирования по модулю 2 всех раз рядов кодового слова, полученного на первом этапе. Таким образом, коды Хэмминга с d=A имеют парамет ры: п—2г разрядов, из которых (г + 1) являются кон трольными.
|
|
|
|
|
|
|
|
Т а б л и ц а |
2-2 |
|
|
Корректор |
|
Дополнительное |
|
|
|
|
|
||
|
|
контрольное |
|
Выводы |
|
|
||||
|
|
|
|
|
соотношение |
|
|
|
|
|
Не |
равен |
нулю |
Выполняется |
Произошла, |
двойная |
ошибка |
||||
|
|
|
|
|
|
(автоматическая коррекция |
оши |
|||
Не |
равен |
нулю |
|
|
бок |
должна |
блокироваться) |
|||
Не |
выполняется |
Произошла |
одиночная ошибка |
|||||||
|
|
|
|
|
|
(автоматическая коррекция |
оши |
|||
Равен |
нулю |
Выполняется |
бок |
выполняется) |
|
|
||||
Ошибок нет |
|
|
||||||||
Равен |
нулю |
Не |
выполняется |
S Произошла |
тройная |
(или бо |
||||
|
|
|
|
|
|
лее |
высокой |
кратности, но не |
||
|
|
|
|
|
|
четная) ошибка |
|
|
||
|
Операция |
декодирования |
кодов с d=4 |
также |
состоит |
из двух самостоятельных операций: 1) вычисления /--раз рядного корректора, соответствующего коду с d=3; 2) .проверки последнего контрольного соотношения. Воз можные результаты выполнения этих операций и соот ветствующие им выводы приведены в табл. 2-2.
Дополнительное контрольное соотношение, вводимое для увеличения минимального расстояния кода Хэммин га, можно представить следующим образом:
c&=Si + Sz+S3+Si+Su+Ss+S7+Ss+ss+Sio-jrSn |
+ |
+ С1 + С 2 + С 3 + |
С4. |
38
Учитывая (2-6), после линейных преобразований по лучаем:
C5 = Si + S2 + Sa + S5 + S6 + Ss + |
Su. |
Система уравнений (2-6) и шоследнее соотношение для с5 позволяет записать контрольную -матрицу для рас сматриваемого разделимого кода в виде
0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 |
|
0 1 1 1 0 0 0 1 1 1 1 0 1 0 0 0 |
|
^10.11 — 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 0 |
= 11 A L |
1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 |
|
1 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 |
|
Если контрольная матрица кода с минимальным рас стоянием d=4 приведена к виду Н = ||А1||, то процедура декодирования может выполняться следующим образом:
1)вычисляется корректор;
2)сравнивается корректор (если последний не равен
нулю) с вектор-столбцами матрицы Н и при совпадении с одним из столбцов фиксируется местоположение ошиб
ки, которая |
исправляется; |
|
3) если |
не равный нулю корректор не совпадает ни |
|
с одним из вектор-столбцов, то это свидетельствует |
о на |
|
личии ошибки кратности более единицы, которую |
код |
|
с d — 4 исправить не может. |
|
Иногда при практическом использовании кодов встречается за дача получения укороченного кода с заданным минимальным рас стоянием (d=3 или 4). Пусть, например, требуется получить - код, содержащий 10 информационных разрядов (4=10). Из табл. 2-1 видно, что неукороченные коды содержат k=A разряда, что недоста точно, или k—М разрядов, что больше требуемого. Укороченный код строится следующим образом. Записывается матрица Н для неуко роченного кода (с требуемым минимальным расстоянием), в котором количество информационных разрядов k больше требуемого kr. За тем отбрасываются произвольные (k—k') столбцов подматрицы А и
полученная матрица |
Н' |
будет соответствовать коду |
[п—k+k', k') |
|||
с тем же минимальным |
расстоянием. Например, код |
(15, 10) |
может |
|||
быть получен из матрицы Ню,ц, соответствующей |
коду |
(16,11), |
||||
отбрасыванием правого вектор-столбца подматрицы А: |
|
|
||||
|
0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 |
|
|
|||
|
0 1 1 1 0 0 0 1 1 1 0 1 0 0 0 |
|
|
|||
Hl5,10 |
1 0 1 1 0 1 1 0 |
0 1 0 0 1 0 0 |
|
|
||
|
1 1 0 1 1 0 |
1 0 |
1 0 0 0 0 1 0 |
|
|
|
|
1 1 } 0 1 1 0 1 Q 0 0 0 0 0 1 |
|
|
38