Для произвольного
натурального числа
дискретным преобразованием Фурье
комплексного
вектора
, где
, называется комплексный
вектор
, где
, компоненты которого задаются формулой
где
.
Для построения алгоритма делается предположение, что
для некоторых натуральных
и
и производится следующая замена индексов
:
в результате которой получается
Далее векторы входных и выходных данных преобразуются в двумерные массивы
и
, задающиеся равенствами
Стоит заметить, что компоненты
упорядочены не так, как компоненты
.
Далее пусть
и
. Очевидно, что
. Тогда в терминах двумерных переменных формула преобразуется к виду
Таким образом, вычисление преобразования длины
сводится к выполнению следующих действий:
Вычисление
преобразований длины
.
Умножение на комплексные «поворачивающие» множители.
Вычисление
преобразований длины
.
При этом вместо
комплексных сложений и
комплексных умножений исходной формулы итоговая схема содержит не более
комплексных сложений и
комплексных умножений
.
Каждое из преобразований длины
или
можно вычислять с помощью различных быстрых алгоритмов, в частности, снова по вышеприведённой схеме. В этом случае преобразование длины
может быть представлено в форме, требующей выполнения
комплексных умножений
.
Алгоритм по основанию два
Во многих приложениях длина преобразования равна степени двойки:
. Тогда в вышеприведённой схеме возможны варианты
или
. В этом случае говорят об
алгоритме Кули — Тьюки по основанию два
(
англ.
radix-2
).
Если
, то говорят об
алгоритме Кули — Тьюки с прореживанием по времени
. В этом случае уравнения преобразуются к виду
Если ввести обозначения
и
, то уравнения можно переписать как
Данная процедура может быть применена к входному вектору
рекурсивно
. На каждом шаге
-точечное преобразование разбивается на два
-точечных преобразования, которые, в свою очередь, разбиваются таким же образом до тех пор, пока длина преобразования не станет равна единице. Затем происходит обратный ход, на каждом шаге длины результатов преобразований удваиваются с помощью «бабочек». При такой реализации выполняется
комплексных умножений и
комплексных сложений.
Этот процесс является примером применения методики
«разделяй и властвуй»
. При этом во многих реализациях прямой рекурсии избегают и вместо неё дерево вычислений проходится в порядке
поиска в ширину
.
Если
, то говорят об
алгоритме Кули — Тьюки с прореживанием по частоте
. В этом случае уравнения преобразуются к виду
Алгоритм Рейдера — Бреннера
Пусть
и пусть
С использованием формул алгоритма с прореживанием по частоте нетрудно убедиться, что выполняется следующее соотношение:
Такая модификация алгоритма по основанию два называется
алгоритмом Рейдера — Бреннера
. Она позволяет уменьшить вычислительную сложность за счёт более простых умножений на
чисто мнимые
константы
. Аналогичные формулы можно получить с использованием
вещественных
констант
.
История
Алгоритм и его рекурсивная реализация были изобретены около 1805 года
К. Гауссом
при
интерполировании
траекторий астероидов
Паллада
и
Юнона
. Тогда открытие не получило широкого распространения и было опубликовано лишь после смерти учёного на
новой латыни
. Результат Гаусса несколько раз переоткрывался в различных формах в течение последующих 150 лет и стал популярным после публикации в 1965 году статьи
(англ.)
(
из
IBM
и
Дж. Тьюки
из
Принстона
, в которой алгоритм был в очередной раз переоткрыт, а также описывалась удобная реализация для
ЭВМ
.
Тот факт, что первооткрывателем алгоритма является Гаусс, был обнаружен лишь через несколько лет после публикации Кули и Тьюки. В своей статье они ссылались только на работу
И. Дж. Гуда
, в которой был описан
алгоритм Гуда — Томаса
.
Выражение преобразования Фурье длины
через два преобразования длины
иногда называют леммой
(англ.)
(
—
Ланцоша
, так как оно было получено этими двумя авторами в 1942 году
.
Примечания
, с. 129.
↑
, с. 130.
↑
, с. 133.
, с. 134.
, с. 138.
, с. 92.
Heideman, M. T.
,
Johnson, D. H.
,
Burrus, C. S.
(англ.)
// IEEE ASSP Magazine. —
IEEE
, 1984. —
Vol. 1
,
iss. 4
. —
P. 14—21
. —
doi
:
.
Cooley, J. W.
,
Tukey, J. W.
(англ.)
// Mathematics of Computation. — 1965. —
Vol. 19
. —
P. 297—301
. —
doi
:
.
7 мая 2021 года.
Danielson, G. C.
,
Lanczos, C.
(англ.)
// Journal of the Franklin Institute. — 1942. —
Vol. 233
,
iss. 4
. —
P. 365–380
. —
doi
:
.
Литература
Блейхут, Р.
.
Быстрые алгоритмы цифровой обработки сигналов
(рус.)
. —
М.
:
Мир
, 1989. — 448 с.
Нуссбаумер, Г.
Быстрое преобразование Фурье и алгоритмы вычисления свёрток. —
М.
: Радио и связь, 1985.
Рабинер, Л.
,
Гоулд, Б.
Теория и применение цифровой обработки сигналов. —
М.
:
Мир
, 1978.