DK163079B - Apparat til at udfoere den diskrete fourier-transformation - Google Patents
Apparat til at udfoere den diskrete fourier-transformation Download PDFInfo
- Publication number
- DK163079B DK163079B DK388681A DK388681A DK163079B DK 163079 B DK163079 B DK 163079B DK 388681 A DK388681 A DK 388681A DK 388681 A DK388681 A DK 388681A DK 163079 B DK163079 B DK 163079B
- Authority
- DK
- Denmark
- Prior art keywords
- address
- addresses
- values
- memory
- relative
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
i
DK 163079 B
Den foreliggende opfindelse angår et apparat til at udføre en cHskret JFourier-_transformation (DFT), således som angivet i den indledende del af krav 1.
5 Der er forskellige kendte algoritmer til at reducere den diskrete Fourier-transformation for N værdier til medgørlige proportioner, når N er stor, f.eks. af størrelsesordenen 1000 eller større. En del algoritmer af denne art er beskrevet i kapitlet "Discrete Fourier Transforms" i bogen "Digital Pro-10 cessing of Signals" af Gold og Rader, Mc-Graw-Hill 1969. Værdierne er i almindelighed komplekse størrelser, selv om det første gamle sæt eller indgangssættet, dvs. det sæt man går ud fra, og det sidste nye sæt, eller udgangssættet, altså det sæt man ender med, meget vel kan være reelle størrelser f.eks. ved 15 transformation af tidssampler fra en bølgeform til komponenter i et frekvensspektrum eller omvendt.
I en version af algoritmen, der kendes som Cooley-Tukey-algo-ritmen, eller den hurtige Fourier-transformation på engelsk: 20 "fast Fourier transform", som hyppigt forkortes til FFT, er N = 2p.
Andre versioner af DFT algoritmen, som f.eks. Winograd algoritmen kræver, at N er produktet af flere små tal, som er ind-25 byrdes primiske (eng: relatively prime), hvilket betyder to (eller flere) heltal, som ikke har andre fælles divisorer end +1 og -1 (9 og 25 er f.eks. indbyrdes primiske).
F.eks. har man: 30 N = 840 =3x5x7x8.
En større værdi af N kan f.eks. fås således: N = 1260 =4x5x7 x9. 1 I denne klasse af algoritmer skal en N-værdi DFT udføres på et sæt af N komplekse dataenheder, hvor N er en sammensat størrelse af k dimensioner, N = Nq x Nj x ____ Ν|ς, og hvor Nj, N2, 2
DK 163079 B
.... N|< er indbyrdes primiske tal (dvs. ikke indeholder nogen indbyrdes fælles faktorer). Hele operationen kan adskilles i en række af k trin, i =1, 2, .... k med N/Ni Ni-værdi-trans-format ioner.
5
Opfindelsen angår et problem, som er velkendt i relation til DFT'er, og f.eks. er forklaret i Gold og Raders bog. Dette problem er ombytningen af udgangsværdier i forhold til indgangsværdierne i det værdisæt, som man ender med (udgangssæt-10 tet).
Selv om ombytningen altid sker efter en vis orden, og dens natur kan beregnes, kan en reetablering af den rigtige orden, som er nødvendig for en algoritme af Winograd-typen, ikke op-15 nås efter en simpel iterativ, bitreversabel regel af den art, der er beskrevet i britisk patentbeskrivelse nr. 1.407.401 for en algoritme af Cooley-Tukey-typen.
US patentskrift nr. 3.812.470 beskriver en programmerbar digi-20 tal signalprocessor til en hurtig Fourier-transformation, som anvender flere uafhængigt adresserede datahukommelsesmoduler for gamle værdier og for transformerede værdier.
US patentskrift nr. 3.591.784 beskriver en reeltids-digital 25 Fourier analysator, der anvender to separate hukommelser til at udføre en diskret Fourier-transformation med Danielsen-Lanczos-algoritmen. Adresseringssystemet kræver to hukommelser, en til indgangsdataadresser og den anden til udgangsdataadresser.
30 US patentskrift nr. 4.156.920 beskriver en computersystemstruktur og funktion til at udføre en diskret Fourier-transformation af Winograd-algori tmen og bygger på en indgangsvektorombytningsfunktion og en udgangsvektorombytningsfunktion 35 (reordering operation).
Det er ønskeligt at være i stand til at udnytte det samme basisapparat til at udføre et vi 1 kår 1 i gt sæt af forskel 1iqe 3
DK 163079 B
DFT'er, som ombytnings-funktionerne generelt set vil være forskellige for. Formålet med den foreliggende opfindelse er at tilvejebringe et apparat, der er i stand til at opfylde sådanne krav.
5
Opfindelsen er ejendommelig ved, at datahukommelsesadresseringsorganerne omfatter organer til at lagre en basisadresse, en adressehukommelse, der lagrer relative adresser, organer til at addere de relative adresser fra adressehukommelsen til 10 basisadressen modulo N, hvor antallet af værdier i transformationen er N, for at danne adresser til datahukommelsen, og yderligere adresseringsorganer indrettet til gentagne gange at adressere sekvenser af positioner i adressehukommelsen for at udlæse de relative adresser, idet de lagrede relative adresser 15 er således, at rækkefølgen eller ordenen af det sidste sæt af de nye værdier ikke ombyttes.
Med modulo N menes den matematiske operation, hvori resultatet er "resten", efter at en første operand er blevet divideret 20 med den anden operand, som ern N. "Resten" er også den tælling, som er en tæller - eller adder vil vise, hvor tælleren eller addereren maksimalt kan tælle til N, og derefter starte forfra, som det er typisk for logiske kredsløb.
25 De forskellige hukommelser kunne være dele af en stor hukommelse, men separate komponenter anvendes fortrinsvis, eftersom datahukommelsen skal være en læse/skrivehukommelse, mens adressehukommelsen fortrinsvis er en form for ROM, f.eks. en PROM.
30
For at lave apparatet fuldstændigt fleksibelt, foretrækkes det, at adressehukommelsen lagrer sekvensen af relative adresser både for udlæsning og indskrivning af data. 1
En yderligere reduktion i mængden af data, som indeholdes i adressehukommelsen, opnås ved en yderligere fordelagtig udvikling af opfindelsen, ifølge hvilken adressehukommelsen også
DK 163079B
4 indeholder forskydninger (eng: offsets), som periodisk udlæses for at modificere basisadressen. En særlig fordelagtig udførelsesform, hvori en gruppe på n. værdier på en gang undergår den elementære diskrete Fourier-transformation, hvor ji er en 5 indbyrdes primisk faktor af N, indeholder adressehukommelsen i rækkefølge for hvert trin, n. relative adresser for dataudlæsning, ji relative adresser for dataindlæsning, og en forskydning som forøger basisadressen efter hver elementær n_-værdi-di skret Fourier-transformation.
10
Det vil blive vist, at dette tillader alle N værdier at blive adresseret i et trin i grupper på ji ved anvendelse af blot et sæt af jn adresser og en forskydning, som gentagne gange, dvs. (m.-l) gange, forøger basisadresse modulo N, hvor m = N/n.
15
Apparatet har fortrinsvis organer til at vælge mellem tilstande for at udføre forskellige diskrete Fourier-transforma-tioner og for at vælge tilsvarende afsnit af adressehukommelsen. Dette gør apparatet meget fleksibelt, således at det op-20 fylder et bredt område af krav.
I den specifikke udførelsesform, som beskrives i det følgende, kan apparatet behandle inverse og fremadrettede 840 punkts transformationer og 94, 168 og 420 punkts inverse transforma-25 tioner. En fremadrettet transformation foregår fra tidsdomæne til frekvensdomæne og med en invers transformation menes en transformation fra frekvensdomæne til tidsdomæne.
Opfindelsen skal i det følgende forklares nærmere under hen-30 visning til tegningen, hvor fig. 1 viser et blokdiagram af en udførelsesform af et kredsløb ifølge opfindelsen og 35 fig. 2 et rutediagram, der viser de vigtigste funktionstrin.
En mikroprocessor 10 vist i fig. 1 kan være en af de mange i handelen værende integrerede kredsløb, som f.eks. en 8-bit mi- 5
DK 163079 B
kroprocessor med en 8-bit databus 12, en 16-bit adressebus 14 og en kontrolbus 16 med linier til "handshake", til behandling af "interrupt", til fastlæggelse af, om der læses fra eller skrives i hukommelsen osv. Disse busser er på konventionel 5 måde tilsluttet perifere apparater og en læse- skrivehukoro-melse i form af et RAM-lager 18. De perifere apparater er vist som en indgangsenhed 20, som er kilden for indgangsdata, dvs.
DFT-indgangsværdisættet, en udgangsenhed 22, f.eks. en printer til resultaterne og et tastatur 24, som kan være et fuldt al-10 fanumerisk tastatur, et mindre numerisk tastatur eller et sæt kundespecificerede taster på en forplade til DFT-instrumentet.
Mikroprocessoren er programmeret til at udføre to hovedfunktioner (ud over ind- og udlæsning af data). Den udfører de 15 elementære DFT1 er på basis af de velkendte DFT-algoritmer. Den styrer også den samlede rækkefølge af operationer via dekoder-logikkredsløbet 26 ifølge rutediagrammet fig. 2. Programmerne er indbygget på konventionel måde som faste programmer ("firm ware"), vist som en program-ROM 28. Som det fremgår af det 20 hidtil beskrevne er opbygningen et ret typisk mikroprocessorsystem, og en yderligere detaljeret beskrivelse er ikke nødvendig. Den detaljerede udførelse vil i alle tilfælde afhænge af den specielle mikroprocessorchip, som man vælger at anvende.
25 Dekoder-logikkredsløbet 26 leverer indlæsnings-, tælle- og startsignaler til en adressegenerator 32, 36, 46, 50, som vil blive beskrevet i det følgende, og som danner adresserne til RAM'en 18 på en bus 30 til ind- og udlæsning af data. Eftersom instrumentet behandler værdisæt på op til 840 værdier, kræves 30 der 10 bit (2l° = 1024) for at adressere værdierne. Imidlertid behøver disse 10 bit ikke nødvendigvis at blive anvendt som de mindst betydende bit, således som det vil blive forklaret i det følgende. 1
Adressebussen 14 er ikke identisk med RAM-adressebussen 30.
Disse busser er adskilt af en buffer 15, og logikkredsløbet 26 bestemmer, hvornår en multiplekser 50 i adressegeneratoren 6
DK 163079 B
(som beskrives nedenfor) aktiveres (enables), og hvornår bufferen 15 aktiveres (enables) med signaler EN. Adressebussen 14 med bufferen 15 vælges under dataindlæsning og -udlæsning, mens multiplekseren 50, som genererer adresserne, der anvendes 5 under DFT-behandli ngen, er aktiveret (enabled) under en sådan behandl i ng.
I en særlig udførelsesform har adressegeneratoren 32, 36, 46, 50 tolv adressebit, selv om størrelserne af de hidtil anvendte 10 DFT-er ikke anvender mere end ti bit. Alle tolv bit er forbundet til RAM'en 18. RAM'en 18 er 32 bit bred, hvoraf 16 bit indeholder de reelle data og 16 de imaginære data. Data tilføres til to 16 bit aritmetriske enheder, dvs. mikroprocessorer, som udfører DFT-operationerne. Databitene er i dette tilfælde de 15 mindst betydende adressebit, selv om der sædvanligvis og især ved en aritmetrisk enhed eller mikroprocessor, som behandler data i byte, eller hvor der anvendes multipel præcisionsaritmetik, vil blive tilført ekstra mindst betydende adressebit fra mikroprocessoren.
20 I en anden mulig byte-orienteret udførelsesform kan en eller flere mindst betydende bit f.eks. tilføres af mikroprocessoren, eftersom hver værdi består af to dele (den reelle og den imaginære del), og disse kan meget vel have multipræcision.
25 Hvis der f.eks. anvendes dobbelt præcision, består hvert punkt/værdi af 4 byte, og hvis adressebussen består af linierne A0-A15, vil mikroprocessoren tilføre A0 og Al (for i rækkefølge at udvælge de to byte for de to dele af hver værdi), 10-bit-bussen 30 vil tilføre A2 til All for at vælge vær-30 dierne, og mikroprocessoren vil tilføre A12 til A15 i overensstemmelse med det område af hukommelsesplanen (eng: memory map), som repræsenterer RAM'en 18. 1 bit værdiadressen på bussen 30 dannes i hovedsagen som sum-35 men af en basisadresse indeholdt i en 16 bit bred latch 32, (et digitalt holdekredsløb), og udgangssignalet fra en 256 ords-, 12 bit bred PROM 34, og summen dannes af en 12 bit bred 7
DK 163079 B
første, fuld additionsenhed ("ful! adder") 36. De nævnte bit-bredder er bestemt af til rådighed værende, egnede 8-bit og 4-bit enheder og er mere end tilstrækkeligt for de krævede 10 bit til værdiadressen.
5 På hvert trin af DFT'en indlæses (loades) en tilsvarende startadresse i en 8 bit latch 38. På hvert trin behandles de N værdier i overensstemmelse med Winograd algoritmen som en række af m grupper bestående af n, værdier, hvor m = N/ri, og i 10 det betragtede eksempel er n,: = 3, 4, 5, 7 eller 8, som der vil fremgå af det følgende. Ved starten på hver gruppe af værdier, overføres startadressen i latchen 38 til en 8 bit tæller 40, som gennemtæller yderligere 2n. adresser for i PROM'en 34 at få adgang 15 - for det første til de relative adresser for de ji værdier i gruppen, som skal underkastes den elementære ji-værdi DFT-be-handling (relativ i den forstand, at de adderes til basisadressen i latchen 32), 20 - for det andet til de relative adresser, hvori de ri nye værdier, som dannes ved den elementære DFT-behandling, skal indskrives eller tilbageskrives i hukommelsen, og 25 - for det tredje til en forskydningsværdi (offset), som be stemmer den nye basisadresse i latchen 32.
Ved begyndelsen af behandlingstrinnet fyldes en 12-bit tæller 42 med antallet m af grupper i rækken. Tælleren nedtælles, 30 hver gang en gruppe er behandlet, og tællerens nul-tilstand angiver, at det næste trin skal udføres.
Resten af kredsløbene gør det muligt for adresserne at "rotere" således, at hvis N = 840, vil adressen 841 blive til adressen 35 i, osv., dvs. adresserne er begrænset til et område fra 0 til N. Til dette formål opbevares komplementet til N, dvs. -N, i en 16-bit latch 44, og en anden 12-bit additionsenhed 46 adderer 8
DK 163079 B
komplementet til N, dvs. -N, til udgangsværdien fra additionsenheden 36. Den frembragte mente overføres på en linie 48, som styrer en multiplekser 50 med to indgange og en udgang (1 out of 2, 12-bit wide). Hvis menten ikke frembringes, ignoreres 5 udgangssignalet fra den anden additionsenhed 46, og den første additionsenhed 36 leverer adressen til bussen 30. Hvis menten dannes, anvendes udgangssignalet fra den anden additionsenhed 46 som adresse til bussen 30.
10 Efter at hver gruppe bestående af værdier er blevet behandlet, adderer den første additionsenhed 36 forskydningsværdien fra PROM'en 34 til indholdet i latchen 32 for at danne den nye basisadresse, som via bussen 30 føres tilbage til latchen 32.
15 Betydningen af disse operationer vil det følgende blive forklaret nærmere ud fra et eksempel.
Instrumentet er konstrueret til i almindelighed at udføre Wi-nograd-algoritmen og er specielt programmeret med adresser til 20 fem forskellige tilstande, som er anført i tabel 1.
• TABEL' 1
Transformations- Antal vær- Opdeling af 25 Tlistancl retning. .......die* 'KL N
1 Inverteret 84 3x4x7 2 " 168 3x7x8 3 " 420 3 x 4 x 5 x 7 4 " 840 3 x 5 x 7 x 8 30 5 Direkte 840 3x5x7x8 i
Tabel 2 giver en fuldstændig liste af indholdene i den programmerbare hukommelse PROM 34 for tilstandene 1 og 5. Li-35 sterne over indholdene i hukommelsen for tilstandene 2, 3 og 4 er udeladt for at forenkle tabellen. Tallene i parentes er de hexadecimale adresser i PROM'en, dvs. de adresser, som tilve- 9
DK 163079 B
jebringes af tælleren 40. Numrene, som følger efter disse adresser, er indholdet i PROM'en i decimaltal.
TABEL 2 5 _
Tilstand 1 5 N__84__84Q_ n - 3 4 7 3 57 3 Ξ__23 21 12 280 153 1120 105 10
De rela- (30) o (07) o (lo) 0 (A2) 0 (A9) 0 (BU) 0 (C3) 0 tive udlæsnings- (01)55 (03)53 (11)43 (A3)2SO (AA)336 (35)120 (04)103
adresser (02)28 (09)42 (12)12 (Λ4)55ΰ (A3)672 (36)240 (C5 )21C
for
RflM'en 18 . (0A)21 (13)60 (AC)1S8 (37)360 (06)315 15 (14)24 (AD)504 (38)480 (07)420 (15) 72 (39)600 (08)525 (16) 36 (DA)72C (09)630 (CA)735 20 -------
De rela- (03)0 (OB) 0 (17)0 (A5) 0 (AB) C (33) 0 (03) 0 f-ιtre ind—
læsnings- (°4)2S C0C)21 (18)12 (A5)230 (AF)16S (30)120 (CC)ICS
adresser (05)55 (0D)42 (19)24 (A7)560 (30)336 (3D)240 (CD)210 for
RAM'en 18 (CE)53 (1A)36 (31)504 (3E)360 (CE)31S
25 (13)48 (32)672. (3F)480 (CF)42C
(10)60 (00)600 (30)525 (ID)72 (01)720 (Dl)630
(D2)73S
__L__T__L__ 30 Forskyd- '06)33| (0F)4C (UC)49 (A8)393 (33)505 (02)553 (D3)568 ning i Søjle 1 2 3 4 5 6 7 .11· III· i lim “i··™ j 35 Det ses, at i søjlerne 1, 2, 3 og 5 i tabel 2 tilbageskrives nogle af de nye værdier på nye adresser (en permutation af de gamle adresser). I søjlerne 4, 6 og 7 permuteres adresserne
DK 163079B
10 ikke. Dette skyldes blot de specifikke operationer, som har vist sig at være nødvendige for at opnås det samlede slutresultat: at udgangsværdierne ikke er ombyttede i forhold til indgangsværdierne. En fordel ved opfindelsen er, at det er mu-5 ligt at programmere PROM’en 34 til at opfylde et hvilket som helst krav for lige så mange forskellige tilstande, som det ønskes.
I det følgende vil en del af den detaljerede operation i til-10 stand 5 blive betragtet. "-N"-latchen 44 vil indeholde -840, dvs. komplementet til 840. Det antages, at det første trin med n = 3 er gennemført, og at det andet trin ji = 5 skal begynde.
I m-registeret (m-tælleren 42) står 168, eftersom der er udført 168 elementære DFT-behandli nger. Den hexadecimale adresse 15 A9 indføres i startadresseregisteret 38. Operationerne indtræder derefter som angivet i tabel 3. Udgangsværdien fra den af additionsenhederne, som ignoreres, er anført i parentes, og er blot angivet som et (-), når den anden additionsenhed ikke frembringer en mente. Adressen på bussen 30 står i parentes, 20 når den ikke anvendes til at adressere RAM'en 18, men danner den nye basisadresse, som indføres i latchen 32.
Adresser er i princippet uden fortegn. Vælgersignalet 48 tages fra menteudgangen på den anden additionsenhed 46. Derved bliv-25 er det muligt for 12 bit-kredsløbet at arbejde korrekt med DFT-størrelser over 11 bit. Hvis f.eks. N = 3000, er komplementet til N: » 4096 -3000 = 1096 i 12 bit. Lægges dette til en adresse fra den første additionsenhed 36, lad det være 23, vil der fremkomme et resultat på den anden additionsenhed 46 30 på 1096 +243 * 1119, som er positivt i 12 bit, men der vil ikke blive dannet nogen mente.
Hvis en mente ikke dannes, ignoreres udgangsværdien fra den anden additionsenhed 46, og den første additionsenhed 36 dan-35 ner en værdiadresse på bussen 30. Hvis en mente dannes, vil udgangsværdien fra den anden additionsenhed 46 blive overført som adresse på bussen 30.
DK 163079 B
li TABEL 3 , Første' Anden _ ' Adresse aoresse- Basis- p^qm addi- addi- — , på bus p.
J-aal 1 ay a/^rpccp ^·ρ"| 1 p’’-' Furie uj.Or< .Æiier aoresse ud_ tions- tions- ® lin (is+->v .__, , , 42 30 hu gang enhed enhed 32) " udcarKi ndcancr_____ ----indlæs start- A9 . . adresse_ A9 0 0 0 (-) 158 0 AA 0 336 335 (-) 168 336 udlæs fan 10 AB 0 672 672 (-) 168 672 gamle værdier
til DFT
AC 0 168 168 (-) 168 168 AD 0 504 504 (-) 168 504 i AE 0 0 0 (-) 168 0 15 AF 0 168 168 (-) 168 168 Indlæs igen BO 0 336 335 (-) 168 336 fan ,værdier
Bl 0 504 504 (-) 168 504 fra DFT
B2 0 672 672 (-) 168 672 ---- Nedtæl m. Inc- B3 0 505 505 (-) 167 (505) ibasisadres- 20 p g 505 se. Genindiæs startadresse , A9 5C5 0 505 OO 167 505 | AA 505 336 (Sti) 1 167 1 ! fan gamle AB 505 672 (1177) 337 167 337 -værdier
25 AC 505 168 673 (-) 167 673 til DFT
AD 505 504 (1009) 169 167 169 AE 505 0 505 (-) 167 505 , \ rno Indlæs igen AF 505 168 673 (-) 167 673 f^ nye BO 505 336 (841) 1 167 1 værdier
30 . „ ‘til DFT
Bl 505 504 (1009) 169 167 169 | B2 505 672 (1177) 337 167 337 j .. ..............Ί ~ ’ Nedtæl m. Inc-~i B3 505 505 (1010) 172 166 (505) i« .q -inn se. Indlæs igen startadresse. | 35 -——-—--
Tabel 4 viser afslutningen af samme trin og starten af det næste trin for n = 7.
DK 163079B
12 TABEL 4 PROM Basis- 1'Første Anden m - Adresse adresse-prom addi- addi- t^gr på bus Funktion ^ler (Latch “ ggg" 42 3° 5 _ o2) _. ^rpnc (udgang--- A9 335 0 335 (-) 1 335
Udisas de AA 335 335 571 (-) _. 1 671 sidst£ fea AB 335 672 (1007) 167 1 167 gamle vær-_ , . , ... dier til DIT? AC 335 158 503 (-) 1 503 j 10 AD 335 504 839 (-)__1 839__|
Ai- 35s 0 335 (-) 1 335 inaskriv AF 335 168 503 ’ (-) 1 503 , de sidste j fem nye | BO 335 336 671 (-) 1 671 værdier fra !
Bl 335 504 839 (-) 1 839 EET j
15 B2 335 672 (1007) 167_1 167_I
B3 335 505 (840) 0 0 (0) m -tæller = 0 : indfør ny-startadresse B4 i start- latch'en 38, nulstil basisadresselatch’en, indlæs ny m-værdi . ; BH 0 0 0 (-) 120 0 j 20 BS O 120 120 (-) 120 120 & ' B5 0 2H0 2H0 (-) 120 2H0 første syv j B7 0 360 360 (-) 120 360 j B8 O H 80 480 (-) .120 480 B9 0 600 600 (-) 120 600 25 BA 0 720 · 720 (-)__120 720__;_! BB 0 0 0 (-) 120 0 BC 0 120 120 (-) 120 120 -indskriv ? BD 0 240 240 (-) 120 240 ^ .værdier
BE 0 360 360 (-) 120 360 fra DFT
30 BF 0 480 480 (-) 120 480 CO 0 600 600 (-) 120 600 |
Cl 0 720 720 (-)_120 720 _ΐ C2 0 553 553 (-) 119 (453) Nedtæl £ 3_ B4 553___' · Indlas basisadresse. Indlæs igen start- _ B4 553 0 553 (-) 119 553 -- B5 553 120 673 (-) 119 673
Osv. ......
13
DK 163079 B
Den samlede rækkefølge af operationerne er relativ ligetil, »en for fuldstændighedens skyld er der i fig. 2 vist et rutediagram af de operationer, som mikroprocessoren er programmeret til at udføre, i hovedsagen ved hjælp af dekodningen i lo-5 gikkredsløbet 26, som danner de forskellige indgangsværdier (load) og andre signaler til kredsløbene i fig. 1.
Programmet sørger endvidere for at indføre den korrekte N-værdi for den valgte tilstand, indføre de korrekte jn-værdier og 10 holde tal på hver gruppe med ji værdier og på trinnene. Mange variationer af den beskrevne udførelsesform er mulige. Nogle variationer vil afhænge af arten af den opbyggede logaritme. I fig. 1 er PROM'en 34 anvendt til både at bestemme udlæse og i ndskrivni ngsadresser. For vi sse algoritmer kan PROM'en kun 15 anvendes til at bestemme et adressesæt, da de andre er i rækkefølge. For visse algoritmer kan PROM'en også anvendes til at fremkalde de korrekte koefficienter for enhver elementær DFT.
Andre variationer vedrører den mere detaljerede udformning, 20 f.eks. den måde, hvorpå funktionerne fordeles mellem en passende programmeret mikroprocessor og de tilhørende kredsløb.
Tabel 5 angiver kredsløbsenheder, der kan købes, og som er anvendelige til de kredsløb, der er vist i fig. 1.
25 TABEL 5
Buffer 15 2 x 74LS244
Startadresse-latch 38 1 x 74LS374 PROM adresse-tæller 40 2 x 74S163 30 PROM 34 2 x 74S1287 eller 3 x 82S129
Basisadresse-latch 32 2 x 74LS273 m-tæller 42 3 x 74S169
Additionsenhed 36 og additionsenhed 46 hver 3 x 745283 35 -N latch 44 2 x 74LS374
Mult i piekser 50 3 x 74S257 14
DK 163079 B
Selv om tabel 2 giver specif i kke eksempler på startadresser i PROM'en, vil beskrivelsen af opfindelsen blive afsluttet med en forklaring af, hvorledes disse ad.resser udledes. En N værdi DFT skal udføres på et sæt af N komplekse dataemner, hvor N er 5 en sammensat størrelse med k dimensioner, N = Nj x N2 x ... x N|<, og hvor Nj, N2, ... N|< er indbyrdes primiske (dvs. de ikke har nogen fælles faktorer). Hele operationen kan opdeles i en serie på k triner, i = 1, 2, ...k, med N/Ni Ni-værdi-transfor-mationer.
10
For et givet trin i, svarende til dimensionen Ni, er de Ni værdier, hvorpå en Ni-værdi-transformation skal udføres, adskilt i placering i rækken af punkter/værdier med en afstand 15 (On/N<)n' hv°r ())n angiver reduktion modulo N, og hvor er Eulers totientfunk-tion for Νη·, defineret som det antal af heltal mindre end Ni, 20 som ikke har nogen faktor andet end 1 fælles med Ni. Værdierne for Φν-i for nogle små heltal er: Ν,· = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 φΝΐ = 012242646 4 10 4 12 6 25
De Νη· resultater fra Ni-værditransformationen indskrives igen i rækken i en permutation af indgangspositioner, denne gang adskilt med en afstand N/Ni. 1 35
Omfordelingen (remapping) af indgangs- og udgangspositioner, beregnede modulo N, udgør på hvert trin et element af den samlede omordning, som er nødvendig for at danne sekventielt adresserede udgangsværdier fra sekventielt adresserede indgangsværdier .
DK 163079 B
15
Den ovenfor anførte indgangsseparering stemmer for den fremadrettede transformering. For den inverterede transformering vendes indgangsordenen ved anvendelse af en separation på • (i· -
De N/N.,·-grupper på en N.,· værdier er adskilt af en forskydning i forhold til den foregående gruppe med en afstand 10 " " j = l Nj//N j/i 15
Det er denne formel, der anvendes til at udlede forskydningerne, som er angivet i tabel 2. Resultatet af de N/N^ transformationer er imidlertid uafhængig af den orden, hvori de udføres .
20 Værdierne af de Ni indgangsadresser og Ni udgangsadresser i forhold til adressen af den første indgangsværdi for Ni-værdi-transformat ionen beregnes på forhånd ud fra de ovenstående ligninger, og oplagres sammen med de mellemliggende gruppers forskydningsafstand i adresse-PROM'en.
Indgangs- og udgangsadresser og gruppeseparationen for dimensionen Ni oplagres i adresse-PROM * en i den orden, hvori de skal anvendes af DFT-rutinen for den dimension. Tabellen 2 giver et eksempel på dette (dvs. den korrekte orden for et sæt 30 DFT-rutiner, som får deres indgangsværdier i rækkefølgen X(0), X(l)/ X(2), ... X(N^-l), og som oplagrer deres udgangsværdier i rækkefølgen X(l), X(2), X{3), ... X(Ni-l), X(o), og går derefter videre til den næste værdigruppe.
35
Claims (4)
1. Apparat til at udføre en diskret Fourier-transformation 5 for N værdier, hvor N er produktet af indbyrdes primiske faktorer, omfattende en datahukommelse (18), organer til i hvert af en rækkefølge af trin af transformationen at udføre elementære diskrete Fourier-transformationer på sæt af gamle værdier udlæst fra datahukommelsen (18), for derved at danne sæt af 10 nye værdier, som atter indskrives i datahukommelsen (18), og datahukommelses-adresseringsorganer (32, 34, 36, 44, 46, 50) til at adressere datahukommelsen (18) for udlæsning af gamle værdier og genindskrivning af nye værdier, kendetegnet ved, at datahukommelsesadresseringsorganerne omfatter 15 organer (32) til at lagre en basisadresse, en adressehukom melse (34), der lagrer relative adresser, organer (36, 44, 46, 50) til at addere de relative adresser fra adressehukommelsen (34) til basisadressen modulo N, hvor antallet af værdier i transformationen er N, for at tilvejebringe adresser til data-20 hukommelsen (18), og yderligere adresseringsorganer (38, 40) indrettet til gentagne gange at adressere sekvenser af positioner i adressehukommelsen (34) for at udlæse de relative adresser, idet de lagrede relative adresser er således, at ordenen af det sidste sæt af de nye værdier ikke er byttet om 25 (bragt ud af orden i forhold til rækkefølgen af det første sæt).
2. Apparat ifølge krav 1, kendetegnet ved, at adressehukommelsen (34) lagrer forskellige sekvenser af rela- 30 tive adresser for udlæsning og indlæsning (indskrivning) af data.
3. Apparat ifølge krav 1 eller 2, kendetegnet ved, at adressehukommelsen (34) også indeholder forskydninger (off- 35 sets), som periodisk udlæses for at modificere basisadressen. 1 2 Apparat ifølge krav 3, kendetegnet ved, at for 2 hvert trin undergår en gruppe på n. gamle værdier ad gangen den DK 163079 B elementære diskrete Fourier-transformation, hvor £ er en indbyrdes primisk faktor af N, adressehukommelsen (34) indeholder i rækkefølge: ji relative adresser for dataudlæsning, jn relative adresser for dataindskrivning, og en forskydning, som 5 forøger basisadressen efter hver elementær jn-værdi-diskret Fourier-transformation.
5. Apparat ifølge et eller flere af kravene 1-4, kendetegnet ved, at apparatet har organer til at vælge mellem 10 tilstande til at udføre forskellige diskrete Fourier-transfor-mationer og til at vælge tilsvarende afsnit af adressehukommelsen (34) . 15 20 25 1 35
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB8030333A GB2084362B (en) | 1980-09-19 | 1980-09-19 | Apparatus for performing the discrete fourier transform |
| GB8030333 | 1980-09-19 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| DK388681A DK388681A (da) | 1982-03-20 |
| DK163079B true DK163079B (da) | 1992-01-13 |
| DK163079C DK163079C (da) | 1992-06-15 |
Family
ID=10516169
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DK388681A DK163079C (da) | 1980-09-19 | 1981-09-02 | Apparat til at udfoere den diskrete fourier-transformation |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4477878A (da) |
| JP (1) | JPS57120174A (da) |
| DK (1) | DK163079C (da) |
| GB (1) | GB2084362B (da) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4602350A (en) * | 1981-10-13 | 1986-07-22 | Trw Inc. | Data reordering memory for use in prime factor transform |
| US4583190A (en) * | 1982-04-21 | 1986-04-15 | Neuroscience, Inc. | Microcomputer based system for performing fast Fourier transforms |
| GB2139046B (en) * | 1983-02-25 | 1986-06-04 | Standard Telephones Cables Ltd | Video signal transmission |
| US4563750A (en) * | 1983-03-04 | 1986-01-07 | Clarke William L | Fast Fourier transform apparatus with data timing schedule decoupling |
| US4748579A (en) * | 1985-08-14 | 1988-05-31 | Gte Laboratories Incorporated | Method and circuit for performing discrete transforms |
| JPS62175866A (ja) * | 1986-01-30 | 1987-08-01 | Nec Corp | シグナルプロセツサ |
| JPH02217904A (ja) * | 1989-02-17 | 1990-08-30 | Toyoda Mach Works Ltd | 位置決め制御装置 |
| JPH0431965A (ja) * | 1990-05-28 | 1992-02-04 | Nec Corp | 数値演算装置 |
| JP2692384B2 (ja) * | 1990-12-29 | 1997-12-17 | 日本電気株式会社 | アドレス生成回路 |
| US6735610B1 (en) * | 1999-04-29 | 2004-05-11 | Walter E. Pelton | Apparatus, methods, and computer program products for determining the coefficients of a function with decreased latency |
| US20030000411A1 (en) * | 2001-06-29 | 2003-01-02 | Cernocky Edward Paul | Method and apparatus for detonating an explosive charge |
| US6704760B2 (en) * | 2002-04-11 | 2004-03-09 | Interdigital Technology Corporation | Optimized discrete fourier transform method and apparatus using prime factor algorithm |
| CN101630308B (zh) * | 2008-07-16 | 2013-04-17 | 财团法人交大思源基金会 | 以内存为基础的任意点数快速傅立叶转换器的设计与寻址方法 |
| US9418041B2 (en) * | 2014-01-16 | 2016-08-16 | Qualcomm Incorporated | Sample process ordering for DFT operations |
| US9459812B2 (en) * | 2014-02-03 | 2016-10-04 | Ceva D.S.P. Ltd. | System and method for zero contention memory bank access in a reorder stage in mixed radix discrete fourier transform |
| CN112822139B (zh) * | 2021-02-04 | 2023-01-31 | 展讯半导体(成都)有限公司 | 数据输入、数据转换方法及装置 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3591784A (en) * | 1968-10-17 | 1971-07-06 | Ibm | Real time digital fourier analyzer |
| US3601592A (en) * | 1970-04-15 | 1971-08-24 | Ibm | Fast fourier transform addressing system |
| US3673399A (en) * | 1970-05-28 | 1972-06-27 | Ibm | Fft processor with unique addressing |
| US3748451A (en) * | 1970-08-21 | 1973-07-24 | Control Data Corp | General purpose matrix processor with convolution capabilities |
| GB1407401A (en) * | 1971-09-09 | 1975-09-24 | Solartron Electronic Group | Apparatus for performing the fast fourier transform |
| US3812470A (en) * | 1972-07-31 | 1974-05-21 | Westinghouse Electric Corp | Programmable digital signal processor |
| US3871577A (en) * | 1973-12-13 | 1975-03-18 | Westinghouse Electric Corp | Method and apparatus for addressing FFT processor |
| JPS516435A (da) * | 1974-07-04 | 1976-01-20 | Takeda Riken Ind Co Ltd | |
| JPS52155925A (en) * | 1976-06-21 | 1977-12-24 | Yokogawa Hokushin Electric Corp | Address signal generating circuit |
| US4075630A (en) * | 1976-09-01 | 1978-02-21 | Raytheon Company | Signal processor |
| GB1546173A (en) * | 1977-03-11 | 1979-05-16 | Secr Defence | Signal processing equipment |
| US4156920A (en) * | 1977-06-30 | 1979-05-29 | International Business Machines Corporation | Computer system architecture for performing nested loop operations to effect a discrete Fourier transform |
| US4138730A (en) * | 1977-11-07 | 1979-02-06 | Communications Satellite Corporation | High speed FFT processor |
| JPS6035704B2 (ja) * | 1978-09-29 | 1985-08-16 | 富士通株式会社 | フ−リエ変換処理方式 |
-
1980
- 1980-09-19 GB GB8030333A patent/GB2084362B/en not_active Expired
-
1981
- 1981-09-02 DK DK388681A patent/DK163079C/da active
- 1981-09-03 US US06/299,258 patent/US4477878A/en not_active Expired - Fee Related
- 1981-09-18 JP JP56147712A patent/JPS57120174A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| US4477878A (en) | 1984-10-16 |
| GB2084362B (en) | 1984-07-11 |
| JPH033262B2 (da) | 1991-01-18 |
| DK163079C (da) | 1992-06-15 |
| JPS57120174A (en) | 1982-07-27 |
| DK388681A (da) | 1982-03-20 |
| GB2084362A (en) | 1982-04-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DK163079B (da) | Apparat til at udfoere den diskrete fourier-transformation | |
| EP0507577B1 (en) | Flexible N-way memory interleaving | |
| US4393457A (en) | Method and apparatus for sequencing addresses of a fast Fourier transform array | |
| GB1585284A (en) | Cpu/parallel processor interface with microcode extension | |
| GB1585285A (en) | Parallel data processor apparatus | |
| JPH022171B2 (da) | ||
| CA1232382A (en) | Input device of character data | |
| JPS5935451B2 (ja) | 汎用レジスタ・アクセス方式 | |
| JPS61231639A (ja) | アドレス・ジエネレータ | |
| JPS5856146A (ja) | プレグラム選択方式 | |
| JP2985965B2 (ja) | 因数分解装置 | |
| JP2835366B2 (ja) | 高速フーリエ変換用アドレス情報発生装置 | |
| US6628293B2 (en) | Format varying computer system | |
| JP3109816B2 (ja) | アドレス生成装置 | |
| JP2512910B2 (ja) | デ−タ処理装置 | |
| JP3567576B2 (ja) | 電子計算機 | |
| JPS59206960A (ja) | メモリアドレス制御装置 | |
| Ershov | Executing Algorithms on a Calculator: A Lesson for the Teacher | |
| JPH01156825A (ja) | 信号処理用アドレス生成方式 | |
| JPS62282335A (ja) | 割込み装置 | |
| JPS63121976A (ja) | 浮動少数点演算器 | |
| JPH10269059A (ja) | データ処理装置 | |
| JPH03291767A (ja) | メモリアクセス回路 | |
| JP2001109669A (ja) | Ramテスト方法およびramテスト回路 | |
| JP2020108564A5 (da) |