DE3908276A1 - DEVICE AND METHOD FOR CALCULATING THE FAST FOURIER-TRANSFORMED COMPLEX DATA WORDS - Google Patents

DEVICE AND METHOD FOR CALCULATING THE FAST FOURIER-TRANSFORMED COMPLEX DATA WORDS

Info

Publication number
DE3908276A1
DE3908276A1 DE3908276A DE3908276A DE3908276A1 DE 3908276 A1 DE3908276 A1 DE 3908276A1 DE 3908276 A DE3908276 A DE 3908276A DE 3908276 A DE3908276 A DE 3908276A DE 3908276 A1 DE3908276 A1 DE 3908276A1
Authority
DE
Germany
Prior art keywords
data words
channels
data
fourier transform
phase
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE3908276A
Other languages
German (de)
Inventor
John E Whelchel
James F Mcarthur
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Raytheon Co
Original Assignee
E Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by E Systems Inc filed Critical E Systems Inc
Publication of DE3908276A1 publication Critical patent/DE3908276A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast 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)

Abstract

A multi-channel apparatus and method for performing Fourier transformations on an input stream 90 of digital data without switches in the cross channel communication paths. A new systolic method for performing a Fast Fourier Transform (FTT) by means of cascaded stages 120 is derived from a constant geometry method using phase shifting 110 of data in a channel to obtain the proper data sequence, rather than switches to transfer data among channels. A standard global shuffle operator is decomposed into phase shift operators and random access memory shuffle operators that operate only in one channel. The result can be further simplified (Fig 4) by merging (150) the phase shift operators with twiddle factors from the constant geometry method. The communications paths for the data are thereby fixed, creating the opportunity for higher radix operations that are available with devices employing switches for cross channel data transfer. <IMAGE>

Description

Die Erfindung betrifft eine Einrichtung und ein Verfahren zur Durchführung von Fouriertransformationen mit einem digitalen Datensatz. Insbesondere betrifft die Erfindung einen Prozessor zum Berechnen der schnellen Fouriertransformierten (kurz: FFT) diskreter Signale, die aus einem kontinuierlich empfangenen elektronischen Signal entnommen bzw. abgetastet sind. Verfahren zum Berechnen von schnellen Fouriertransformierten verlangen die extrem schnelle Berechnung einer Vielzahl von diskreten Fouriertransformierten (kurz: DFT's). Die DFT ist das Werkzeug, das zum Beschreiben der Beziehung zwischen der Zeitbereichs- und der Frequenzbereichsdarstellung diskreter Signale verwendet wird.The invention relates to a device and a method for performing Fourier transformations with a digital record. In particular, the invention relates a processor for computing the fast Fourier transform (short: FFT) of discrete signals, which result from a continuously received electronic signal are scanned. Procedure for calculating fast Fourier transforms require extremely fast calculation a variety of discrete Fourier transforms (short: DFT's). The DFT is the tool for describing the relationship between the time domain and the Frequency domain representation of discrete signals used becomes.

Einrichtungen und Verfahren zur Durchführung von FFT's leiten ihre Effizienz aus der Beziehung der Anzahl (N) zu transformierender Datenwörter zu der für die Berechnung der DFT's benötigten Anzahl Operationen (N ²) ab. Wenn eine große DFT durch eine Vielzahl kleiner Fouriertransformationen ersetzt werden kann (z. B. mit einer Grundzahl bzw. Logarithmenbasis R von 2 oder 4), kann die Anzahl der benötigten Operationen wesentlich verringert werden. Außerdem ist die Berechnung einer Vielzahl kleiner DFT's ein Vielstufenprozeß, wobei jede Stufe gleichartige Schritte umfaßt. Dadurch kann der die FFT berechnende Prozessor mit weniger Einzelkomponenten auskommen. Die Anzahl Stufen (B) steht in Beziehung zu der Momentwert- bzw. Samplegröße und der Grundzahl entsprechend B = Log R N. Eine große Anzahl Stufen kann jedoch die Komplexität der Rechenvorgänge erhöhen und die Genauigkeit der Ergebnisse aufgrund von Rundungsfehlern verringern. Um also die Verarbeitungseffizienz durch eine größere Samplegröße N zu steigern, bilden Verfahren zur Durchführung einer schnellen Fouriertransformation einen Kompromiß zwischen der DFT-Grundzahl R und der Stufenzahl B, wobei die Grundzahl bzw. Logarithmenbasis durch die Komplexität und Kosten des Schaltens in den Datenwegen auf 4 oder 8 beschränkt ist.Devices and methods for carrying out FFTs derive their efficiency from the relationship of the number (N) of data words to be transformed to the number of operations (N 2) required for the calculation of the DFT's. If a large DFT can be replaced by a large number of small Fourier transformations (e.g. with a basic number or logarithmic base R of 2 or 4), the number of operations required can be significantly reduced. In addition, the calculation of a large number of small DFTs is a multi-stage process, each stage comprising the same steps. As a result, the processor calculating the FFT can manage with fewer individual components. The number of levels (B) is related to the current value or sample size and the basic number corresponding to B = Log R N. However, a large number of levels can increase the complexity of the calculation processes and reduce the accuracy of the results due to rounding errors. In order to increase the processing efficiency through a larger sample size N , methods for performing a fast Fourier transformation form a compromise between the basic DFT number R and the number of stages B , the basic number or logarithm base being based on the complexity and cost of switching in the data paths to 4 or 8 is restricted.

Der Stand der Technik gibt mehrere unterschiedliche Verfahren zur Durchführung von FFT's an, die bei Hardware- Implementierung in ungleichartigem Aufbau resultieren. Das erste Verfahren wurde von Cooley und Tukey (J. W. Cooley und J. W. Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series", Math. Comput., vol. 19, April 1965, S. 297-301) angegeben. Diese Verfahrensart hat eine "variable Geometrie", was bedeutet, daß sich die Datenadressierung von einer Stufe zur nächsten ändert.The prior art gives several different methods to carry out FFTs that are used in hardware Implementation results in a different structure. The The first method was developed by Cooley and Tukey (J. W. Cooley and J. W. Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series ", Math. Comput., Vol. 19, April 1965, pp. 297-301). This type of procedure has one "variable geometry" which means that data addressing changes from one level to the next.

Die zweite Verfahrensart ist der Verfahrenstyp mit "konstanter Geometrie" nach Pease (M. C. Pease, "An Adaption of the Fast Fourier Transform for Parallel Processing", Journal of the Association für Computing Machinery, vol. 15, April 1968, S. 252-264). Die Adressierung der Information bleibt von Stufe zu Stufe gleich. Der einzige Fortschritt dieser Vereinfachung des resultierenden Hardware- Aufbaus ist eine Änderung der Reihenfolge der "Twiddle- Faktoren" des ROM relativ zu denjenigen des Verfahrens mit variabler Geometrie. Bei beiden Verfahrenstypen ändert sich die Reihenfolge der ROM-Faktoren von Stufe zu Stufe, und diese Änderung erfolgt normalerweise mit Adreßzählern.The second type of procedure is the "constant" procedure type Geometry "according to Pease (M.C. Pease," An Adaption of the Fast Fourier Transform for Parallel Processing ", Journal of the Association for Computing Machinery, vol. 15, April 1968, pp. 252-264). Addressing the information stays the same from level to level. The only progress this simplification of the resulting hardware Construction is a change in the order of "Twiddle- Factors "of the ROM relative to those of the method with variable geometry. Changes in both types of procedures the order of the ROM factors from level to level, and this change is usually made with address counters.

Eine neuere Entwicklung ist die Einführung von "Pipeline- Prozessoren". Diese Architektur teilt die Rechnerbelastung auf aufeinanderfolgende parallele Stufen auf, was ein gleichzeitiges Verarbeiten von R Kanälen ermöglicht. Ein bekanntes Beispiel für einen Pipeline-Prozessor in einer Architektur mit variabler Geometrie stammt von McClellan und Purdy (J. H. McClellan und R. J. Purdy, "Application of Digital Signal Processing", S. 268-278, Herausgeber Alan V. Oppenheim, 1978, Prentice Hall). Um mit der Geschwindigkeit des parallelen Dateneingangs Schritt zu halten, sind die Rechenelemente in jeder Stufe selbst 4-Punkt-FFT's (anstelle von DFT's) mit 2 Stufen, und und zwar mit jeweils 4 arithmetischen Prozessoren je Stufe. Mit der auf 8 oder höher steigenden Logarithmenbasis zur Erzielung von mehr Parallelität wird jedoch die zunehmende Anzahl von Kommutator- bzw. Kreuzschienenschaltern unannehmbar teuer.A more recent development is the introduction of "pipeline processors". This architecture divides the computer load into successive parallel stages, which enables simultaneous processing of R channels. A well-known example of a pipeline processor in a variable geometry architecture comes from McClellan and Purdy (JH McClellan and RJ Purdy, "Application of Digital Signal Processing", pp. 268-278, publisher Alan V. Oppenheim, 1978, Prentice Hall ). In order to keep up with the speed of parallel data input, the computing elements in each stage are themselves 4-point FFTs (instead of DFTs) with 2 stages, with 4 arithmetic processors per stage. With the logarithm base increasing to 8 or higher to achieve more parallelism, however, the increasing number of commutator or crossbar switches becomes unacceptably expensive.

Ein FFT-Prozessor mit Pipeline-Aufbau, der die Architektur mit konstanter Geometrie verwendet, wurde von Corinthios entwickelt (M. J. Corinthios, "The Design of a Class of Fast Fourier Transform Computers", IEEE Transactions on Computers, vol. C-20, June 1971, S. 617-623). Diese Architektur verlangt ebenfalls Umschalt- und Schaltvorgänge für die Datenübertragung über zwei E/A-Kanäle. Ferner ergeben sich auch hierbei komplizierte und hohe Anforderungen an die Speicher, und die Speicher werden mit steigender Grundzahl immer unhandlicher (d. h. die Speicherlänge ist eine Funktion von N/R ², daher ist die Anzahl der erforderlichen Speichereinheiten R ²). Implementierungen für diesen Prozessor sind in der US-PS 37 54 128 sowie in "A Parallel Radix-4 Fast Fourier Transform Computer", IEEE Transactions on Computers, vol. C-24, Jan. 1975, S. 80-92, angegeben.A pipeline-style FFT processor using the constant geometry architecture was developed by Corinthios (MJ Corinthios, "The Design of a Class of Fast Fourier Transform Computers", IEEE Transactions on Computers, vol. C-20, June 1971, pp. 617-623). This architecture also requires switching and switching operations for data transmission over two I / O channels. Furthermore, there are also complicated and high demands on the memories, and the memories become more and more unwieldy as the basic number increases (ie the memory length is a function of N / R 2, therefore the number of required storage units is R 2). Implementations for this processor are described in US Pat. No. 3,754,128 and in "A Parallel Radix-4 Fast Fourier Transform Computer", IEEE Transactions on Computers, vol. C-24, Jan. 1975, pp. 80-92.

Weitere Entwicklungen haben sich auf bestimmte Merkmale der oben erläuterten Einrichtungen und Verfahren konzentriert. Die US-PS 41 59 528 führt eine Korrektur der durch die Fourier-Transformation eingeleiteten Phasenverschiebung ein. Das Verfahren verwendet einen Trommelschalter und Verzögerungsglieder, um die richtige Phasenkorrektur an Ausgängen von kleinen DFT's durchzuführen, bevor diese in einer größeren Fourier-Transformierten kombiniert werden. Die US-PS 45 34 009 implementiert die Architektur von McClellan und Purdy und zeigt die Verwendung von Schaltern und Schieberegistern, um den arithmetischen Wirkungsgrad der Recheneinheiten zu erhöhen.Further developments have focused on certain characteristics of the facilities and processes explained above. The US-PS 41 59 528 performs a correction by Fourier transform initiated phase shift a. The process uses a drum switch and Delay elements to apply the correct phase correction Perform outputs from small DFTs before they are in  a larger Fourier transform. The US-PS 45 34 009 implements the architecture of McClellan and Purdy and shows the use of switches and shift registers to the arithmetic efficiency to increase the computing units.

