КВАЗИПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ БЕЗОШИБОЧНОГО ВЫЧИСЛЕНИЯ СВЁРТКИ В РЕДУЦИРОВАННЫХ КОДАХ МЕРСЕННА-ЛЮКА
Чернов В.М.
Институт систем обработки изображений РАН, Самарский государственный аэрокосмический университет имени академика С.П. Королёва (национальный исследовательский университет) (СГАУ)
Аннотация
В работе предложен новый «безошибочный» алгоритм вычисления дискретной циклической свёртки. Алгоритм основан на применении нового класса дискретных ортогональных преобразований, для которых существуют эффективные реализации без умножений. Структура этих преобразований связана с представлением данных в избыточной системе счисления с базисом, состоящим из чисел Люка.
Ключевые слова: дискретная циклическая свёртка, теоретико-числовые преобразования, числа Фибоначчи и Люка, алгоритмы безошибочных вычислений.
Цитирование: Чернов, В.М. Квазипараллельный алгоритм безошибочного вычисления свёртки в редуцированных кодах Мерсенна-Люка / В.М. Чернов // Компьютерная оптика. -2015. - Т. 39, № 2. - С. 241-248.
Введение
Вычисление дискретной циклической свёртки последовательностей с периодом N
N -1
z (к) = (x *h)(k) = Yx(n)h (к -n),
n=0 (1)
(к = 0, 1,..., N -1)
является одной из наиболее типичных задач в цифровой обработке сигналов.
Для вычисления массива z(m) непосредственно последовательности с помощью уравнения (1) требуется O(N2) сложений и умножений членов последовательностей x(n) и h(n). Для многих длин свёрток N существуют эффективные «спектральные» методы вычисления z(m), которые основаны на применении дискретного преобразования Фурье (ДПФ) [1-3].
Если члены последовательностей x(n) и h(n) являются целыми неотрицательными числами, то для «безошибочного» вычисления свёртки можно использовать преимущества модулярных аналогов комплексных ДПФ:
N -1
X(m) = Y, x (n) wmn (mod p), (2)
n= 0
где p - достаточно большое простое число, w - элемент конечного поля GF (p) из p элементов и мультипликативный порядок Ord (w) (то есть такое минимальное число к, что wk = 1 е GF (p)) равен N.
Теоретико-числовое преобразование, ТЧП (2), имеет ряд недостатков, в частности, существуют определённые ограничения на длину преобразования и модуль, а именно, соотношение делимости: N (p -1). Кроме того, арифметические операции
( mod p ) не являются элементарными компьютерными операциями. Но для некоторых простых p арифметика поля GF(p) может быть более «дружественной компьютеру» (например, если p = 2q -1 - простое
гк
число Мерсенна, если p = 2 +1 - простое число Ферма, и так далее) [2, 3, 6]. Более того, если w° 2 (mod p), то умножения в (2) могут быть заменены циклическими сдвигами бинарных векторов, то есть бинарных кодов элементов. К сожалению, так как для чисел Мерсенна Ord (2) = q , то возможно
вычислить теоретико-числовое преобразование (2) с использованием арифметики Мерсенна без умножений только при N = q , то есть при
q = 3, 5, 7, 13, 17, 19, 31,... .
Ещё большие трудности возникают в случае вычисления (2), когда N является «немерсенновским» простым числом. Несмотря на известный метод Рейдера-Винограда [5] вычисления ДПФ (или ТЧП), существуют, как показано в [11], «плохие» простые числа, для которых применение метода Рейдера-Винограда приводит к «быстрым» алгоритмам, мультипликативная сложность которых даже выше тривиальной O(N2).
В работе [11] был введён класс дискретных преобразований, которые могут быть реализованы «без умножений». Эти дискретные преобразования основываются на альтернативном представлении данных, то есть на представлении данных не в традиционной позиционной бинарной системе счисления, а, например, в избыточной «системе счисления Люка». Такие системы счисления сохраняют достоинства мерсенно-подобной арифметики для более широкого спектра длин ТЧП. Применение этих преобразований позволяет существенно уменьшить вычислительную сложность алгоритмов вычисления свёртки: количество умножений в таких алгоритмах равно O(N ) .
Объективным недостатком метода работы [11] является то, что модулей дискретных преобразований и длин N свёртки (1), для которых возможна реализация предложенного в этой работе алгоритма, очень мало. Кроме того, на одном из этапов вычислений необходимо умножать числа, представленные в системе счисления Люка. Поэтому приходится конвертиро-
вать представление чисел в системе счисления Люка в более традиционную систему счисления.
В настоящей работе мы сохраняем общую идею работы [11] вычисления свёртки в кодах, связанных с «фибоначчиевыми» системами счисления, но предлагаем версию, свободную от недостатков, связанных с «нефибоначчиевостью» произведений чисел Фибоначчи.
1. Основные идеи
Использование в качестве модулей в преобразовании (2) составных чисел р добавляет к описанным непосредственно вычислительным проблемам принципиальные теоретические трудности, связанные с существованием в модулярных кольцах по составным модулям делителей нуля и, как следствие, с необратимостью некоторых элементов соответствующих колец и/или с неортогональностью базисных функций преобразования (2). Действительно, доказательство ортогональности базисных функций дискретного преобразования Фурье длины N сводится к проверке равенства
X
r~mn r ,-nk
w w =
1 -w
N (m-k)
1 -w(
(m-k)
= 0, при m Ф k (modN);
(3)
N, при m ° k (mod N).
Доказательство последнего соотношения представляет собой тривиальное упражнение на суммирование геометрической прогрессии и остаётся справедливым и для случая конечного поля, в котором существует корень степени N из единицы. Условие «быть полем», то есть простота модуля в (2), существенно . В поле только нулевой элемент необратим, что гаранти-
(1 -w(m-k))
в соот-
рует возможность «деления» на элемент
верхней строчке правой части равенства (3).
При составном модуле элемент (l -w(m-k))
ношении (3) может быть необратимым и для m Ф k (mod N). При распараллеливании вычислений
в системе остаточных классов по модулям-сомножителям характерные преимущества «битовой» реализации арифметических операций в полях по модулям чисел Мерсенна не наследуются для вычислений в полях по модулям простых целых сомножителей составных чисел Мерсенна
m = 2* -1 = pip2...pd, (4)
так как сомножители p1,p2,..pd уже не являются числами Мерсенна.
В настоящей работе предлагается следующая схема вычислений дискретной свёртки (1) с помощью ТЧП по составному модулю modM.
Для целого составного числа M определяются числа p1,p2,. ,pd с условиями
M = P1Р2...Pd, (5)
Pj °aj -1( modM), aj e W, k e Z. (6)
Фактор-кольцо W @ ZMz представляется в виде прямой суммы фактор-колец
W @ Я<-1]
= wa e...ewa
e Z
e... e Z
[a2 - 1p"V[ak -1]
где I a
[ak-1]
есть главные идеалы, порождённые эле-
ментами ( a
(aj -1).
Вычисление свёртки может быть произведено по обычной параллельной схеме с применением семейства дискретных преобразований (аналогов ТЧП) в кольцах Wa с последующей реконструкцией значения свёртки (mod M) по китайской теореме об остатках. Базисные функции h]m (n) семейства этих преобразований выбираются в форме
hm (n) = anm.
Если входные данные преобразований в кольцах Wa представлены в кодах, связанных с системой
счисления «с основанием aj», то умножение при вычислении таких дискретных преобразований реализуется сдвигами этих кодов.
Эффективность предложенной схемы вычислений связана, естественно, с возможностью эффективной реализации вычислений при представлении данных в «нетрадиционных» системах счисления. В качестве таких систем счисления для преобразований в фактор-кольцах Wa в работе рассматриваются системы
счисления «золотого сечения».
Отметим, что, несмотря на кажущуюся «параллельность» такой схемы вычислений, как будет показано ниже, реально параллельных процессоров не требуется. Этим и объясняется термин «квазипараллельное» в названии работы.
2. Предварительные сведения
Напомним некоторые сведения из теории чисел Люка [7, 8].
1. Пусть Lq есть число Люка, то есть, q -й член последовательности
Lk = Lk-1 + Lk-2 с начальными условиями L0 = 2, L1 = 1.
Пусть
1 -л/5
(7)
a = -
1+75
2
Р = -
2
тогда
Lq = aq +pq =
1+V5 1 (1 -л/5
2
j
q
2
Заметим, что число а, являющееся, наряду с Р, одним из корней характеристического уравнения для рекуррентности (7), - знаменитое «золотое сечение». породившее «в поисках гармонии мироустройства» значительное число работ, находящихся, по мнению автора, «по ту сторону разума».
2. Хорошо известно [7-8], что для любого положительного целого числа х существует представление в «системе счисления Люка»
у(7)-1 п(7)-1 п(7)-1
7 = Y yjLj = Y yjaj + Y ybj = + Y, (8)
j=0
j=0
j=0
где
у] = 01 х)-1 = 1 и у1 =1 ^ у1+1 =0.
Если рассмотреть последовательность (7) с начальными значениями Ь0 = 1, Ь2 = а, то каждое це-
лое число представимо в виде конечной суммы
v(7)-1 m(7)-1
7 = Y yja j + Y y
,a
(9)
j=1
j=0
где также
yj = 0,1; и yj = 1 ^ yj+1 = 0.
Представление (9) будем называть представлением целых чисел в кодах золотого сечения, а вектор
(yv-1, yv-2,..^^a; y-1,..., y-m+1) - кодом золотого сечения числа 7 и обозначать (Y) . Отметим, что код золотого сечения целого числа содержит цифры, соответствующие как положительным, так и отрицательным степеням a.
Например,
(1 a = (i;°) = (°;u) ^ a = (1;1,1) = (1,0;0,1),
(3> a = (1,1;0,1) = (1,0,0;0,1).
Кроме того, правила сложения чисел, представленных в системе счисления с базовой последовательностью, являющейся решением рекуррентности (7), индуцируют одинаковые правила «сложения кодов» вне зависимости от начальных значений L0, L1.
3. Редуцированные коды «золотого сечения»
Пусть L - множество бинарных векторов
X = (x^ .„, X1, x0) (10)
длины s таких, что в любом векторе x нет двух соседних ненулевых компонент. Определим операцию «сложения» векторов из множества L по правилам, согласованным с правилом сложения элементов некоторого фактор-кольца, представленных в специфической системе счисления.
Пусть g есть решение сравнения
g2 ° g +1(mod(gs -1)).
Рассмотрим представление элемента
X е -1) Z = W (g,s)
в форме
X °xs-1gs-1 +... + xg + x0 (mod(gs -1)).
(11)
Операции над элементами кольца W (g, s) в форме (11) осуществляются по обычным правилам бинарной арифметики Зеккендорфа [9] с дополнительным правилом
(12)
gs ° g0 (mod(gs -1)).
Сложение элементов (11) индуцирует «правило сложения» векторов (10). Вектор (10) будем называть редуцированным кодом элемента (11) и обозначать
{X)g =( xs-u X1, x0 ) .
Умножению элемента X е W (g, s) на элемент g соответствует циклический сдвиг кода:
(gX)g =(xs-2,X1, X0,xs-1) .
Умножение элементов кольца W(g, s) сводится в кодах к сложениям кодов и циклическим сдвигам.
4. Нормальные числа Люка
Определение 1. Пусть последовательность y(к) определена соотношениями:
\-Lk, если к - нечетное; \-Lk + 2, если к - четное.
Число Люка Ls =-(as -i)(ps-1), где s - нечётное, есть нормальное число Люка, если выполняются следующие условия:
(a) при всех 0 < к < s числа Ls и y(к) взаимно просты:
Н.О.Д.(Ls, y(к)) = 1; (13)
(b) элемент s обратим в кольце ^^ z .
Очевидно, что если при нечётном s число Ls есть простое число, то оно нормальное число Люка. Укажем ещё несколько необходимых условий нормальности чисел Люка.
Лемма 1. Если число Люка Ls есть нормальное число, то s есть простое число.
Доказательство. Если s = ab , где a, b > 1, есть нечётные числа, то
У( к ) =
-Ls = (aab -1)(pab -1) = (aa -1)(pa -1) Yata YP^ =
t=0 m=0
= -La Y ata Y Pma,
t=0 m=0
что противоречит условию (а) Определения 1.
Лемма 2. Если число Люка Ls есть нормальное число, то целое число 5 является квадратичным вычетом (mod Ls).
Доказательство. Вычисляя символ Лежандра с использованием квадратичного закона взаимности, имеем:
f 1 ^
KLs,
= (-1)
(5-1)(4 -1)/4 f I
где Ls ° ls (mod5), 0 < ls < 5.
Рассмотрим последовательность
5
Ь (шоа5), 5 = 0,1,...:
Ь (шоа5) = {2,1,3,4; 2,1,3,4;...} .
При нечётных 5 справедливы ° 1(шod5) или ° 4(шod5). Но
Г К ^ = Н =1,4;
[ 5 J 1 -1, * К =2,3, что и доказывает Лемму.
сравнения
Непосредственные вычисления показывают, что для простых индексов 5<100 все числа Люка Ь5 являются нормальными (простыми или составными). В табл. 1 приведены все нормальные числа Люка Ьх для простых 5<5<83.
Отметим, что далее обоснование корректности рассматриваемых алгоритмов и их структура несколько различаются для простых и составных нормальных чисел Люка, поэтому мы рассмотрим эти случаи отдельно. Табл. 1
s Ls Разложение на множители Тип
5 11 11 простое
7 29 29 простое
11 199 199 простое
13 521 521 простое
17 3571 3571 простое
19 9349 9349 простое
23 64079 139x461 составное, нормальное
29 1149851 59x19489 составное, нормальное
31 3010349 3010349 простое
37 54018521 54018521 простое
41 370248451 370248451 простое
43 969323029 6709x144481 составное, нормальное
47 6643838879 6643838879 простое
53 119 218851371 119 218851371 простое
59 2139295485799 709x8969x336419 составное, нормальное
61 5600748293801 5600 748293801 простое
67 100501350283429 4021x24 994118449 составное, нормальное
71 688846502588399 688846 502588399 простое
73 1803423556807921 151549x11 899937029 составное, нормальное
79 32361122672259149 32361122 672259149 простое
83 221806434537978679 35761381x6202401259 составное, нормальное
5. Первый случай: Ь5 есть составное нормальное число
Лемма 3. Если Ь5 есть составное нормальное число Люка, то ненулевые главные идеалы А = |а5 -1], В = |р5 -взаимно просты в кольце Z. Доказательство. Так как справедливы равенства: а5 (р5 -1) = -((а5 -1) + 2), р5 (а5 -1) =
= -((р5-1) + 2) , (14)
то
(а5 (р5-1) + (а5-1))(р5 (а5 - 1) + (р5 -1)) =
= (-2)(-2 ) = 4. Из (15) следует, что неединичный общий делитель чисел (а5 -1), (р5 -1) может быть только чётным противоречит тому, что
(15)
числом, что
к.s 1 \ ( Q s
(as-1)(ps -1) = -Ls Ф 0(mod2)
Лемма 4. Если Ls есть нормальное число Люка и главные идеалы A = [as -1], B = [ps -1] ненулевые,
то для любого X e ^^ z существуют эффективно
определяемые элементы
X, e Ч -,, X2 e Ч -,
/[as -1], 2 /[Ps -1]
и константы a,b e ^^ z такие, что:
X ° a (ps-1)X1 + b (as-1)X2 (modLs), (16) причём
X ° X1 (mod[as -1]), X ° X2 (mod[ps -1]). (17) Доказательство. Так как идеалы A = [as -1] и B = [ps -1] взаимно просты по Лемме 3, то существование представления (16) является следствием китайской теоремы об остатках. Определим константы a, b в (16) таким образом, чтобы выполнялись соотношения:
a (ps-1)° 1(mod [as -1]), b(as-1)° 1(mod[ps -1]).
(18)
Заметим, что при нечётных значениях s справедливы равенства
(ps -1) ° -a-s ((as -1) + 2)° °-2a-s (mod[as -1]),
(as - 1)°-p-s ((ps -1) + 2)°
°-2p-s (mod [ps -1]).
(19)
Поэтому соотношения (18), определяющие константы a, b , можно переписать в форме
-2aa-s ° 1(mod[as -1]), - 2bp-s ° 1(mod[ps -1]), a ° -2-1 as (mod [as -1]), b ° -2-1 ps (mod [ps -1])
или
a ° (-2-1 (as -1) - 2-1) (mod[as -1]) ° °-2-1 (mod[as -1]), b ° (-2-1 (ps -1) - 2-1) (mod[ps -1]) ° °-2-1 (mod [ps -1]).
Так как в силу нечётности Ls элемент 2 e ^^ z обратим и
(as - 1)(ps -1) = -Ls, то в соотношении (16) достаточно положить
a = b °-2-1 (mod Ls), откуда следует сравнение
X °-2-1 [(ps -1)X1 +(as -1)X2 ] (modLs) , (20)
что и доказывает Лемму.
Пример 1. Пусть s = 23, L23 = 64079 = 139x461.
Тогда сравнение W2 ° 5(mod64079) имеет четыре
решения W12 ° ±16553 (mod64079) и
W3,4 ° ±39603(mod64079).
Положим
a1 ° 2-1 (1 +16553) (mod64079) ° 8277 (mod64079), p1 ° 2-1 (1 -16553)(mod64079) ° -8276(mod64079). Аналогично:
a3 ° 2-1 (1 + 39603)(mod64079) ° 19802(mod64079), p3 ° 2-1 (1 -16553)(mod64079) ° -19801(mod64079). Тогда
(a?3 -1) ° 55320(mod64079), (p23 -1) °-55322(mod64079), (a323 - 1)° 0(mod64079), (pf -1) ° -2 (mod64079).
Кроме того, 2-1 ° 32040(mod64079). Пара решений W34 °±39603(mod64079) сравнения W2 ° 5 (mod64079) порождает нулевой главный идеал [af -1] и соответствует тривиальной факторизации числа L23 = 64079 = 1x L23. Пара решений W12 ° ±16553 (mod64079) порождает представление
элементов кольца ^^ z в форме
X °-2-1 [(p,23 -1)X1 +(a23 -1)X2] (modL2,) °
° 32040 • [-55322 • X1 + 55320 • X2 ] (mod64079), где
X ° X1 (mod55320), X ° X2 (mod(-55322)). Лемма 5. Если Ls есть нормальное число Люка и главные идеалы A = [as -1], B = [ps -1] ненулевые, то функции
hm(n)°amn (mod[as -1]),
hp(n)°pmn (mod[ps -1]) образуют ортогональные семейства:
s-1
Xhg(n) hg(s-n)°s•Smk(mod[ys-1]).
n=0
(g= a, p)
Доказательство. Причиной нарушения условия ортогональности этих семейств может быть только
необратимость элементов (1 -am-k) и (1 -pm-k) при суммировании геометрических прогрессий в соотношении (3). Но если при 1 <(m-k)<s элемент
(1 -am-k)
'Lt Z
то
a ) есть делитель нуля в кольце элемент
(1 -am-k )(1 -pm-k )°y( m - k)(mod Ls) также есть делитель нуля в кольце ^^ z , что влечёт
существование неединичного общего делителя чисел y(m - k) и Ls. Это противоречит условию нормальности чисел Ls . Но при 1 = (m - k) справедливо равенство
(1 -a)(1 -p)°-1 (mod Ls), откуда следует обратимость элементов (1 -a),(1 -p)
в кольце
'L, Z
Ъ
6. Второй случай: есть простое число
Пусть Ьх есть простое число. Тогда для сомножи-
телей в соотношении (a
Ls =-(as - 1)(bs -1) справедливо сравнение
as-1Ф 0 (mod Ls), ps-1 ° 0 (mod Ls). Действительно:
(as -1)°-P-s ((Ps -1) + 2)(mod[Ps -1])°
° -2 (mod Ls). Поэтому справедливо равенство (20) в форме X °-2-1 [(ps -1)X1 +(as -1)X2] (modLs) °
° -2-1 [LsX1 + (-2) X2 ] (mod Ls) ° X2 (mod Ls). Несмотря на то, что вычисления с компонентами X2 (mod [ps -1]) равносильны вычислениям, производимым с элементами X ( mod Ls ) , мы будем иметь в виду справедливость равенства (20) и в случае простого числа Ls для обоснования корректности вычислений в редуцированных кодах Люка.
Лемма 6. Пусть Ls есть простое число Люка и
as -1Ф 0 (mod Ls), ps -1 ° 0 (mod Ls), тогда функции
hm(n) °amn (mod[as -1]) образуют ортогональные семейства:
s-1
Yha(n) K(s - n)° s-5тк (mod [as -1]).
n=0
Доказательство. Единственной причиной нарушения условия ортогональности может быть необратимость элементов (1 -am-k) при суммировании геометрических прогрессий в соотношении (3), что при m Ф к (mod Ls) противоречит простоте числа Ls.
Пример 2. Пусть s = 7 , L7 = 29 . Тогда сравнение W2 ° 5 (mod 29) имеет два решения W12 °±П(mod29).
Положим
a ° 2-1 (1 + П)(mod29) ° 6(mod29),
P ° 2-1 (1 -П)(mod29) °-5(mod29).
Тогда
(a7 -1)°-2(mod29), (p7 -1) ° 0(mod29).
Поэтому при s = 7 равенство (20) можно переписать в форме:
X °-2-1 [(p7 -1)X1 +(a7 -1)X2 ] (mod29) ° °-2-1 [0• X1 +(-2)X2] (mod29) ° X2 (mod29) и вычисление X (mod 29) равносильно вычислению компоненты X2 (mod [p7 -1]).
7. Представление данных в редуцированных кодах Люка
Для практической реализации рассматриваемого алгоритма вычисления свёртки желательно располагать простыми алгоритмами нахождения компонент X1, X2 для X е Zl z ^ Ws и кодов этих компонент X1, X2 в
редуцированных (mod(as -1)), (mod(ps -1)) системах счисления с основаниями a, P соответственно.
Определённые трудности нахождения кодов связаны с тем, что если процесс определения «цифр» yj для представления элемента кольца Ws в системе счисления Люка (8) сводится к последовательному делению с остатком целого числа на числа Lt, 0 < t < s из конечного множества, то представление целых чисел в системах счисления с основаниями a, P содержит отрицательные степени a, P .
Однако для редуцированных (mod(as -1)) ,
(mod(Ps -1)) систем счисления процесс нахождения
кодов может быть связан с представлением элементов кольца Ws в редуцированной (mod Ls) системе
счисления Люка, которое для нахождения требует исключительно деления с остатком целых чисел.
Действительно, пусть элемент X ° X2 (mod Ls)
представлен в редуцированной бинарной системе счисления с основанием a (то есть в редуцированных кодах «золотого сечения»).
X °X2 ° x0a0 + x1a1 +... + xkaк (modLs), xj е {0,1} Рассмотрим Ms -линейное отображение t, являющееся автоморфизмом кольца Ms ) :
t: Ms )® Ms (ч/5), t: a ^ P. Тогда справедливо равенство X °t(X) °t(x0a0 + x1a1 +... + xkak) °
° x0P0 + x1P1 +... + xk Pk (mod Ls) То есть если известно представление элемента X е Ms в системе счисления с основанием a , то представление этого элемента в системе счисления с основанием P имеет те же самые цифры xj е{0,1} и остаётся
только указать простой способ их определения. Складывая равенства (20) и (21), получаем:
2X ° (x0a0 + x1a1 +... + xkak) + + (X0P0 + X1P1 +... + Xk Pk)(mod Ls)° ° X0L0 + X1L1 +... + xkLk (modLs). Таким образом, для определения цифр xj е{0,1} представления элемента X е Ms в редуцированных (mod (as -1)), (mod (Ps -1)) системах счисления с
(21)
основаниями a, p достаточно определить цифры представления элемента 2 X e M s в редуцированной (mod Ls) системе счисления Люка.
8. Дискретное преобразование в кодах золотого сечения
Обозначим левый циклический сдвиг редуцированного кода:
< x >g =(Xs-1, ••', x1, x0 ) ,
M < x >g = (Xs-2, • .., X1, x0, Xs-1) . (22)
Пусть M_1 - обратный оператор (то есть правый циклический сдвиг), пусть М2 = М ° Ми так далее.
Пусть x(n) - последовательность целых чисел с периодом N , такая что
0 < x (n )< Wq, N = q .
Определение 2. Преобразование
N -1
< x(m)>g = XMm < x(n)>g, (23)
n=0 . (23)
g = a,p; m = 0,..., N -1 будем называть дискретным преобразованием в кодах золотого сечения последовательности x (n) .
Лемма 6. Дискретное преобразование
< N • x(n) >g = X < x(m) >g
m=0
является обратным к преобразованию (22). Доказательство. Из (23) получаем
(24)
X M-mn < X(m) >g = £ g"mnX(m)(mod(gs -l))
m=0 \m=0
/ N-1 N -1
Xg^ Xgmix(k)(mod(gs -1))
m=0 k=0
/N-1 f N-1
= X x(k) X gm(k-n) (mod(gs -1)) =
\k=0 V m=0 J /g
N• x(n)(mod(gs-1)^ .
9. Вычисление дискретной циклической свёртки
Пусть элементы последовательностей x(n) и h(n) в (1) есть положительные целые числа, такие что 0 < s max{x(n)} max{h (n)} < Ls,
где N = s .
Так как выше обосновано представление кольца ZL z в форме прямой суммы
Ъ/ ~ Ъ/ e Ъ/
ДZ = -1] e /[ps -1] ,
при известных xa(n), xcp (n), ha(n), h p(n) реконструкция значений (1) свёртки z(t) осуществляется не-
сложным применением китайской теоремы об остатках с линейной мультипликативной сложностью O(N).
Заключение
Представленная работа базируется на двух связанных идеях:
(a) возможности такого расширения модулярного кольца, в котором существует альтернативное разложение на сомножители (взаимно простые идеалы);
(b) существования в прямых суммах слагаемых -фактор-кольцах - систем счисления для элементов этих подколец с относительно несложной программной или аппаратной реализациями арифметических операций.
Впервые такой подход предложен автором в [12] для альтернативных разложений составных чисел Мерсенна и оснований систем счисления, равных . Дальнейшее развитие теории систем счисления
в полях алгебраических чисел [13] позволило экстраполировать описанный подход на случай канонических и т.н. квазиканонических систем счисления (в том числе и небинарных) в квадратичных полях.
Благодарности
Работа выполнена при поддержке Министерства образования и науки РФ и грантов РФФИ и 13-01-97007-р_поволжье_а и 15-07-05576_а.
Литература
1. Stein, J.Y. Digital Signal Processing: A Computer Science Perspective / J.Y. Stein. - New York: John Wiley & Sons, Inc., 2002.
2. Naudin, C. Algorithmique Algébrique / C. Naudin. - Paris: Masson; 1992. - (In French).
3. Nussbaumer, H.J. Fast Fourier Transform and Convolution Algorithms / H.J. Nussbaumer. - Berlin: Springer-Verlag, 1982. - (In French).
4. Schoenhage, A. Schnelle multiplikation grosser Zahlen / A. Schoenhage, V. Strassen // Computing. - 1966. - Vol. 7(3/4). - P. 281-292. - (In German).
5. Blahut, R.E. Fast Algorithms for Digital Signal Processing / R.E. Blahut. - Reading:Addison-Wesley Inc, 1985.
6. Rader, C.M. Discrete convolution via Mersenne transform / C.M. Rader // IEEE Transactions on Computers. - 1972. -Vol. C-21. - P. 1269-1273.
7. Hoggatt, V.E. Fibonacci and Lucas Numbers / V.E. Hog-gatt. - Fibonacci Association Edition, 1972.
8. Vajda, S. Fibonacci&Lukas numbers and Golden Section. Theory and applications / S. Vajda. - Chichester: Elis Hor-wood Ltd, 1989.
9. Zeckendorf, E. Représentation des nombres naturels par une somme de nombres de Fibonacci ou de nombres de Lucas / E. Zeckendorf // Fibonacci Quarterly - 1972. - V. 10. - P. 179-182. - (In French).
10. Freitag, H.T. Phillips G.M, Elements of Zeckendorf Arithmetic / H.T. Freitag, G.M. Phillips //Applications of Fibonacci Numbers. - 1998. - V. 7. - P. 129-132.
11. Chernov, V. Fast algorithm for "error-free" convolution computation using Mersenne-Lucas codes / V. Chernov // Chaos, Solitons and Fractals. - 2006. - V. 29. - P. 372-380.
12. Chernov. V.M. "Error-free" calculation of the convolution using generalized Mersenne and Fermat transforms over al-
N -1
g
g
gebraic fields / V.M. Chernov, M.V. Pershina // Lecture Note Computer Science. - 1997. - V. 1296. - P. 621-628.
13. Katai, I. Kanonische Zahlensysteme in der Theorie der Quadratischen Zahlen / I. Katai, B. Kovacs // Acta Scientia-rum Mathematicarum (Szeged). - 1980. - V. 42. - P. 99107. - (In German).
References
[1] Stein JY. Digital Signal Processing: A Computer Science Perspective. New York: John Wiley & Sons, Inc; 2002.
[2] Naudin C. Algorithmique Algébrique [In French]. Paris: Masson; 1992.
[3] Nussbaumer HJ. Fast Fourier Transform and Convolution Algorithms. Berlin: Springer-Verlag; 1982.
[4] Schoenhage A, Strassen V. Schnelle multiplikation grosser Zahlen [In German]. Computing 1966; 7(3/4): 281-92.
[5] Blahut RE. Fast Algorithms for Digital Signal Processing. Reading:Addison-Wesley Inc; 1985.
[6] Rader CM. Discrete convolution via Mersenne transform. IEEE Trans Comp 1972; C-21: 1269-1273.
[7] Hoggatt VE. Fibonacci and Lucas Numbers. Fibonacci Association Еdition; 1972.
[8] Vajda S. Fibonacci&Lukas numbers and Golden Section. Theory and applications. Chichester: Elis Horwood Ltd; 1989.
[9] Zeckendorf E. Représentation des nombres naturels par une somme de nombres de Fibonacci ou de nombres de Lucas [In French]. Fibonacci Quarterly 1972; 10, 179-182
[10] Freitag HT, Phillips GM. Elements of Zeckendorf Arithmetic, Applications of Fibonacci Numbers 1998; 7; 129132.
[11] Chernov V. Fast algorithm for "error-free" convolution computation using Mersenne-Lucas codes. Chaos, Solitons and Fractals 2006; 29;. 372-380.
[12] Chernov VM., Pershina MV. "Error-free" calculation of the convolution using generalized Mersenne and Fermat transforms over algebraic fields.1997. Lecture Notes in Computer Science. 1296, LNCS, pp. 621-628.
[13] Katai I, Kovacs B. Kanonische Zahlensysteme in der Theorie der Quadratischen Zahlen [In German]. Acta Sci-entiarum Mathematicarum (Szeged) 1980; 42; 99-107.
QUASIPARALLEL ALGORITHM FOR ERROR-FREE CONVOLUTION COMPUTATION USING REDUСED MERSENNE-LUCAS CODES
V.M. Chernov Image Processing Systems Institute,
Russian Academy of Sciences, Samara State Aerospace University
Abstract
In this paper a new "error-free" algorithm for discrete circular convolution calculation is proposed. The algorithm is based on a new type of discrete orthogonal transforms for which there exist efficient multiplication-free implementations. The structure of these transforms is associated with the representation of data in the redundant number system associated with Lucas numbers.
Keywords: discrete cyclic convolution, number-theoretical transforms Fibonacci and Lucas numbers, "error-free" calculations.
Citation: Chernov VM. Quasiparallel algorithm for error-free convolution computation using reduced Mersenne-Lucas codes. Computer Optics 2015; 39(2): 241-8.
Сведения об авторе
Чернов Владимир Михайлович, 1949 года рождения, математик, доктор физико-математических наук. Главный научный сотрудник Института систем обработки изображений РАН. Профессор кафедры геоинформатики и информационной безопасности Самарского государственного аэрокосмического университета имени академика С.П. Королёва. Область научных интересов: алгебраические методы в цифровой обработке сигналов, криптография, машинная арифметика.
E-mail: vche@smr.ru.
Vladimir Mikhailovich Chernov (b. 1949) is mathematician, Doctor of Physical and Mathematical Sciences. Chief researcher of the Image Processing Systems Institute of the RAS. Professor of Geo-Information Science and Information Security department of S. P. Korolyov Samara State Aerospace University (SSAU). Research interests are algebraic methods in digital signal processing, cryptography, computer arithmetic.
Поступила в редакцию 30 марта 2015 г. Окончательный вариант - 13 апреля 2015 г.