Алгоритм Гуда — Томаса — алгоритм вычисления быстрого преобразования Фурье, применяющийся к последовательностям, длина которых равна произведению двух взаимно простых чисел.
Алгоритм Гуда — Томаса не следует путать с алгоритмом Кули — Тьюки, где делители длины преобразования не обязаны быть взаимно простыми. Алгоритм Гуда — Томаса ограничен этим условием, а также задействует более сложную схему переиндексации, чем алгоритм Кули — Тьюки, но при этом не требует промежуточного умножения на комплексные множители и потому несколько проще с точки зрения вычислений[1].
Построение алгоритма
Для произвольного натурального числа дискретным преобразованием Фурье комплексного вектора , где , называется комплексный вектор , где , компоненты которого задаются формулой
где .
Пусть , где и взаимно просты. Пусть также и — новые входные индексы, задающиеся соотношениями[2]
Отсюда по китайской теореме об остатках и соотношению Безу следует, что существуют такие целые числа и , что
и Аналогично, пусть и — новые выходные индексы, задающиеся соотношениями
Тогда
С использованием обозначений
исходная формула принимает вид
то есть произошёл переход от одномерного преобразования длины к двумерному преобразованию размера . При этом число умножений и число сложений стало равно примерно [3].
Примечания
Литература
- Блейхут, Р.. Быстрые алгоритмы цифровой обработки сигналов (рус.). — М.: Мир, 1989. — 448 с.