Alle vorgenannten Einzel- und Vielkanal-FFT-Prozessorarchitekturen benötigen irgendeinen Zwischenkanal-Übertragungsweg unter Anwendung von Schaltern. Diese Wege können sich dynamisch mit der Zeit und im Fall der variablen Geometrie mit der Stufe ändern.All of the aforementioned single and multi-channel FFT processor architectures require some interchannel transmission path using switches. These ways can change dynamically with time and in the case of variable Change geometry with the level.

Es ist daher die Aufgabe der vorliegenden Erfindung, eine Einrichtung zur Durchführung der schnellen Fourier-Transformation von Digitaldaten ohne Schalter im Datenübertragungsweg über zwei E/A-Kanäle bereitzustellen. Dabei soll eine neue systolische Geometriemethode implementiert werden, wobei die Stufe-zu-Stufe-Struktur im wesentlichen dupliziert wird. Ferner soll dabei die Grundzahlgröße nicht durch die Komplexität und/oder die Kosten der Schaltanordnung beschränkt sein. Außerdem soll die Einrichtung die Phasenverschiebeeigenschaft der Fourier-Transformation über einen Teil der Datenumgruppierung nützen. Weiter soll ein Verfahren zur Durchführung der schnellen Fourier-Transformation von Digitaldaten angegeben werden, ohne daß ein Schritt zur Datenumschaltung in Datenübermittlungswegen über zwei E/A-Kanäle vorgesehen ist.It is therefore the object of the present invention to provide a device to perform the fast Fourier transform of digital data without a switch in the data transmission path to be provided via two I / O channels. One should new systolic geometry method is implemented, wherein the level-to-level structure is essentially duplicated becomes. Furthermore, the basic number size should not be used by the complexity and / or the cost of the switching arrangement be limited. In addition, the facility should Phase shift property of the Fourier transform over use some of the data regrouping. Next one should Method for performing the fast Fourier transform of digital data can be specified without a Step for data switching in data transmission paths is provided over two I / O channels.

Anhand der Zeichnung wird die Erfindung beispielsweise näher erläutert. Es zeigtUsing the drawing, the invention is for example explained in more detail. It shows

Fig. 1 die nichtgeschaltete Reihenfolge von Datenwörtern, die einen FFT-Professor nach dem Stand der Technik verlassen; Figure 1 shows the non-switched order of data words that leave an FFT professor according to the prior art.

Fig. 2 die phasenverschobene Reihenfolge der Datenwörter, die einen FFT-Prozessor nach der Erfindung verlassen; Fig. 2 the phase-shifted sequence of data words, leaving an FFT processor according to the invention;

Fig. 3 ein Schema eines Dreistufen-FFT-Prozessors mit dem Phasenverschiebeschema nach Fig. 2; Figure 3 is a schematic of a three stage FFT processor with the phase shift scheme of Figure 2;

Fig. 4 ein Schema einer Modifikation der Einrichtung von Fig. 3 mit reduzierter systolishcer Geometrie; Fig. 4 is a schematic of a modification of the device of Fig. 3 with reduced systolic geometry;

Fig. 5 ein Schema einer einzelnen Stufe des Prozessors von Fig. 4; Figure 5 is a schematic of a single stage of the processor of Figure 4;

Fig. 6 den Ein- und den Ausgang des FFT-Rechenelements in der Stufe nach Fig. 5; Fig. 6 shows the input and the output of the FFT calculation element in the stage of FIG. 5;

Fig. 7 die Rechnerarchitektur des FFT-Rechenelements nach Fig. 6; FIG. 7 shows the computer architecture of the FFT computing element according to FIG. 6;

Fig. 8 die Twiddle-Koeffizienten, die bei einer Ausführungsform des FFT-Rechenelements von Fig. 7 verwendet werden; und Figure 8 shows the twiddle coefficients used in one embodiment of the FFT computing element of Figure 7; and

Fig. 9 eine kleiner ROM-Version der Twiddle-Koeffizienten von Fig. 8. Fig. 9 shows a smaller ROM version of the Twiddle coefficients of Fig. 8.

Die Erfindung betrifft eine Einrichtung und ein Verfahren zur Durchführung einer schnellen Fourier-Transformation bzw. FFT unter Implementierung einer neuen systolischen Geometriemethode, die aus der Konstantgeometriemethode nach Pease abgeleitet ist. Digitaldaten werden in Fenstern von N komplexen Datenwörtern empfangen und in R getrennten und parallelen Kanälen sortiert. Die Daten werden dann in Folge durch Log R N seriell angeordnete Stufen geleitet. Jede Stufe hat einen Datenadressieroperator (eine N × N-Matrix, die als ROM-Umgruppieroperator bekannt ist), einen Fourier­ transformationsoperator mit Rechenelementen, die selbst wiederum FFT's oder DFT's sind (bekannt als Kerne), einen RAM für jeden Kanal, einen Twiddlefaktoroperator und einen neuartigen Phasenverschiebeoperator zur Modifikation der zu transformierenden Daten ohne Datenübertragung über zwei E/A-Kanäle.The invention relates to a device and a method for performing a fast Fourier transformation or FFT by implementing a new systolic geometry method, which is derived from the constant geometry method according to Pease. Digital data is received in windows of N complex data words and sorted in R separate and parallel channels. The data is then passed through log R N serially arranged stages. Each stage has a data addressing operator (an N × N matrix known as a ROM regrouping operator), a Fourier transformation operator with computing elements that are themselves FFT's or DFT's (known as cores), RAM for each channel, a twiddle factor operator and a novel phase shift operator for modifying the data to be transformed without data transmission over two I / O channels.

Vom Konzept her wird dieser Vorgang durchgeführt, indem der normale globale Umgruppierungsoperator für jede Stufe der in FFT-Prozessoren dieser allgemeinen Art (vgl. Pease und Corinthios wie oben angegeben) verwendet wird, in drei Permutationsoperatoren zerlegt wird. Der zweite dieser Permutationsoperatoren muß an einem Datenelement in jedem Kanal wirksam sein und es dem richtigen Kern zuführen. Z. B. bedeutet dies bei einer Grundzahl-4-Ausführungsform, daß vier Datenwörter, und zwar jeweils eines aus vier Kanälen, einem 4-Punkt-FFT-Kern gleichzeitig in jeder Stufe präsentiert werden. Der erste und der dritte Permutationsoperator werden in die Phasenverschiebeoperatoren transformiert. Diese Operatoren führen das Äquivalent des Umschaltens der Datenwörter aus (um die richtigen Datenwörter zur Lieferung an die Kerne zusammenzuführen), indem in jedem Kanal gesondert Phasenrotationen an den komplexen Datenwörtern durchgeführt werden. Auf diese Weise kann anstelle der Verwendung der im Stand der Technik angegebenen Schalter eine relativ unkomplizierte Adressierung von ROM's in jedem Kanal dazu genützt werden, die richtigen Datenwörter zu gewinnen.Conceptually, this process is carried out by the normal global regrouping operator for each level of in FFT processors of this general type (cf. Pease and Corinthios is used in three) Permutation operators is decomposed. The second of these Permutation operators must be on one data element in each Channel be effective and deliver it to the right core. For example, in a base 4 embodiment, this means that four data words, one out of four Channels, a 4-point FFT core simultaneously in each stage to get presented. The first and third permutation operators are transformed into the phase shift operators. These operators perform the equivalent of switching of the data words (to find the correct data words for delivery to the cores) by in each channel separately phase rotations on the complex Data words are performed. That way instead of using those specified in the prior art Switches a relatively uncomplicated addressing ROMs in each channel are used to get the right ones Win data words.

In der gesamten folgenden Beschreibung der Erfindung bedeuten N = 64 und R = 4 (was drei Stufen ergibt), wenn nichts anderes angegeben ist. Diese Werte werden nur beispielsweise verwendet und stellen keine Einschränkung der Erfindung dar. Das Verfahren ist mit jeder Grundzahl R und jeder Samplegröße N anwendbar, wobei allerdings N und R normalerweise ganzzahlige Potenzen von 2 sind.Throughout the following description of the invention, N = 64 and R = 4 (which gives three stages) unless otherwise specified. These values are only used for example and do not represent any restriction of the invention. The method can be used with any basic number R and any sample size N , although N and R are normally integer powers of 2.

Die FFT-Rechenmethode bei konstanter Geometrie nach dem Stand der Technik kann in Matrixform wie folgt gezeigt werden (von rechts nach links für die Reihenfolge der Matrixoperationen zu lesen).The FFT calculation method with constant geometry according to Prior art can be shown in matrix form as follows (from right to left for the order of Read matrix operations).

wobei
X = Eingangsspalten-Datenvektor von N = 64 komplexen Datenwörtern,
S 4/16 = Umgruppierungsoperator, der 4 Datenwörter auswählt, die vom Eingangsvektor um 16 Datenwörter beabstandet sind, und sie für die Eingabe in den Fouriertransformationsoperator gemeinsam gruppiert,
F₄ = Fouriertransformationsoperator, eine N × N Blöcke umfassende Stufenmatrix, die entlang der Blockdiagonalen 4-Punkt-DFT's enthält,
D₆₄ und D₁₆ = später noch zu erläuternde "Twiddlefaktoren",
F₆₄ = DFT-Matrix mit Zeilen in ziffernverkehrter Reihenfolge.
in which
X = input column data vector of N = 64 complex data words,
S 4/16 = regrouping operator, which selects 4 data words spaced 16 data words from the input vector and groups them together for input into the Fourier transform operator,
F ₄ = Fourier transform operator, a step matrix comprising N × N blocks and containing 4-point DFTs along the block diagonals,
D ₆₄ and D ₁₆ = "twiddle factors" to be explained later,
F ₆₄ = DFT matrix with rows in numerical order.

Der S 4/16-Umgruppierungsoperator ändert die Datenreihenfolge in einem Spaltenvektor von einer Folge von 0, 1, 2, . . . , N-1 in N/R Folgen von 0, N/R, 2N/R, . . . , (R-1)N/R; 1, [N/R] + 1, . . . , [(R-1)N/R] + 1; . . . , [N/R]-1, . . . , N-1. Der gleiche Effekt wird erzielt, wenn R parallel Eingabekanäle um N/R Datenwörter relativ zu benachbarten Kanälen verschoben werden. Bei N = 64 und R = 4 wird eine Eingangsfolge von 0,1, 2, . . . , 63 geändert inThe S 4/16 regrouping operator changes the data order in a column vector from a sequence of 0, 1, 2,. . . , N -1 in N / R sequences of 0, N / R , 2 N / R,. . . , (R -1) N / R ; 1, [N / R] + 1,. . . , [(R -1) N / R] + 1; . . . , [N / R] -1,. . . , N -1. The same effect is achieved when R parallel input channels are shifted by N / R data words relative to adjacent channels. With N = 64 and R = 4, an input sequence of 0.1, 2,. . . , 63 changed to

 0,  1,  2, . . . ,15
16, 17, 18, . . . ,31
32, 33, 34, . . . ,47
48, 49, 50, . . . ,63
0, 1, 2,. . . , 15th
16, 17, 18,. . . , 31
32, 33, 34,. . . , 47
48, 49, 50,. . . , 63

Der Operator F₄ wird exakter als (I₁₆ X F₄) beschrieben, wobei X das Kronecker-Produkt der zwei Matrizen darstellt. Als ein Operator kann diese Matrix eine 4-Punkt-Fouriertransformation an vier Datenwörtern durchführen, die an ihrem Eingang anliegen, und kann den Vorgang dann mit folgenden Gruppe von vier Datenwörtern wiederholen, bis ein vollständiger Durchgang durch ein Fenster von N komplexen Datenwörtern durchgeführt ist. Bei N = 64 werden 16 Wiederholungsoperationen durchgeführt.The operator F ₄ is described more precisely as (I ₁₆ X F ₄), where X represents the Kronecker product of the two matrices. As an operator, this matrix can perform a 4-point Fourier transform on four data words applied to its input and can then repeat the process with the following group of four data words until a complete pass through a window of N complex data words is complete. If N = 64, 16 repeat operations are performed.

Die Twiddlefaktoren sind bei Phase (s. o.) beschrieben und werden wie folgt definiert:The twiddle factors are described in phase (see above) and are defined as follows:

