ГОСТ ISO/IEC 15438-2018. Межгосударственный стандарт. Информационные технологии. Технологии автоматической идентификации и сбора данных. Спецификация символики штрихового кода PDF417
Приложение K
(обязательное)
ПРОЦЕДУРЫ КОРРЕКЦИИ ОШИБОК
Схема восстановления может быть вызвана при общем числе неустановленных кодовых слов v менее или равном значению l, заданному соответствующим уравнением в 5.7.2, где f = 0, тогда возможно применение схемы восстановления. Неустановленные кодовые слова подлежат замещению нулями, и позицией неустановленного кодового слова l является jl, где l = 1, 2, ..., v. Составляют полином знака символа:
C(x) = Cn-1xn-1 + Cn-2xn-2 + ... + C1x1 + C0,
где коэффициенты при x являются считанными кодовыми словами с первым кодовым словом, Cn-1;
n - общее количество кодовых слов.
Рассчитывают значения синдрома k (от S1 до Sk) путем следующих вычислений:
C(x) при x = 3i
для i = 1 до i = k,
где k - число кодовых слов коррекции в символе, равное 2s + 1.
Схема генерации синдромов приведена на рисунке K.1.
Рисунок K.1 - Делитель синдрома символа
Так как позиции неустановленных кодовых слов известны из jl для l = 1, 2, ... v, полином местонахождения ошибки для этих известных позиций можно вычислить по формуле
,
где .
Полином местонахождения ошибок можно корректировать, чтобы включить позиции ошибок. Это можно выполнить с помощью алгоритма Берлекампа-Массе (Berlekamp-Massey), приведенного в [2].
Далее следует удостовериться, что количество стираний и ошибок удовлетворяет соответствующему уравнению, вычисляющему возможности исправления ошибок, приведенному в 5.7.2.
Решение дает позицию для t ошибок, где t >= 0; если t = 0, то ошибки отсутствуют. Далее рассчитывают значение ошибок
для позиции jl, l = 1, ..., v + t. Для вычисления ошибок требуется вспомогательный полином Z(x), который определяют следующим образом
,
где .
Значение ошибок в позиции jl таким образом получается через
После успешного решения для ошибок дополнения значений ошибок добавляются к кодовым словам в соответствующих позициях.
