Из статьи wiki систематический процесс кодирования рассматривает сообщение как многочлен с конечными коэффициентами поля, добавляет необходимое количество нулей (умножается на x^t), делит на генераторный многочлен, а затем вычитает остаток из тех добавлены обнуленные байты. Это означает, что многочлен закодированного сообщения является точным кратным генераторному многочлену.
Если исходный закодированный полином сообщения вычисляется в корнях генераторного многочлена (a^1, a^2, ...), результатом является множество нулей. Если полученное кодированное сообщение с ошибками оценивается в корнях генераторного полинома, исходные термины выпадают, а результатом является набор «синдромов», которые являются функцией местоположений ошибок и значений ошибок. Затем в статье wiki объясняется ключевое уравнение между полиномом локатора ошибок (лямбда) и «синдромами».
В статье wiki объясняются 4 метода, которые можно использовать, чтобы преобразовать синдромы в места ошибок и значения ошибок, но Berlekamp-Massey и Euclid являются двумя основными используемыми методами.
Как указано в статье wiki, для исправления ошибки для каждой ошибки требуются два критерия четности (поскольку для каждой ошибки указаны местоположение неизвестной ошибки, местоположение ошибки и значение ошибки). Для обработки ошибок 10%, тогда 20% сообщения должно быть четным. Если сообщение имеет 30 байт, то 20 байтов четности добавляются для создания 50-байтового кодированного сообщения, из которых может быть исправлено до 10 байтов.
вики статья содержит ссылку на эту страницу учебника НАСА:
http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19900019023_1990019023.pdf
Вы можете найти столько сжатую учебник, который я написал немного проще следовать.
http://rcgldr.net/misc/ecc.pdf
Там какие-то вещи в моем учебнике, что вам не нужно будет, как решения квадратного или кубического уравнения (наследие вещь, оставленная, что я не снимал), и он отсутствует материал как расширенный Евклид или Berlekamp Massey расшифровывает, но этого достаточно, чтобы начать.
Ничего себе, это выглядит супер полезно! Давайте посмотрим ... –
@BenjaminBarney - Я обновил свой ответ, чтобы включить ссылку на краткое учебное пособие, написанное много лет назад. Это должно быть проще. Если это интересно, у меня также есть несколько примеров программ, которые можно использовать в учебнике Nasa. – rcgldr
Это отличная информация! Благодарим вас за ваш ответ, и он увлекателен и достаточно сложный, чтобы дать мне много времени, чтобы учиться и думать! –