ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
УДК 621.3.085
А. А. Ожиганов, Жуань Чжипэн
Санкт-Петербургский государственный университет информационных технологий, механики и оптики
ИСПОЛЬЗОВАНИЕ ПСЕВДОСЛУЧАЙНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ПРИ ПОСТРОЕНИИ КОДОВЫХ ШКАЛ ДЛЯ ПРЕОБРАЗОВАТЕЛЕЙ ЛИНЕЙНЫХ ПЕРЕМЕЩЕНИЙ
Предложен метод построения кодовых шкал для преобразователей линейных перемещений, базирующийся на использовании теории псевдослучайных двоичных последовательностей максимальной длины (М-последовательностей) с числом информационных дорожек 2—4.
Основным элементом цифровых преобразователей перемещений, построенных по методу считывания, является кодовая шкала (КШ) [1].
Недостаток таких преобразователей заключается в том, что число информационных дорожек КШ обычно равно разрядности преобразователя. Рисунок КШ выполнен, как правило, в обыкновенном двоичном коде или в коде Грея. Такой способ построения КШ создает трудности технологического характера, особенно при проектировании преобразователей линейных перемещений, используемых в системах измерения значительных перемещений.
В работе [2] для преобразователей угловых перемещений предложен новый тип более технологичных кодовых шкал, названных псевдослучайными кодовыми шкалами (ПСКШ) и строящихся на основе использования теории псевдослучайных двоичных последовательностей максимальной длины (М-последовательностей). ПСКШ имеют всего одну информационную кодовую дорожку, выполненную в соответствии с символами а = а0, а1,---, ам-1 М-последовательности, и п считывающих элементов (СЭ), размещенных вдоль дорожки. Считывающие элементы обеспечивают возможность получения при полном обороте шкалы
М = 2п -1 различных п-разрядных кодовых комбинаций, что определяет разрешающую способность преобразователя угловых перемещений на основе ПСКШ 5 = 2п/М. В общем виде задача размещения СЭ на ПСКШ решена в работе [3].
Для генерации М-последовательности длиной М = 2п -1 используется примитивный неприводимый полином И(х) степени п с коэффициентами поля Галуа ОБ(2) [4], т.е.
ед=£ и1хг, (1)
1=0
где И0 = Ип = 1, а И = 0 или 1 при 0 < I < п.
Символы М-последовательности ап+ удовлетворяют рекурсивному выражению
n-l
an+j = S ai+jhi , j = 0 М- п - (2)
i=0
где знак S — суммирование по модулю два, а индексы при символах М-последовательности берутся по модулю M.
Начальные значения символов a0, al3..., an- М-последовательности могут выбираться произвольно, за исключением нулевой комбинации. Для определенности при построении круговой ПСКШ символы ao, ab..., aM — М-последовательности отображаются на информационной дорожке по направлению движения часовой стрелки.
М-последовательности относятся к классу циклических кодов и могут задаваться с помощью порождающего полинома g (x) = ( Xм +l)/h( x), где h (x) определяется в соответствии
с выражением (2), M = 2n - l.
Для каждой М-последовательности длиной M существует ровно M различных циклических сдвигов, которые могут быть получены путем умножения порождающего полинома g(x) на x1, где j = 0, l,..., M-l.
Поскольку ПСКШ строятся в соответствии с символами М-последовательности, можно путем циклических сдвигов определить порядок размещения на шкале n считывающих элементов, т.е. m-му СЭ, m = l, 2,..., n, ставится в соответствие 1т-й циклический сдвиг
x3m g (x ) М-последовательности.
Тогда полином, определяющий порядок размещения n СЭ на шкале, имеет вид
Г (x) = £ xJm , jm e{0,l,..., M-l}. (3)
m=l
Приняв jl = 0, согласно полиному (3) получим положения 2-го, 3-го, ..., n-го СЭ, смещенные относительно l-го СЭ на j'2, j'3,..., jn элементарн^1х участков информационной дорожки шкалы соответственно.
Принципы построения однодорожечных ПСКШ для преобразователей линейных перемещений рассмотрены в работе [5].
Разрешающая способность таких шкал 5л = L /M = L / (2n -1), где L — длина кодируемого перемещения, а n — разрядность КШ.
Линейная ПСКШ разомкнута. Поэтому для обеспечения заданной разрешающей способности шкалы 5л необходимо получить соответствующую последовательность
символов A = {Ai}, i = 0, l,..., пригодную для синтеза единственной информационной
дорожки линейной ПСКШ.
Задача генерации последовательности A в общем виде решается с использованием рекурсивного соотношения (2) в предположении, что размещение СЭ на ПСКШ корректно и задается полиномом (3). Для определенности выбираются начальные значения символов последовательности A: A = Ai = • • • = An-2 = 0, An-l = l.
Очевидно, символы последовательности A должны полностью включать в себя символы а M-последовательности, а также некоторые дополнительные символы этой же последовательности, число которых зависит от выбранного полинома г (x) .
Определим разность между номерами циклических сдвигов М-последовательности, соответствующих размещению на шкале двух соседних СЭ, как di = jm - jm-, где
г = 1, 2,..., п-1; т = 2, 3,..., п . Тогда при заданных начальных условиях число применений рекурсивного выражения (2), необходимое для генерации последовательности А, может быть получено по следующей формуле:
п-1
q = М - п.
(4)
г=1
С учетом того, что
п-1
^ ^ = ^ + • • ■ +^ + • • ■ +йп-1 = ((2 - 71 ) + "•+(( - 7т-1 ) + - + (( - Зп-1) = (п при 71 = 0 ,
г=1
выражение (4) принимает вид
q = М-п+]п . (5)
Общее число символов последовательности А с учетом п задаваемых начальных значений может быть найдено из выражения
е=м+(п. (6)
Таким образом, последовательность А = {Аг} , I = 0,1,..., е-1, получается на основе рекурсивного выражения (2) с учетом (5) и (6).
Рисунок однодорожечной линейной ПСКШ выполняется в соответствии с символами последовательности А при отображении их на информационной дорожке шкалы слева направо в последовательности А0, А1, ..., Ад-1.
Рассмотрим два варианта (рис. 1, 2) четырехразрядной однодорожечной линейной ПСКШ,
для построения которой использован примитивный полином к(х) = х4 + х+1. На рис. 1 раз-
2 3
х) = 1 + х + х + х , информационная дорожка шкалы соответствует символам последовательности А = {Аг } = А), А1,..., А^ = ао, «1,..., «13, «14, «), а1, «з = 000100110101111000 длиной е = М + ]п = 15 + 3 = 18, а сами символы, при начальных значениях А0 = А1 = А2 = 0, А3 = 1, получены в соответствии с рекурсивным выражением А4+г = А1+г Ф Аг, г = 0,1, ..., е -1, где q = М - п + ]п = 15 - 4 + 3 = 14.
СЭ СЭ2 СЭ3 СЭ.
1 ^ 1 1 5л
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0
А0 А1
А5
А7
А,6 А,
Рис. 1
Фиксируя считывающими элементами СЭ1, СЭ2, СЭ3 и СЭ4 последовательно кодовую комбинацию при перемещении линейной ПСКШ на один элементарный участок справа налево, получаем пятнадцать различных четырехразрядных кодовых комбинаций: 0001, 0010, 0100, 1001, 0011, 0110, 1101, 1010, 0101, 1010, 0111, 1111, 1110, 1100, 1000.
На рис. 2 размещение СЭ на шкале определяется полиномом г (х) = 1 + х5 + х9 + х14, информационная дорожка шкалы соответствует символам последовательности А = {А{ } = = А), А1,..., А28 = а0, а1,..., а13, а14, а0, а1,..., а13 =00010011010111100010011010111 длиной
I
Q = М + ]п = 15 +14 = 29, а сами символы, при начальных значениях А = А^ = А2 = 0, А3 = 1, получены в соответствии с рекурсивным выражением А4+- = Ау^ ФА1, / = 0,1,..., Q -1, где q = М - п + ]п = 15 - 4 +14 = 25.
СЭ2 СЭ3 СЭ4
I I РЧ I
СЭ1 ±
000100110101
1100010011010111
А0 А1
А5
А9
А,
А20 А2
А 2
Рис. 2
Фиксируя считывающими элементами СЭ1, СЭ2, СЭ3 и СЭ4 последовательно кодовую комбинацию при перемещении линейной ПСКШ на один элементарный участок справа налево, получаем пятнадцать различных четырехразрядных кодовых комбинаций: 0011, 0100, 0110, 1010, 0111, 0010, 1100, 1101, 0101, 1110, 0001, 1000, 1011, 1111, 1001.
Очевидно, что длина информационной кодовой дорожки линейной ПСКШ определяется не только разрядностью преобразователя, но также и степенью полинома г (х). При одинаковой разрядности ПСКШ выбор большей степени г (х) приводит к увеличению длины кодовой дорожки. Анализ соотношения (6) показывает, что при ]п = п -1 увеличение кодовой дорожки, общая длина которой Q = М + п -1 = 2п + п - 2 элементарных участков шкалы, минимально, а при ]п = М -1 = 2п - 2 — увеличение максимально, при этом общая длина Q = 2М -1 = 2п+1 - 3.
Как видно из рис. 1 и 2, вариант размещения СЭ в соответствии с полиномом г (х) = 1 + х + х2 + х3 приводит к увеличению длины шкалы на 3 элементарных участка, тогда
как вариант размещения СЭ в соответствии с полиномом г (х) = 1 + х5 + х9 + х14 — к
увеличению на 14 участков, т.е. практически удваивает длину шкалы. Естественно, что первый вариант построения ПСКШ представляется более предпочтительным.
Однако на практике при проектировании преобразователей линейных перемещений с ПСКШ может возникнуть необходимость размещения СЭ вдоль дорожки шкалы с шагом, отличным от первого варианта. При таком подходе для уменьшения длины шкалы предлагается использовать ПСКШ, содержащие от 2 до 4 кодовых дорожек, рисунок которых выполняется в соответствии с символами рассмотренных выше М-последовательностей.
Рассмотрим метод построения ПСКШ с 2—4 информационными кодовыми дорожками для преобразователей линейных перемещений.
1. В зависимости от требуемой разрядности шкалы п выбирается полином И(х).
2. На основе рекурсивного выражения (2) синтезируется последовательность а .
3. По предложенному в работе [3] методу размещения СЭ на шкале формируется полином г(х).
4. На основе соотношения (6) осуществляется расчет длины информационной дорожки шкалы для принятого размещения СЭ.
5. Если полученная шкала не может быть практически реализована, например, в силу технологических ограничений, моделируется шкала с дополнительными информационными кодовыми дорожками (1—3) в целях уменьшения длины результирующей ПСКШ.
6. Далее, полином г(х) размещения СЭ на шкале разбивается со стороны младших
1
I
степеней на две, три или четыре части в зависимости от принятой двух-, трех- или четытехдорожечной модели ПСКШ.
7. С учетом разбиения полинома г(х) на соответствующее число частей с использованием рекурсивного выражения (2) и соотношений (5), (6) осуществляется генерация последовательностей (А, В, С, ТО) для получения необходимого числа (2—4) информационных кодовых дорожек ПСКШ.
8. На основе выражения (6) осуществляется расчет длины ПСКШ с 2—4 информационными кодовыми дорожками.
9. Если ПСКШ с несколькими дорожками может быть практически реализована, принимается решение о нанесении на шкалу необходимого числа дополнительных информационных кодовых дорожек.
10. Рисунок каждой информационной дорожки линейной ПСКШ выполняется согласно символам соответствующих последовательностей ( А, В, С, ТО ).
11. Если смоделированная ПСКШ с несколькими дорожками не может быть практически реализована, осуществляется выбор другого полинома г(х) с выполнением всех последующих шагов.
Поясним работу предложенного метода на примере четырехразрядной двухдорожечной линейной ПСКШ, для построения которой использован рассмотренный ранее примитивный
полином к (х ) = х4 + х+1.
Предположим, что первые четыре шага алгоритма выполнены, и имеется модель шкалы, приведенная на рис. 2. Предположим также, что шкала, длина которой фактически в два раза превышает измеряемое перемещение Ь, не может быть практически реализована.
Принимается решение о построении двухдорожечной модели ПСКШ.
Полином размещения СЭ на шкале г (х) = 1 + х5 + х9 + х14 разбивается со стороны
младших степеней на две части, т.е. г а (х) = 1 + х5 и (х) = х9 + х14 = х9(1 + х5). С учетом
этого разбиения с использованием рекурсивного выражения (2) и соотношений (5), (6) для получения первой и второй информационных кодовых дорожек ПСКШ осуществляется генерация последовательностей А и В (рис. 3).
СЭ1 СЭ2 А^ Л1 ... Л^ ... §л Л14 Л15 . Л19
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0
1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
В1 ... В6 ■■ В12 ... В19
СЭ3_СЭ4_
Ь
Рис. 3
На рис. 3 размещение СЭ на первой дорожке определяется полиномом г а (х) = 1 + х5, информационная дорожка шкалы соответствует символам последовательности А = {Л1 } = = Л), Л1,..., Л19 = а0, а1,..., а13, а14, а0, а1,..., а4 =00010011010111100010 длиной Q=M+]п = = 15 + 5 = 20, а сами символы, при начальных значениях Л = Л1 = Л2 = 0, Л3 = 1, получены в соответствии с рекурсивным выражением Л4+г- = Л1+г- Ф Лг-, I = 0,1,..., Q -1, где ц=М-п+]п = =15-4+5=16. На этом же рисунке размещение СЭ на второй дорожке определяется полиномом гъ (х) = х9 + х14 = х9(1 + х5), информационная дорожка шкалы соответствует символам
последовательности B = {Bi} =B0, Bj,..., B19 = b9, ¿10, ¿ib ¿12, ¿13, ¿14, b0, ¿1,..., ¿13 = = 1011110001001101011110001 длиной Q = M + jn = 15 + 5 = 20, а сами символы, при начальных значениях B0 = 1, B = 0, B2 = B3 = 1, получены в соответствии с рекурсивным выражением B4+i = B1+i Ф Bt, i = 0,1,..., Q -1, где q = M - n + jn = 15 - 4 + 5 = 16.
Фиксируя считывающими элементами СЭ1, СЭ2, СЭ3 и СЭ4 последовательно кодовую комбинацию при перемещении двухдорожечной ПСКШ на один элементарный участок справа налево, получаем те же, что и на рис. 2, пятнадцать различных четырехразрядных кодовых комбинаций: 0011, 0100, 0110, 1010, 0111, 0010, 1100, 1101, 0101, 1110, 0001, 1000, 1011, 1111, 1001.
Таким образом, двухдорожечный вариант построения ПСКШ, по сравнению с однодорожечным вариантом, приводит к увеличению длины шкалы всего на 5 элементарных участков, что практически в три раза сокращает удлинение шкалы.
Рассмотренный в настоящей статье метод построения ПСКШ может быть положен в основу построения малодорожечных преобразователей линейных перемещений, работающих по методу считывания. При этом разработанный метод полностью инвариантен к разрядности преобразователя.
список литературы
1. Домрачев В. Г., Мейко Б. С. Цифровые преобразователи угла: принципы построения, теория точности, методы контроля. М.: Энергоатомиздат, 1984. 328 с.
2. Ожиганов А. А. Псевдослучайные кодовые шкалы // Изв. вузов СССР. Приборостроение. 1987. Т. 30, № 2. С. 40—43.
3. Ожиганов А. А. Алгоритм размещения считывающих элементов на псевдослучайной кодовой шкале // Изв. вузов. Приборостроение. 1994. Т. 37, № 2. С. 22—27.
4. Макуильямс Ф. Д., Слоан Н. Д. Псевдослучайные последовательности и таблицы // ТИИЭР. 1976. Т. 64, № 12. С. 80—95.
5. Ожиганов А. А. Псевдослучайные кодовые шкалы для преобразователей линейных перемещений // Изв. вузов. Приборостроение. 1995. Т. 38, № 11—12. С. 37—39.
Рекомендована кафедрой Поступила в редакцию
вычислительной техники O3.03.08 г.