УДК 621.3.085
И. Д. Захаров, А. А. Ожиганов
ИСПОЛЬЗОВАНИЕ ПОРОЖДАЮЩИХ ПОЛИНОМОВ М-ПОСЛЕДОВАТЕЛЬНОСТЕЙ ПРИ ПОСТРОЕНИИ ПСЕВДОСЛУЧАЙНЫХ КОДОВЫХ ШКАЛ
Рассмотрен метод построения порождающих полиномов М-последователь-ностей с одинаковым периодом на основе одного заданного полинома. В основу метода положено использование свойств децимации М-последовательности и алгоритма Берлекемпа — Мэсси. Предложенный метод пояснен примером.
Ключевые слова: порождающий полином, М-последовательность, децимация, псевдослучайная кодовая шкала.
Введение. Среди приборов, используемых в устройствах вычислительной техники и систем управления, особое место занимают преобразователи угловых и линейных перемещений (1111), построенные по методу параллельного считывания. Основным элементом таких преобразователей является кодовая шкала (КШ). Классический подход к построению 1111 базируется на использовании КШ с числом информационных кодовых дорожек, равным, как правило, разрядности преобразователей.
В работах [1—3] предложен новый тип более простых в реализации однодорожечных псевдослучайных кодовых шкал (ПСКШ). Для формирования структуры информационной кодовой дорожки таких шкал используются псевдослучайные двоичные последовательности максимального периода (М-последовательности), причем для построения п-разрядной ПСКШ могут быть использованы различные М-последовательности с одинаковым периодом. Таким образом, п-разрядная ПСКШ может иметь множество реализаций. В свою очередь, в основу построения М-последовательностей положены порождающие полиномы, в качестве которых выступают примитивные полиномы с коэффициентами поля Галуа ОБ(2). Число таких полиномов зависит от их степени и вычисляется на основе функции Эйлера.
В настоящее время при разработке преобразователей перемещения на основе ПСКШ применяются системы автоматизированного проектирования (САПР ПСКШ) [4], что позволяет с использованием эффективного алгоритма вычислять необходимые порождающие полиномы во избежание сохранения в памяти ЭВМ всей базы данных о полиномах.
В настоящей работе приводятся необходимые для понимания сути статьи базовые положения теории М-последовательностей, основные сведения о принципах построения ПСКШ для преобразователей перемещений, а также рассматривается метод синтеза порождающих полиномов М-последовательностей с заданным периодом, предназначенный для использования в САПР ПСКШ.
Теоретические основы построения псевдослучайных кодовых шкал. ПСКШ имеют всего одну информационную кодовую дорожку, выполненную в соответствии с символами {а7}=а0, а1, ..., аМ-1 М-последовательности, и п считывающих элементов (СЭ), размещенных вдоль дорожки. Наличие считывающих элементов позволяет получить при полном перемещении шкалы М=2п-1 различных и-разрядных кодовых комбинаций.
Для генерации М-последовательности с периодом М=2п-1 используется примитивный полином И(х) степени п с коэффициентами ОБ(2), т. е.
И(х) = £ их, (1)
1=0
где И0=Ип=1, а И ={0,1} при 0 < I < п.
Примитивные полиномы существуют для всех п > 1. В табл. 1 приведены полиномы к(х) для п =1.. .16, которые имеют минимальное число ненулевых коэффициентов кг и могут быть использованы для генерации соответствующих М-последовательностей [5].
_Таблица 1
п к(х) М=2п-1 п к(х) М=2п-1
1 х +1 1 9 9 , 4,1 х + х +1 511
2 х2 + х + 1 3 10 10 , 3,1 х + х + 1 1023
3 х3 + х + 1 7 11 11 1 2,1 х + х +1 2047
4 х4 + х + 1 15 12 12 , 6 , 4 , ,1 х + х + х + х + 1 4095
5 5 , 2,1 х + х +1 31 13 13 , 4 , 3 , ,1 х + х + х + х + 1 8191
6 х6 + х + 1 63 14 14 , 10 . 6 , ,1 х + х + х + х + 1 16383
7 7 , 3,1 х + х +1 127 15 15 , ,1 х + х + 1 32787
8 8 , 4 , 3 , 2,1 х + х + х + х +1 255 16 16 , 12 , 3 , ,1 х + х + х + х + 1 65535
Известно [6], что для конкретного значения п существует точно
ф(м = 2п -1)
N =
п
(2)
различных полиномов к(х), являющихся примитивными. Функция Ф(М), называемая функцией Эйлера, представляет собой количество положительных целых чисел, меньших или равных М и взаимно простых с М. Так как функция Ф(М) с увеличением п очень быстро растет, то число полиномов степени п, порождающих последовательности с максимальным периодом, с ростом п также быстро увеличивается. В табл. 2 приведены расчетные значения N для п =2.16.
Таблица 2
п N п N
2 1 10 60
3 2 11 176
4 2 12 144
5 6 13 630
6 6 14 756
7 18 15 1800
8 16 16 2048
9 48
Так, для п=10 число примитивных полиномов равно 60, а для п=16 — уже 2048. Следовательно, на основе порождающих полиномов 10-й степени можно получить 60 различных М-последовательностей, а при использовании порождающих полиномов 16-й степени — 2048.
Символы ап+ М-последовательности удовлетворяют рекуррентному выражению
п-1
ап+у =Ф аг+ А,3 = 0Л . ^ (3)
г=0
где знак Ф — суммирование по модулю два, а индексы при символах М-последовательности берутся по модулю М; начальные значения символов а0, а1, ..., ап-1 М-последовательности могут выбираться произвольно, за исключением нулевой комбинации.
Известно, что М-последовательности относятся к классу циклических кодов и могут
задаваться с помощью полинома g(х) = (Xм + 1)/к(х) . Для каждой М-последовательности с периодом М существует ровно М различных циклических сдвигов, которые могут быть получены путем умножения полинома g(х) на х3 , где у = 0,1,..., М -1.
Поскольку ПСКШ строятся в соответствии с символами М-последовательности, можно путем циклических сдвигов определить порядок размещения на шкале п считывающих элементов, т.е. т-му СЭ, т = 1, 2,..., п, ставится в соответствиеут-й циклический сдвиг xJmg(х)
М-последовательности.
Тогда полином, определяющий порядок размещения п СЭ на шкале, имеет вид
г (х) =£ Хт , ]т е {0,1,..., М -1}. (4)
т=1
Приняв 71 = 0, согласно полиному (4) получим положения 2-го, 3-го, ..., п-го СЭ, смещенные относительно 1-го СЭ на 72, 7з, -., 7п позиций соответственно.
Размещение считывающих элементов в соответствии с полиномом (4) должно обеспечивать получение при полном перемещении шкалы М различных п-разрядных кодовых комбинаций. В общем виде задача размещения СЭ на ПСКШ решена в работе [7].
Метод синтеза порождающих полиномов М-последовательностей. В основу метода положено использование свойств децимации М-последовательности и алгоритма Берлекем-па — Мэсси.
Согласно работе [8] децимацией М-последовательности {а7} по индексу д,,
^ = 2, 2п - 2, называется выборка д,-х элементов данной М-последовательности. Если период М = 2п-1 исходной М-последовательности и индекс децимации д, взаимно просты, т.е. НОД(М, д,)=1, децимация называется собственной или нормальной. В дальнейшем под децимацией будем подразумевать только собственную (или нормальную) децимацию, в результате которой получается М-последовательность с тем же периодом, что и исходная М-последо-
вательность. Децимацию {а7} по индексу д, обозначим как {а7 , а полученную в результате
децимации М-последовательность — как {Ь7}. Таким образом, можно записать
М=ЬГ • (5)
Алгоритм генерации примитивных полиномов заданной степени в общих чертах рассмотрен в работе [9]. Однако данный алгоритм оставляет открытым вопрос о нахождении всего множества порождающих полиномов М-последовательностей с заданным периодом и не оптимизирован для использования в САПР ПСКШ.
Рассмотрим метод синтеза порождающих полиномов М-последовательностей, свободный от указанного недостатка. Реализация метода предусматривает выполнение следующих шагов.
1. Из табл. 1 выбирается примитивный полином вида (1) определенной степени п.
2. На основе полинома (1) строится рекуррентное выражение (3).
3. Посредством рекуррентного выражения (3) генерируются символы {а7} М- последовательности с периодом М = 2п - 1.
4. В соответствии с выражением (2) определяется число примитивных полиномов И(х) степени п.
5. Осуществляется поиск значений индексов децимации д/, I = 1, N -1, {д/} е {д, }, позволяющих сформировать все нормальные децимации М-последовательности {а^}, на основе которых могут быть получены N-1 различных М-последовательностей {Ь7} с периодом М.
6. Производится нормальная децимация М-последовательности {а3} по индексу q;. Результатом такой децимации является М;-последовательность (5) с периодом М.
7. Далее, с использованием алгоритма Берлекемпа — Мэсси и предварительной выборки 2п символов из полученной М; -последовательности определяется полином к;(х), который также будет примитивным.
8. Шаги 6 и 7 повторяются для всех нормальных децимаций, найденных на шаге 5. Результатом применения метода являются N-1 порождающих полиномов степени п. Эффективность разработанного метода в основном определяется результатом выполнения шага 5. Для оптимизации поиска значений индексов децимации рассмотрим алгоритм, в котором: } — множество всех значений индексов децимации; } ^ } — множество
нечетных значений индексов децимации; КБО[п] — п-разрядный двоичный циклический регистр сдвига; КЕ02, 2 = 0,..., п -1, — значение ¿-го разряда регистра; 8ЫГРТ[р] — р-разрядный
двоичный счетчик числа сдвигов, гдер=[1Ь п]; Ск — флаг децимации с индексом qk, причем
Ск =
0, если децимация с индексом qk не позволяет получить необходимую М-последовательность;
1, в противном случае.
Алгоритм содержит следующие шаги:
I. qk := 1; Ck := 1 , к = 2e +1, e = 1,2й"1 -1.
2- qk := qk+2 •
3. Если qk > 2й -1, переход к шагу 13.
4. Если Ck = 0, переход к шагу 2.
5. Запись qk в REG[n]; обнуление счетчика SHIFT [р].
6. Если SHIFT [р]>и-1, переход к шагу 10.
7. Циклический сдвиг регистра REG[n] на один разряд влево. SHIFT [р]:= SHIFT [р]+1.
8. Если REGo=1, k := REG[n], Ck := 0.
9. Возврат к шагу 6.
10. Если НОД(qk, 2й -1) = 1, переход к шагу 12.
II. Ck := 0, переход к шагу 2.
12. Сохранение полученного значения qk в массив результатов. Переход к шагу 2.
13. Вывод массива результатов.
Таким образом, используя рассмотренный алгоритм, можно найти все значения индексов, позволяющие сформировать нормальные децимации М-последовательности
[aj }qi, l = 1, N -1, на основе которых могут быть получены N-1 различных М-последо-вательностей [bj} с периодом М.
Пример. Рассмотрим метод синтеза порождающих полиномов М-последовательности на примере, ограничившись получением всех полиномов 5-й степени.
1. Из табл. 1 выбирается примитивный полином h (х) = х5 + х2 +1.
2. На основе выбранного полинома строится рекуррентное выражение ^+ . = . ф aj .
3. Посредством полученного рекуррентного выражения генерируются символы {aj} = (0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1) М-последовательности с периодом М = 25 - 1=31.
4. В соответствии с выражением (2) вычисляется количество примитивных полиномов И(х) степени 5, т.е.
^ _ф((М = 2й -1) _ф(М _ 25 -1) _ф(31)_ 30 _
п 5 5 5
5. Осуществляется поиск значений индексов децимации ql, позволяющих сформировать нормальные децимации М-последовательности {а у,I _ 1,5 . В соответствии с приведенным
выше алгоритмом используются только нечетные значения индекса qk е
3,25 -1). Каждое
значение qk заносится в регистр ЯЕО[5] и вычисляются все возможные значения, получаемые при его циклическом сдвиге влево. Например, при занесении в ЯЕО[5] значения q1=3 получается следующий результат:
ЯЕО[5]^ 3 ^ ЯЕО[5]: 0 0 011;
сдвиг 1: ЯЕО[5]: 0 0110 (6);
сдвиг 2 : ЯЕО[5] :01100 (12);
сдвиг 3: ЯЕО[5]: 110 0 0 (24);
сдвиг 4: ЯЕ0[5]:10001 (17).
С [8] / Л ( \(2Ч)тоам
С учетом того [8], что {ау} _ {ау} , полученные значения индексов деци-
мации q1(0)=3, q1(1)=6, q1(2)=12, q1(3)=24 и q1(4)=17 (где значение (*) определяет число сдвигов содержимого регистра) позволяют сформировать одинаковые (с точностью до циклического сдвига) М-последовательности. Следовательно, для синтеза необходимой М-последовательности достаточно использовать один из пяти индексов децимации, например q1(0)=3.
Аналогичным образом вычисляем:
q2(0) _ 5 ^ q2(1) _ 10, q1(2) _ 20, q2(3) _ 9, q2(4) _ 18;
qз(0) _ 7 ^ qз(1) _ 14, qз(2) _ 28, qз(3) _ 25, qз(4) _ 19;
q4(0) _ 11 ^ q4(1) _ 22, q^2) _ 21, q^3) _ 13, q4(4) _ 26;
q5(0) _ 15 ^ ^5(1) _ 30, q5(2) _ 29, q5(3) _ 27, q5(4) _ 23.
Далее осуществляется проверка, являются ли полученные децимации ql, I _1,..., 5, нормальными. Для этого определяется наибольший общий делитель значения каждого из полученных индексов ql и периода ММ-последовательности, т.е.
НОД(3, 31)=1; НОД(5, 31)=1; НОД(7, 31)=1; НОД(11, 31)=1; НОД(15, 31)=1.
Данный результат свидетельствует о нахождении пяти индексов децимации, использование которых дает возможность получения пяти различных М-последовательностей.
6. Производятся нормальные децимации полученной на шаге 3 М-последовательности {оу} по индексам ql, I _1,..., 5. Например, первые 2п=10 символов М-последовательности,
полученные в результате децимации по индексу 3, равны {ау} _ (0,0,0,0,1,1,0,0,1,0) .
7. Далее, составляется система линейных алгебраических уравнений, решаемая с использованием алгоритма Берлекемпа — Мэсси, т.е.
а5 = а4 И4 Ф а3 /3 Ф «2 /2 Ф а^ Ф а0 /; а6 = аз /4 Ф а4 /3 Ф аз /2 Ф а2 / Ф а!/^; а7 = а6 /4 Ф аз /3 Ф а4 /2 Ф аз / Ф а2 /; а8 = а7 /4 Ф аб /3 Ф аз /2 Ф а4 / Ф аз /о; а9 = а8 /4 Ф а7 /3 Ф аб /2 Ф аз // Ф а4 /о
1 = 1 • /4 Ф 0 • /3 Ф 0 • /2 Ф 0 • ^Ф 0 • Л^; 0 = 1 • /4 Ф1 • /3 Ф 0 • /2 Ф 0 • / Ф 0 • /э;
0 = 0 • /4 Ф1 • /3 Ф 1 • /2 Ф 0 • / Ф 0 •
1 = 0• /4 Ф 0 • /3 Ф1 • /2 Ф1 • / Ф 0 •
0 = 1 • /4 Ф 0 • /3 Ф 0 • /2 Ф1 • // Ф1 • /
В результате получаем значения /0 = 1; /1 = 0; /2 = 1; /3 = 1; /4 = 1; /з = 1, по которым находим искомый порождающий полином
/1( х) = /з хз + /4 х4 + /3 х3 + /2 х2 + // х1 + /0 = 1 • хз +1 • х4 +1 • х3 +1 • х2 + 0 • х1 +1 • х0 =
= хз + х4 + х3 + х2 + 1.
8. Шаги 6 и 7 повторяются для остальных нормальных децимаций, найденных на шаге з; в результате получаем еще четыре порождающих полинома з-й степени.
Все порождающие полиномы з-й степени, соответствующие М-последовательности и значения индексов децимации приведены в табл. 3.
Таблица 3
Индекс децимации д Порождающий полином /(х) М-последовательность
0 / (х) = х5 + х2 + 1 0000100101100111110001101110101
3 к1 (х) = х5 + х4 + х3 + х2 +1 0000110010011111011100010101101
з /2 (х) = х5 + х4 + х2 + х + 1 0000111001101111101000100101011
7 /3 (х) = х5 + х3 + х2 + х + 1 0000101101010001110111110010011
11 /4 (х) = х5 + х4 + х3 + х + 1 0000110101001000101111101100111
1з /з (х) = х5 + х3 +1 0000101011101100011111001101001
Отметим, что любая из приведенных в табл. 3 М-последовательностей пригодна для построения з-разрядной ПСКШ. Например, линейная развертка круговой ПСКШ, выполненной с использованием М-последовательности, полученной на основе порождающего полинома
/3 (х) = хз + х3 + х2 + х +1, приведена на рисунке. Размещение на шкале пяти считывающих элементов задано в соответствии с полиномом г (х) = 1 + х2 + х4 + х6 + х8.
0000101101010001110111110010011
т
СЭ1
т
СЭ2
т
СЭз
т
СЭ4
т
СЭ5
Последовательно с использованием считывающих элементов фиксируя кодовую комбинацию при перемещении шкалы на один квант, например справа налево, получаем 31 различную з-разрядную кодовую комбинацию. Эти кодовые комбинации, соответствующие 31 различному угловому положению ПСКШ, приведены в табл. 4.
Таблица 4
Кодовая комбинация Кодовая комбинация
Номер сдвига ПСКШ Двоичный псевдослучай- Десятичный эквивалент Номер сдвига ПСКШ Двоичный псевдослучай- Десятичный эквивалент
ный код ный код
0 00110 6 16 10110 22
1 00011 3 17 11110 30
2 01100 12 18 01101 13
3 00111 7 19 11100 28
4 11000 24 20 11010 26
з 01110 14 21 11001 2з
6 10000 16 22 10101 21
Продолжение табл. 4
Номер сдвига ПСКШ Кодовая комбинация Номер сдвига ПСКШ Кодовая комбинация
Двоичный псевдослучайный код Десятичный эквивалент Двоичный псевдослучайный код Десятичный эквивалент
7 11101 29 23 10010 18
8 00001 1 24 01010 10
9 11011 27 25 00100 4
10 00010 2 26 10100 20
11 10111 23 27 01001 9
12 00101 5 28 01000 8
13 01111 15 29 10011 19
14 01011 11 30 10001 17
15 11111 31
Заключение. Предложенный в настоящей статье метод построения порождающих полиномов М-последовательностей наиболее целесообразно использовать в системах автоматизированного проектирования псевдослучайных кодовых шкал для преобразователей перемещений.
список литературы
1. Ожиганов А. А. Псевдослучайные кодовые шкалы // Изв. вузов СССР. Приборостроение. 1987. Т. 30, № 2. С. 40—43.
2. Ожиганов А. А. Псевдослучайные кодовые шкалы для преобразователей линейных перемещений // Изв. вузов. Приборостроение. 1995. Т. 38, № 11—12. С. 37—39.
3. Ожиганов А. А., Чжипэн Жуань. Использование псевдослучайных последовательностей при построении кодовых шкал для преобразователей линейных перемещений // Там же. 2008. Т. 51, № 7. С. 28—33.
4. Ожиганов А. А., Коробейников А. Г., Климанов В. А. Структура системы автоматизированного проектирования рекурсивных кодовых шкал // Науч.-техн. вестн. СПбГУ ИТМО. 2006. Вып. 32. C. 237—245.
5. Макуильямс Ф. Д., Слоан Н. Д. Псевдослучайные последовательности и таблицы // ТИИЭР. 1976. Т. 64, № 12. С. 80—95.
6. МуттерВ. М. Основы помехоустойчивой телепередачи информации. Л.: Энергоатомиздат, 1990. 288 с.
7. Ожиганов А. А. Алгоритм размещения считывающих элементов на псевдослучайной кодовой шкале // Изв. вузов. Приборостроение. 1994. Т. 37, № 2. С. 22—27.
8. Сарвате Д. В., Персли М. Б. Взаимно-корреляционные свойства псевдослучайных и родственных последовательностей // ТИИЭР. 1980. Т. 68, № 5. С. 59—95.
9. Борисенко Н. П., Гусаров А. В., Кривонос А. П. О возможности генерации примитивных полиномов заданной степени и быстрого вычисления сдвига выходной последовательности РСЛОС на заданное число тактов // Сб. трудов XII Междунар. науч. конф. „Информатизация и информационная безопасность правоохранительных систем". М., 2003. С. 334—339.
Сведения об авторах
Илья Дмитриевич Захаров — аспирант; Санкт-Петербургский государственный университет ин-
формационных технологий, механики и оптики, кафедра вычислительной техники; E-mail: [email protected] Александр Аркадьевич Ожиганов — д-р техн. наук, профессор; Санкт-Петербургский государственный
университет информационных технологий, механики и оптики, кафедра вычислительной техники; E-mail: [email protected]
Рекомендована кафедрой Поступила в редакцию
вычислительной техники 18.01.11 г.