Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИКСиС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.7 Mб
Скачать

1.3 Коды боуза - чоудхури - хоквингема

Методика построения циклических кодов с d0=5 была разработана Боузом, Чоудхури и Хоквингемом. В литературе эти коды известны как коды БЧХ. Данная методика отличается от методики построения кодов с d0<5 способом выбора образующего многочлена. Построение образующего полинома зависит от двух основных параметров: длины кодовой комбинации n и числа исправляемых ошибок tи.ош. Остальные параметры, использующиеся для построения образующего полинома, определяются из специальных таблиц и соотношений.

Для исправления tи.ош2 необходимо иметь d02tи.ош+1; длина кодовой комбинации должна удовлетворять условию:

n=2m=1, (7.13)

где n — всегда нечетное число.

Величина m определяет выбор числа проверочных символов r и связана с r и tи.ош соотношением

rmtи.ош(d0-1) /2. (3.15)

В то же время число r определяется степенью образующего полинома. При больших значениях m длина кода n становится большой, что снижает эффективность кода из-за того, что часть информационных разрядов не используется и возникают трудности технической реализации кодека. В этом случае для определения m удобно

Таблица 3.5  Соотношения для n, C, m

№ п/п

m

n=2m-1

С

№ п/п

m

n=2m-l

С

1

3

7

1

6

8

255

17; 5; 3

9

4

15

5; 3

7

9

511

7; 3; 7

3

5

31

1

8

10

1023

31; 11; 3

4

6

63

7; 3; 3

9

11

2047

89; 23

5

7

127

1

10

12

1095

3; 3; 5; 7; 13

пользоваться выражением

2m-1=nC, (3.16)

где C — один из сомножителей, на которые разлагается число n. Соотношения для n, C, m можно свести в табл. 3.5. Из таблицы следует, например, что при m=10 длина кодовой комбинации n может равняться и 1023 (С=1), и 341 (С=3), и 33 (С=31) и 31 (C=33), однако ясно, что n не может быть меньше n tи.ош.

Величина C влияет на выбор порядковых номеров специальных неприводимых многочленов (табл. 3.6), с помощью которых образующий полином кода БЧХ находится как их наименьшее общее кратное (НОК). Эти многочлены называются минимальными. Максимальный порядок  определяет номер последнего из выбираемых табличных минимальных многочленов:

=2tи.ош-1. (3.17)

Порядок  может быть только нечетным. Значения  меняются от 1 до d0-2 (d0 — нечетно). Так как образующий полином Pr(x) является произведением указанных нечетных минимальных многочленов, то  используется для определения числа сомножителей Pr(x). Например, если tи.ош=6, то =2tи.ош-1=1 и нечетными минимальными многочленами будут М1(х), M3(x), М5(х), М7(х), М9(х), М11(х). Старший из них имеет порядок =11. Число сомножителей Рr(х) равно 6, т. е. числу исправляемых ошибок. Поэтому число минимальных многочленов, образующих Pr(x), равно tи.ош, а старшая степень многочлена l=m. Число l указывает колонку в таблице минимальных многочленов, из которых выбирается многочлен для построения образующего полинома.

Таблица 3.6  Специальные неприводимые многочлены

Порядок

Степень l

1

2

3

4 5

6

7

8

1

111

1011

10011

100101

1000011

10001001

100011101

3

1101

11111

111101

1010111

10001111

101110111

5

111

110111

1100111

10011101

111110011

1100110001

7

11001

101111

1001001

11110111

101101001

9

110111

1101

10111111

110111101

11

111011

1101101

11010101

111100111

13

10000011

100101011

15

111010111

17

010011

19

11001011

101100101

21

11100101

110001011

Степень образующего многочлена Pr(x), полученного в результате перемножения выбранных минимальных многочленов, равна

rltи.ош=m tи.ош. (3.18)

Таким образом, Pr(x)=HOK [M1(x)M3(x)...М(х)].

Для конкретизации приведенной методики рассмотрим примеры.

Пример 3.14. Построить код БЧХ, исправляющий две ошибки. Длина кодовой комбинации n=15.

Согласно условию m=log2(n+1)=log216=4. Число проверочных разрядов rmtи.ош42=8. Порядок старшего из минимальных многочленов =2tи.ош-1=221=3. Число минимальных многочленов, участвующих в построении образующего полинома, L=tи.ош=2, а старшая степень l=m=4. Степень образующего многочлена: r8.

Из колонки 4 табл. 3.6, где расположены минимальные многочлены l=4, выбираем два (L=2) минимальных многочлена, порядок старшего из которых равен 3 (=3), т. е. выбираем минимальные многочлены 1 и 3:

M1(0,1)=10011; М3(0,1)=11111.

Тогда Pr(0,l)=M1(0,l)M3(0,l)=111010001, что соответствует образующему полиному P8(x)=x8+x7+x6+x4+l. Тогда параметры кода r=8, k=n-г=15-8=7. Имеем код (15,7). Производящую матрицу этого кода G16,7 можно получить шестью циклическими сдвигами исходной комбинации, соответствующей образующему полиному P8(0,1)=000000 111010001 (см. пример 3.10).

Пример 3.15. Построить код БЧХ, исправляющий двойную ошибку, если требуемая длина кода n=21.

1. Определяем значение m по формуле m=log2(n+1) или согласно (3.16) для больших значений n m=log2(nC+1). Так как m всегда целое число, то m=[log2(21C+1)], где — меньшая целая часть. Отсюда C=3, так как ближайшее число, которое в сумме с 1 дает целую степень двух, есть 63. Тогда имеем m=log2(213+1)=6.

2. Находим: rtи.ошm62=12; =2tи.ош-1=4-1=3; L=tи.ош=2; =r12; l=m=6.

3. Из колонки 6 (l=6) табл. 3.6 выписываем два (L=2) минимальных нечетных многочлена, порядок старшего из которых равен 3 (=3). Таким образом, выбираем многочлены М1(х) и М3(х) (М1(0,1)=1000011, M3(0,1)=1010111).

4. Умножаем индексы (порядки) выбранных многочленов на C и окончательно получаем порядковые номера минимальных многочленов, из которых строим образующий полином циклического кода:

M1(0,1) имеет порядок 1 (3)M3(0,1);

M3(0,l) имеет порядок 3 (3)M9(0,1).

Из колонки 6 (l=6) табл. 3.6 имеем

M3(0,1)=1010111; M9(0,1)=1101; P9(0,1)=10101111101=1110110011x9+x8+x7+x5+x4+x+1.

5. Так как степень образующего многочлена r=9, то уточненное число проверочных разрядов r=9 (а не 12, как в расчете на втором шаге).

Итак, n=21, r=9, k=12. Имеем код БЧХ (21,12). Первая строка образующей матрицы G21,12 этого кода имеет вид 000000000001110110011. Остальные строки находятся соответствующими циклическими сдвигами.