Коды фирмы IBM
При записи информации на магнитную ленту ошибки возникают чаще всего в пределах одного блока неоднократно, но по одному столбцу. Для борьбы с этими ошибками фирма IBM (США) разработала корректирующий код, который относится к итеративным. В каждом кадре информации формируется одна дополнительная строка.
Проверочные символы на дополнительной дорожке определяются из условия обеспечения нечетности числа единиц вдоль данной строки.
В направлении дорожек используется параллельный циклический код, позволяющий определить номер дорожки, на которой возникла пачка ошибок.
Зная номер дорожки с искаженными символами, и используя результаты проверок по строкам, можно произвести их исправление.
Расположение кодируемого кадра информации на ленте показано в таблице 8.1.
Таблица 8.1
F1(x) |
a0; 1 |
a1; 1 · x1 |
a2; 1 · x2 |
... |
aj – 1; 1 · x j – 1 |
... |
an – 2; 1 · xn – 2 |
an – 1; 1 · xn – 1 |
F2(x) |
a0; 2 |
a1; 2 · x1 |
a2; 2 · x2 |
... |
aj – 1; 2 · x j – 1 |
... |
an – 2; 2 · xn – 2 |
an – 1; 2 · xn – 1 |
... |
... |
... |
... |
... |
... |
... |
... |
... |
Fi(x) |
a0; i |
a1; i · x1 |
a2; i · x2 |
... |
aj – 1; i · x j – 1 |
... |
an – 2; i · xn – 2 |
an – 1; i · xn – 1 |
... |
... |
... |
... |
... |
... |
... |
... |
... |
Fl(x) |
a0; l |
a1; l · x1 |
a2; l · x2 |
... |
aj – 1; l · x j – 1 |
... |
an – 2; l · xn – 2 |
an – 1; l · xn – 1 |
Rl(x) |
a0; l + 1 |
a1; l + 1 · x1 |
a2; l + 1 · x2 |
... |
aj – 1; l + 1 · x j – 1 |
... |
an – 2; l + 1 · xn – 2 |
an – 1; l + 1 · xn – 1 |
Кодирование циклическим кодом осуществляется следующим образом. Многочлен F1(x), соответствующий информации первой строки, умножается на x и результат приводится по модулю образующего многочлена g(x) степени n, где n – число дорожек, включая контрольную. Например, для 9 дорожек:
.
Полученный остаток Ri(x) суммируется по модулю два с многочленом F2(x), соответствующим информации второй строки. Сумма снова умножается на x и далее приводится по модулю 2, в результате чего определяется остаток R2(x). Применив этот алгоритм последовательно ко всем строкам кодируемого кадра информации, получим Rl(x) – многочлен степени не выше n – 1, который и записывается в конце кадра (при нечетном числе строк в нем), в качестве символов контрольных символов записывается:
.
Декодирование производится аналогично кодированию, причем участвует и контрольная строка – Rl(x). Процесс декодирования можно записать следующим образом:
где E(x) – некоторый многочлен, определяющий ошибку, а .
При отсутствии ошибки .
Если R'(x) ≠ 0, то имеет место ошибка.
Если имела место пачка ошибок вдоль одной из дорожек, то она может быть исправлена. http://peredacha-informacii.ru/ В техническом отношении код значительно сложнее кода с проверкой по строке и диагонали.
Дополнительная информация по коду фирмы IBM
|