
Лаба 1-8 Лабы и ПЗ [Вариант 1] / 5 / ТЧП с флешки вовы / 4_Теоретико-числовые преобразования_2011
.pdfСледует учесть, что если решения
a
b
, то неизвестным
x
и
y
соответствуют
x y
( 1) |
n 1 |
b |
; |
||
|
|
||||
|
|
|
|
n 1 |
|
( 1) |
n 1 |
a |
|
||
|
|
|
|||
|
|
|
|
n 1 |
.
Заметим, что если длина цифровой последовательности N априорно известна, то дня осуществления ТЧП следует правильно определить только, и M или, в случае необходимости, доопределить N . Выбор параметров ТЧП должен производиться с учетом следующего:
1.M и N не должны иметь общих сомножителей.
2.N должно быть делителем (M ) .
3. |
|
выбирается так, чтобы выполнялось сравнение |
|
N |
mod M , |
|
и |
|
M
были взаимно простыми.
Эти условия в еще более сжатой форме (для вычисления свертки) представляются так: ТЧП обеспечит выполнение циклической (линейной)
свертки при , имеющем порядок N , тогда и только тогда, |
когда |
p 1 |
делится на N , причем p − любой из простых сомножителей M . |
|
|
Предъявляются и другие требования к таким преобразованиям, связанные с эффективностью вычисления свертки. Во-первых, период N должен быть составным (предпочтительно степенью 2), для того чтобы существовал быстрый алгоритм, аналогичный БПФ. Во-вторых, так как на умножение комплексных чисел при вычислении БПФ приходится (для
больших |
N ) значительная доля временных затрат, важно, чтобы умножение |
||
на степень |
|
было достаточно простой операцией. Это возможно, если |
|
степени |
|
|
имеют немного разрядов в двоичном представлении; |
предпочтительно также, чтобы она было степенью 2, поскольку в этом случае умножения на степень сводятся к сдвигу слова. В-третьих, для того чтобы упростить арифметические операции по модулю M , прежде всего операцию приведения к остатку, простейшие модули также должны иметь в двоичном представлении небольшое число разрядов.
Проанализируем вопрос о наилучшем выборе модуля преобразования M . Наибольшее распространение на практике получили ТЧП с числами Ферма (ТЧПФ) и Мерсенна (ТЧПМ). Сразу отметим, что более перспективными являются ТЧПФ, так как позволяют для расчета использовать алгоритмы типа БПФ.
1.5. Преобразования с числами Ферма
Число Ферма имеет вид F1 2b 1, b 2t , где t − положительное целое число Ft называется t -м числом Ферма. Например, пятое число Ферма равно
11

