Научная статья на тему 'Использование циклических корректирующих кодов в рекурсивных кодовых шкалах'

Использование циклических корректирующих кодов в рекурсивных кодовых шкалах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
155
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОДОВАЯ ШКАЛА / ПОЛИНОМ РАЗМЕЩЕНИЯ / КОРРЕКТИРУЮЩИЙ КОД / СЧИТЫВАЮЩИЙ ЭЛЕМЕНТ / CODE SCALE / ALLOCATION POLYNOMIAL / CORRECTION CODE / READOUT ELEMENT

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ожиганов А.А., Тарасюк М.В.

Проанализированы проблемы применения корректирующих кодов в традиционных цифровых преобразователях угла, построенных на основе метода абсолютного отсчета. Показано, что эти проблемы обусловлены как значительной избыточностью по числу кодовых дорожек, пропорциональному блоковой длине используемого кода, так и повышенной технологической сложностью изготовления кодовой маски шкалы. Такой подход, как правило, приводит к увеличению габаритов устройства и к трудностям устранения неоднозначности считывания. Показана возможность использования методов помехоустойчивого кодирования в цифровых преобразователях угла с однодорожечными рекурсивными кодовыми шкалами. Предложены обобщенная методика и алгоритм размещения на шкале считывающих элементов для произвольных параметров блоковой длины, минимального кодового расстояния d min и поля коэффициентов генераторного полинома корректирующего кода. Приведены примеры использования разработанной методики для d min=3 и 5. Показано, что практическое использование методов помехоустойчивого кодирования на основе циклических кодов всегда обеспечивает корректное размещение считывающих элементов вне зависимости от структуры рекурсивной кодовой шкалы. Для укороченных циклических кодов приводится достаточное условие корректности.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Using cyclic corrective codes in recurrent code scales

The problems of using corrective codes in traditional digital angle converters based on the absolute reference method are analyzed. It is shown that the problems are caused by significant redundancy in the code tracks number proportional to the block length of the code used, as well by the increased technological complexity of manufacturing the scale code mask. The above features usually lead to an increase in device size and to difficulties in eliminating the ambiguity of reading. A possibility of application of methods of error-correcting coding in digital angle converters with single-track recursive code scales is demonstrated. A generalized methodology is proposed and an algorithm for the reading elements positioning on the scale is developed for arbitrary parameters of block length, the minimum code distance, and the field of coefficients of the generator polynomial for the correction code. Examples of use of the described methodology for the minimum code distance of 3 and 5 are presented. It is shown that practical employment of error-proof coding methods based on cyclic codes always leads to correct location of the sensing elements regardless of the structure of the recursive code scale. For truncated cyclic codes, a sufficient condition for correctness is given.

Текст научной работы на тему «Использование циклических корректирующих кодов в рекурсивных кодовых шкалах»

УДК 621.3.085.42 DOI: 10.17586/0021-3454- 2017-60-10-973-979

ИСПОЛЬЗОВАНИЕ ЦИКЛИЧЕСКИХ КОРРЕКТИРУЮЩИХ КОДОВ В РЕКУРСИВНЫХ КОДОВЫХ ШКАЛАХ

А. А. Ожиганов1, М. В. Тарасюк2

1Университет ИТМО, 197101, Санкт-Петербург, Россия E-mail: ojiganov@mail.ifmo.ru 2Институт сетевых технологий, 199178, Санкт-Петербург, Россия

Проанализированы проблемы применения корректирующих кодов в традиционных цифровых преобразователях угла, построенных на основе метода абсолютного отсчета. Показано, что эти проблемы обусловлены как значительной избыточностью по числу кодовых дорожек, пропорциональному блоковой длине используемого кода, так и повышенной технологической сложностью изготовления кодовой маски шкалы. Такой подход, как правило, приводит к увеличению габаритов устройства и к трудностям устранения неоднозначности считывания. Показана возможность использования методов помехоустойчивого кодирования в цифровых преобразователях угла с однодорожечными рекурсивными кодовыми шкалами. Предложены обобщенная методика и алгоритм размещения на шкале считывающих элементов для произвольных параметров блоковой длины, минимального кодового расстояния dmin и поля коэффициентов генераторного полинома корректирующего кода. Приведены примеры использования разработанной методики для dmin=3 и 5. Показано, что практическое использование методов помехоустойчивого кодирования на основе циклических кодов всегда обеспечивает корректное размещение считывающих элементов вне зависимости от структуры рекурсивной кодовой шкалы. Для укороченных циклических кодов приводится достаточное условие корректности.

