- •Пояснительная записка
- •1 Постановка задачи
- •2 Теоретический материал
- •2.1 Двумерное преобразование Фурье
- •2.2 Алгебра кватернионов
- •2.3 Учет вещественности
- •3Описание разработанного алгоритма и программы
- •3.1 Описание работы программы
- •3.2 Описание разработанного алгоритма
- •4Тестирование программы
- •5Исследование алгоритма
- •Приложение а. Текст программы
3.2 Описание разработанного алгоритма
Метод, реализующий БПФ, получает на вход двумерный массив кватернионов. «На месте» осуществляется бинарная инверсия, по имеющемуся резмеру составляется дерево с информацией о подматрицах, в которых необходимо вычислить ДПФ.
Далее запускается цикл, в котором перебираются все элементы дерева и считаются БПФ в соответствующих этим элементам подматрицам.
В случае, если рассматриваемая подматрица имеет размер то ДПФ вычисляется с помощью двумерной «бабочки» размераЕсли– с помощью четырехмерной «бабочки» размераВ остальных случаях вычисления производятся по формуле (1.6). В алгоритме, учитывающем вещественность входного сигнала также учитываются замечания из п. 2.3, используются формулы (2.6) и (3.1).
4Тестирование программы
Проверка результатов работы программы производилась с помощью реализованного алгоритма подсчета двумерного ДПФ по формуле. Значения отсчетов полученных разными способами спектров в тестовых примерах (для ) совпали с точностью до 12 знака после запятой. Полученную погрешность вполне обоснованно можно считать машинной погрешностью вычислений.
5Исследование алгоритма
Убедиться в эффективности разработанного алгоритма позволяет таблица сравнения времени выполнения этого алгоритма с вычислением ДПФ по формуле (таб. 1).
N |
Время вычисления ДПФ по формуле, с |
Время вычисления БПФ, с |
8 |
0,0018 |
0,0108 |
16 |
0,0162 |
0,0129 |
32 |
0,2303 |
0,0256 |
64 |
3,6968 |
0,0864 |
128 |
59,2014 |
0,4078 |
Таблица 1. Сравнение времени выполнения БПФ и ДПФ по формуле
Приведенную таблицу хорошо иллюстрирует рисунок 4.
Рис. 4. Сравнительные графики времени выполнения БПФ и ДПФ по формуле
Более того, неплохой прирост производительности дает учет вещественности входного сигнала. В таблице 2 приведены сравнительные результаты времени выполнения алгоритма БПФ с учетом и без учета вещественности.
N |
Время вычисления БПФ без учета вещественности, с |
Время вычисления БПФ с учетом вещественности, с |
8 |
0,0108 |
0,0075 |
16 |
0,0129 |
0,0084 |
32 |
0,0256 |
0,0137 |
64 |
0,0864 |
0,0398 |
128 |
0,4078 |
0,1589 |
256 |
1,8156 |
0,672 |
512 |
8,5489 |
3,0825 |
Таблица 2. Сравнение времени выполнения БПФ с учетом и без учета
вещественности входного сигнала
На рисунке 5 приведены построенные по данной таблице графики.
Рис. 5. Сравнительные графики времени выполнения БПФ с учетом и
без учета вещественности входного сигнала
Приложение а. Текст программы