- •5.3. Математические основы теории помехоустойчивого кодирования
- •5.3.1. Краткие сведения из теории чисел
- •4. Если и , то .
- •5.3.4. Векторное пространство
- •5.4.2. Параметры линейного кода
- •5.4.4. Циклические коды и корни полиномов
- •1. Порождающий полином неприводим и примитивен, а длина кода . Коды таких длин называют примитивными независимо от вида порождающего полинома.
- •5.4.5. Спектральное описание циклических кодов
- •5.5.2. Принципы декодирования кодов бчх
- •5.5.3. Методы реализации этапов декодирования кодов бчх
- •5.6.2. Обнаружение и исправление пакетов ошибок
- •5.7.3. Связь между блочными кодами
1. Порождающий полином неприводим и примитивен, а длина кода . Коды таких длин называют примитивными независимо от вида порождающего полинома.
Очевидно, в этом случае может быть использован в качестве полинома, задающего поле . Корнем его является примитивный элемент поля , а показатели всех корней принадлежат одному циклотомическому классу. Проверочная матрица такого кода имеет вид
, |
|
а сам код носит название кода Хэмминга.
В качестве примера выберем код (7, 4, 3), порождающий полином которого примитивен, а проверочная матрица
, |
|
с точностью до порядка следования столбцов совпадает с ранее полученной проверочной матрицей (5.17) этого же кода. Смена порядка на обратный объясняется изменением в (5.18) порядка записи степеней переменной .
2. Порождающий полином неприводим, но не является примитивным, длина кода . В этом случае элемент поля не обязательно является его корнем, и при отыскании корня возникают дополнительные трудности. Таков, например, полином для кода с (табл. 5.5). Следует прибегнуть к таблицам неприводимых полиномов.
В табл. 5.6 представлены полиномы степеней до 8, заимствованные из [33], где можно найти сведения о полиномах до 34-й степени.
Неприводимые многочлены даны в восьмеричном представлении. Каждую цифру соответствующего многочлену числа следует перевести в трехразрядное двоичное число и рассматривать его разряды как коэффициенты при степенях многочлена. Например, среди полиномов степени 5 есть восьмеричное число 67. Это означает: .
Примитивные многочлены подчеркнуты. Первым среди многочленов данной степени помещен примитивный, и с его помощью строится поле . Перед восьмеричным представлением стоит десятичное число, отделенное точкой и означающее показатель степени примитивного элемента, являющегося корнем следующего за ним полинома, причем большие степени записываются слева. Например, для нахождения корня полинома 6-й степени 127 нужно задать с помощью примитивного полинома 103 поле и в
Таблица 5.6 Неприводимые полиномы над полем
Степень полинома |
Восьмеричное представление полиномов |
||||
2 |
1.7 |
|
|
|
|
3 |
1.13 |
|
|
|
|
4 |
1.23 |
3.37 |
5.007 |
|
|
5 |
1.45 |
3.75 |
5.67 |
|
|
6 |
1.103 |
3.127 |
5.147 |
7.111 |
9.115 |
|
11.155 |
21.007 |
|
|
|
7 |
1.211 |
3.217 |
5.235 |
7.365 |
9.277 |
|
11.325 |
13.203 |
19.303 |
21.345 |
|
8 |
1.435 |
3.567 |
5.763 |
7.551 |
9.765 |
|
11.747 |
13.453 |
15.727 |
17.023 |
19.545 |
|
21.613 |
23.543 |
25.433 |
27.477 |
37.537 |
|
43.703 |
45.471 |
51.037 |
85.007 |
|
качестве корня полинома 127 взять элемент этого поля. Каждый из многочленов табл. 5.6 является минимальным многочленом указанного перед ним корня.
Многочлен, двойственный неприводимому, также неприводим, а двойственный примитивному – примитивен. Двойственные многочлены не помещены в табл. 5.6, однако могут быть получены из представленных в ней переменой порядка следования коэффициентов при степенях на обратный. Так, полином, двойственный 67, имеет вид: .
Показатель степени примитивного элемента поля, соответствующий корню двойственного многочлена, определяется как , где -степень примитивного элемента – корня приведенного в табл. 5.6 полинома. Поскольку и нечетны, то всегда четно. Например, корнем полинома, двойственного полиному 23, является элемент , так как , двойственного полиному 37 – элемент , и т.д.
Минимальный многочлен элемента включен в таблицу, даже если степень многочлена меньше (т.е. показатель принадлежит циклотомиче-скому классу, содержащему меньшее число компонентов, например, классу (табл. 5.3)). Таким минимальным многочленом корня в поле является 007 второй степени. В табл. 5.6 подобные многочлены начинаются с нуля.
3. Порождающий полином представляет собой произведение нескольких неприводимых многочленов, каждый из которых имеет корни в , и по-прежнему . Например, (табл. 5.5) порождает код (15, 9, 3).
Очевидно, в этом случае среди корней полинома будут корни каждого из сомножителей, отыскиваемые изложенным выше способом.
4. Общий случай: порождающий полином либо неприводим, либо является произведением неприводимых многочленов; длина кода .
Корни многочлена для таких значений являются элементами некоторого поля , причем показатели этих элементов принадлежат одному циклотомическому классу по модулю . Полином имеет корнями все элементы поля , в том числе и корни полинома . Следовательно, делится на , а делится на (см. 5.3.5), т.е. , где – целое число, причем одному значению может соответствовать множество пар чисел . Например, при справедливы равенства ; и т.д.
Поскольку корни лежат в поле , то корни неприводимых полиномов – делителей двучлена также принадлежат этому полю, и их следовало бы обозначать показателями степени примитивного элемента поля , как это делалось в табл. 5.6. По так как одному значению и может отвечать несколько полей , в перечнях кодов [33] корни помечаются отношением .
Табл. 5.7 содержит заимствованные из [30] двоичные циклические коды нечетной длины до с указанием нормированных показателей корней. Здесь же приведены значения конструктивных расстояний , необходимые для изложения материала следующих разделов.
Таблица 5.7 Нормированные показатели корней
n |
k |
d0 |
δ |
R |
n |
k |
d0 |
δ |
R |
7 |
4 |
3 |
3 |
1 |
15 |
4 |
8 |
8 |
0,1,3,5 |
7 |
3 |
4 |
4 |
0,1 |
15 |
3 |
5 |
5 |
1,3,7 |
9 |
3 |
3 |
3 |
1 |
15 |
2 |
10 |
10 |
0,1,3,7 |
9 |
2 |
6 |
6 |
0,1 |
17 |
9 |
5 |
4 |
1 |
15 |
11 |
3 |
3 |
1 |
17 |
8 |
6 |
6 |
0,1 |
15 |
10 |
4 |
4 |
0,1 |
21 |
16 |
3 |
3 |
7,3 |
15 |
9 |
3 |
3 |
1,5 |
21 |
15 |
4 |
3 |
0,7,3 |
15 |
9 |
4 |
3 |
3,5 |
21 |
14 |
4 |
4 |
0,1 |
15 |
8 |
4 |
4 |
0,1,5 |
21 |
13 |
4 |
3 |
7,9,3 |
15 |
8 |
4 |
3 |
0,3,5 |
21 |
12 |
4 |
3 |
0,7,9,3 |
15 |
7 |
3 |
3 |
1,7 |
21 |
11 |
6 |
6 |
0,3,1 |
15 |
7 |
5 |
5 |
1,3 |
21 |
10 |
5 |
5 |
7,3,1 |
15 |
6 |
6 |
6 |
0,1,3 |
21 |
9 |
5 |
6 |
9,3,1 |
15 |
6 |
6 |
6 |
0,1,7 |
21 |
8 |
6 |
6 |
0,9,3,1 |
15 |
5 |
3 |
3 |
1,5,7 |
21 |
6 |
7 |
7 |
3,5,1 |
15 |
5 |
7 |
7 |
1,3,5 |
23 |
12 |
7 |
5 |
1 |
15 |
4 |
6 |
6 |
0,1,5,7 |
23 |
11 |
8 |
6 |
0,1 |
Например, для кода (9, 3, 3) величина . Это означает, что корнем порождающего полинома данного кода в поле является элемент , в поле – элемент и т.д.
В заключение этого раздела обсудим задачу, обратную рассмотренной: по заданным корням требуется построить порождающий полином и код. Такая постановка характерна при формировании БЧХ-кодов.
Пусть – элементы поля , являющиеся заданными корнями, а – соответствующие им минимальные многочлены. Каждый из корней является некоторой степенью примитивного элемента поля. Если все показатели степени принадлежат разным циклотомическим классам по модулю , то в соответствии с (5.9), (5.10) и (5.11) порождающий полином
|
(5.20) |
В общем случае, когда некоторые из заданных корней могут принадлежать одному циклотомическому классу, т.е. находиться между собой в соотношении , порождающий полином (5.20)
. |
(5.21) |