Алгоритм Берлекэмпа — Мэсси
Материал из Википедии — свободной энциклопедии
Алгоритм Берлекэмпа — Мэсси — алгоритм поиска кратчайшего регистра сдвига с линейной обратной связью для поданной на вход алгоритма требуемой генерируемой последовательности.
Алгоритм был открыт Элвином Берлекэмпом (англ.) в 1968 году[1]. Применение алгоритма к линейным кодам было найдено Джеймсом Мэсси в следующем году[2]. Это стало ключом для практического применения кодов Рида — Соломона.
Содержание |
Алгоритм для двоичных последовательностей[править]
- Задать требуемую последовательность битов
. - Создать массивы
,
,
длины
, задать начальные значения
,
,
,
,
. - Пока
:
- Вычислить
. - Если
, то текущая функция генерирует выбранный участок
последовательности; оставить функцию прежней. - Если
:
- Сохранить копию массива
в
. - Вычислить новые значения
. - Если
, установить значения
,
и скопировать
в
.
- Сохранить копию массива
.
- Вычислить
- В результате массив
— функция обратной связи, то есть
для любых
.
Примечания[править]
- ↑ Elwyn R. Berlekamp, Algebraic Coding Theory, New York: McGraw-Hill, 1968. Revised ed., Aegean Park Press, 1984, ISBN 0-89412-063-8.
- ↑ J. L. Massey, Shift-register synthesis and BCH decoding, IEEE Trans. Information Theory, IT-15 (1969), 122—127.
Литература[править]
- Блейхут Р. Теория и практика кодов, контролирующих ошибки = Theory and Practice of Error Control Codes. — М.: Мир, 1986. — 576 с.
.
,
,
длины
, задать начальные значения
,
,
,
,
.
:
.
, то текущая функция генерирует выбранный участок
последовательности; оставить функцию прежней.
:
.
, установить значения
,
и скопировать
.
для любых
.