Algorytm FFT z dzieloną podstawą

Split -radix FFT jest algorytmem szybkiej transformaty Fouriera ( FFT) do obliczania dyskretnej transformaty Fouriera (DFT) . różni autorzy w 1984 r. (Nazwa „split radix” została wymyślona przez dwóch z tych wynalazców, P. Duhamela i H. Hollmanna). W szczególności split radix jest wariantem algorytmu FFT Cooleya-Tukeya, który wykorzystuje mieszankę radices 2 i 4: rekurencyjnie wyraża DFT długości N pod względem jednej mniejszej DFT o długości N /2 i dwóch mniejszych DFT o długości N /4.

FFT z dzieloną podstawą, wraz z jej odmianami, od dawna wyróżnia się osiągnięciem najniższej opublikowanej liczby operacji arytmetycznych (całkowita dokładna liczba wymaganych rzeczywistych dodań i mnożeń) do obliczenia DFT potęgi dwóch rozmiarów N . Liczba arytmetyczna oryginalnego algorytmu podzielonej podstawy została ulepszona w 2004 r. (Początkowe korzyści osiągnięte w niepublikowanej pracy J. Van Buskirka poprzez optymalizację ręki dla N = 64 [2] [3] ), ale okazuje się, że wciąż można osiągnąć nową najniższą liczbę poprzez modyfikację podzielonej podstawy (Johnson i Frigo, 2007). Chociaż liczba operacji arytmetycznych nie jest jedynym czynnikiem (a nawet koniecznie dominującym) przy określaniu czasu potrzebnego do obliczenia DFT na komputerze , kwestia minimalnej możliwej liczby ma od dawna zainteresowanie teoretyczne. (Obecnie nie udowodniono żadnej ścisłej dolnej granicy liczby operacji).

Algorytm podzielonej podstawy można zastosować tylko wtedy, gdy N jest wielokrotnością 4, ale ponieważ dzieli DFT na mniejsze DFT, można go łączyć z dowolnym innym algorytmem FFT zgodnie z potrzebami.

Dekompozycja podzielonej podstawy

Przypomnijmy, że DFT jest zdefiniowany wzorem:

gdzie liczbą całkowitą z zakresu od {\ do i pierwiastek jedności :

i tak: .

Algorytm podzielonej podstawy działania polega na wyrażeniu tej sumy w postaci trzech mniejszych sum. (Tutaj podajemy wersję „z dziesiątkowaniem w czasie” FFT z podzieloną podstawą; wersja z podwójnym dziesiątkowaniem w częstotliwości jest zasadniczo odwrotnością tych kroków.)

Najpierw sumowanie po parzystych indeksach . Po drugie, sumowanie nieparzystych indeksów podzielonych na dwie części: i , w zależności od tego, czy indeks wynosi 1, czy 3 modulo 4. Tutaj oznacza indeks, który biegnie od 0 do . Wynikowe podsumowania wyglądają następująco:

gdzie wykorzystaliśmy fakt, że . Te trzy sumy odpowiadają częściom radix -2 (rozmiar N /2) i radix-4 (rozmiar N /4) Odpowiednio kroki Cooleya-Tukeya. (Główną ideą jest to, że podtransformacja podstawy-2 o indeksie parzystym nie ma przed sobą mnożnika, więc należy ją pozostawić bez zmian, podczas gdy transformacja podrzędna podstawy-2 o indeksie nieparzystym przynosi korzyści dzięki połączeniu drugiego podziału rekurencyjnego .)

Te mniejsze sumowania są teraz dokładnie DFT o długości N /2 i N /4, które można wykonać rekurencyjnie, a następnie ponownie połączyć.

Dokładniej, niech wynik DFT o długości / 2 (dla niech niech wyniki o długości 4 (dla ). Wtedy wyjście to po prostu:

Powoduje to jednak niepotrzebne obliczenia, ponieważ się, że wiele obliczeń dzieli się z . W szczególności, jeśli dodamy N /4 do k , DFT rozmiaru N /4 nie ulegną zmianie (ponieważ są okresowe w N /4), podczas gdy DFT rozmiaru N /2 nie ulegnie zmianie, jeśli dodamy N /2 do k . Tak więc jedyne rzeczy, które się zmieniają, to terminy znane jako i czynniki . Tutaj używamy tożsamości:

by w końcu dojść do:

co daje wszystkie wyjścia jeśli pozwolimy na od N powyższym cztery wyrażenia.

Zauważ, że te wyrażenia są ułożone w taki sposób, że musimy połączyć różne wyniki DFT za pomocą par dodawania i odejmowania, które są znane jako motyle . Aby uzyskać minimalną liczbę operacji dla tego algorytmu, należy wziąć pod uwagę szczególne przypadki dla czynniki twiddle są jednością) i (gdzie czynniki twiddle to i można je pomnożyć szybciej); patrz np. Sorensen i in. (1986). Mnożenia przez odejmowanie lub odwrotnie).

Ten rozkład jest wykonywany rekurencyjnie, gdy N jest potęgą dwójki. Podstawowe przypadki rekurencji to N = 1, gdzie DFT jest tylko kopią N = 2, gdzie DFT jest dodatkiem i odejmowanie .

Te rozważania skutkują liczeniem: rzeczywiste dodawanie i mnożenie, dla N > 1 potęga dwóch. Ta liczba zakłada, że ​​​​dla nieparzystych potęg 2 pozostały współczynnik 2 (po wszystkich krokach podzielonej podstawy, które dzielą N przez 4) jest obsługiwany bezpośrednio przez definicję DFT (4 rzeczywiste dodawania i mnożenia) lub równoważnie przez a krok radix-2 Cooley-Tukey FFT.

  • R. Yavne, „ Ekonomiczna metoda obliczania dyskretnej transformaty Fouriera ”, w Proc. AFIPS Fall Joint Konf. komputera. 33 , 115-125 (1968).
  • P. Duhamel i H. Hollmann, „Algorytm Split-radix FFT”, Electron. Łotysz. 20 (1), 14–16 (1984).
  • M. Vetterli i HJ Nussbaumer, „Proste algorytmy FFT i DCT ze zmniejszoną liczbą operacji”, Signal Processing 6 (4), 267–278 (1984).
  • JB Martens, „Rekurencyjna faktoryzacja cyklotomiczna - nowy algorytm do obliczania dyskretnej transformaty Fouriera”, IEEE Trans. Akus., Mowa, przetwarzanie sygnału 32 (4), 750–761 (1984).
  • P. Duhamel i M. Vetterli, „Szybkie transformaty Fouriera: przegląd samouczków i stan techniki”, Signal Processing 19 , 259–299 (1990).
  • SG Johnson i M. Frigo, „ Zmodyfikowana FFT z podzieloną podstawą i mniejszą liczbą operacji arytmetycznych ”, IEEE Trans. Proces sygnału. 55 (1), 111–119 (2007).
  • Douglas L. Jones, „ Algorytmy Split-radix FFT” , witryna internetowa Connexions (2 listopada 2006).
  • HV Sorensen, MT Heideman i CS Burrus, „O obliczaniu FFT z podzieloną podstawą”, IEEE Trans. Akus., Mowa, Przetwarzanie sygnału 34 (1), 152–156 (1986).