|
Дополнительная информация по коду фирмы IBMМногочлен ошибки в этом случае имеет вид: E(x) = x je(x), где x j – адрес ошибки, (х) определяется по результатам проверок строк на нечетность. Номер дорожки с искаженными символами может быть найден, исходя из следующего.Пусть F1(x) = 0 ... Fl(x) = 0; Rl(x) = 0 и при считывании на дорожке с n возникла пачка ошибок. В результате декодирования получим некоторый многочлен или , где k – число дорожек, на которое отстоит дорожка с известным номером n от дорожки, где возникла пачка ошибок j. Если пачка ошибок возникла только по одной дорожке, то, умножив R'(x) на xk с приведением по модулю g(x), получим R"(x). Поэтому при декодировании одновременно с вычислением R'(x) осуществляется вычисление R"(x). Для определения номера дорожки с искаженными символами производится последовательное домножение R'(x) на х; х2; ...; хn –1. На каждом шаге, начиная с R'(x), результат приводится по модулю g(x) и затем сравнивается с R"(x). Процесс прекращается, как только на каком-либо i-м шаге зафиксировано равенство (в этом случае k = i – 1 и известная величина n определяет номер искомой дорожки) или после проведения n сравнений. В последнем случае фиксируется наличие неисправимой ошибки. Требования к образующему многочлену g(x). У произвольного g(x) степени n остаток Rl(x) может иметь как четное, так и нечетное количество единиц. Такая нечеткость не позволяет проверкой по строке при считывании считать, содержит Rl(x) ошибку или нет. Следовательно, необходимо выбрать такой g(x), который обеспечит детерминированность Rl(x) по числу членов. Рассмотрим с этой целью полную сумму S(x), образовывающуюся при кодировании многочленов всех строк: .
Поскольку каждый Fi(x) состоит из нечетного числа членов (дополнен до нечетности), а умножение F(x) на х в любой степени числа членов в нем не меняет, сумма будет содержать четное число членов, если l – четно (что при записи на МЛ обычно соблюдается). Можно представить, что .
Выберем g(x) с четным числом членов ,
тогда или и Rl(x) – всегда четно независимо от Fi(x). Сделаем многочлен R'l(x) = Rl(x) g'(x) – нечетным, т.к. g'(x) – не четно и запишем его в конец кадра. Пример ;
т.е. g(x) – четно, а g'(x) = g(x) / (x 1) – нечетно! Выбор g'(x) в качестве поправки к Re(x) не случаен. В результате декодирования получаем: .
Можно показать, что только при введении в качестве поправки g'(x), справедливо равенство: .
Так как В таблице 8.2 приведены некоторые образующие многочлены g(x) и соответсвующие им g'(x) для разных n – количеств дорожек: Таблица 8.2
Данный код способен исправлять все пачки ошибок, возникающие по одной дорожке, за исключением пачек вида: ,
где z(x) – произвольно. Пример Пусть на запись 10 дорожечную МЛ по первым 9-ти дорожкам поступают следующие информационные символы: Рис. 8.7 Из таблицы выбираем:
;
11000110011; Получаем остаток для записи на МЛ по седьмой строке. Рис. 8.8 Запишем в 7-ую дорожку нечетное число единиц. Предположим, что при считовании исказились символы по 7 дорожке (голубой фон). При декодировании необходимо вычислить многочлены: .Вычислим L(x) так же как и . Рис. 8.9 Найдем R"(x). При каждом обнаружении ошибки проверкой по строке одновременно со сдвигом к n-ному (десятому) разряду присуммируется "1". При этом происходит доумножение на x и приведение по mod g(x). .Ищем последовательность на каждом шаге. Рис. 8.10 Ост.7 = R"(x) = 1100001110. Займемся сравнением L(x) с R"(x) при сдвиге L(x) и приведением по mod g(x). Технические средства реализации специального двухстепенного итеративного кодаКодированиеРис. 8.11. Блок схема кодирующего устройства Очередность выполнения операций обеспечивается схемой управления (не показана). Схема кодирующего регистра: для n = 10 и .
Рис. 8.12 Регистр 3 осуществляет параллельное и поразрядное суммирование строк по модулю 2 с одновременным доминированием Ri(x) над x и делением результата на g(x). Прибавление сводится к инверсированию содержимого 1; 5 и 10 разрядов. ДекодированиеРис. 8.13. Блок схема декодирующего устройства (без повторного протягивания ленты) Сигналы c МЛ, включая n-ую, через усилители 1 поступают на входной регистр 2. С выхода 2 параллельно сигналы поступают:
Декодирующий регистр 5 аналогичен кодирующему. Декодирующий регистр 6 для n = 10 и . Рис. 8.14 При каждом обнаружении ошибок проверкой по строке одновременно со сдвигом информации в регистре к его n-ному (десятому) разряду присуммируется "1". При этом в регистре происходит домножение на х с приведением результат по mod g(x). Если содержимое регистра 5 не нуль, что свидетельствует об обнаружении ошибки, то схемой 7 производится сравнение "на равно" содержимого регистров 5 и 6 с последующим сдвигом содержимого регистра 5. Операция сравнение повторяются до тех пор, пока сравнение "на равно" не выполнится, либо пока операция не повторится n раз. При выполнении сравнения циклический счетчик 8 фиксирует номер дорожки с искаженной информацией и на один из входов логической схемы "и" 7, соответствующей этой дорожке, поступает сигнал управления. После этого весь кадр индикации построчно выводится из буферного З.У. 10 через сумматоры по mod 2 на выходной регистр 11. Одновременно через логическую схему "и" на сумматор дорожки с искаженной информацией поступают корректирующие сигналы с буферного регистра 4, и искаженные символы исправляются. |