Rychlá Fourierova transformace

Rychlá Fourierova transformace ( FFT , FFT ) je algoritmus pro zrychlený výpočet diskrétní Fourierovy transformace , který umožňuje získat výsledek za kratší čas (požadovaný pro přímý výpočet podle vzorce). Někdy je rychlá Fourierova transformace chápána jako jeden z algoritmů, nazývaný frekvenčně-časový decimační algoritmus, který má složitost .

Algoritmus je použitelný pro všechny komutativní asociativní kruhy s jednotkou, častěji se používá v oboru komplexních čísel (c ) a na zbytkové kruhy (což je zejména počítačový celočíselný typ ).

Základní algoritmus

Při aplikaci základního algoritmu lze diskrétní Fourierovu transformaci provádět v akcích pro , zejména když jsou akce potřebné .

Diskrétní Fourierova transformace transformuje množinu čísel na množinu čísel , taková , kde  je primitivní kořen jednoty , tedy pro . Hlavním krokem algoritmu je zredukovat problém čísel na problém s menším číslem. Pro přes obor komplexních čísel zavedeme: , , kde  je libovolné číslo. Diskrétní Fourierova transformace může být reprezentována jako . (Tyto výrazy lze snadno získat, pokud se původní součet rozdělí na menší počet součtů s menším počtem členů a výsledné součty se pak posunem indexů a jejich následným přejmenováním dostanou do stejné podoby).

Takto:

.

S ohledem na to a konečný záznam:

.

Dále se vypočítá každý , kde , zde je stále nutné provádět akce, to znamená, že operace se provádějí v této fázi .

Dále se uvažuje kde . Při nahrazení v posledním vzorci zůstaly výrazy v závorkách nezměněny, a protože byly vypočteny již v předchozím kroku, je k výpočtu každého z nich zapotřebí pouze akce. Celková čísla. Operace v tomto kroku jsou tedy . To druhé platí s dobrou přesností pro všechny .

Je logické použít algoritmus rychlé Fourierovy transformace pro , protože s malým počtem vzorků poskytuje malý nárůst rychlosti ve srovnání s přímým výpočtem diskrétní Fourierovy transformace. K úplnému přechodu na sadu čísel jsou tedy nutné akce. Nezáleží tedy na tom, na která dvě čísla se má rozdělit  - odpověď se tím příliš nezmění. Počet operací lze snížit pouze dalším rozdělením .

Rychlost algoritmu :

To znamená, že počet operací pro jakékoli rozdělení na dvě čísla je , kde .

Inverzní Fourierova transformace

Pro inverzní Fourierovu transformaci můžete použít přímý algoritmus Fourierovy transformace - stačí použít místo něj (nebo použít operaci komplexní konjugace nejprve na vstupní data a poté na výsledek získaný po přímé Fourierově transformaci) a rozdělit konečný výsledek podle .

Obecný případ

Obecný případ lze zredukovat na předchozí. Pro držení:

.

Označení to dopadá:

,

pokud je uvedeno na .

Problém se tedy redukuje na výpočet konvoluce , ale to lze provést pomocí tří Fourierových transformací pro prvky: přímá Fourierova transformace se provede pro a , výsledky se vynásobí prvek po prvku a provede se inverzní Fourierova transformace.

Výpočet všeho a vyžaduje akci, tři Fourierovy transformace vyžadují akci, násobení výsledků Fourierových transformací vyžaduje akci, výpočet všeho, znalost hodnot konvoluce vyžaduje akci. Celkem diskrétní Fourierova transformace vyžaduje akce pro libovolné .

Tento algoritmus rychlé Fourierovy transformace může fungovat na prstenci pouze tehdy, když jsou primitivní kořeny jednoty známy v mocninách a .

Odvození převodu z diskrétního

Nejběžnějším rychlým algoritmem Fourierovy transformace je Cooley-Tukeyův algoritmus , ve kterém je diskrétní Fourierova transformace vyjádřena jako součet diskrétních Fourierových transformací nižších dimenzí a rekurzivně, aby bylo dosaženo složitosti . Elementární artikulační krok menších Fourierových transformací v tomto algoritmu se nazývá " motýl ". Ve výpočetní technice se nejčastěji používá rekurzivní půlení transformací základ 2 (ačkoli lze použít jakýkoli základ) a počet vstupních vzorků je mocninou dvou. Pro případy, kdy se diskrétní transformace vypočítává z počtu vzorků, které jsou prvočísly, lze použít algoritmy Bluestein a Rader.

Například pro výpočet rychlé Fourierovy transformace pomocí Cooley-Tukeyho algoritmu se základem 2 pro vektor sestávající z prvků:

,

s prvky formuláře:

diskrétní transformaci lze vyjádřit jako součet dvou částí: součet sudých indexů a součet lichých indexů :

.

Koeficienty a lze přepsat takto:

Jako výsledek:

Výpočet tohoto výrazu lze zjednodušit pomocí:

V důsledku zjednodušení označíme diskrétní Fourierovu transformaci sudých indexů pomocí a transformaci lichých indexů pomocí , for dostaneme:

Tato položka je základem Cooley-Tukeyho algoritmu se základem 2 pro výpočet rychlé Fourierovy transformace, to znamená, že diskrétní transformace z vektoru sestávajícího ze vzorků je redukována na lineární složení dvou diskrétních Fourierových transformací ze vzorků, a pokud původní úkol vyžadoval operace, pak pro výslednou skladbu - (kvůli opětovnému použití mezivýsledků výpočtů a ). Pokud je mocnina dvou, pak toto dělení může pokračovat rekurzivně, dokud nedosáhne dvoubodové Fourierovy transformace, která se vypočítá podle následujících vzorců:

Při rekurzivním dělení diskrétní Fourierovy transformace ze vstupních hodnot součtem 2 diskrétních transformací ze vstupních hodnot se složitost algoritmu rovná .

Odkazy