D₆₄ = Diag {I₁₆, D₁₆, D₁₆², D₁₆³} D ₆₄ = Diag { I ₁₆, D ₁₆, D ₁₆², D ₁₆³}

undand

W = e-j 2 π /64. W = e - j 2 π / 64.

Die Twiddlefaktor-Werte sind Koeffizienen, die aus der Ableitung der Konstantgeometrie-FFT-Methode von Phase resutlieren. Sie sind aus der vorstehenden Gleichung zu berechnen und sind bei vorgegebenen N und R konstant.The twiddle factor values are coefficients that derive from the derivation of the constant geometry FFT method from phase. They are to be calculated from the above equation and are constant at predetermined N and R.

Der Vektor X wird der Einfachheit halber aus den folgenden Erläuterungen weggelassen. Die resultierenden Ausdrücke sind daher Matrixzerlegungen der DFT-Matrix F₆₄.The vector X is omitted from the following explanations for the sake of simplicity. The resulting expressions are therefore matrix decompositions of the DFT matrix F ₆₄.

Das Studium des vorstehend beschriebenen Standes der Technik zeigt, daß dieser ähnliche Umgruppierungsoperatoren und Fouriertransformationsoperatoren in jeder Stufe aufweist. Nur die Twiddlefaktoren sind für jede Stufe spezifisch. Die Umgruppierungsoperatoren sind ferner insofern global, als sie Daten aus sämtlichen Kanälen während des Zeitintervalls des Fensters aus 64 Datenwörtern, was eine erhebliche Länge darstellt, adressieren. Durch dieses Merkmal ergab sich die Tendenz, Hardware-Konfiguration auf Einzelkanal-Operationen zu begrenzen. The study of the prior art described above shows that this similar regrouping operators and Fourier transform operators in each stage. Only the twiddle factors are specific to each level. The Regrouping operators are also global in that data from all channels during the time interval the window from 64 data words, which is a considerable length represents address. This characteristic resulted in the Tendency to hardware configuration on single-channel operations to limit.  

Dabei ist bedeutsam, daß, wenn die Datenwörter in die zweite Stufe eintreten, sie nicht mehr die richtige Folge für den nächsten S 4/16-Operator haben, und zwar aufgrund ihrer Anwesenheit im gleichen Datenkanal. Die Daten müssen manipuliert werden, um der zweiten Stufe die richtige Folge zuzuführen. Gemäß Fig. 1 werden Datenwörter vom Fourier­ transformationsoperator 10 in vier Kanäle A-D in der durch die gezeigten Zahlen angedeuteten Reihenfolge ausgegeben. In die nächste Stufe einzugebende Daten müssen jedoch in Gruppen von vier Datenwörtern vorliegen, die durch die in Kreise eingeschlossenen Zahlen bezeichnet sind. Um diese Datenwörter in ihren richtigen Kanälen auszurichten, war bisher eine Datenübertragung über zwei E/A-Kanäle erforderlich. Beim Stand der Technik wird dies durch die Anwendung von Schaltern erreicht. Beispielsweise erreicht die Pipeline-Architektur nach McClellan, Purdy die Manipulation über zwei E/A-Kanäle unter Anwendung von FIFO-Speichern mit unterschiedlicher Verzögerung und einem Kommutatorschalter.It is important that when the data words enter the second stage, they no longer have the correct sequence for the next S 4/16 operator, because of their presence in the same data channel. The data has to be manipulated in order to get the correct sequence to the second stage. According to Fig. 1 data words from the Fourier transform operator 10 into four channels AD in the direction indicated by the shown figures order output. However, data to be entered in the next stage must be in groups of four data words, denoted by the numbers enclosed in circles. To align these data words in their correct channels, data transmission over two I / O channels was previously required. In the prior art, this is achieved by using switches. For example, the McClellan, Purdy pipeline architecture handles manipulation over two I / O channels using FIFO memories with different delays and a commutator switch.

Als erster Schritt zur Erzielung der systolischen Geometriemethode gemäß der Erfindung und zur Ermöglichung der Verarbeitung von R parallelen Kanälen ohne Schalter wird der Umgruppierungsoperator gemäß dem Stand der Technik in drei Operatoren zerlegt:As a first step to achieve the systolic geometry method according to the invention and to enable the processing of R parallel channels without switches, the regrouping operator is broken down into three operators according to the prior art:

S 4/16 = S pf S R S p S 4/16 = S pf S R S p

wobei
S pf = schnelle zyklische Umgruppierung (jedes Datenwort),
S R = RAM-Umgruppierung, muß an einem Datenwort aus jedem Kanal operieren, so daß in jedem Kanal gesonderte RAM's verwendet werden können,
S p = langsame zyklische Umgruppierung (jedes vierte Datenwort).
in which
S pf = fast cyclical regrouping (each data word),
S R = RAM regrouping, must operate on one data word from each channel, so that separate RAMs can be used in each channel,
S p = slow cyclical regrouping (every fourth data word).

Die S p-Umgruppierung behandelt zyklische Mengen aus vier Datenwörtern innerhalb jeder größeren Gruppe aus 16 Datenwörtern. Bei N = 64 gibt es vier Gruppen von 16. Die erste Gruppe aus 16 Datenwörtern wird überhaupt nicht geändert. Jede Menge aus vier Datenwörtern in der zweiten Gruppe von 16 wird zyklisch um ein Datenwort verschoben, wie nachstehend gezeigt ist:The S p regrouping handles cyclic sets of four data words within each larger group of 16 data words. If N = 64 there are four groups of 16. The first group of 16 data words is not changed at all. Each set of four data words in the second group of 16 is cyclically shifted by one data word, as shown below:

Jede Menge aus vier Datenwörtern in der dritten Gruppe von 16 wird um zwei Datenwörter und in der vierten Gruppe um drei Datenwörter zyklisch verschoben.Any set of four data words in the third group of 16 is changed by two data words and in the fourth group three data words shifted cyclically.

Unter Anwendung der vorher erläuterten Konstantgeometrie- Methode werden die globalen Umgruppierungen der zweiten und der dritten Stufe durch die drei Permutationsoperatoren wie unten gezeigt ersetzt (die Umgruppierung der ersen Stufe bleibt unverändert):Using the constant geometry explained above The global regroupings of the second and the third stage through the three permutation operators like replaced below (the regrouping of the first level stays unchanged):

Die "D"-Twiddlefaktoren werden neugeordnet, indem jeder mit (S p -1 S p) multipliziert und S p durch den "D"-Faktor geht unter Bildung von S p -1 D₁₆, S p anstelle von D₁₆ und von S p -1 D₆₄, S p anstelle von D₆₄ (dabei bezeichnen die Striche jeweils die Neuordnung). Jedes S p -1 wird dann mit dem S p aus dem benachbarten Kanal verschmolzen, wobei sie einander aufheben, und zwar unter Bildung von:The "D" twiddle factors are reordered by multiplying each by (S p -1 S p ) and S p going through the "D" factor to form S p -1 D ₁₆, S p instead of D ₁₆ and S p -1 D ₆₄, S p instead of D ₆₄ (the dashes denote the reorganization). Each S p -1 is then merged with the S p from the adjacent channel, canceling each other out to form:

S pf und S p gehen durch F₄ ohne Modifikation von F₄ unter Bildung von Phasenverschiebeoperatoren D PH und D PH′, und Bildung der grundlegenden systolischen Geometrie-Methode nach der Erfindung. S pf and S p go through F ₄ without modification of F ₄ to form phase shift operators D PH and D PH ′, and formation of the basic systolic geometry method according to the invention.

Ein großer Teil der Konstantgeometrie-Architektur bleibt erhalten, wobei Unterschiede hinsichtlich der Twiddlefaktoren und der Phasenrotationsoperatoren auftreten. Auch der Umgruppierungsoperator der ersten Stufe bleibt erhalten. Much of the constant geometry architecture remains obtained, with differences in twiddle factors and the phase rotation operators occur. Also the The first stage regrouping operator remains.  

Die Phasenverschiebeoperatoren D PH und D PH′ führen das Äquivalent der Umschaltung über zwei E/A-Kanäle durch Modifikation der Koeffizienten der komplexen Datenwörter aus. Die Phasenverschiebeoperatoren verschieben die Phase R der komplexen Datenwörter in jedem Kanal um Vielfache von 360/R Grad (z. B. bei R = 4 sind die Phasenverschiebungen 0 für den ersten Kanal, π/2 für den zweiten Kanal, π für den dritten Kanal und 3π/2 für den vierten Kanal bzw. äquivalent der Multiplikation mit 1, j-1, -j). Die Operatoren nützen die "Schiebe"-Eigenschaften des DFT-Kerns, wobei eine zyklische Verschiebung im Eingangsbereich äquivalent der Multiplikation mit komplexen Exponentialen im Transformationsbereich und umgekehrt ist. Diese Verschiebungen bringen die Datenwörter in die richtige Folge ohne Verwendung von Datenwörtern eines anderen Kanals, wodurch die Notwendigkeit für die Umschaltung über zwei E/A-Kanäle beseitigt wird.The phase shift operators D PH and D PH ' perform the equivalent of switching over two I / O channels by modifying the coefficients of the complex data words. The phase shift operators shift the phase R of the complex data words in each channel by multiples of 360 / R degrees (e.g. if R = 4, the phase shifts are 0 for the first channel, π / 2 for the second channel, π for the third channel and 3 π / 2 for the fourth channel or equivalent to multiplication by 1, j -1, - j) . The operators use the "shift" properties of the DFT core, with a cyclic shift in the input area being equivalent to multiplication with complex exponentials in the transformation area and vice versa. These shifts put the data words in the correct order without using data words from another channel, eliminating the need for switching over two I / O channels.

Gemäß Fig. 2 werden bei der Erfindung Daten, die in den Fouriertransformationsoperator 10 eintreten, wie vorstehend erläutert in einer Phasenschiebeeinheit 5 phasenverschoben. Aus dem FFT-Operator 10 austretende Daten werden in vier Kanäle A-D in der durch die gezeigten Zahlen angegebenen Reihenfolge ausgegeben. Anders als bei der Reihenfolge der Datenwörter gemäß Fig. 1 erscheinen aufgrund der Vor-FFT- Verschiebung die in die nächste Stufe einzugebenden Datenwörter (durch die Kreise bezeichnet) nunmehr in gesonderten Kanälen. Die nächste Menge Eingangsdaten zur nächsten Stufe (in Vierecken gezeigt) ist ähnlich angeordnet. Die Auswahl dieser und weiterer Mengen von vier Eingabedaten aus ihren jeweiligen Kanälen wird durch eine RAM-Adressiereinheit 20 erreicht.According to Fig. 2, in the invention, data entering into the Fourier transform operator 10, as explained above phase-shifted in a phase shifter unit 5. Data exiting the FFT operator 10 are output in four channels AD in the order indicated by the numbers shown. In contrast to the order of the data words according to FIG. 1, due to the pre-FFT shift, the data words to be entered in the next stage (designated by the circles) now appear in separate channels. The next set of input data to the next stage (shown in squares) is arranged similarly. The selection of this and further quantities of four input data from their respective channels is achieved by a RAM addressing unit 20 .

Ein weiterer Phasenverschiebevorgang wird nach dem Austritt der Daten aus dem FFT-Operator jeder Stufe aus folgendem Grund durchgeführt: Unter Bezugnahme auf Fig. 2 ist ersichtlich, daß der zweite Satz von Datenpunkten (1, 17, 33 und 49) zwar parallel ist, daß sie aber gegenüber ihrem eigentlichen Bestimmungs-RAM um Eins verschoben sind. Wiederum wird anstelle einer Umschaltung von Datenwegen die Schiebeeigenschaften genützt, und zwar diesmal umgekehrt, und der F₄-Recheneinheits-Ausgang der folgenden Stufe wird (Term für Term) mit geeigneten Multiplikatoren (1, j, -1, -j bei R = 4) post-multipliziert, um diesen gleichen Effekt zu erzielen. Dies sind einfache Phasenverschiebungen, die in die im ROM enthaltenen Koeffizienten D 16′ und D 64′ absorbierbar sind, die normalerweise in einer Grundzahl-4- Transformation nach jedem F₄ implementiert werden.Another phase shift is performed after the data exits the FFT operator of each stage for the following reason. Referring to Figure 2, it can be seen that the second set of data points (1, 17, 33 and 49) is parallel, that but they are shifted by one compared to their actual destination RAM. Again, instead of switching data paths, the shift properties are used, this time the other way round, and the F ₄ processing unit output of the following stage is (term by term) with suitable multipliers (1, j , -1, -j at R = 4 ) post-multiplied to achieve this same effect. These are simple phase shifts that can be absorbed into the coefficients D 16 ' and D 64' contained in the ROM, which are normally implemented in a 4-number transformation after each F ₄.