Ключевые слова: кодовая шкала, полином размещения, корректирующий код, считывающий элемент

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

На рис. 1 приведен пример четырехразрядной двоичной кодовой шкалы, обеспечивающей возможность формирования кодов, исправляющих одиночные ошибки (dmin=3), который иллюстрирует рассмотренный выше подход. Шкала включает в себя четыре информационных и три дополнительных кодовых дорожки, а также четыре информационных (СЭ1—СЭ4) и три корректирующих считывающих элемента (СЭ5—СЭ7).

СЭ1 —I СЭ2 —I СЭ3 —I СЭ4 —I СЭ5 —I СЭ6 —I

СЭ7 —I _

Рис. 1

В работах [1—7] рассмотрены методы устранения этих трудностей, основанные на использовании кодовых шкал с непозиционными рекурсивными кодами, которые в общем случае содержат не более двух кодовых дорожек, одна из которых используется для устранения неоднозначности отсчетов [8], а другая сохраняет информацию о текущем значении кодируемой величины. Подобная возможность обеспечивается алгебраическими свойствами рекурсивных последовательностей (РП), позволяющими разместить СЭ так, что множество кодовых слов, формируемых на выходе шкалы, изоморфно некоторому линейному корректирующему коду с заданными значениями блоковой длины и кодового расстояния dmin.

Размещение на шкале СЭ, обеспечивающее формирование кодовых слов с требуемым расстоянием dmin, осуществляется путем суммирования по модулю два значений, снимаемых с определенных информационных СЭ, и последующего поиска соответствующих этим суммам циклических сдвигов РП, использованной для построения рекурсивной кодовой шкалы (РКШ).

Целью настоящей работы является выработка условий, при выполнении которых возможно корректное размещение СЭ (информационных и корректирующих) для заданных параметров полного или укороченного циклического кода и образующего полинома РКШ.

Под некорректностью размещения будем понимать следующую ситуацию — полином размещения информационных и корректирующих СЭ не обеспечивает требуемого минимального кодового расстояния, вследствие того что два или более столбцов генераторной матрицы кода соответствуют одному и тому же номеру циклического сдвига по модулю полинома, лежащего в основе формирования структуры кодовой маски шкалы. Подобную ситуацию будем именовать „выпадением" разрядов корректирующего кода.

Приведем соотношения для основных параметров РП, определяющие их информационные и корректирующие способности [9]:

р

— образующий полином РП: Н (х) = П К (х);

г=1

р

— период РП Ь = П Ц,

г=1

где Ь — период многочлена Кг(х), т.е. минимальная степень двучлена х1+1, который имеет своим делителем К(х);

Г(Ь +1) / 2 при нечетном р,

— вес Хемминга для РП Ж = <