F 2 |
5 |
1 |
|
|
2 |
||||
|
|
|
||
5 |
|
|
|
простыми. составными.
2 |
32 |
1 |
655537 |
. Первые четыре числа Ферма являются |
|
Все последующие числа Ферма, по-видимому, являются Когда модуль ранен числу Ферма, ТЧП реализуется для любого
N , равного степени двойки и не превышающего 2 |
t 2 |
4b , если число Ферма |
||
|
||||
составное (т.е. начинается с |
F5 ), а также для любого N , |
равного степени |
||
двойки и меньшего, чем M , |
если число Ферма простое (т.е. |
F1 F4 ). В этом |
случае такие размеры преобразования позволяют использовать алгоритмы, подобные алгоритмам БПФ по основанию 2.
Арифметические операции по модулю Ft , могут быть выполнены с
помощью b разрядных двоичных чисел. Количество разрядов, используемых для представления сигналов и коэффициентов фильтра (например, согласованного), определяет выбор значения b , которое необходимо использовать во избежание появления ошибок на выходе из-за перевыполнения. Обычно значение b несколько больше удвоенного числа двоичных разрядов, используемых для представления сигналов. Если значение b , полученное из соображения отсутствия перевыполнения, не являются степень 2, то для того чтобы можно было использовать числа Ферма, его необходимо увеличить до ближайшей степени 2.
Прямое и обратное ТЧПФ последовательности длины определяются следующим образом:
N 2 |
m |
|
N 1
a(k) S(n) kn mod Ft ,
n 0
k 0,1, , N 1;
|
|
N 1 |
|
|
|
|
|
|
|
|
|
|
S(n) 2 |
m |
a(k) |
kn |
mod Ft |
, |
n 0,1, |
||||||
|
|
|||||||||||
|
|
n 0 |
|
|
|
|
|
|
|
|
|
|
Заметим, |
что |
|
1 |
(( |
N 1 |
))F |
и |
2 |
m |
|||
|
|
|
2 |
b m |
|
.
mod
Ft
. Теперь рассмотрим
возможные значения , для которых существуют ТЧПФ.
Для простых чисел Ферма целое 3 является элементом поля порядка
N 2 |
b |
, |
допускающим наибольшую длину преобразования. Целое 2 имеет |
||||
|
|||||||
порядок |
N 2 |
b |
2 |
t 1 |
. Если 1, выбирается равным 2 или степени 2, то все |
||
|
|
||||||
степени |
будут некоторыми степенями 2 и для таких случаев ТЧПФ может |
быть вычислено эффективно. Такое ТЧПФ (с базисной функцией 2 )
называется преобразованием Рейдера. Для вычисления такого |
N -точечного |
||
преобразования, аналогичного БПФ требуется порядка |
N log 2 |
N |
сложений- |
вычитаний и N / 2 log 2 N операций умножений на |
степень |
2, которые |
выполняются путем поразрядных сдвигов с последующим вычитанием - значительно более быстрых операций, чем умножение. В итоге это может привести к сокращению объема вычислений. Преобразование Рейдера обладает и другими преимуществами по сравнению с БПФ. Во-первых, в случае БПФ необходимо запоминать все степени V , что требует значительного объема памяти. Это обстоятельство может оказаться
12

существенным фактором при технической реализации специализированных процессоров. Во-вторых, при вычислениях БПФ с фиксированной запятой на выходе вносится значительный по величине шум округления − 6-8 бит в зависимости от входных данных. Это ухудшает отношение сигнал/шум при осуществлении операций фильтрации. В преобразованиях Рейдера шум округления отсутствует и единственным источником погрешности является преобразование аналог/цифра на входе.
Выбор параметров ТЧП Ферма основан на анализе корней. Если 2
то он является конем модулю Ft , а величины ТЧПФ имеет вид:
порядка |
N |
||
2 |
i |
принимают |
|
|
2 |
t 1 |
. |
|
||
|
t 1 |
|
2 |
|
|
2 |
2 |
t |
1 |
Действительно, |
|
|||
|
|
различных значений.
по
a S n
|
|
t 1 |
1 |
|
|
||
k |
|
2 |
|
|
|
||
x n 2 |
nk |
||||||
|
|
|
|
|
|
||
|
|
n 0 |
|
|
|||
|
|
2 |
t 1 |
1 |
|
|
|
N |
1 |
a k 2 |
|
||||
|
|
|
|
|
|
||
|
|
k 0 |
|
|
mod F |
|
|
t |
nk |
mod |
|
Ft
,
Возможны следующие виды «удобных» корней:
-корень
-корень
2 , является корнем порядка |
t |
||
N 2 |
|||
2 |
2i |
является корнем порядка: N 2 |
|
|
1 |
по |
|
|
t 1 i |
mod Ft ; по mod Ft
;
V
- корень
2 |
t |
. |
|
|
ТЧП |
2 N |
2t
2
,
2
V |
|
|
V |
|
2 |
4 |
|
2 |
2 |
|
|
|
|
|
|
|
|
|
|
1
,
Таким следующему.
и модуль |
Ft |
образом, выбор параметров ТЧП Ферма сводиться к
Выбрать значение корня, |
определить длину преобразования N |
. Если известна длина |
преобразования, тогда выбирается |
значение корня и вычисляется модуль. Количество выбранных корней может быть несколько, следовательно, столько же будет и модулей. После того, как выбрано несколько параметров, необходимо их проверить на условия
существования ТЧП |
(п.1.4), |
а модуль на условие |
нормировки |
|
M 1 2, |
M 1 |
2 . После |
этого можно приступать |
к процедуре |
|
|
|
|
|
вычисления ТЧП.
1.6. Быстрое вычисление теоретико-числового преобразования Ферма
Алгоритм быстрого ТЧПФ получается как разложение по основанию 2 на ступени (итерации) с постоянной структурой путем прореживания по частоте или прореживания по времени. Основным вычислительным для
13

