9.7. Использование кодов Боуза — Чоудхури при передаче по стирающему каналу
Всякий код с минимальным расстоянием d может исправлять любую комбинацию из или меньшего числа стираний. Исправление стираний в случае кодов Боуза — Чоудхури сводится к решению системы линейных уравнений,
Предположим, что при передаче некоторого вектора были стерты компоненты на местах, соответствующих номерам Обозначим неизвестные правильные компоненты. Если при проведении проверок на четность неизвестные заменить нулями, то проверки на четность будут выглядеть так же, как для ошибок в нестнрающем канале, гак что будут выполняться уравнения (9.5), образующие систему уравнений, если минимальное кодовое расстояние равно Если то можно рассмотреть первых линейных уравнений с неизвестными. Определитель матрицы коэффициентов для этих уравнений имеет такой же вид, как определитель (9.2), и, следовательно, отличен от нуля. Поэтому система уравнений может быть решена относительно неизвестных которые и являются значениями стертых символов. Заметим, что этот метод в равной мере применим и к недвоичным, и к двоичным кодам.
Для двоичных кодов существует оригинальный способ исправления комбинаций ошибок и стираний, обобщение которого на общий случай еще не найдено. Если произошло стираний и ошибок, то они могут быть исправлены при условии, что минимальное кодовое расстояние равно по меньшей мере (См. задачу 1.5.) Тот же самый код, очевидно, исправляет ошибок, где наибольшее целое число, которое меньше, чем Далее, либо или меньше стертых символов равны 1, или же или меньше стертых символов равны 0. Предположим, что были стерты самое большее единиц. Тогда если заменить стертые символы нулями и провести процесс исправления ошибок, то в результате получим неискаженный кодовый вектор. Действительно, в этом случае имеется всего или меньше ошибочных символов. С другой стороны, если среди стертых символов содержится самое большее нулей, то, заменяя стертые символы единицами и проводя исправление ошибок, также получим неискаженный кодовый вектор.
Итак, стертые символы сначала следует заменить нулями, затем единицами и в каждом случае произвести процесс исправления ошибок. Если произошло не более ошибок и стираний, то либо в одном, либо в другом случае получится неискаженный кодовый вектор, который будет отличаться от полученного вектора в или меньше нестертых разрядах. Этот вектор должен быть искомым правильным вектором.