Diese Vereinfachung des Verfahrens mit systolischer Geometrie kann dadurch erfolgen, daß die Phasenverschiebeoperatoren mit den Twiddlefaktoren verschmolzen werden. Dadurch wird die Rechnerbelastung verringert, indem eine einzige komplexe Multiplikation der Daten in jedem Kanal gebildet wird, wodurch die zwei für die Twiddlefaktoren und die Phasenverschiebeoperatoren erforderlichen komplexen Multiplakationen ersetzt werden. Die Operation des verschmolzenen Oparators wird in einer zweiten ROM-Einheit durchgeführt.This simplification of the procedure with systolic geometry can be done in that the phase shift operators be merged with the twiddle factors. Thereby the computer load is reduced by a single complex multiplication of the data formed in each channel which makes the two for the twiddle factors and the Phase shift operators require complex multiplactions be replaced. The operation of the merged Oparators is carried out in a second ROM unit.

Das Verschmelzen erfolgt entweder durch direktes Verschmelzen oder indem die Phasenverschiebeoperation D PH, durch den RAM-Umgruppierungsoperator S R geleitet wird.The merging is done either by direct merging or by passing the phase shift operation D PH through the RAM regrouping operator S R.

Das Endresultat ist ein reduziertes systolisches Geometrieverfahren.The end result is a reduced systolic geometry process.

mitWith

D PH2 = D 16′ D PH D PH2 = D 16 ′ D PH

undand

D PH1 = D PH″D64′ D PH1 = D PH ″ D 64 ′

Fig. 3 zeigt ein Schema der Glieder einer Dreistufen-FFT- Einrichtung mit N = 64, R = 4, wobei das systolische Verfahren nach der Erfindung realisiert ist. Dabei ist der Datenfluß von links nach rechts. Fig. 3 is a diagram showing the links of a three-stage FFT device with N = 64, R = 4, wherein the systolic method is realized according to the invention. The data flow is from left to right.

Die Umgruppierungseinheit 100 empfängt Datenwörter 90 und ordnet sie in vier Kanälen A-D. Es ist zwar vorgesehen, daß die Umgruppierungseinheit 100 die vorher erläuterte S 4/16-Umgruppierung ausführt, aber diese Einheit könnte entfallen, wenn Daten bereits in der Reihenfolge vorliegen, die durch S 4/16-Umgruppierung erhalten wird. Der Phasendreher 10 ist eine Multiplizierereinheit, die die Phase der Datenwörter so verschiebt, daß die in Fig. 2 gezeigte Reihenfolge nach der anschließenden Fouriertransformationsoperation verfügbar ist. Bei einer Grundzahl 4 multipliziert der Phasendreher 110 einfach jeden Kanal mit Potenzen von j: beispielsweise den Kanal A mit 1 (j⁰), B mit j (j¹), C mit -1 (j²) und D mit -j (j³). Bei Operationen mit höherer Grundzahl ist der Multiplizierer komplexer (z. B. muß bei einer Grundzahl 8 die Phase in jedem von acht Kanälen um Vielfache von 45° verschoben werden). Der Fouriertransformationsoperator 120 führt die DFT-Operationen aus unter Berechnung der Fouriertransformierten von Mengen von jeweils 4 Datenwörtern, und zwar einem Datenwort aus jedem Kanal. Twiddleeinheiten 130 umfassen einen Speicher zur Speicherung vorbestimmter Koeffizienten und einen Multiplizierer zur Multiplikation der Datenwörter mit den Koeffizienten. RAM-Einheiten 140 führen die RAM-Umgruppierung (S R) durch und dienen als Datenschnittstellen zwischen den Stufen.The regrouping unit 100 receives data words 90 and arranges them in four channels AD . While the regrouping unit 100 is intended to perform the S 4/16 regrouping previously discussed, this regrouping could be omitted if data is already in the order obtained by the S 4/16 regrouping. Phase rotator 10 is a multiplier unit that shifts the phase of the data words so that the order shown in FIG. 2 is available after the subsequent Fourier transform operation. With a base number 4, the phase rotator 110 simply multiplies each channel by powers of j: for example, channel A by 1 (j ⁰), B by j (j ¹), C by -1 (j ²) and D by - j (j ³). In operations with a higher base number, the multiplier is more complex (e.g. with a base number 8, the phase in each of eight channels must be shifted by multiples of 45 °). The Fourier transform operator 120 performs the DFT operations by calculating the Fourier transform of sets of 4 data words each, one data word from each channel. Twiddle units 130 include a memory for storing predetermined coefficients and a multiplier for multiplying the data words by the coefficients. RAM units 140 perform the RAM regrouping ( SR ) and serve as data interfaces between the stages.

Wenn N größer als 64 ist, wird die Stufe 2 wiederholt mit der Ausnahme, daß die zweite und die folgenden Stufen einen Nach-FFT-Phasendreher vor jedem Vor-FFT-Phasendreher 110 aufweisen. Wie vorstehend erläutert, kann durch den Nach- FFT-Phasendreher die zweite Datenmenge ordnungsgemäß von den RAM's aufgenommen werden. Bei N = 64 wurde diese Funktion in den neugeordneten Twiddles D 16′ und D 64′ absorbiert.If N is greater than 64, stage 2 is repeated except that the second and subsequent stages have a post-FFT phase rotator before each pre-FFT phase rotator 110 . As explained above, the post-FFT phase rotator can properly receive the second amount of data from the RAMs. At N = 64, this function was absorbed in the rearranged Twiddles D 16 ' and D 64' .

Das Verfahren mit reduzierter systolischer Geometrie ist in Fig. 4 dargestellt, wobei die Bezugszeichen denjenigen von Fig. 3 entsprechen. Phasendreher 150 sind die verschmolzenen Operatoren, die die mit den Phasenverschiebe-Multiplikatoren verschmolzenen Twiddle-Koeffizienten enthalten.The method with reduced systolic geometry is shown in FIG. 4, the reference numerals corresponding to those in FIG. 3. Phase rotators 150 are the merged operators that contain the twiddle coefficients fused to the phase shift multipliers.

Die stufenweise Symmetrie der Einrichtung nach Fig. 4 kann weiter dadurch verbessert werden, daß die Phasendreher 110 in Stufe 3 mit einem Einheits-Twiddleoperator verschmolzen und die Operatoren im Phasendreher 110 in Stufe 1 mit einem RAM-Element adressiert werden. Diese Änderungen führen zu einer Einrichtung, in der jede Stufe ein RAM-Element, einen Fouriertransformationsoperator und justierte Twiddle-Koeffizienten im programmierbaren ROM bzw. PROM aufweist.The stepwise symmetry of the device according to FIG. 4 can be further improved in that the phase rotators 110 in stage 3 are merged with a unit twiddle operator and the operators in phase rotator 110 in stage 1 are addressed with a RAM element. These changes lead to a device in which each stage has a RAM element, a Fourier transform operator and adjusted twiddle coefficients in the programmable ROM or PROM.

Fig. 5 zeigt eine FFT-Prozessoreinheit, die als eine Stufe in einer Vielstufen-FFT-Einrichtung verwendet wird und diese drei Teile umfaßt. Bei N = 64 und R = 4 sind drei FFT- Prozessoreinheiten erforderlich. Fig. 5 shows an FFT processor unit which is used as a stage in a multi-stage FFT device and which comprises three parts. With N = 64 and R = 4, three FFT processor units are required.

Die FFT-Prozessoreinheit 200 von Fig. 5 kann aus sieben Elementen bestehen: einem E/A-RAM-Element 220, einem RAM- Adressierelement 240, einem Twiddlespeicherelement 260, einem Twiddleadressierelement 280, einem FFT-Rechenelement 300, einem Selbstprüfelement (BITE) 320 und einem Steuerelement 340.The FFT processor unit 200 of FIG. 5 can consist of seven elements: an I / O RAM element 220 , a RAM addressing element 240 , a Twiddles memory element 260 , a Twiddleading element 280 , an FFT computing element 300 , a self-checking element (BITE) 320 and a control element 340 .

Das E/A-Element 220 ist die Datenschnittstelle zwischen aufeinanderfolgenden Stufen. Es empfängt Eingangsdaten 225 von der vorhergehenden Stufe (oder im Fall der Stufe 1 von Systemeingängen durch ein Element wie etwa einen Umgruppierungsoperator (nicht gezeigt)). Die Daten können zwei 16-Bit-Komponenten haben, die ein komplexes Datenwort mit einer Phase bilden. Das E/A-RAM-Element 220 kann in vier identische Bausteine getrennt sein, die als direkte Schnittstellen für die vier Bausteine des Rechenelements 300 wirken. Jeder Baustein kann aus rekursiven Datenpuffern und einem Doppelpuffer-RAM-Modul bestehen. Jeder der vier RAM-Bausteine kann aus einer Vielzahl RAM's (z. B. aus zwei 2K × 16 RAM's bei n = 4096) mit Ein- und Ausgängen in Multiplexschaltung bestehen, so daß neue Eingangsdaten in den RAM einschreibbar sind, während gleichzeitig Daten aus dem RAM ausgelesen werden. Auf diese Weise kann die FFT-Prozessoreinheit zu 100% ausgenützt werden. Das RAM-Element 220 empfängt Schreibadreßbefehle auf dem Bus 227 und Leseadreßbefehle auf dem Bus 229 vom RAM-Adressierelement 240. Ausgangsdaten auf Bus 235 werden dem FFT-Rechenelement 300 zugeführt.I / O element 220 is the data interface between successive stages. It receives input data 225 from the previous stage (or in the case of stage 1 of system inputs by an element such as a regroup operator (not shown)). The data can have two 16-bit components that form a complex data word with one phase. The I / O RAM element 220 can be separated into four identical components, which act as direct interfaces for the four components of the computing element 300 . Each block can consist of recursive data buffers and a double buffer RAM module. Each of the four RAM modules can consist of a large number of RAMs (e.g. two 2K × 16 RAMs with n = 4096) with inputs and outputs in multiplexed circuitry, so that new input data can be written into the RAM while data is being output from it be read from the RAM. In this way, the FFT processor unit can be used to 100%. RAM element 220 receives write address commands on bus 227 and read address commands on bus 229 from RAM addressing element 240 . Output data on bus 235 are fed to the FFT computing element 300 .

Das RAM-Adressierelement 240 kann aus einer Vielzahl PROM's (z. B. aus vier 2K × 8 PROM's bei N = 4096) bestehen. Die RAM-Adressierung ist in Lese- und Schreibadressierung sowie in komplexe und echte Adressierung aufgeteilt. The RAM addressing element 240 can consist of a multiplicity of PROM's (e.g. four 2K × 8 PROM's at N = 4096). RAM addressing is divided into read and write addressing as well as complex and real addressing.

Der Komplexadressierungsteil verwendet die jeweiligen Lese- oder Schreibadressen zur Speicherung eines komplexen Datenwerts. Die echte Adressierung fügt der komplexen Adresse ein niedrigstwertiges Bit an, das den Zugriff zu den phasengleichen und Quadraturkomponenten jedes komplexen Datenwerts steuert. Z. B. kann ein niedrigstwertiger Bitwert 0 der phasengleichen oder echten Komponente und ein Wert 1 der Quadratur- oder Imaginärkomponente entsprechen. Dadurch kann die FFT-Information als Komplexformation unter Anwendung der komplexen Adresse bezeichnet werden, wobei inhärent bekannt ist, daß der Wert des niedrigstwertigen Bits die echte oder Imaginärkomponente bestimmt.The complex addressing part uses the respective read or write addresses for storing a complex data value. Real addressing adds to the complex address a least significant bit indicating that access to the in-phase and quadrature components of each complex data value controls. For example, a least significant bit value can be 0 the in-phase or real component and a value of 1 correspond to the quadrature or imaginary component. Thereby can the FFT information as a complex formation under Application of the complex address can be referred to, where it is inherently known that the value of the least significant Bits determines the real or imaginary component.