[(Ь -1) / 2 при четном р.

Для формирования структуры РКШ в простейшем случае полином выбирается на основе требуемого значения разрешающей способности. В общем случае учитывается также сложность декодирующего устройства, осуществляющего преобразование кодовой комбинации, соответствующей некоторому значению преобразуемой величины в номер кванта. После того как образующий полином кодовой шкалы Н(х) выбран, необходимо произвести размещение СЭ таким образом, чтобы число различных кодовых комбинаций обеспечивало требуемую разрешающую способность. Методы решения этой задачи основаны на выборе подходящего множества линейно-независимых циклических сдвигов при заданных ограничениях на взаимное расположение СЭ.

Размещение информационных и корректирующих СЭ будем характеризовать формальными степенными функциями, называемыми полиномами размещения:

Ь-1

я( х) = 2 ах1,

г=0

где Ь — период образующего полинома.

Коэффициенты при степенях формальной переменной принимают значения из поля GF(2). При этом единичные значения коэффициентов R(x) определяют порядок установки на кодовой шкале СЭ. В зависимости от требуемой корректирующей способности число единичных коэффициентов R(x) может варьировать в диапазоне от m до m+k (m — степень полинома H(x), определяющего число информационных СЭ, а k — число СЭ, необходимых для обеспечения требуемой корректирующей способности).

При использовании систематической формы корректирующих кодов используется сумма

R(x) = R(x) + Rc(x),

где Ri(x) и Rc(x) соответственно полиномы размещения информационных и корректирующих СЭ. Методы размещения СЭ для формирования безизбыточных кодовых комбинаций основаны на выборе подходящего линейно-независимого множества позиций.

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

1. Выбирается генераторный полином G(x) в зависимости от статистических свойств ошибки, а также допустимой сложности декодера.

2. Формируется образующий полином РКШ H(x).

3. Выбирается полином размещения информационных СЭ Ri(x), для которого строится генераторная матрица G, строки которой представляют собой произведение соответствующих начальных блоков и образующего полинома кода G(x).

4. Каждый элемент матрицы G заменяется соответствующим ему двоичным представлением. Если необходимо получить кодовые слова в систематической форме, следует путем элементарных операций над строками и столбцами матрицы G привести ее к такому виду, при котором некоторое подмножество столбцов ранга m соответствует выбранному полиному начального размещения информационных СЭ Ri(x) .

5. Для каждого столбца матрицы G в соответствии с H(x) определяются номера циклических сдвигов, используемых для нахождения мест установки на шкале СЭ на основе алгоритма деления по модулю H(x).

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

Проиллюстрируем приведенную методику. Построим несистематический полином размещения корректирующих СЭ для шкалы с числом квантов перемещения L=31 и исправлением одиночных ошибок. Выберем: H(x)=x5+x2+1; Ri(x)=x14+x3+x2+x+1; G(x)=x4+x+1; dmin=3, тогда

000010011 000100110 G = 001001100 010011000 100110000

Логарифмируя в конечном поле по основанию примитивного корня порядка L=31 столбцы матрицы G, получим полином размещения СЭ: R(x)=[x14+x13+x12+x11+x10+x3+x2+x+1]mod2. Для рассмотренного примера на рис. 2 приведена пятиразрядная РКШ, обеспечивающая возможность формирования кодов, исправляющих одиночные ошибки (dmin=3). Шкала включает в себя всего одну кодовую дорожку, а также пять информационных и четыре корректирующих СЭ.

СЭ 2 СЭ4 СЭ1 I

СЭ 6 СЭ 8 СЭ 5 I СЭ 7| СЭ 9

0 12 3

29 30

• • • 10 1112 13 14

Рис. 2

Рассмотрим более сложный пример исправления двойной ошибки для пятиразрядной РКШ при Н(х)=х5+х2+1, dmin = 5 и С(х)=х8+х7+х6+х4+1, тогда:

0000111010001 0001110100010 О = 0011101000100 0111010001000 1110100010000

Согласно общей методике полином размещения СЭ:

Я(х)=[х30+х29+х29+х28+х25+х24+х23+х18+х17+хп+х2+х+1]тоё2.

Очевидно, что в данном случае происходит выпадение разрядов блокового кода, так как два столбца (выделены полужирным) матрицы О оказались равны.

Последний пример свидетельствует о том, что для некоторых информационных и корректирующих параметров укороченных циклических кодов невозможно корректно разместить СЭ. Такая ситуация обусловлена тем, что при выборе степени образующего полинома КШ следует учитывать свойства генераторного полинома циклического кода. Естественно возникает вопрос о том, насколько широк класс кодов, приводящих к корректному размещению СЭ, а также каковы условия корректного размещения для заданных информационных и корректирующих параметров.

Циклическим кодом блоковой длины п называется множество полиномов С(х), удовлетворяющих соотношению: НОД [хп+1, С(х), С(х)], где С(х) — генераторный полином циклического кода [10, 11]. Процесс кодирования при этом можно интерпретировать как свертку двоичных последовательностей, соответствующих коэффициентам генераторного полинома и значениям информационных символов. Генераторная матрица циклического кода всегда может быть преобразована в систематическую путем элементарных операций над ее строками. Проверочный полином циклического кода определяется согласно соотношению Р(х)= =(хп+1)/ О(х).

Циклические коды являются наиболее важными и практически используемыми в различных технических приложениях, поскольку, с одной стороны, они обеспечивают высокую плотность упаковки кодовых слов, а с другой — минимизируют аппаратные затраты на выполнение операций кодирования-декодирования. С точки зрения использования в РКШ они характеризуются тем, что построение полинома размещения корректирующих СЭ не приводит к выпадению разрядов кода.

Для доказательства этого рассмотрим генераторную матрицу несистематического циклического кода с произвольным начальным размещением информационных СЭ:

О =

«1 Сп-т......С1С0

а2 00...Сп-т ...ед0

х

ат-1

Сп-т ...ед,00...00

= В х О*

Здесь В — матрица начальных циклических блоков для начального размещения информационных СЭ в соответствии с полиномом ^(х); О* — приведенная генераторная матрица цик-

лического кода, строками которой являются кодовые слова, соответствующие ортогональному каноническому базису для векторного пространства размерности m. Видно, что О и О* связаны между собой линейным преобразованием, определяемым матрицей В.

Очевидно, что О не имеет одинаковых столбцов в том, и только в том случае, когда О* также не имеет одинаковых столбцов, поскольку ёй [В]=1. Таким образом, если возможно корректное размещение СЭ для матрицы О, то корректно и размещение СЭ для любого изоморфного ему циклического кода.

Рассмотрим структуру матрицы О*. Известно [4], что любую строку этой матрицы можно интерпретировать как рекурсивную последовательность, построенную на основе сдвигового регистра с полиномом обратных связей, задаваемых согласно проверочному полиному выбранного циклического кода P(x) порядка n=m+k. Таким образом, множество всевозможных m-сочлененных фрагментов первой строки не содержит повторяющихся элементов, поскольку левая часть матрицы О* имеет треугольную форму, а порядок полинома P(x) равен п. Следовательно, размещение полиномов для циклических кодов корректно.

Приведенные соображения не могут быть использованы при обосновании корректности алгоритма размещения СЭ для укороченных циклических кодов, так как в этом случае генерация кодовых слов с помощью проверочного полинома не имеет смысла. На практике необходимо иметь возможность строить корректирующие коды для информационной длины 4—16. В общем случае решения этой задачи не существует, однако представляется возможным указать оценочную границу для соотношения числа информационных и корректирующих СЭ, в пределах которой любой циклический код обеспечивает корректное размещение.

Утверждение. Если число информационных m и корректирующих k считывающих элементов удовлетворяет условию k < m, то любой код, изоморфный (m+k, m)-циклическому коду, корректным образом реализуется в РКШ. Согласно методике, рассмотренной выше, необходимо показать, что найдется, по крайней мере, один код, изоморфный (m+k, т)-цикличес-кому коду, корректно реализуемый в РКШ с m-разрядными информационными словами. Действительно, предположим, что такой код имеется, пусть его генераторная матрица равна О**. Тогда любой изоморфный ему код с матрицей О определяется из соотношения О =В*О**, где rang[B]=m, следовательно, матрица О также не содержит одинаковых столбцов, поскольку линейное преобразование векторов с матрицей В является взаимно однозначным. Рассмотрим систематический код с генераторной матрицей О* *:

00...01^д..Д, k 00...^!..^

G** =

I G

i10...00Gmji...Gm, k

Матрица G** строится с помощью элементарных операций над строками G* из двух подматриц, где I — диагональная единичная матрица, а G — множество векторов-строк, являющихся последовательными элементами кольца вычетов по модулю образующего полинома кода G(x). Таким образом, множество строк G может быть описано следующим образом: Gi,iGi,2Gi,3 .... Gik^ xk+l mod G(x), i = 1,2,...,m.

Отсюда следует попарное различие строк G. Так как m > k, с учетом свойств рекурсивных последовательностей столбцы G также различны. Нетрудно заметить, что множество столбцов G не может содержать векторов с единственной ненулевой координатой, поскольку период полинома G(x), по определению, не меньше числа строк G. Таким образом, утверждение доказано.

Рассмотренные условия являются достаточными для корректного размещения СЭ, не являясь при этом необходимыми. Примерами такой ситуации могут служить (14, 6) и (17, 7)-коды, обеспечивающие возможность исправления двойной ошибки: не удовлетворяя ни первому, ни второму рассмотренному выше условию, они корректно, в смысле отсутствия выпадения разрядов, реализуются на КШ с данными значениями информационной длины.

список литературы

1. Ожиганов А. А. Псевдослучайные кодовые шкалы // Изв. вузов. Приборостроение. 1987. Т. 30, № 2. С. 40—43.

2. Ожиганов А. А. Корректирующие возможности псевдослучайных кодовых шкал // Изв. вузов. Приборостроение. 1988. Т. 31, № 7. С. 26—30.

3. Ожиганов А. А., Тарасюк М. В. Композиционные кодовые шкалы // Изв. вузов. Приборостроение. 1994. Т. 37, № 5—6. С. 26—29.

4. Ожиганов А. А. Анализ кодовых шкал преобразователей угла // Изв. вузов. Приборостроение. 1996. Т. 39, № 4. С. 32—35.

5. Азов А. К., Ожиганов А. А., Тарасюк М. В. Рекурсивные кодовые шкалы // Информационные технологии. 1998. № 6. С. 39—43.

6. Ojiganov A. A. The Use of Hamming Codes in Digital Angle Converters Based on Pseudo-Random Code Scales // Measurement Techniques. 2015. Vol. 58, N 5. P. 512—519.

7. Ozhiganov A. A., Tarasyuk M. V. The Use of Error-Correcting Codes in Displacement Transducers with Combinatorial Scales // Measurement Techniques. 2016. Vol. 59, N 1. P. 16—20.

8. Азов А. К., Ожиганов А. А. Устранение неоднозначности считывания в преобразователях перемещения с рекурсивными кодовыми шкалами // Информационные технологии. 2001. № 6. С. 40—42.

9. Ojiganov A. Recursive code scales for moving converters // Lecture Notes in Electrical Engineering. 2011. Vol. 79. P. 263—288.

10. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки. М.: Мир, 1976. 594 с.

11. Блейхут Р. Теория и практика кодов, контролирующих ошибки. М.: Мир, 1986. 576 с.

Сведения об авторах

Александр Аркадьевич Ожиганов — д-р техн. наук, профессор; Университет ИТМО; кафедра вычислительной техники; E-mail: ojiganov@mail.ifmo.ru Михаил Владимирович Тарасюк — канд. техн. наук, доцент; Институт сетевых технологий, отдел разработки систем; E-mail miket@int.spb.ru

Рекомендована кафедрой Поступила в редакцию

вычислительной техники 03.07.17 г.

Ссылка для цитирования: Ожиганов А. А., ТарасюкМ. В. Использование циклических корректирующих кодов в рекурсивных кодовых шкалах // Изв. вузов. Приборостроение. 2017. Т. 60, № 10. С. 973—979.

USING CYCLIC CORRECTIVE CODES IN RECURRENT CODE SCALES A. A. Ozhiganov1, M. V. Tarasyuk2

1ITMO University, 197101, St. Petersburg, Russia E-mail: ojiganov@mail.ifmo.ru 2 Institute of Network Technology, 199178, St. Petersburg, Russia

The problems of using corrective codes in traditional digital angle converters based on the absolute reference method are analyzed. It is shown that the problems are caused by significant redundancy in the code tracks number proportional to the block length of the code used, as well by the increased technological complexity of manufacturing the scale code mask. The above features usually lead to an increase in device size and to difficulties in eliminating the ambiguity of reading. A possibility of application of methods of error-correcting coding in digital angle converters with single-track recursive code scales is

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

demonstrated. A generalized methodology is proposed and an algorithm for the reading elements positioning on the scale is developed for arbitrary parameters of block length, the minimum code distance, and the field of coefficients of the generator polynomial for the correction code. Examples of use of the described methodology for the minimum code distance of 3 and 5 are presented. It is shown that practical employment of error-proof coding methods based on cyclic codes always leads to correct location of the sensing elements regardless of the structure of the recursive code scale. For truncated cyclic codes, a sufficient condition for correctness is given.

Keywords: code scale, allocation polynomial, correction code, readout element

Data on authors

Alexander A. Ozhiganov — Dr. Sci., Professor; ITMO University, Department of Computation

Technologies; E-mail: ojiganov@mail.ifmo.ru Mikhail V. Tarasyuk — PhD, Associate Professor; Institute of Network Technology, Depart-

ment of System Development; E-mail miket@int.spb.ru

For citation: Ozhiganov A. A., Tarasyuk M. V. Using cyclic corrective codes in recurrent code scales. Journal of Instrument Engineering. 2017. Vol. 60, N 10. P. 973—979 (in Russian).

DOI: 10.17586/0021-3454- 2017-60-10-973-979

i Надоели баннеры? Вы всегда можете отключить рекламу.