Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
200
Добавлен:
16.03.2015
Размер:
4.25 Mб
Скачать

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

Методика построения циклических кодов с 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и.ош=mtи.ош. (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) для больших значенийnm=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. Остальные строки находятся соответствующими циклическими сдвигами.