Die gesamte RAM-Schreibadressierung ist sequentiell und von einem Zählwert angesteuert, der einem bestimmten komplexen Fouriertransformations-Rechenvorgang je FFT-Stufe entspricht. Jeder aufeinanderfolgende komplexe Punkt wird sequentiell eingeschrieben, wobei die echte Komponente zuerst und die Imaginärkomponente danach eingeschrieben wird. So kann ein Realzähler das Ein-Ausgabe-RAM-Element 220 adressieren. Diese sequentielle Zählung wird gleichzeitig für jeden der vier Bausteine durchgeführt und befindet sich daher auf einem einzigen Bus 227.The entire RAM write addressing is sequential and driven by a count value, which corresponds to a specific complex Fourier transformation calculation process per FFT stage. Each successive complex point is written sequentially, with the real component being written first and the imaginary component afterwards. In this way, a real counter can address the input / output RAM element 220 . This sequential count is performed simultaneously for each of the four building blocks and is therefore on a single bus 227 .

Die Leseadressierung ist erheblich komplizierter als die Schreibadressierung, und war wegen der RAM-Umgruppierung (S R) der Eingangsdaten zum FFT-Rechenelement 300. Da die Information in den RAM in sequentiellere Folge in den jeweils richtigen Kanal des RAM eingeschrieben wurde, muß durch die Leseadressierung die Auswahl der erforderlichen Datenwörter für jede Fouriertransformations-Operation erfolgen. Die Leseadressierung erfolgt durch Befehle im PROM, der von einem Folgezähler adressiert wird, der die laufende komplexe Fouriertransformations-Rechennummer verfolgt. Jeder der vier RAM's im Ein-Ausgabe-RAM-Element 220 benötigt eine jeweils gesonderte parallele Adressierung im Bus 229.The read address is considerably more complicated than the write addressing, and was due to the RAM rearrangement (S R) of the input data to the FFT computation element 300th Since the information was written into the RAM in sequential order in the correct channel of the RAM, the read addressing must be used to select the required data words for each Fourier transform operation. Read addressing is carried out by commands in the PROM, which is addressed by a sequence counter that keeps track of the current complex Fourier transformation calculation number. Each of the four RAMs in the input / output RAM element 220 requires a separate parallel addressing in the bus 229 .

Das Twiddle-Speicherelement 260 kann aus einer Vielzahl PROM's bestehen (z. B. aus acht 2K × 8 PROM's bei N = 4096), die die Twiddlefaktor-Koeffizienten enthalten, die dem FFT-Rechenelement 300 zugeführt werden. Die Information wird über vier parallele 16-Bit-Bausteine im Bus 265 zugeführt. Wie noch erläutert wird, sind die eigentlichen gespeicherten Twiddlefaktoren diejenigen, die für die Stufe eins einer Transformation bei vorbestimmten N und R benötigt werden. Aus dieser gespeicherten Information wählt das Twiddle-Adressierschema im Twiddle-Adressierelement 280 den richtigen Koeffizienten für jede Fouriertransformations- Operation für jede spezielle Stufe und Transformationsgröße aus.The twiddle storage element 260 may consist of a plurality of PROM's (e.g., eight 2K × 8 PROM's at N = 4096) that contain the twiddle factor coefficients that are fed to the FFT computing element 300 . The information is supplied via four parallel 16-bit modules in bus 265 . As will be explained, the actual stored twiddle factors are those that are required for the stage one of a transformation at predetermined N and R. From this stored information, the twiddle addressing scheme in the twiddle addressing element 280 selects the correct coefficient for each Fourier transformation operation for each particular stage and transformation size.

Das Twiddle-Adressierelement 280 kann aus einer Vielzahl PROM's (z. B. aus drei 2K × 8 PROM's bei N = 4096) bestehen, die von Zählern gesteuert werden, die die komplexe Fouriertransformations- Operationsnummer wie im RAM-Adressierelement 240 verfolgen. Das Element verwendet ein Maskierschema, bei dem die Adressierung um einen geeigneten Betrag erhöht wird, um einen Ausgleich für unterschiedliche Durchgänge oder Transformationsgrößten zu schaffen. Instruktionen werden dem Twiddle-Speicherelement 260 auf Leitung 275 zugeführt.The twiddle addressing element 280 can consist of a plurality of PROM's (e.g. three 2K × 8 PROM's at N = 4096) controlled by counters that track the complex Fourier transform operation number as in the RAM addressing element 240 . The element uses a masking scheme in which the addressing is increased by an appropriate amount to compensate for different passes or transformation sizes. Instructions are provided to twiddle memory element 260 on line 275 .

Das Steuerelement 340 erzeugt geräteeigene Steuersignale 345 für weitere Elemente und liefert ein Takteingabesignal 355 zur Synchronisierung sämtlicher E/A-Datenwörter und Koeffizienten. Control element 340 generates device-specific control signals 345 for further elements and supplies a clock input signal 355 for the synchronization of all I / O data words and coefficients.

Das BITE-Element 320 kann eine Ausgangsinformation 305 als Quelle für Prüfdaten unter Verwendung einer Leitung 315 verwenden. Durch Zugriff auf einen Baustein der Ausgangsdaten 305 kann das BITE-Element 320 z. B. einen 16-zu-1- Datenmultiplexer und eine externe Steuerung 325 verwenden, um eines von 16 Bits für die externe Prüfung über Leitung 335 auszuwählen.BITE element 320 may use output information 305 as a source of test data using line 315 . By accessing a block of the output data 305 , the BITE element 320 can e.g. For example, use a 16-to-1 data multiplexer and external controller 325 to select one of 16 bits for external testing on line 335.

Das FFT-Rechenelement 300 wird unter Bezugnahme auf Fig. 6 erläutert, wobei die Bezugszeichen denjenigen von Fig. 5 entsprechen. Das FFT-Rechenelement kann zwar ein einziger Chip in spezieller Auslegung sein, seine Funktionen können aber auch von einer Kaskadenanordnung vorhandener Chips, z. B. entsprechend dem IBM-SPE-Chip, durchgeführt werden. Die Funktion des FFT-Rechenelements besteht darin, die FFT-Matrixoperationen zu berechnen und für die Matrixnormierung und -rundung zu sorgen. Es empfängt Eingangsdaten über den Bus 235, Twiddle-Koeffizienten vom Bus 265, Steuerfunktionen auf Leitung 345 und das Takteingabesignal auf Leitung 355. Ausgangsdaten werden auf Bus 305 zugeführt. (Die neben jedem Baustein oder Bus in Fig. 5 stehende Zahl bezeichnet die Anzahl Leitungen je Baustein oder Bus.)The FFT computing element 300 will be explained with reference to FIG. 6, the reference numerals corresponding to those of FIG. 5. The FFT computing element can be a single chip in a special design, but its functions can also be provided by a cascade arrangement of existing chips, e.g. B. according to the IBM SPE chip. The function of the FFT computing element is to calculate the FFT matrix operations and to take care of the matrix normalization and rounding. It receives input data on bus 235 , twiddle coefficients from bus 265 , control functions on line 345 and the clock input signal on line 355 . Output data is supplied on bus 305 . (The number next to each module or bus in Fig. 5 denotes the number of lines per module or bus.)

Das FFT-Rechenelement 300 berechnet die Vierpunkt-DFT mit der Grundzahl 4 durch Lösen der folgenden Gleichungen:The FFT computing element 300 calculates the four-point DFT with the basic number 4 by solving the following equations:

T(k) = [D(k) + D(k + 1) + D(k + 2) + D(k + 3)] × C(k)
T(k + 1) = [D(k)-jD(k + 1)-D(k + 2) + jD(k + 3)] × C(k + 1)
T(k + 2) = [D(k) - D(k + 1) + D(k + 2)-D(k + 3)] × C(k + 2)
T(k + 3) = [D(k) + jD(k + 1)-D(k + 2)-jD(k + 3)] × C(k + 3)
T (k) = [D (k) + D (k + 1) + D (k + 2) + D (k + 3)] × C (k)
T (k + 1) = [D (k) - jD (k + 1) - D (k + 2) + jD (k + 3)] × C (k + 1)
T (k + 2) = [D (k) - D (k + 1) + D (k + 2) - D (k + 3)] × C (k + 2)
T (k + 3) = [D (k) + jD (k + 1) - D (k + 2) - jD (k + 3)] × C (k + 3)

Bei k = 0,4, 8, . . . , N-4, wobei
T(i) = Ausgangsvektor,
D(i) = Dateneingangsvektor,
C(i) = Twiddlekoeffizient oder Phasendrehvektor,
j = Wurzel aus -1.
At k = 0.4, 8,. . . , N -4, where
T (i) = output vector,
D (i) = data input vector,
C (i) = twiddle coefficient or phase rotation vector,
j = root from -1.

Da es sich hier um eine Grundzahl 4 handelt, ist die Phasen­ drehoperation in die Gleichungen eingeführt durch Zufügen des C(i)-Vektors. Bei Operationen mit höherer Grundzahl erfordert die Phasendrehoperation eine gesonderte komplexe Multiplikationsoperation (nicht gezeigt). Alternativ können die Phasendreher mit den Twiddle-Speicherelement- Koeffizienten verschmolzen werden, um einen komplexen Multiplikationsschritt einzusparen.Since this is a basic number 4, the phase rotation operation is introduced into the equations by adding the C (i) vector. For higher base number operations, the phase shift operation requires a separate complex multiplication operation (not shown). Alternatively, the phase rotators can be merged with the twiddle memory element coefficients in order to save a complex multiplication step.

Daten können über Bus 235 als Datenwörter empfangen werden. Die Datenwörter können komplex sein und aus einer Gleichphasen- und einer Quadraturkomponene bestehen. Jede Komponente ist eine 16 Bits umfassende, mit Vorzeichen versehene Festpunkt-Bruchzahl, die ein Komplement von Zwei ist. Es werden vier Datenwörter gleichzeitig empfangen unter Bildung des Vektors D(i) in den obigen Gleichungen. Ebenso werden vom Bus 265 synchron mit den vier Datenwörtern vier Twiddle-Koeffizienten empfangen, die den Vektor C(i) bilden. Bei N = 64 im vorliegenden Beispiel empfängt das FFT-Rechenelement 16 Vektoren D(i) und C(i) für jeden Durchgang durch eine Stufe und gibt 16 Vektoren T(i) aus, die jeweils aus vier Datenwörtern bestehen. Der Ausgang wird auf Bus 305 der nächsten Stufe zugeführt.Data can be received as data words via bus 235 . The data words can be complex and consist of an in-phase and a quadrature component. Each component is a 16-bit signed fixed-point fraction that is a complement of two. Four data words are received simultaneously to form the vector D (i) in the above equations. Likewise, bus 265 receives four twiddle coefficients in synchronism with the four data words, which form the vector C (i) . If N = 64 in the present example, the FFT computing element receives 16 vectors D (i) and C (i) for each pass through a stage and outputs 16 vectors T (i) , each consisting of four data words. The output is fed to the next stage on bus 305 .

Ferner kann gemäß Fig. 6 das FFT-Rechenelement 300 ein Steuerwort "Sklalierungsfaktorausgabe" 347 ausgeben, das gleich der Anzahl von Rechtsverschiebungen ist, die erforderlich sind, um während der anschließenden Verarbeitung ein Überlaufen zu verhindern. Das Ausgangswort wird in der nächsten Stufe als "Skalierungsfaktoreingabe" 349 empfangen. Further, the FFT calculation element 300 according to FIG. 6 output a control word "Sklalierungsfaktorausgabe" 347, which is equal to the number of right shifts required to prevent overflow during subsequent processing. The output word is received in the next stage as "scaling factor input" 349 .

