A gyors Fourier-transzformáció ( FFT , FFT ) a diszkrét Fourier-transzformáció gyorsított kiszámítására szolgáló algoritmus, amely lehetővé teszi, hogy az eredményt rövidebb idő alatt kapja meg, mint a (közvetlen, képletenkénti számításhoz szükséges) idő alatt. Néha a gyors Fourier-transzformációt az egyik algoritmusként értelmezik, amelyet frekvencia-idő decimációs algoritmusnak neveznek, és amelynek összetettsége .
Az algoritmus minden egységgel rendelkező kommutatív asszociatív gyűrűre alkalmazható, gyakrabban a komplex számok mezőjére (c ) és a maradék gyűrűkre (amelyek különösen számítógépes egész típusúak ).
Az alapalgoritmus alkalmazásakor a diszkrét Fourier-transzformáció végrehajtható a műveletekben , különösen, ha műveletekre van szükség .
A diszkrét Fourier-transzformáció a számok halmazát számhalmazzá alakítja át úgy, hogy hol van az egység primitív gyöke , azaz -re . Az algoritmus fő lépése, hogy a számok problémáját egy kisebb számmal rendelkező feladatra redukálja. A komplex számok mezőjére bevezetjük: , , ahol tetszőleges szám. A diszkrét Fourier-transzformációt . (Ezek a kifejezések könnyen megszerezhetők, ha az eredeti összeget kisebb számú, kisebb tagszámú összegre osztjuk, majd az így kapott összegeket az indexek eltolásával, majd átnevezésével azonos formára hozzuk).
Ilyen módon:
.Figyelembe véve, hogy és , a végső rekord:
.Továbbá mindegyik kiszámításra kerül , ahol , itt még műveleteket kell végrehajtani, vagyis a műveleteket ebben a szakaszban kell végrehajtani .
Továbbá figyelembe veszik, hogy hol . Az utolsó képletben a csere során a zárójelben lévő kifejezések változatlanok maradtak, és mivel az előző lépésben már ki lettek számítva, mindegyik kiszámításához csak műveletek szükségesek. Összes számok. Ezért ebben a lépésben a műveletek a következők . Ez utóbbi jó pontossággal mindenre igaz .
Logikus a gyors Fourier-transzformációs algoritmus használata -re , mert kis számú minta esetén kis sebességnövekedést ad a diszkrét Fourier-transzformáció közvetlen számításához képest. Így ahhoz, hogy teljesen áttérjünk egy számkészletre , cselekvésekre van szükség. Ezért nem mindegy, hogy melyik két számra bontsuk fel – a válasz ettől nem sokat fog változni. A műveletek száma csak további particionálással csökkenthető .
Algoritmus sebessége :
Vagyis a két számra osztott műveletek száma , ahol .
Az inverz Fourier-transzformációhoz használhatja a közvetlen Fourier-transzformációs algoritmust - csak helyette kell használnia ( vagy alkalmaznia kell a komplex konjugációs műveletet először a bemeneti adatokra, majd a közvetlen Fourier-transzformáció után kapott eredményre), és el kell osztania az végeredmény .
Az általános eset az előzőre redukálható. Tartásokhoz :
.A jelölésből kiderül:
,ha a .
Így a probléma a konvolúció kiszámítására redukálódik , de ezt három Fourier-transzformációval is megtehetjük az elemekre: végrehajtjuk a közvetlen Fourier-transzformációt és -re , az eredményeket elemenként megszorozzuk, és végrehajtjuk az inverz Fourier-transzformációt.
Az összes kiszámítása és cselekvést igényel , három Fourier-transzformáció cselekvést igényel, a Fourier-transzformációk eredményének szorzása cselekvést igényel , a konvolúció értékeinek ismerete minden kiszámítása cselekvést igényel. Összességében a diszkrét Fourier-transzformáció műveleteket igényel bármely .
Ez a gyors Fourier-transzformációs algoritmus csak akkor tud működni egy gyűrűn, ha az egység primitív gyökerei ismertek és hatványaiban .
A legelterjedtebb gyors Fourier-transzformációs algoritmus a Cooley-Tukey-algoritmus , amelyben a diszkrét Fourier-transzformáció kisebb dimenziójú diszkrét Fourier-transzformációk összegeként és rekurzív módon fejeződik ki a komplexitás elérése érdekében . A kisebb Fourier-transzformációk elemi artikulációs lépését ebben az algoritmusban " pillangónak " nevezzük. A számítástechnikában a transzformációk leggyakrabban használt rekurzív felezése a 2. bázis (bár bármelyik bázis használható), a bemeneti minták száma pedig kettő hatványa. Azokban az esetekben, amikor a diszkrét transzformációt a prímszámú minták számából számítják ki, a Bluestein és Rader algoritmusok használhatók.
Például a gyors Fourier-transzformáció kiszámításához a Cooley-Tukey-algoritmus segítségével 2-es bázissal egy elemekből álló vektorhoz :
,az űrlap elemeivel :
A diszkrét transzformáció két rész összegeként fejezhető ki: a páros indexek összege és a páratlan indexek összege :
.Az és együtthatók a következőképpen írhatók át:
Ennek eredményeként:
Ennek a kifejezésnek a kiszámítása egyszerűsíthető:
Az egyszerűsítések eredményeként a páros indexek diszkrét Fourier-transzformációját -val jelölve, a páratlan indexek transzformációját pedig -vel jelölve kapjuk:
Ez a bejegyzés a Cooley-Tukey algoritmus alapja 2-es bázissal a gyors Fourier-transzformáció kiszámításához, vagyis a mintákból álló vektorból származó diszkrét transzformációt két mintákból származó diszkrét Fourier-transzformáció lineáris összetételére redukáljuk , és ha a eredeti feladat műveleteket igényelt, majd a kapott összetételhez - (a számítások köztes eredményeinek újrafelhasználása miatt és ). Ha kettő hatványa, akkor ez az osztás rekurzív módon folytatható, amíg el nem éri a kétpontos Fourier-transzformációt, amelyet a következő képletekkel számítunk ki:
Ha rekurzív módon elosztjuk a diszkrét Fourier-transzformációt a bemeneti értékekből 2 diszkrét transzformáció összegével a bemeneti értékekből, akkor az algoritmus összetettsége egyenlővé válik .