алгоритма быстрого ТЧПФ по основанию 2 является устройство выполнения базовой операции "бабочка". Структура быстрого поточного ТЧПФ процессора идентична структуре поточного БПФ процессора, за исключением блока выполнения операции "бабочка", в котором вместо умножения на exp( j(2 / N) * k) (в случае БПФ) осуществляется умножение
на 2k . На рис. 1 показана базовая операция "бабочка" для алгоритма быстрого ТЧПФ с прореживанием по времени.
Рис. 1
На рис. 2 изображен направленный граф четырехтомного алгоритма ТЧПФ с прореживанием по частоте.
Рис. 2
1.7. Теоретико-числовое преобразование Мерсенна
Пусть |
q |
− простое число, положим |
M 2 |
q |
1. |
|
являются простыми при q 2, 3, 5, 7, 13, 17, 19, 31, 61.
ТЧПМ существует, если N делит все числа вида составные множители из разложения числа Мерсенна
Числа Мерсенна
(рi - 1), где рi-
|
|
M 2 |
q |
r |
r |
r |
. |
|
|
|
|
1 p1 |
p2 ,.., pl |
|
|||
|
|
|
|
1 |
2 |
l |
|
|
Для |
простых |
чисел |
|
Мерсенна |
длину |
преобразуемой |
||
последовательности получают из условия, что число N делит число (M 1) . |
||||||||
Из теории чисел известно, что если M 1 2 |
q |
2 , то M 1 делится на |
||||||
|
||||||||
q , и кроме того число 2 |
является делителем числа 2q 2. Следовательно, |
|||||||
можно определить N q, |
2q -точечные ТЧПМ. |
|
|
|
||||
Рассмотрим вопрос определения . Если |
|
M простое, то корнем |
||||||
порядка q |
является 2 так как 2q 1mod M . Если |
M составное число то, 2 |
тоже является корнем, но необходимо чтобы q имело обратное число, а это условие выполняется в том случае если
14