Fig. 7 zeigt ein Ausführungsbeispiel der Architektur des FFT-Rechenelements, wobei die Bezugszeichen denjenigen von Fig. 5 entsprechen. Die Datenwörter in einem Vektor D(i) gelangen auf den Bus 235 und werden richtig skaliert. Arithmetik-Logik-Einheiten 312, Verzögerungsglieder 314, "j"-Multiplizierer 316 und Komplex-Multiplizierer 318, die den C(i)-Vektor von Bus 265 verwenden, bilden den Vektor T(i), der auf Bus 305 ausgegeben wird. FIG. 7 shows an exemplary embodiment of the architecture of the FFT computing element, the reference symbols corresponding to those of FIG. 5. The data words in a vector D (i) arrive on bus 235 and are scaled correctly. Arithmetic logic units 312 , delay elements 314 , "j" multiplier 316 and complex multiplier 318 using the C (i) vector of bus 265 form the vector T (i) which is output on bus 305 .

Fig. 8 zeigt die Werte für den Vektor C(i), die in einem Twiddle-Speicherelement (260 in Fig. 4) einer FFT-Prozessoreinheit mit systolischer Geometrie bei N = 64 und R = 4 gespeichert sind. Die Zählung der Fouriertransformations- Rechenvorgänge ist in Spalte A gezeigt. Die vier Werte von C(i) für jede Stufe sind in den Spalten B-D gezeigt. Jeder Wert bezeichnet "m" in dem Term exp (-j2π m/N), wobei N = 64. FIG. 8 shows the values for the vector C (i) which are stored in a twiddle memory element ( 260 in FIG. 4) of an FFT processor unit with systolic geometry at N = 64 and R = 4. The count of the Fourier transform computations is shown in column A. The four values of C (i) for each level are shown in columns BD . Each value denotes "m" in the term exp (- j 2 π m / N) , where N = 64.

Die Werte der Twiddle-Koeffizienten der Stufe 2 sind eine Untergruppe derjenigen von Stufe 1. Wenn N größer ist, setzt sich diese Beziehung auf spätere Stufen fort. Wenn der j-Potenz-Phasendreher jedoch mit den Twiddlewerten verschmolzen wird, wird die Wiederholhäufigkeit zerstört. Die Werte der Stufe 3 sind das Resultat der Verschmelzung des j-Potenz-Multiplizierers mit den Twiddle-Einheiten in Stufe 3. Wenn der j-Potenz-Multiplizierer nicht mit den Twiddle-Einheiten in Stufe 3 verschmolzen wird, sind sämtliche Twiddle-Werte in Stufe 3 Null.The values of the level 2 twiddle coefficients are a subset of those of level 1. If N is greater, this relationship continues to later levels. However, if the j -potential phase rotator is merged with the twiddle values, the repetition frequency is destroyed. The level 3 values are the result of the merge of the j -potential multiplier with the twiddle units in stage 3. If the j -potential multiplier is not merged with the twiddle units in stage 3, all twiddle values are in Level 3 zero.

Die ROM-Anforderungen können weiter dadurch vermindert werden, daß Twiddle-Koeffizienten entsprechend Fig. 8 kombiniert werden. Ein festverdrahtetes Adressierschema im Twiddle-Adressierelement (280 in Fig. 4) wählt den geeigneten C(i)-Wert aus unter Anwendung der Nummer des Fouriertransformations- Rechenvorgangs und der Stufennummern. In der letzten Stufe erfolgt nur Zugriff auf die eingekreisten Werte. Wenn N höher ist, sind die Muster ähnlich mit der Ausnahme, daß eine Variation der eingekreisten Gruppe wiederholt wird. Wenn z. B. N = 256, enthält jede Spalte vier aufeinanderfolgende Wiederholungen von [0,64, 128, 192].The ROM requirements can be further reduced by combining twiddle coefficients as shown in FIG. 8. A hardwired addressing scheme in the twiddle addressing element ( 280 in FIG. 4) selects the appropriate C (i) value using the number of the Fourier transform computation and the stage numbers. In the last stage, only the circled values are accessed. If N is higher, the patterns are similar except that a variation of the encircled group is repeated. If e.g. B. N = 256, each column contains four consecutive repetitions of [0.64, 128, 192].

Die Softwaresimulierung des oben beschriebenen Verfahrens zeigt, daß es in einer Pipeline-FFt mit einer Grundzahl 2, 4, 8 oder höher angewandt werden könnte. Mit zunehmender Grundzahl steigt die Durchsatzrate infolge eines höheren Parallelitätsgrads an, vorausgesetzt, daß die FFT-Rechenprozessoren in jeder Stufe hinsichtlich ihrer inneren Architektur mit einer ausreichenden Parallelität aufgebaut werden können, so daß sie mit den höheren Durchsatzraten Schritt halten können. Je nach der erforderlichen Verarbeitungs­ geschwindigkeiten kann eine Architektur mit hoher Grundzahl einen Pipeline-Prozessor im FFT-Rechenelement erforderlich machen (z. B. 8-Punkt-FFT etc.).The software simulation of the method described above shows that in a pipeline FFt with a base number 2, 4, 8 or higher could be applied. With increasing Basic number increases the throughput rate due to a higher Degree of parallelism, provided that the FFT computing processors at every stage in terms of their inner Architecture built with sufficient parallelism can be so that they have the higher throughput rates Can keep pace. Depending on the processing required architecture with high speeds Basic number a pipeline processor in the FFT computing element make necessary (e.g. 8-point FFT etc.).

Das vorstehend erläuterte Verfahren ist ein Frequenzdezimierungs- bzw. DIF-Verfahren, aus diesem Frequenzdezimierungsverfahren kann aber ein Zeitdezimierungs- bzw. DIT- Verfahren erzeugt werden mittels Durchführung einer Transposition der DFT-Matrix F₆₄, wenn sie symmetrisch ist. F₆₄ wird durch Post-Multiplikation mit der Umgruppierungsmatrix S 4/16 symmetrisch gemacht, wobei die Zeilen von F₆₄ in die natürliche Ordnung (Ordnung mit steigender Frequenz) umgekehrt werden. Die Zeitdezimierungs-Version (nach Post-Multiplikation der Frequenzdezimierungs-Version mit S 4/16 und Transposition des Resultats) ist wie folgt:The method explained above is a frequency decimation or DIF method, but from this frequency decimation method a time decimation or DIT method can be generated by performing a transposition of the DFT matrix F ₆₄ if it is symmetrical. F ₆₄ is made symmetrical by post-multiplication with the regrouping matrix S 4/16 , the lines of F ₆₄ being reversed into the natural order (order with increasing frequency). The time decimation version (after post-multiplying the frequency decimation version with S 4/16 and transposition of the result) is as follows:

F₆₄T = S 16/4 D PH FD PH 1 S RT F₄ D PH 2 S RT F₄D PH S16/4, F ₆₄ T = S 16/4 D PH FD PH 1 S R T F₄ D PH 2 S R T F₄ D PH S 16/4 ,

wobei
S 16/4 = S 4/16 T,
S RT = die Transponierte von S R und
F₆₄T = die DIT-DFT-Matrix.
in which
S 16/4 = S 4/16 T ,
S R T = the transpose of S R and
F ₆₄ T = the DIT-DFT matrix.

Da F₄ eine Stufenmatrix ist, die 4-Punkt-Kern-DFT's entlang der Diagonalen enthält, und da jede DFT in natürlicher Ordnung und daher als symmetrische 4 × 4-Matrix angenommen wird, ist die Matrix F₄ somit symmetrisch und durch Transpositionen unverändert. Sämtliche "D"-Matrizen, die Phasendrehung und Twiddle-Faktoren enthalten, sind bereits diagonal und daher symmetrisch. Nur die Umgruppierungsmatrizen S 4/16 und S R werden durch die Transponierungs-Operation geändert. Es ist zu beachten, daß nunmehr die Twiddlefaktormatrizen den F₄-Matrizen vorhergehen, was charakteristisch für Zeitdezimierungs-Prozessoren und -verfahren ist.Since F ₄ is a step matrix that contains 4-point core DFT's along the diagonal, and since each DFT is assumed to be natural and therefore a symmetrical 4 × 4 matrix, the matrix F ₄ is thus symmetrical and unchanged by transpositions . All "D" matrices that contain phase shift and twiddle factors are already diagonal and therefore symmetrical. Only the regrouping matrices S 4/16 and S R are changed by the transpose operation. It should be noted that the twiddle factor matrices now precede the F ₄ matrices, which is characteristic of time decimation processors and methods.

Bei einer alternativen Ausführungsform können die Funktionen der Phasenverschiebeoperatoren mit zyklischen Kommutatorschaltern ausgeführt werden. Dadurch wird zwar eine Datenübertragung über zwei E/A-Kanäle eingeführt, diese findet jedoch außerhalb des FFT-Rechenelements statt. Eine solche Ausführungsform kann bei mit niedriger Geschwindigkeit ablaufenden Operationen mit niedriger Grundzahl attraktiv sein.In an alternative embodiment, the functions of phase shifting operators with cyclic commutator switches be carried out. This does make one Data transmission over two I / O channels introduced, these however, takes place outside the FFT computing element. A such embodiment can be used at low speed ongoing operations with low base number be attractive.

Die vorstehend erläuterten Techniken könnten auch in einem rekursiven FFT-Prozessor angewandt werden. Rekursive Prozessor- Anwendungen, bei denen die gleiche Hardware wiederholt benützt wird, können geeignet sein, wenn eine geringe Verarbeitungsgeschwindigkeit akzeptabel ist.The techniques discussed above could also be used in one recursive FFT processor can be applied. Recursive processor Applications where the same hardware is repeated used may be appropriate if a low Processing speed is acceptable.

Claims (27)

