Algorytm Cooleya-Tukeya

2026-05-29 Autor Wyłączono

Algorytm Cooleya-Tukeya

Algorytm Cooleya-Tukeya, znany także jako algorytm szybkiej transformacji Fouriera (FFT), jest jedną z fundamentalnych metod stosowanych w obliczeniach numerycznych, szczególnie w kontekście analizy sygnałów i przetwarzania danych. Jego głównym celem jest efektywne obliczenie dyskretnej transformacji Fouriera (DFT) dla sygnałów, które mają złożoność N, przy czym N jest liczbą punktów próbkowania. Dzięki zastosowaniu techniki dzielenia problemu na mniejsze kawałki, algorytm ten znacząco redukuje czas obliczeń, do poziomu O(N log N), co czyni go niezwykle wydajnym w porównaniu do tradycyjnych metod obliczeniowych.

Historia algorytmu

Korzenie algorytmu Cooleya-Tukeya sięgają początków XIX wieku, kiedy to Carl Friedrich Gauss po raz pierwszy zaprezentował koncepcję rekurencyjnego obliczania DFT. Jego praca dotycząca tego zagadnienia nie została jednak dostatecznie doceniona i opublikowana dopiero po jego śmierci. Dopiero w latach 60. XX wieku, dzięki pracom Jamesa Cooleya i Johna Tukeya, algorytm zyskał popularność i został szeroko zaadaptowany w praktyce komputerowej. W 1965 roku Cooley i Tukey opublikowali artykuł, który pomógł w popularyzacji metody FFT, a ich prezentacja była tak przekonująca, że szybko zdobyła uznanie w środowisku naukowym.

Punkty zwrotne w rozwoju algorytmu

Warto zaznaczyć, że algorytm Cooleya-Tukeya był wynikiem wspólnej pracy dwóch naukowców. Tukey wzbudził zainteresowanie tą metodą podczas spotkania dotyczącego monitorowania testów jądrowych, gdzie dostrzegł jej potencjał do analizy danych krystalograficznych 3D. Współpraca z Cooleyem zaowocowała metodą, która nie tylko była przełomowa w teorii, ale także miała ogromne znaczenie praktyczne.

Podstawowy mechanizm działania

Algorytm Cooleya-Tukeya polega na rozbiciu DFT na mniejsze transformacje o niższych wymiarach. Proces ten można opisać na przykładzie najprostszej formy algorytmu – Radix-2 decymacji w dziedzinie czasu (DIT). W tej wersji DFT o rozmiarze N jest dzielona na dwie części: jedną dla indeksów parzystych oraz drugą dla indeksów nieparzystych. Następnie te dwie części są łączone w celu uzyskania pełnej DFT.

Dyskretny wzór Fouriera

Dyskretna transformacja Fouriera (DFT) dla sygnału x(n) wyrażona jest wzorem:

X_k = ∑(n=0 to N-1) x_n e^(-2πi/N nk)

gdzie k jest indeksem odpowiadającym danej częstotliwości. Algorytm Radix-2 DIT wykorzystuje efekt podziału sygnału na dwie grupy: parzyste i nieparzyste wartości wejściowe. Dzięki temu możliwe jest obliczenie wyników pośrednich, które następnie są łączone w celu uzyskania końcowego wyniku.

Wydajność i zastosowanie

Dzięki rekurencyjnemu podejściu do obliczeń, algorytm Cooleya-Tukeya może być stosowany nie tylko do małych zestawów danych, ale również do dużych zbiorów informacji. Jego wydajność sprawia, że stanowi on fundament dla wielu aplikacji inżynieryjnych oraz naukowych, od analizy dźwięku po przetwarzanie obrazów czy symulacje fizyczne.

Warianty algorytmu

Chociaż najpopularniejszym wariantem algorytmu Co


Artykuł sporządzony na podstawie: Wikipedia (PL).