q 1 |
|
0 |
2 |
tk |
|
|
|
|
k 0 |
|
|
mod M
t 0
mod q
.
Таким образом, можно определить прямое и обратное преобразование Мерсена.
q
точечное
q 1 |
|
|
|
|
a(k) S(n)2 |
kn |
mod M , |
k 0,1, , q 1. |
|
|
|
|||
n 0 |
|
|
|
|
Обратное преобразование Мерсенна определяется как |
|
|||
q 1 |
|
|
|
|
S(n) q 1 a(k)2 kn mod M , |
n 0,1, , q 1. |
|
||
n 0 |
|
|
|
|
Для 2q точечного преобразования корнем является |
2 |
так как
2 2q
1
mod M
и степени корня
1, 2,4,...,( 2) |
M 1 |
|
представляют собой
разные числа отличные от нуля
|
|
|
|
q 1 2 |
p |
2 |
|
|
|
|
2 |
|
|
||
2q |
1 |
|
|
|
mod 2 |
q |
|
|
|
|
|
||||
|
|
2q |
|
|
|||
|
|
|
|
|
|
|
Для составного M необходимо выполнить простоту чисел:
1 .
проверку на взаимную
для
t |
нечетное |
|
q
2q 1 |
|
|
2q 1 |
|
|
2 |
2q |
1 |
|
|
2 |
tk |
2 |
k |
|
|
0 |
||
|
|
|
3 |
|
|||||
i 0 |
|
|
k 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.
mod M
где
Для tчетное получаем:
|
|
|
|
2q 1 |
|
|
|
q 1 |
|
|
|
|
|
|
|
|
|
|
|
|
tk |
|
|
tk |
|
|
mod M p . |
||
|
|
|
|
2 |
2 2 |
0 |
||||||||
|
|
|
|
k 0 |
|
|
|
k 0 |
|
|
|
|
|
|
Следовательно, можно определить 2q-точечное ТЧПМ |
||||||||||||||
|
|
|
|
|
|
2q 1 |
|
|
|
mod 2 |
|
1 , |
||
|
|
|
|
a k S n 2 |
nk |
q |
||||||||
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2q 1 |
|
|
|
|
|
|
|
|
|
S n |
2q |
1 |
|
a(k) 2 |
nk |
||||||
|
|
|
|
|
|
mod 2q 1 , |
||||||||
|
|
|
|
|
|
|
|
k 0 |
|
|
|
|
|
|
2 |
nk |
2 |
2q 1 nk |
|
|
|
|
|
|
|
|
|
|
|
|
|
mod |
|
2q 1 . |
|
|
|
|
|
|
Основным преимуществом преобразования является возможность выполнения умножения по степени 2 просто как поразрядных циклических сдвигов.
15

