Cooley-Tukey algoritme

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 10. februar 2022; verifikation kræver 1 redigering .

Cooley-Tukey-algoritmen er den mest almindeligt anvendte algoritme til beregning af Fast Fourier Transform . Algoritmen gør det muligt at udtrykke en diskret Fourier-transformation af længde svarende til et vilkårligt sammensat tal gennem et vist antal transformationer af mindre længde ved brug af rekursion , hvilket reducerer kompleksiteten af ​​beregninger til glatte . Opkaldt efter J. Cooley og J. Tukey .

Grundlæggende algoritme

For et vilkårligt naturligt tal, den diskrete Fourier-transformation af en kompleks vektor , hvor , er en kompleks vektor , hvor , hvis komponenter er givet af formlen

hvor .

For at konstruere algoritmen antages det, at der for nogle naturlige tal og og følgende substitution af indekser foretages [1] :

hvilket resulterer i

Dernæst transformeres vektorerne af input- og outputdata til todimensionelle arrays og givet af lighederne

Det er værd at bemærke, at komponenterne er bestilt anderledes end .

Dernæst lad og . Det er indlysende . Derefter, hvad angår todimensionelle variable, transformeres formlen til formen [2]

Beregning af længdetransformationen kommer således ned til at gøre følgende:

  1. Beregning af længdetransformationer .
  2. Multiplikation med komplekse "roterende" faktorer.
  3. Beregning af længdetransformationer .

Desuden, i stedet for komplekse additioner og komplekse multiplikationer af den oprindelige formel, indeholder det endelige skema ikke mere end komplekse additioner og komplekse multiplikationer [2] .

Hver af længdetransformationerne eller kan beregnes ved hjælp af forskellige hurtige algoritmer, især igen ifølge ovenstående skema. I dette tilfælde kan længdetransformationen repræsenteres i en form, der kræver komplekse multiplikationer [3] .

Algoritme til at basere to

I mange applikationer er længden af ​​transformationen en potens af to: . Så, i ovenstående skema, er muligheder eller mulige . I dette tilfælde taler man om Cooley-Tukey-algoritmen i base to [3] ( radix-2 ) . 

Hvis , så taler man om Cooley-Tukey-algoritmen med tidsudtynding [3] . I dette tilfælde transformeres ligningerne til formen

Hvis vi introducerer notationen og , så kan ligningerne omskrives som

En sådan operation kaldes normalt en "sommerfugl" .

Denne procedure kan anvendes rekursivt på inputvektoren . Ved hvert trin opdeles -punkttransformationen i to -punktstransformationer, som igen opdeles på samme måde, indtil længden af ​​transformationen bliver lig med én. Så er der et omvendt træk, ved hvert trin fordobles længden af ​​resultaterne af transformationerne ved hjælp af "sommerfugle". Med denne implementering udføres komplekse multiplikationer og komplekse additioner.

Denne proces er et eksempel på anvendelsen af ​​skille og hersk- teknikken . Men i mange implementeringer undgås direkte rekursion, og i stedet krydses beregningstræet i bredde-først søgerækkefølge .

Hvis , så taler man om Cooley-Tukey-algoritmen med frekvensdecimering [4] . I dette tilfælde transformeres ligningerne til formen

Raider-Brenner algoritme

Lade

Giv slip

Ved at bruge formlerne for frekvensdecimeringsalgoritmen er det let at verificere, at følgende relation holder:

Denne base-to-modifikation af algoritmen kaldes Rader-Brenner-algoritmen . Det gør det muligt at reducere beregningsmæssig kompleksitet på grund af enklere multiplikationer med rent imaginære konstanter [5] . Lignende formler kan opnås ved brug af reelle konstanter [6] .

Historie

Algoritmen og dens rekursive implementering blev opfundet omkring 1805 af K. Gauss , da han interpolerede banerne for asteroiderne Pallas og Juno [7] . Så blev opdagelsen ikke udbredt og blev først offentliggjort efter videnskabsmandens død på ny latin . Gauss-resultatet blev genfundet flere gange i forskellige former i løbet af de næste 150 år og blev populært efter offentliggørelsen i 1965 af en artikel af J. Cooleyfra IBM og J. Tukey fra Princeton , hvor algoritmen endnu en gang blev genopdaget, og en bekvem implementering til en computer også blev beskrevet [8] .

Det faktum, at Gauss var opdageren af ​​algoritmen, blev opdaget kun få år efter udgivelsen af ​​Cooley og Tukey. I deres artikel henviste de kun til I.J. Goods arbejde, hvor Goode-Thomas-algoritmen blev beskrevet .

At udtrykke Fourier-transformationen af ​​en længde i form af to længdetransformationer kaldes undertiden Danielsons lemmaLanczos , da det blev opnået af disse to forfattere i 1942 [9] .

Noter

  1. Blahut, 1989 , s. 129.
  2. 1 2 Blahut, 1989 , s. 130.
  3. 1 2 3 Blahut, 1989 , s. 133.
  4. Blahut, 1989 , s. 134.
  5. Blahut, 1989 , s. 138.
  6. Nussbaumer, 1985 , s. 92.
  7. Heideman, MT , Johnson, DH , Burrus, CS Gauss og historien om den hurtige Fourier-transformation  //  IEEE ASSP Magazine. - IEEE , 1984. - Vol. 1 , iss. 4 . - S. 14-21 . - doi : 10.1109/MASSP.1984.1162257 .
  8. Cooley, JW , Tukey, JW En algoritme til maskinberegning af komplekse Fourier-serier  //  Mathematics of Computation. - 1965. - Bd. 19 . - S. 297-301 . - doi : 10.1090/S0025-5718-1965-0178586-1 .
  9. Danielson, GC , Lanczos, C. Nogle forbedringer i praktisk Fourier-analyse og deres anvendelse på røntgenspredning fra væsker  //  Journal of the Franklin Institute. - 1942. - Bd. 233 , udg. 4 . — S. 365–380 . - doi : 10.1016/S0016-0032(42)90767-1 .

Litteratur

Se også