
2.3. Выбор и расчет параметров тчп
Для того, чтобы теоретико-числовые преобразования были более привлекательными по сравнению с БПФ при вычислении свертки, они должны быть эффективными с вычислительной точки зрения. Чтобы получить дополнительные преимущества, необходимо произвести хороший выбор параметров L, М, N. В частности, умножение на L и деление на М должны быть простыми операциями. Деление может потребоваться для осуществления операции приведения к остатку ( обозначается ((.)). Например, если М = 16, то ((37)) = 5, т.к. 37/16 = 2+5/16). Она необходима для обеспечения условия замкнутости в алгебраической системе. Заметим, что существуют и более простые методы приведения к остатку, чем операция деления.
Как отмечалось ранее, для построения теоретико-числовой конструкции кольца или поля важно наличие обратного элемента в этой алгебраической системе. Известны различные способы нахождения обратного элемента.
При сравнительно
малой величине модуля М
(методом перебора) можно легко определить
па
основе выражения
.
Например, пусть М
= 17. Для числа 4 взаимно обратным будет
13, т.к.
.
Для определения обратного элемента можно воспользоваться модификацией теоремы Эйлера. Так как
то
(6)
Решение упрощается, если заранее известен порядок N элемента L, а М — простое число.
Пример 4.
L
= 6, М =
31; найти .
Из (6) получим
.
Учитываем, что N
должен быть делителем
.
Составляем степенной ряд следующего
вида:
(т.к.
4 не делит целое число 30);
т.е. целое число 6
имеет порядок число 6.
Получим
Для нахождения обратных чисел может быть использован и алгоритм Евклида [3].
Запишем сравнение
вида ,
неизвестное число L-1
обозначим через х.
Уравнение не изменится, если к его левой
части прибавить величину, кратную
модулю
,
где у — целое неизвестное число.
Получим диофантово уравнение вида ((ах))+((bу)) = 1, решения которого ищутся в целых числах. Если, а ≤ b оно решается так:
где получаются
на основании следующего представления
непрерывной дроби.
Разделим а
и b
(если а
≥ b)
и в результате получим ,
где r0
— остаток от деления. Теперь разделим
b
на r0
и в результате получим
.
Можно продолжить этот процесс до тех
пор, пока остаток rn,
полученный при делении на некого ром
шаге, не окажется равным нулю.
Введем обозначение
……………..
Нас интересует
неизвестное x
(число, обратное L),
равное .
Пример 5.
M = 257, L = 44, вычислить 44-1.
,
Проверка 44 * 111 =
4884.
Следует учесть, что если а > b, то неизвестным x и y соответствуют решения
Заметим, что если длина цифровой последовательности N априорно известна, то дня осуществления ТЧП следует правильно определить только L, и М или, в случае необходимости, доопределить N. Выбор параметров ТЧП должен производиться с учетом следующего:
1. М и N не должны иметь общих сомножителей.
2. N
должно быть делителем .
3. L
выбирается так, чтобы выполнялось
сравнение ,
и М
были взаимно простыми.
Эти условия в еще более сжатой форме (для вычисления свертки) представляются так: ТЧП обеспечит выполнение циклической (линейной) свертки при L, имеющем порядок N, тогда и только тогда, когда p – 1 делится на N, причем p — любой из простых сомножителей М.
Предъявляются я другие требования к таким преобразованиям, связанные с эффективностью вычисления свертки. Во-первых, период N должен быть составным (предпочтительно степенью 2), для того чтобы существовал быстрый алгоритм, аналогичный БПФ. Во-вторых, так как на умножение комплексных чисел при вычислении БПФ приходится (для больших N) значительная доля временных затрат, важно, чтобы умножение на степень L было достаточно простой операцией. Это возможно, если степени L имеют немного разрядов в двоичном представлении; предпочтительно также, чтобы она было степенью 2, поскольку в этом случае умножения на степень L сводятся к сдвигу слова. В-третьих, для того чтобы упростить арифметические операции по модулю М, прежде всего операцию приведения к остатку, простейшие модули также должны иметь в двоичном представлении небольшое число разрядов.
Проанализируем вопрос о наилучшем выборе модуля преобразования M. Наибольшее распространение на практике получили ТЧП с числами Ферма (ТЧПФ) и Мерсенна (ТЧПМ). Сразу отметим, что более перспективными являются ТЧПФ, так как позволяют для расчета использовать алгоритмы типа БПФ.