Код Боуза — Чоудхури — Хоквингема: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Содержимое удалено Содержимое добавлено
отмена правки 77086027 участника 109.86.188.37 (обс) Было правильно: в GF(16) a^13=a+a^2+a^3+a^4 |
NapalmBot (обсуждение | вклад) м Удаление принудительных пробелов в формулах по ВП:РДБ. |
||
Строка 5:
----
Пусть <math>
----
Строка 24:
1) построить [[Многочлен над конечным полем#Циклотомический класс|циклотомические классы]] элемента <math>\beta=\alpha^s</math> поля <math>GF(q^m)</math> над полем <math>GF(q)</math>, где <math>\alpha</math> — примитивный элемент <math>GF(q^m)</math>;
2) поскольку каждому такому циклотомическому классу соответствует неприводимый полином над <math>GF(q)</math>, корнями которого являются элементы этого и только этого класса, со степенью равной количеству элементов в классе, то выбрать <math>\beta^{l_0},\;\beta^{l_0+1},\;\ldots,\; \beta^{l_0+d-2}</math> таким образом, чтобы суммарная длина циклотомических классов была минимальна; это делается для того, чтобы при заданных характеристиках кода <math>
3) вычислить порождающий полином <math>g(x)=f_1(x)f_2(x)\ldots f_h(x)</math>, где <math>f_i(x)</math> — полином, соответствующий <math>i</math>-ому циклотомическому классу; или вычислить <math>g(x)</math>, как [[Наименьшее общее кратное|НОК]] минимальных функций от элементов <math>\beta^{l_0},\; \beta^{l_0+1},\;\ldots,\;\beta^{l_0+d-2}</math>{{sfn|Сагалович|2007|с=168}}.
Строка 48:
Коды БЧХ являются циклическими кодами, поэтому к ним применимы все методы, используемые для декодирования циклических кодов. Однако существуют гораздо лучшие [[алгоритм]]ы, разработанные именно для БЧХ-кодов (стр. 91<ref name="Морелос">[http://urss.ru/cgi-bin/db.pl?lang=Ru&blang=ru&page=Book&id=21331 Искусство помехоустойчивого кодирования]</ref>).
Главной идеей в декодировании БЧХ кодов является использование элементов [[Конечное поле|конечного поля]] для нумерации позиций кодового слова(или, эквивалентно, в порядке коэффициентов ассоциированного многочлена). Ниже приведена такая нумерация для вектора <math>
{| class="standard"
|значения
Строка 72:
<math> S_{2t_d} = r(\alpha^{b+2t_d-1}) = e_{J_1}\alpha^{(b+2t_d-1)J_1}+e_{J_2}\alpha^{(b+2t_d-1)J_2}+\ldots+e_{J_\nu}\alpha^{(b+2t_d-1)J_\nu}</math>
</center>
''Здесь'' <math>
Для нахождения множества локаторов ошибок, введем в рассмотрение ''многочлен локаторов ошибок''
<center>
Строка 88:
* '''Алгоритм Берлекемпа — Мэсси''' (BMA){{Переход|#Алгоритм Берлекемпа — Мэсси}}. По числу операций в [[Конечное поле|конечном поле]] этот алгоритм обладает высокой эффективностью. BMA обычно используется для программной реализации или моделирования кодов БЧХ и [[Код Рида — Соломона|кодов Рида — Соломона]].
* '''Евклидов алгоритм''' (ЕА){{Переход|#Евклидов алгоритм}}. Из-за высокой регулярности структуры этого алгоритма его широко используют для аппаратной реализации декодеров БЧХ и [[Код Рида — Соломона|кодов Рида — Соломона]].
* '''Прямое решение''' (алгоритм Питерсона — Горенстейна — Цирлера, ПГЦ). Исторически это первый метод декодирования, найденный Питерсоном для двоичного случая <math>(q=2)</math>, затем Горенстейном и Цирлером для общего случая. Этот алгоритм находит коэффициенты ''многочлена локаторов ошибок'' прямым решением соответствующей системы линейных уравнений. В действительности, так как сложность этого алгоритма растет как куб минимального расстояния <math>
=== Алгоритм Берлекемпа — Мэсси ===
|