1. Einrichtung zum Berechnen der schnellen Fouriertransformierten bzw. FFT komplexer Datenwörter, gekennzeichnet durch
Eingabespeicher zum Empfang der Datenwörter und Anordnen derselben in R Kanälen, wobei der Eingabespeicher R Ausgänge entsprechend den R Kanälen aufweist;
eine Mehrzahl von in Serie geschalteten Stufen zur Transformation der Datenwörter, wobei die erste Stufe die Datenwörter in R Kanälen vom Ausgang der Eingabespeicher empfängt; und
Ausgabespeicher, die mit der letzten der in Serie geschalteten Stufen gekoppelt sind, zur Ausgabe der Datenwörter, wobei jede Stufe umfaßt:
R Eingabemittel und R Ausgabemittel entsprechend den R Kanälen zur Kopplung der Stufen;
R Umgruppierungsmittel zur zeitlichen Ausrichtung von R Datenwörtern in einem Vektor, wobei jeder Vektor ein Datenwort aus jeweils einem der Kanäle umfaßt;
einen Fouriertransformationsoperator zur Durchführung einer Fouriertransformation an jedem Vektor;
R erste Multiplizierer zur Verschiebung der Phase der Datenwörter, bevor diese Datenwörter in den Fouriertransformations­ operator eingegeben werden;
R zweite Multiplizierer zur Verschiebung der Phase der Datenwörter, nachdem diese Datenwörter vom Fouriertransformationsoperator ausgegeben sind, wobei die zweiten Multiplizierer sich nicht in der ersten der in Serie angeordneten Stufen befinden; und
R dritte Multiplizierer zur Bildung vorbestimmter Koeffizienten jedes der Datenwörter;
wobei zwischen dem Eingabe- und dem Ausgabespeicher Datenwörter in einem der Kanäle nicht zu einem weiteren Kanal übertragen werden, außer in dem Fouriertransformationsoperator.
1. Device for calculating the fast Fourier transform or FFT complex data words, characterized by
Input memory for receiving the data words and arranging them in R channels, the input memory having R outputs corresponding to the R channels;
a plurality of stages connected in series for transforming the data words, the first stage receiving the data words in R channels from the output of the input memories; and
Output memories, coupled to the last of the stages connected in series, for outputting the data words, each stage comprising:
R input means and R output means corresponding to the R channels for coupling the stages;
R regrouping means for time alignment of R data words in a vector, each vector comprising a data word from each of the channels;
a Fourier transform operator for performing a Fourier transform on each vector;
R first multipliers for shifting the phase of the data words before these data words are entered into the Fourier transform operator;
R second multipliers for shifting the phase of the data words after these data words are output by the Fourier transform operator, the second multipliers not being in the first of the stages arranged in series; and
R third multipliers for forming predetermined coefficients of each of the data words;
wherein data words in one of the channels are not transmitted to another channel between the input and the output memory, except in the Fourier transform operator.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß einer der R dritten Multiplizierer mit einem der R ersten Multiplizierer verschmolzen wird.2. Device according to claim 1, characterized in that one of the R third multipliers is merged with one of the R first multipliers. 3. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß einer der dritten Multiplizierer mit einem der zweiten Multiplizierer verschmolzen wird.3. Device according to claim 1, characterized, that one of the third multipliers by one of the second Multiplier is merged. 4. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Fouriertransformationsspeicher eine Stufenmatrix umfaßt, die R-Punkt-Fouriertransformierte entlang der Blockdiagonalen hat.4. Device according to claim 1, characterized in that the Fourier transform memory comprises a step matrix which has R- point Fourier transforms along the block diagonals. 5. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die ersten Multiplizierer Multiplizier zum Verschieben der Phase der Datenwörter um ganzzahlige Vielfache von 360/R Grad aufweisen.5. Device according to claim 1, characterized in that the first multipliers have multipliers for shifting the phase of the data words by integer multiples of 360 / R degrees. 6. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß jeder dritte Multiplizierer aufweist:
einen oder mehrere programmierbare ROM's, die die vorbestimmten Koeffizienten enthalten;
Nachführmittel zum Zählen der Anzahl Operationen, die von dem Fouriertransformationsoperator ausgeführt werden; und
ein Adressierelement, das den vorbestimmten Koeffizienten aus den progammierbaren ROM's unter Nutzung der Nachführmittel auswählt.
6. Device according to claim 1, characterized in that every third multiplier comprises:
one or more programmable ROMs containing the predetermined coefficients;
Tracking means for counting the number of operations performed by the Fourier transform operator; and
an addressing element that selects the predetermined coefficient from the programmable ROMs using the tracking means.
7. Einrichtung zur Durchführung von Fouriertransformationen an einem Eingangsstrom aus N digitalen Datenwörtern, deren jedes eine Phase hat, gekennzeichnet durch Empfangseinheiten, die die Datenwörter in R Kanälen empfangen;
Verarbeitungsmittel, die die Datenwörter in Log R N seriell angeordneten Stufen verarbeiten, wobei jede Stufe umfaßt:
  • - Umgruppierungsmittel in Form einer N × N-Matrix zur zeitlichen Ausrichtung von R Datenwörtern in einem Vektor, wobei jeder Vektor eines der Datenwörter aus jedem der R Kanäle umfaßt, die in Abständen N/R aus dem Strom von N digitalen Datenwörtern entnommen sind;
  • - Phasenschiebemittel zur Modifikation der Datenwörter ohne Zwischenkanal-Übertragung dieser Datenwörter, wobei die Phase von R Datenwörtern in jedem Kanal um ein ganzzahliges Vielfaches von 360/R Grad verschoben wird; und
  • - Fouriertransformationsmittel zur Durchführung von Fouriertransformationen an jedem Vektor, umfassend eine Vielzahl Matrixoperatoren mit einer Grundzahl R.
7. A device for performing Fourier transformations on an input stream of N digital data words, each of which has a phase, characterized by receiving units which receive the data words in R channels;
Processing means that process the data words in log R N stages arranged in series, each stage comprising:
  • - Regrouping means in the form of an N × N matrix for the temporal alignment of R data words in a vector, each vector comprising one of the data words from each of the R channels, which are taken at intervals N / R from the stream of N digital data words;
  • Phase shifting means for modifying the data words without interchannel transmission of these data words, the phase of R data words in each channel being shifted by an integer multiple of 360 / R degrees; and
  • - Fourier transformation means for performing Fourier transformations on each vector, comprising a multiplicity of matrix operators with a basic number R.
8. Prozessor zur Durchführung der schnellen Fouriertransformation bzw. FFT digitaler Datenwörter mit einer Phase, gekennzeichnet durch
mehrere in Serie angeordnete Fouriertransformationselemente mit einer Mehrzahl Kanäle zur Durchführung von Fouriertransformationen an Gruppe der Datenwörter; und
mehrere den Fouriertransformationselementen vorgeschaltete Phasenverschiebeelemente zur Modifikation der Datenwörter, wobei jedes Phasenverschiebeelement die Datenwörter in die richtige Sequenz für das nächste der in Serie angeordneten Fouriertransformationselemente bringt, ohne daß Datenwörter zwischen den Kanälen übertragen werden.
8. Processor for performing the fast Fourier transform or FFT of digital data words with a phase, characterized by
a plurality of Fourier transformation elements arranged in series with a plurality of channels for performing Fourier transformations on a group of the data words; and
a plurality of phase shift elements upstream of the Fourier transform elements for modifying the data words, each phase shift element bringing the data words into the correct sequence for the next of the fourier transform elements arranged in series, without data words being transmitted between the channels.
9. Einrichtung zur Durchführung der schnellen Fouriertransformation bzw. FFT digitaler Daten, mit einer Mehrzahl Datenkanäle und einer Mehrzahl Umgruppierungsoperatoren zur Neuordnung der Digitaldaten, dadurch gekennzeichnet, daß jeder Umgruppierungsoperator Daten aus nur einem der Datenkanäle neuordnet.9. Device for carrying out the fast Fourier transformation or FFT of digital data, with a plurality Data channels and a plurality of regrouping operators Reorganization of digital data, characterized, that each regrouping operator data from only one of the Reordered data channels. 10. Einrichtung zur Durchführung der schnellen Fouriertransformation bzw. FFT digitaler Datenwörter mit jeweils einer Phase, gekennzeichnet durch
eine Mehrzahl Datenkanäle;
eine Mehrzahl von in Serie angeordneten Fouriertransformationselementen zum Berechnen der Fouriertransformierten von Gruppen der digitalen Datenwörter, wobei diese Gruppen jeweils ein Datenwort aus jedem Kanal aufweisen;
eine Mehrzahl von den Fouriertransformationselementen vorgeschalteten Phasenschiebeelementen jeweils zur Modifikation der Phase der Datenwörter in dem einen Kanal; und
eine Mehrzahl von den Fouriertransformationselementen vorgeschalteten Umgruppierungselementen zum jeweiligen Anordnen der Datenwörter in einem der Kanäle,
so daß die Datenwörter in einem der Kanäle nicht zu einem anderen Kanal übertragen werden.
10. Device for performing the fast Fourier transformation or FFT digital data words, each with a phase, characterized by
a plurality of data channels;
a plurality of Fourier transform elements arranged in series for calculating the Fourier transform of groups of the digital data words, these groups each having a data word from each channel;
a plurality of phase shift elements connected upstream of the Fourier transform elements, each for modifying the phase of the data words in the one channel; and
a plurality of regrouping elements connected upstream of the Fourier transformation elements for the respective arrangement of the data words in one of the channels,
so that the data words in one of the channels are not transferred to another channel.
11. Einrichtung nach Anspruch 10, dadurch gekennzeichnet, da die Foruiertransformationsmittel eine Stufenmatrix mit Fouriertransformierten entlang der Blockdiagonalen aufweisen.11. The device according to claim 10, characterized, because the Foruiertransformsmittel a step matrix with Have Fourier transforms along the block diagonals. 12. Einrichtung nach Anspruch 12, dadurch gekennzeichnet, daß R Datenkanäle vorhanden sind und daß jedes Phasenschiebeelement einen Multiplizierer zur Verschiebung der Phase der Datenwörter um ein ganzzahliges Vielfaches von 360/R Grad aufweist.12. The device according to claim 12, characterized in that R data channels are present and that each phase shift element has a multiplier for shifting the phase of the data words by an integer multiple of 360 / R degrees. 13. Einrichtung zur Durchführung der schnellen Fourier­ transformation bzw. FFT einer Vielzahl digitaler Datenwörter, gekennzeichnet durch eine Mehrzahl Datenkanäle und Mittel zum Berechnen der Fouriertransformation von Gruppen der digitalen Datenwörter, wobei jede dieser Gruppen eines der Datenwörter aus jedem Kanal umfaßt und wobei keine Übertragung von Datenwörtern zwischen den Kanälen stattfindet.13. Device for performing the fast Fourier transformation or FFT of a multitude of digital data words, marked by a plurality of data channels and Means for computing the Fourier transform of groups the digital data words, each of these groups being one which includes data words from each channel and none Transmission of data words between the channels takes place. 14. Einrichtung zur Durchführung der schnellen Fouriertransformation bzw. FFT digitaler Daten, gekennzeichnet durch einen Prozessor mit einer Mehrzahl Stufen und einer Mehrzahl Kanäle für diese Daten, wobei die Bahn dieser digitalen Daten in jedem Kanal festgelegt ist und keine Umschalter aufweist.14. Device for performing the fast Fourier transformation or FFT of digital data, marked by a processor with a plurality of stages and a plurality Channels for this data, the trajectory of this digital Data is set in each channel and no toggle having. 15. Einrichtung zur Modifikation komplexer Datenwörter mit einer Mehrzahl Kanäle und einer Mehrzahl gekoppelter Stufen zum Berechnen der Fouriertransformierten der Datenwörter, gekennzeichnet durch Phasenschiebemittel zur Modifikation der Datenwörter, so daß die Datenwörter in einer der Stufen so angeordnet werden, daß sie eine vorgegebene Ordnung für die nächste Stufe haben, ohne daß Daten zwischen den Kanälen übertragen werden.15. Device for modifying complex data words with a plurality of channels and a plurality of coupled stages to calculate the Fourier transform of the data words, marked by Phase shifting means for modifying the data words, see above that the data words are arranged in one of the stages so that they have a predetermined order for the next stage without having to transfer data between the channels will. 16. Einrichtung nach Anspruch 15, dadurch gekennzeichnet, daß vier Kanäle vorgesehen sind und daß die Phasenschiebemittel Multiplizierer umfassen, die die Datenwörter in jedem Kanal mit einer Potenz von j multiplizieren, wobei die j-Potenz-Multiplikatoren für jeden Kanal konsekutive ganzzahlige Potenzen von J, ausgehend von Null, sind.16. The device according to claim 15, characterized in that four channels are provided and that the phase shifting means comprise multipliers which multiply the data words in each channel by a power of j , the j power multipliers being consecutive integer powers of J for each channel , starting from zero, are. 17. Einrichtung nach Anspruch 15, dadurch gekennzeichnet, daß R Kanäle vorhanden sind und daß die Phasenschiebemittel Multiplizierer umfasseen, die die Phase der Datenwörter in jedem der R Kanäle um ein Vielfaches von 360/R Grad verschieben, und daß die Vielfachen von 360/R Grad für jeden Kanal konsekutive ganze Zahlen, ausgehend von Null, sind.17. The device according to claim 15, characterized in that R channels are present and that the phase shifting means comprise multipliers that shift the phase of the data words in each of the R channels by a multiple of 360 / R degrees, and that the multiples of 360 / R Degrees are consecutive integers for each channel, starting from zero. 18. Einrichtung zum Berechnen der schnellen Fouriertransformierten bzw. FFT komplexer Datenwörter, mit einer Mehrzahl von in Serie gekoppelten Stufen zur Transformation der Datenwörter, dadurch gekennzeichnet, daß jede Stufe aufweist:
R Eingabemittel und R Ausgabemittel entsprechend R Kanälen zur Kopplung der Stufen;
R Umgruppierungsmittel zur zeitlichen Ausrichtung von R Datenwörtern in einem Vektor, wobei jeder Vektor eines der Datenwörter aus jedem Kanal umfaßt;
einen Fouriertransformationsoperator zur Durchführung einer Fouriertransformation an jedem Vektor;
R erste Multiplizierer zur Verschiebung der Phase der Datenwörter, bevor diese in den Fouriertransformationsoperator eingegeben werden; und
R zweite Multiplizierer zur Bildung vorbestimmter Koeffizienten für jedes Datenwort;
wobei zwischen den Eingabe- und den Ausgabemitteln Datenwörter in einem der Kanäle nicht zu einem anderen Kanal übertragen werden.
18. Device for calculating the fast Fourier transform or FFT of complex data words, with a plurality of stages coupled in series for the transformation of the data words, characterized in that each stage has:
R input means and R output means corresponding to R channels for coupling the stages;
R regrouping means for temporally aligning R data words in a vector, each vector comprising one of the data words from each channel;
a Fourier transform operator for performing a Fourier transform on each vector;
R first multipliers for shifting the phase of the data words before they are input to the Fourier transform operator; and
R second multipliers for forming predetermined coefficients for each data word;
wherein data words in one of the channels are not transmitted to another channel between the input and the output means.
19. Einrichtung nach Anspruch 18, dadurch gekennzeichnet, daß einer der R zweiten Multiplizierer mit einem der R ersten Multiplizierer verschmolzen wird.19. Device according to claim 18, characterized in that one of the R second multipliers is fused with one of the R first multipliers. 20. Einrichtung nach Anspruch 18, dadurch gekennzeichnet, daß der Fouriertransformationsoperator eine Stufenmatrix umfaßt, die R-Punkt-Fouriertransformierte entlang der Blockdiagonalen enthält.20. Device according to claim 18, characterized in that the Fourier transform operator comprises a step matrix which contains R- point Fourier transforms along the block diagonals. 21. Einrichtung nach Anspruch 18, dadurch gekennzeichnet, daß jeder zweite Multiplizierer aufweist:
einen oder mehrere programmierbare ROM's, die die vorbestimmten Koeffizienten enthalten;
Nachführungsmittel zum Zählen der Anzahl Operationen, die von dem Fouriertransformationsoperator durchgeführt werden; und
ein Adressierelement zur Auswahl des vorbestimmten Koeffizienten aus dem programmierbaren ROM unter Nutzung der Nachführungsmittel.
21. Device according to claim 18, characterized in that every second multiplier comprises:
one or more programmable ROMs containing the predetermined coefficients;
Tracking means for counting the number of operations performed by the Fourier transform operator; and
an addressing element for selecting the predetermined coefficient from the programmable ROM using the tracking means.
22. Einrichtung zur Durchführung von Fouriertransformationen an einem Eingangsstrom von N digitalen Datenwörtern, mit R Kanälen und Log R N in Serie angeordneten Stufen, dadurch gekennzeichnet, daß jede Stufe umfaßt:
eine N × N-Matrix zur zeitlichen Ausrichtung von R Datenwörtern in einem Vektor, wobei jeder Vektor eines der Datenwörter aus jedem der R Kanäle umfaßt, die in Abständen von N/R aus dem Strom von N digitalen Datenwörtern entnommen sind;
Phasenschiebemittel zur Modifikation der Datenwörter ohne Datenwortübertragung zwischen den Kanälen; und
Fouriertransformationsmittel zur Durchführung von Fouriertransformationen an jedem Vektor.
22. Device for performing Fourier transformations on an input stream of N digital data words, with R channels and log R N stages arranged in series, characterized in that each stage comprises:
an N x N matrix for temporal alignment of R data words in a vector, each vector comprising one of the data words from each of the R channels extracted from the stream of N digital data words at N / R intervals;
Phase shifting means for modifying the data words without data word transmission between the channels; and
Fourier transform means for performing Fourier transforms on each vector.
23. Einrichtung nach Anspruch 22, dadurch gekennzeichnet, daß die Fouriertransformationsmittel eine Stufenmatrix mit R-Punkt-Fouriertransformierten entlang der Blockdiagonalen umfassen.23. Device according to claim 22, characterized in that the Fourier transforming means comprise a step matrix with R -point Fourier transforms along the block diagonals. 24. Prozessor zur Durchführung der schnellen Fouriertransformation bzw. FFT digitaler Datenwörter, mit einer Mehrzahl von in Serie angeordneten Fouriertransformationseinheiten, gekennzeichnet durch eine Mehrzahl von den Fouriertransformationseinheiten vorgeschalteten Phasenschiebeeinheiten zur Modifikation der Datenwörter, wobei jede Phasenschiebeeinheit die Datenwörter in die richtige Folge für die nächste der in Serie angeordneten Fouriertransformationeinheiten bringt.24. Processor for carrying out the fast Fourier transformation or FFT of digital data words, with a plurality of Fourier transform units arranged in series, marked by a plurality of upstream of the Fourier transform units Phase shifting units for modification of the Data words, with each phase shifter the data words in the right order for the next one in series arranged Fourier transform units brings. 25. Einrichtung zum Berechnen der schnellen Fouriertransformierten bzw. FFT digitaler Datenwörter in einer Mehrzahl von Datenkanälen, gekennzeichnet durch
eine Mehrzahl von in Serie angeordneten Fouriertransformationseinheiten zum Berechnen der Fouriertransformierten von Gruppen der digitalen Datenwörter, wobei die Gruppen jeweils ein Datenwort aus jedem Kanal aufweisen; und
eine Mehrzahl von den Fouriertransformationseinheiten vorgeschalteten Phasenschiebeeinheiten jeweils zur Modifikation der Phase der Datenwörter in einem der Kanäle, wobei die Bahnen, denen die digitalen Datenwörter folgen, festgelegt sind und keine Umschalter aufweisen.
25. Device for calculating the fast Fourier transformed or FFT digital data words in a plurality of data channels, characterized by
a plurality of Fourier transform units arranged in series for calculating the Fourier transform of groups of the digital data words, the groups each having a data word from each channel; and
a plurality of phase shifter units connected upstream of the Fourier transformation units in each case for modifying the phase of the data words in one of the channels, the tracks which the digital data words follow are fixed and have no changeover switches.
26. Verfahren zur Durchführung der schnellen Fouriertransformation bzw. FFT eines Eingangsstroms von N digitalen Datenwörtern, die jeweils eine Phase haben, gekennzeichnet durch folgende Verfahrensschritte:
  • (a) Sortieren der Datenwörter in R Kanälen;
  • (b) Log R N-maliges Wiederholen der Schritte (c) bis (f);
  • (c) zeitliches Ausrichten von R Datenwörtern in N/R Vektoren, wobei die Datenwörter in jedem der Vektoren aus dem Eingangsstrom in Abständen N/R entnommen sind und wobei jeder Vektor ein Datenwort aus jedem Kanal umfaßt;
  • (d) Verschieben der Phase der Datenwörter, wobei die Phase der Datenwörter in jedem Kanal um Vielfache von 360/R Grad für jeden Kanal verschoben wird;
  • (e) Berechnen der Fouriertransformierten jedes Vektors; und
  • (f) Multiplizieren mit vorbestimmen Koeffizienten.
