2.2.3. Быстрое преобразование Фурье (бпф)
Применим выше изложенную идею для случая N = 2r.
Представим числа k и j в двоичной записи:
- двоичная запись числа k,
- двоичная запись числа j, .
Аргументов экспоненты всякий раз является число :
Все целочисленные слагаемые в данной сумме можно отбросить, т.к. они добавят целое число периодов к аргументу и не повиляют на значение exp(2i)
Целое число, не влияющие на значение exp(-2i). Его можно отбросить
Учтём, что, когда j пробегает все значения от 0 до N-1, индексы j1 … jr меняются независимым образом, принимая значения либо 0 либо 1.
Суммирование по m распишем подробно и каждую соответствующую компоненту заносим в соответствующую сумму.
.
Преобразование Фурье можно вычислять по следующей формуле (2.4):
)=
где s = 0,…,r-1. (2.4)
Итак, необходимо выполнить r шагов, постепенно переходя по формуле (2.4) от массива А(0) к массиву А(S).
Данную формулу можно переписать в виде рекуррентной последовательности:
и т.д.
.
Трудоемкость вычисления каждого коэффициента по формуле (2.4) равна const (при условии, что заранее уже заполнен массив частичных сумм разрядов всех числе от 0 до N-1). Размер массива N*r.
Итого, трудоемкость БПФ по формуле (2.4) составляет:
C · 2r · r = C N logN, где 2r – N элементов в каждом массиве,
r – число шагов.
Трудоемкость преобразования Фурье по формулам (2.4) существенно меньше. Чем у ранее изученных методов с трудоемкостями C n2 и C n3/2.
Аналогичные формулы можно вывести не только лишь в случае N = 2r (как в классическом БПФ), но и в случае N = k1·k2·…·kr. В этом случае трудоемкость составит:
T(n) = N(k1 + k2 + … + kr).
Заметим, что и для полубыстрого и для быстрого преобразования Фурье обратное преобразование вычисляется по тем же формулам, что и прямое только в exp нет знака « – » и отсутствуют множители ивполубыстром и ½ в быстром преобразовании Фурье.
Домашнее задание №2
Выразить А3(1, 0, 1, 1) через А2 и экспоненту по формуле быстрого преобразования Фурье. N = 24.
- Основные понятия. Справочный материал
- Основные понятия
- 1.2. Справочный материал. Сравнение скорости роста основных функций
- 2 Новые быстрые версии старых алгоритмов
- 2.1. Сортировки массивов
- 2.1.1 Метод прямого выбора (SelectSort)
- 2.1.2 Быстрая сортировка методом двоичных вставок (MergeSort)
- 2.2. Преобразование Фурье (бпф)
- 2.2.1. Дискретное преобразование Фурье
- 2.2.2. Полубыстрое преобразование Фурье (ппф)
- 2.2.3. Быстрое преобразование Фурье (бпф)
- 2.3. Быстрая свертка
- 2.3.1. Понятие свертки
- 2.3.2. Обычный и быстрый алгоритм свертки
- 2.4. Быстрое умножение
- 2.4.1. Быстрое умножение чисел
- 1 Суммирование
- 4 Произведения чисел вдвое меньшей
- 2.4.2. Быстрое умножение матриц
- 2.4.3. Очень быстрое умножение числе (алгоритм Шенхаге – Штрассена)
- 3. Задачи на графах
- 3.1. Справочный материал
- 3.2. Поиск минимального остова в связном неориентированном взвешенном графе
- 3.3. Нахождение кратчайшего расстояния
- 3.3.1. Алгоритм Форда – Беллмана
- 3.3.2. Алгоритм Дейкстры
- 3.4. Нахождение диаметра, радиуса и центра графа
- 3.5. Задача об изоморфизме графов
- 3.6. Задача коммивояжера. Её решение методом ветвей и границ.
- Задачи динамического программирования
- Задачи динамического программирования. Её решение методом динамического программирования.
- 4.2. Задача об оптимальном наборе самолетом скорости и высоты
- 4.3. Задача грабителя (задача о рюкзаке)
- 4.4. Задача о перемножении матриц
- 5 Классы p и np
- 5.1 Машина Тьюринга
- 5.2 Недетерменированные машины Тьюринга(ндмт)
- 5.3 Сводимость. Np-полнота.
- 5.4 Иерархия по сложности. Труднорешаемые задачи.
- Классы сложности.
- 6 Неразрешимые задачи
- 6.1 Новая модель алгоритма вычислений.
- 6.2 Нумерация программ
- 6.3 Неразрешимые проблемы
- 6.4 Теорема об ускорении
- Лабораторные работы
- Расчетно-графическое задание
- Ответы к домашним заданиям