Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Desktop / Записка.doc
Скачиваний:
21
Добавлен:
16.03.2015
Размер:
315.9 Кб
Скачать

2.2 Алгебра кватернионов

Под телом гамильтоновых кватернионов понимается четырехмерная ассоциативная алгебра над



с определяющими соотношениями для умножений базисных элементов {1, i,j,k}:

(2.1)

Поле комплексных чисел  канонически вкладывается в:

(2.2)

Кроме того, справедливо соотношение

(2.3)

Операция сложения кватернионов осуществляется покомпонентно, а умножения - с учетом правил (2.1) и с приведением подобных членов.

Далее, отображения

(2.4)

являются автоморфизмами над, причем

(2.5)

Система уравнений (2.5), рассматриваемая относительно a,b,c,d, разрешима при любых значениях левых частей и требует для решения не более четырех вещественных умножений:

(2.6)

Считая умножения на степени двойки более элементарной операцией по сравнению с вещественным умножением, мы не будем учитывать их при анализе вычислительной сложности рассматриваемых алгоритмов.

Определим число вещественных умножений, необходимых для перемножения двух кватернионов. Умножение комплексных чисел может быть реализовано по схеме "три умножения, три сложения", тогда, в соответствии с представлением (1.3), умножение двух кватернионов общего вида может быть реализовано с помощью девяти вещественных умножений. Пусть далее -i-кватернион;-j-кватернион. Тогда для вычисления произведенийsqиqtнеобходимо по шесть вещественных умножений, а для одновременного вычисления произведенияsqt- девять вещественных умножений:

(2.7)

(2.8)

При этом считаем, что произведения и суммы констант выполнены заранее.

2.3 Учет вещественности

Первоначально преобразование (1.2) использовалось как вспомогательное для эффективного вычисления преобразования (1.1) при вещественном входном сигнале. Рассмотрим один из способов учета вещественности входного сигнала – учет симметрий спектра в рассматриваемой алгебре .

Основное свойство спектра вещественного сигнала в рассматриваемой алгебре – это его симметрия. Так, спектр вещественного сигнала удовлетворяет следующим свойствам симметрии:

,, (3.1),

где – автоморфизмы алгебры(2.6).

Таким образом, достаточно рассчитать значения всего элементов вместопо формуле (1.6), взяв значенияпри,приипри,приНедостающие отсчеты заполняются на основании свойств (3,1) в соответствии со схемой, показанной на рис. 1.

Рис. 1. Заполнение недостающих областей на основании свойств симметрии

3Описание разработанного алгоритма и программы

3.1 Описание работы программы

Заданный алгоритм был реализован программно с помощью технологии Microsoft .NET Frameworkна языке программированияC#.

Написанное приложение состоит из двух сборок: библиотеки классов FFT, содержащей все необходимое для вычисления ДПФ по формуле и БПФ, а также консольного модуляDialog, реализующего пользовательский интерфейс.

После запуска приложения пользователь видит консоль с предложением ввести размер квадратного массива (рис. 2)

Рис. 2. Консоль приложения после запуска

После ввода пользователем размера массива производится проверкаЕсли условия не выполняются, генерируется исключение. Затем создается вещественная матрица размерностии заполняется с помощью генератора псевдослучайных чисел. Эта матрица, симулирующая входной сигнал (изображение), передается в качестве параметров методам подсчета ДПФ и БПФ из библиотекиFFT. Производится замер времени выполнения методов (вычисления ДПФ, БПФ и БПФ с учетом вещественности), которое выводится на экран. Результаты вычислений выводятся в текстовые файлыright result.txt (ДПФ),result.txt (БПФ) иresultWithConsiderReality.txt (БПФ с учетом вещественности). Пример работы программы приведен на рисунке 3.

Библиотека FFT содержит несколько классов:

  1. Класс FFT содержит методы вычисления ДПФ по формуле комплексного двумерного сигнала и его перегрузки; 2 БПФ двумерного сигнала в алгебре кватернионов: одно – учитывающее вещественность входного сигнала, другое – нет; вспомогательные методы для удобного вызова БПФ; а также метод, реализующий бинарную инверсию входного сигнала.

  2. Класс TreeNode используется при подсчете ДПФ на каждом шаге. Фактически, в экземпляре этого класса хранится вся необходимая информация о подматрицах, в которых необходимо посчитать ДПФ. МетодTreeNode CreateTree(UInt32 N)класса создает дерево для матрицы размероми возвращает элемент дерева, соответствующий той подматрице, которую необходимо посчитать первой. Каждый узел дерева имеет ссылки на узел-«родитель» и 13 узлов-«потомков» (если таковые имеются), а также размер соответсвующей матрицы и координату ее верхнего левого угла в основной матрице. МетодBoolean MoveToNext(ref TreeNode current) переводит ссылку на элемент дереваcurrent на следующий узел, БПФ для которого нужно подсчитать.

  3. Класс Complex реализует простейшую функциональность множества комплексных чисел, операции над ними, а также метод домножения на фазовый множительнеобходимый при подсчете ДПФ.

  4. Класс Quaternion реализует функциональность алгебры кватернионов, операции над ними, а также методы домножения нана фазовые множителинеобходимые при подсчете БПФ.

Листинг программы представлен в приложении А.

Рис. 3. Пример работы программы

Соседние файлы в папке Desktop