26. Method for carrying out the fast Fourier transformation or FFT of an input stream of N digital data words, each having a phase, characterized by the following method steps:
  • (a) sorting the data words in R channels;
  • (b) Log R repeating steps (c) through (f) N times;
  • (c) temporally aligning R data words in N / R vectors, the data words in each of the vectors being extracted from the input stream at N / R intervals and each vector comprising a data word from each channel;
  • (d) shifting the phase of the data words, shifting the phase of the data words in each channel by multiples of 360 / R degrees for each channel;
  • (e) computing the Fourier transform of each vector; and
  • (f) Multiply by predetermined coefficients.
27. Verfahren zum Berechnen der schnellen Fouriertransformierten bzw. FFT eines Eingangsstroms von N digitalen Datenwörtern in einer Mehrzahl von in Serie angeordneten Stufen, dadurch gekennzeichnet, daß jede Stufe folgende Schritte umfaßt:
  • (a) Ausrichten von R Datenwörtern in N/R Vektoren, wobei jeder Vektor ein Datenwort aus jedem Kanal umfaßt;
  • (b) Verschieben der Phase der Datenwörter, wobei die Phase der Datenwörter in jedem Kanal um Vielfache von 360/R Grad für jeden Kanal verschoben wird; und
  • (c) Berechnen der Fouriertransformierten jedes Vektors.
27. A method for calculating the fast Fourier transform or FFT of an input stream of N digital data words in a plurality of stages arranged in series, characterized in that each stage comprises the following steps:
  • (a) aligning R data words into N / R vectors, each vector comprising one data word from each channel;
  • (b) shifting the phase of the data words, shifting the phase of the data words in each channel by multiples of 360 / R degrees for each channel; and
  • (c) Calculate the Fourier transform of each vector.
DE3908276A 1988-03-14 1989-03-14 DEVICE AND METHOD FOR CALCULATING THE FAST FOURIER-TRANSFORMED COMPLEX DATA WORDS Withdrawn DE3908276A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16773288A 1988-03-14 1988-03-14

Publications (1)

Publication Number Publication Date
DE3908276A1 true DE3908276A1 (en) 1989-09-28

Family

ID=22608582

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3908276A Withdrawn DE3908276A1 (en) 1988-03-14 1989-03-14 DEVICE AND METHOD FOR CALCULATING THE FAST FOURIER-TRANSFORMED COMPLEX DATA WORDS

Country Status (4)

Country Link
JP (1) JPH0214363A (en)
DE (1) DE3908276A1 (en)
GB (1) GB2216693B (en)
IL (1) IL89604A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19906868C1 (en) * 1999-02-18 2000-05-04 Siemens Ag Method of calculating discrete orthogonal transformation, such as FFT or IFFT e.g. for telecommunications engineering

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2380829A (en) * 2001-10-12 2003-04-16 Siroyan Ltd Organization of fast fourier transforms
GB2448755B (en) * 2007-04-27 2009-03-25 Univ Bradford FFT processor
US9098449B2 (en) * 2013-03-15 2015-08-04 Analog Devices, Inc. FFT accelerator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19906868C1 (en) * 1999-02-18 2000-05-04 Siemens Ag Method of calculating discrete orthogonal transformation, such as FFT or IFFT e.g. for telecommunications engineering

Also Published As

Publication number Publication date
GB2216693A (en) 1989-10-11
GB8905801D0 (en) 1989-04-26
JPH0214363A (en) 1990-01-18
IL89604A (en) 1992-07-15
GB2216693B (en) 1992-07-29
IL89604A0 (en) 1989-09-10

Similar Documents

Publication Publication Date Title
DE69837299T2 (en) System and method for fast Fourier transformation
DE3750017T2 (en) Orthogonal transformation processor.
DE19835216B4 (en) Processor and method for parallel data processing
DE3688353T2 (en) NON-RECURSIVE TWO-DIMENSIONAL DIGITAL FILTER.
DE69435034T2 (en) METHOD OF DEVICE FOR CARRYING OUT A QUICK HADAMARD TRANSFORM
DE3804938C2 (en) Image processing device
DE3789116T2 (en) PROCESSOR FOR TWO-DIMENSIONAL DISCRETE COSINE TRANSFORMATION.
DE3750791T2 (en) Very fast transformation device.
DE2627405C3 (en) Circuit arrangement for calculating the fast Fourier transform (FFT)
DE3854818T2 (en) TRANSFORMATION PROCESSING CIRCUIT
DE1549584C3 (en) Data processing system
DE3917059A1 (en) CORDIC ARRANGEMENT FOR MULTIPLICATING COMPLEX NUMBERS
DE19758079A1 (en) Computer system for determining product of two Galois field elements
DE2132004A1 (en) Multiplex information transmission system
DE2354521A1 (en) PROCEDURE AND EQUIPMENT FOR SIMULTANEOUS ACCESS TO DIFFERENT MEMORY MODULES
DE2151974A1 (en) Fast Fourier transform processing unit
DE1549477B1 (en) DEVICE FOR THE QUICK ACCUMULATION OF A NUMBER OF MULTI-DIGIT BINARY OPERANDS
DE2338469A1 (en) PROGRAMMABLE DIGITAL DATA PROCESSING DEVICE
DE3788617T2 (en) Vector data processing system with one I / O controller for each vector data processor and another I / O controller for at least one other vector data processor.
DE2644506A1 (en) CALCULATOR FOR CALCULATING DISCRETE FOURIER TRANSFORMS
DE4345029C2 (en) Discrete cosine transform circuit
CH627010A5 (en)
DE69830971T2 (en) Pipeline processor for fast Fourier transformation
DE2506671A1 (en) BINARY DATA HANDLING NETWORK
DE3908276A1 (en) DEVICE AND METHOD FOR CALCULATING THE FAST FOURIER-TRANSFORMED COMPLEX DATA WORDS

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee