ГЛАВА 10. ЦИКЛИЧЕСКИЕ КОДЫ, ИСПРАВЛЯЮЩИЕ ПАЧКИ ОШИБОК
Коды Файра и другие коды, рассматриваемые в этой главе, исправляют одиночные пачки ошибок в кодовых векторах, причем для этого требуется лишь небольшое число проверочных символов. Практическое осуществление этих кодов почти столь же просто, как осуществление кодов Хэмминга. В тех случаях, когда в полу» ченном векторе необходимо исправить более одной пачки ошибок, можно использовать коды Рида — Соломона, описываемые в разд. 9.3 и 10.7.
10.1. Коды Файра
Коды Файра удобнее всего определять с помощью порождающего многочлена
где - неприводимый многочлен степени над полем порядок корней которого равен причем с не делится на Длина кода равна наименьшему общему кратному чисел , потому что именно в этом случае многочлен делится на и никакой многочлен не делится на при Число проверочных символов равно с а число информационных символов Можно получить код меньшей длины с тем же, самым числом проверочных символов, если просто заменить некоторые информационные символы нулями и не учитывать их в передаваемом и получаемом векторах (см. разд. 8.9).
В следующем разделе показывается, что, используя эти коды, можно исправить любую одиночную пачку ошибок длины b или меньше и одновременно обнаружить любую пачку ошибок длины или меньше, если Если применять эти коды только для обнаружения ошибок, то можно обнаружить любую комбинацию из двух пачек ошибок, длина наименьшей из которых не превосходит а сумма длин которых не превосходит так же, как и любую одиночную пачку ошибок длины, не превосходящей числа проверочных символов. (См. разд. 8.6.)
Пример. Для двоичного кода Файра, порождаемого многочленом
, а порядок корней многочлена равен 127, т. е. простому числу. Следовательно, число проверочных
символов равно а число информационных символов соответственно Этот код может быть использован, например, для исправления всех пачек ошибок длины 7 или меньше и обнаружения всех пачек ошибок длины 10 или меньше или для исправления всех пачек ошибок длины 5 или меньше и обнаружения всех пачек ошибок длины 12 или меньше. Если использовать этот код исключительно для обнаружения ошибок, то можно обнаруживать любую одиночную пачку ошибок длины 23 или меньше и любую комбинацию из двух пачек ошибок, длина наименьшей из которых не превосходит 7, а сумма длин не превосходит 17.