Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаба 1-8 Лабы и ПЗ [Вариант 1] / 5 / ТЧП с флешки вовы / 4_Теоретико-числовые преобразования_2011

.pdf
Скачиваний:
81
Добавлен:
15.06.2014
Размер:
895.6 Кб
Скачать

Следует учесть, что если решения

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

Соседние файлы в папке ТЧП с флешки вовы