1.8. Вычисление свертки
Пусть даны две апериодические последовательности |
S |
|
одинаковой длины |
N . Циклическая свертка вычисляется как по |
|
алгоритму. |
|
|
1. Вычисление ТЧП последовательности S n :
N 1 |
|
|
|
|
aS (k) S(n) |
kn |
mod M , |
k 0,1, |
, |
|
||||
n 0 |
|
|
|
|
2. Вычисление ТЧП последовательности h n :
n |
и |
h n |
следующему
N 1
ah (k) h(n) kn mod M ,
n 0
k 0,1,
,
3. Перемножение полученных ТЧП:
Y (k) a |
(k) * a |
(k)mod M |
S |
h |
|
,
k
0,1, , 2N
1
.
4. Нахождение обратного ТЧП последовательности:
где
N *
|
Y |
N |
|
N |
1 |
|
|
|
N 1 |
|
|
(n) N |
1 |
Y (k) |
kn |
mod |
|
|
|||
|
|
n 0 |
|
|
1mod M , а величина
1mod M .
M , |
|
N |
1 |
|
n 0,1,
определяется из
,
решения сравнения
Кольцом называется произвольное множество элементов a, b, c, …, с двойной композицией (операции сложения и умножения), если выполняются
следующие аксиомы: |
|
|
1. |
Закон сложения: |
|
а) |
закон ассоциативности: a (b c) (a b) c , |
|
б) |
закон коммутативности: a b b a , |
|
в) |
существование нулевого и обратного элементов: |
a 0 a , |
a a 0.
2. |
Закон умножения: |
а) |
закон ассоциативности: a bc |
3. |
Законы дистрибутивности: |
а) a (b c) ab ac б) (b c) a ba ca
ab
c
,
16
2. Программное обеспечение
Лабораторная работа выполняется в среде компьютерной математики Matlab. В Matlab имеется встроенная функция вычисления остатка от деления: mod(x,y).
3. Предварительное задание
1. Задаваясь числом отсчетом N 5, 7 и основанием 2 ,
определить модуль, с которым будет выполняться прямое и обратное теоретико-числовые преобразования. Проверить на условия существования ТЧП полученные параметры.
2.Построить прямую и обратную матрицу ТЧП для заданных параметров.
3.Вычислить прямое и обратное ТЧП для последовательностей:
1,2, 1, 1,2 (при N 5 ), 2,1, 1, 1,1,1,2 (при N 7 ).nS nS
4. Найти четырехточечную циклическую свертку последовательности (1, 2, -1, 3) саму с собой с помощью графа быстрого ТЧП. Для этого необходимо определить параметры ТЧП и проверить их на условия существования ТЧП.
4. Лабораторное задание
1.Получить у преподавателя параметры ТЧП. Определить оставшиеся параметры.
2.Проверить на условия существования ТЧП.
3. Построить матрицу прямого и обратного ТЧП.
4.Для заданной (сформированной случайным образом) последовательности отсчетов сигнала вычислить автосвертку.
5.Проверить свойства базисных функций и ТЧП 1-5 из п.1.3.
6.Вычислить автосвертку с помощью алгоритма быстрого ТЧП. Построить графы быстрого ТЧП. Графы быстрого ТЧП необходимо построить в Simulink.
5. Контрольные вопросы и задачи
1. Показать, что правила умножения и сложения в поле Галуа (GFPk)
удовлетворяют аксиомах: кольца ( p |
− простое число , |
k |
− целое |
положительное число).
2.Вычислить 923 , M 64.
3.Найти решение в кольце целых чисел 824 для M 64 .
17
4. |
При каких условиях возможно выполнение ТЧП в кольце целых |
чисел? |
|
5. |
Какие системы базисных функций используются в ТЧП? |
6. |
Перечислите и поясните основные свойства ТЧП. |
7. |
Поясните, из каких соображений выбираются параметры ТЧП. |
8. |
Вычислите спектр последовательности 1,1, 1, 1 на основе ТЧП |
Мерсенна. |
|
9. |
В чем заключаются преимущества и недостатки ТЧП в сравнении с |
ДПФ? |
|
10. |
Построить графы быстрого ТЧП N 4, N 8 . |
11. Как использовать матрицы прямого ТЧП для вычисления обратного |
|
ТЧП? |
|
12. |
Вычислите обратное ТЧП для спектра, найденною в п. 8. |
13. Вычислите свертку последовательности 1,1,1, 1 прямым методом с
помощью ТЧП.
14. Вычислите корреляционную функцию последовательности 1,1,1, 1 прямым методом и с помощью ТЧП.
15.Составьте вычислительную сложность ДПФ, БПФ, ТЧП.
16.Можно ли вычислить линейную свертку с помощью циклической
свертки?
17.Вычислить числа, обратные числам 5, 7, 8 M 31 ,
M 23, 9 , используя теорему Эйлера.
18.Найти обратный элемент M 3, 7 , с применением алгоритма
Евклида.
19.Объясните, что такое псевдоперевыполнение и когда оно возникает.
20.Поясните, при использовании, каких чисел в качестве модуля возможны быстрые алгоритмы вычисления ТЧП и почему.
6. Содержание отчета
1.Формулировка цели работы.
2.Расчет предварительного задания.
3.Результаты проделанной работы (текст программы, графики,
таблицы).
4.Выводы.
Литература:
1.Лосев В.В. Микропроцессорные устройства обработки информации. Алгоритмы цифровой обработки. - Мн.: Высш. шк., 1990.
2.Крот А.М., Минервина Е.Б. Быстрые алгоритмы и программы цифровой спектральной обработки сигналов и изображений. - Мн.: Навука i
тэхнiка, 1995.
18
3.Макклеллан Дж., Рейдер Ч.М. Применение теории чисел в цифровой обработке сигналов. - М.: Радио и связь, 1983.
4.Блейхут Р. Быстрые алгоритмы цифровой обработки сигналов. - М.:
Мир 1989.
5.Залманзон Л.А. Преобразования Фурье, Уолша, Хаара и их применение в управлении, связи и других областях. - М.: Науки, 1989.
19