Gyors Fourier transzformáció

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 ).

Alap algoritmus

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 .

Inverz Fourier transzformáció

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 .

Általános eset

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 .

Konverziós származtatás diszkrétből

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 .

Linkek