stringtranslate.com

AN-коды

Коды AN [1] представляют собой коды с исправлением ошибок , которые используются в арифметических приложениях. Арифметические коды обычно использовались в компьютерных процессорах для обеспечения точности арифметических операций, когда электроника была более ненадежной. Арифметические коды помогают процессору обнаружить ошибку и исправить ее. Без этих кодов процессоры были бы ненадежны, поскольку любые ошибки остались бы незамеченными. Коды AN — это арифметические коды, названные в честь целых чисел и используемые для кодирования и декодирования кодовых слов.

Эти коды отличаются от большинства других кодов тем, что они используют арифметический вес для максимизации арифметического расстояния между кодовыми словами в отличие от веса Хэмминга и расстояния Хэмминга . Арифметическое расстояние между двумя словами является мерой количества ошибок, допущенных при выполнении арифметической операции. Использование арифметического расстояния необходимо, поскольку одна ошибка в арифметической операции может вызвать большое расстояние Хэмминга между полученным ответом и правильным ответом.

Арифметический вес и расстояние

Арифметический вес целого числа по основанию определяется формулой

[ нужна цитата ]

где < , , и . Арифметическое расстояние слова ограничено сверху его весом Хэмминга, поскольку любое целое число может быть представлено в его стандартной полиномиальной форме, где - это цифры целого числа. Удаление всех условий, где будет моделироваться вес , равный его весу Хэмминга. Арифметический вес обычно будет меньше веса Хэмминга, поскольку он может быть отрицательным. Например, двоичное целое число имеет вес Хэмминга . Это быстрая верхняя граница арифметического веса, поскольку . Однако, поскольку может быть отрицательным, мы можем написать что делает арифметический вес равным .

Арифметическое расстояние между двумя целыми числами определяется выражением

[ нужна цитата ]

Это одна из основных метрик, используемых при анализе арифметических кодов. [ нужна цитата ]

AN-коды

Коды AN определяются целыми числами и используются для кодирования целых чисел от до так, что

<

Каждый выбор приведет к получению другого кода, но при этом служит ограничивающим фактором для обеспечения полезных свойств на расстоянии кода. Если оно слишком велико, в код может попасть кодовое слово с очень малым арифметическим весом, что ухудшит расстояние всего кода. Чтобы использовать эти коды, перед выполнением арифметической операции над двумя целыми числами каждое целое число умножается на . Пусть результатом операции над кодовыми словами будет . Обратите внимание, что для правильного декодирования он также должен находиться между to . Чтобы декодировать, просто разделите . Если не является фактором , то произошла по крайней мере одна ошибка и наиболее вероятным решением будет кодовое слово с наименьшим арифметическим расстоянием от . Как и в случае с кодами, использующими расстояние Хэмминга, коды AN могут исправлять ошибки вплоть до ошибок, где расстояние кода.

Например, код AN с , операция сложения и начнется с кодирования обоих операндов. Это приводит к операции . Затем, чтобы найти решение, мы делим . Пока > , это будет возможная операция в коде. Предположим, ошибка возникает в каждом из двоичных представлений операндов, таких, что и , то . Обратите внимание, что, поскольку , вес Хэмминга между полученным словом и правильным решением определяется только после ошибок. Для вычисления арифметического веса возьмем который можно представить как или . В любом случае арифметическое расстояние соответствует ожидаемому, поскольку оно представляет собой количество допущенных ошибок. Чтобы исправить эту ошибку, будет использоваться алгоритм вычисления ближайшего к полученному слову кодового слова с точки зрения арифметического расстояния. Подробно алгоритмы описывать не будем.

Чтобы гарантировать, что расстояние кода не будет слишком маленьким, мы определим модульные AN-коды. Модульный AN-код является подгруппой , где . Коды измеряются в терминах модульного расстояния, которое определяется в терминах графа, вершины которого являются элементами . Две вершины и соединены тогда и только тогда, когда

где и < < , . Тогда модульное расстояние между двумя словами — это длина кратчайшего пути между их узлами в графе. Модульный вес слова – это его расстояние от которого равно

На практике значение обычно выбирается таким образом, чтобы, поскольку большая часть компьютерной арифметики выполняется , не было дополнительных потерь данных из-за выхода кода за пределы границ, поскольку компьютер также будет за пределами границ. Выбор также имеет тенденцию приводить к получению кодов с большими расстояниями, чем у других кодов.

При использовании модульного веса коды AN будут циклическими кодами .

определение : Циклический код AN — это код , который является подгруппой , где .

Циклический AN-код является главным идеалом кольца . Есть целые числа и где и удовлетворяют определению кода AN. Циклические AN-коды представляют собой подмножество циклических кодов и обладают теми же свойствами.

Коды Мандельбаума-Бэрроуза

Коды Мандельбаума-Бэрроуза представляют собой тип циклических AN-кодов, введенных Д. Мандельбаумом и Дж. Т. Барроузом. [2] [3] Эти коды создаются путем выбора простого числа, которое не делится, например , и , и . Пусть будет положительным целым числом, где и . Например, выбрав , и результатом будет код Мандельбаума-Бэрроуза, такой, что < в base .

Для анализа расстояния кодов Мандельбаума-Бэрроуза нам понадобится следующая теорема.

Теорема : Пусть циклический AN-код с генератором и

Затем,

Доказательство : предположим, что каждый из них имеет уникальное циклическое представление NAF [4] , которое

Мы определяем матрицу с элементами где и . Эта матрица по сути представляет собой список всех кодовых слов, в котором каждый столбец является кодовым словом. Поскольку матрица циклична, каждый столбец матрицы имеет одинаковое количество нулей. Теперь мы должны вычислить , что в разы превышает количество кодовых слов, которые не заканчиваются на . Как свойство находиться в циклическом NAF, если существует с < . Поскольку при < , то < . Тогда число целых чисел, последним битом которых является ноль, равно . Умножение этого значения на символы в кодовых словах дает нам сумму весов кодовых слов по желанию.

Теперь мы будем использовать предыдущую теорему, чтобы показать, что коды Мандельбаума-Бэрроуза эквидистантны (что означает, что каждая пара кодовых слов имеет одинаковое расстояние) с расстоянием

Доказательство : Пусть , то и не делится на . Это подразумевается там . Затем . Это доказывает, что оно равноудалено, поскольку все кодовые слова имеют тот же вес, что и . Поскольку все кодовые слова имеют одинаковый вес и по предыдущей теореме мы знаем общий вес всех кодовых слов, расстояние кода находится путем деления общего веса на количество кодовых слов (исключая 0).

Смотрите также

Рекомендации

  1. ^ Петерсон, В.В. и Уэлдон, Э.Дж.: Коды, исправляющие ошибки. Кембридж, Массачусетс: MIT Press, 1972.
  2. ^ Мэсси, Дж.Л. и Гарсия, Онтарио: Коды с исправлением ошибок в компьютерной арифметике. В: Достижения в области науки об информационных системах, Vol. 4, гл. 5. (Под редакцией Дж. Т. Тона). Нью-Йорк: Пленум Пресс, 1972.
  3. ^ Дж. Х. Ван Линт (1982). Введение в теорию кодирования. ГТМ. 86. Нью-Йорк: Спрингер-Верлаг.
  4. ^ Кларк, В.Е. и Лян, Дж.Дж.: О модульном весе и циклических несмежных формах для арифметических кодов. IEEE Транс. Информация. Теория, 20 стр. 767-770 (1974).