DE1549584C3 - Datenverarbeitungsanlage - Google Patents

Datenverarbeitungsanlage

Info

Publication number
DE1549584C3
DE1549584C3 DE1549584A DE1549584A DE1549584C3 DE 1549584 C3 DE1549584 C3 DE 1549584C3 DE 1549584 A DE1549584 A DE 1549584A DE 1549584 A DE1549584 A DE 1549584A DE 1549584 C3 DE1549584 C3 DE 1549584C3
Authority
DE
Germany
Prior art keywords
iteration
complex
values
memory
digit
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.)
Expired
Application number
DE1549584A
Other languages
English (en)
Other versions
DE1549584A1 (de
DE1549584B2 (de
Inventor
Michael Joseph Mine Hill Gilmartin Jun.
Richard Robert Morristown Shively
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.)
AT&T Corp
Original Assignee
Western Electric Co 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 Western Electric Co Inc filed Critical Western Electric Co Inc
Publication of DE1549584A1 publication Critical patent/DE1549584A1/de
Publication of DE1549584B2 publication Critical patent/DE1549584B2/de
Application granted granted Critical
Publication of DE1549584C3 publication Critical patent/DE1549584C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/548Trigonometric functions; Co-ordinate transformations
    • 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)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Discrete Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Description

35
Die Erfindung betrifft eine Datenverarbeitungsanlage mit einem Speicher und einer arithmetischen Einheit zur Gewinnung von N komplexen Fourier-Koeffizienten entsprechend einer Eingangsfolge von N = 2'" Abtastwerten A0(O), A0(I)... A0(N - I) mit Hilfe eines Iterationsverfahrens, bei dem vorherbestimmte Paare J, K von N komplexen Werten Ai+l(0), A1+1 (Ι)·'; :(Ai+1 (N^l) beim (i + l)-ten Iterationsschritt für i = 0, 1 ... (M — 1) entsprechend der Anweisung A1+1(J) = Aj(J) + Ai(K) exp(/0) und Ai+1XK) — .Ai[J). -V-IAj(K) QXp(Je + ^berechnet werden, .wobei,, die Werte.;/40jytvdie erste Iteration aus den Äbtastwerten gebildet werden und die bei der m-ten Iteration gebildeten Werte die N komplexen Fourier-Koeffizienten darstellen.
Es gibt zahlreiche A,ri\veridü'ngsfälle, in denen es notwendig ist,'den Frequenzmhalt von Signalen zu bestimmen. Ih einigen Fällen kann man ein Signal
zunächst aufzeichnen und sodann eine Spektralanalyse
dieser Aufzeichnung unter Verwendung eines Vie}-zweck-Digitalrechriefs1 iri! eirier:JWeise'idurchführerV -"'-wie dies beispielsweise; in-,der,; Monographie.. ;»The Measurement of.Powers Spectra« von R..B. Black- -: ,-man und; J. W.'.Tuk/ey^yjphn .Wiley and Sons, ' New YorkT 19ό2,'! bescKrieben "würde.- Nath' dieser Methode ist ein hoher Genauigkeitsgrad möglich, und die Resultate können zur Eliminierung jeglicher Anomalien geglättet werden. Wegen der iterativen Natur dieses Prozesses können die Resultate jedoch häufig erst nach einer beträchtlichen Verarbeitungszeit erhalten werden.
Andererseits ist es häufig notwendig, die Information über das Frequenzspektrum sofort, d. h. als söge-
nannte »real-timerinfoVrnation« zu erhalten. Das heißt,
- es ,wird eine ilaüföndeiÄnzeig^ über;das Spektrum gefordert, während W;4aä · zu untersuchende Signal ansteht. Eine bisher 1,beriutzte Methode zum Erhalt einer real-time-Aussäge über die Frequenzverieilung in einem Signal erfordert eine Reihe schinaler Bandpaßfilter, von denen ein jeder auf einen anderen Teil des Signalfrequenzbereiches abgestimmt ist. Durch Abtasten der Ausgänge jedes dieser Filter (oder einer etwas geglätteten Version dieser Ausgänge) kann eine Anzeige über die in jedem schmalen Band geführte ,Signalenergie erhalten werden. Ersichtlich ist !hierzu aber-eine sehr größe Zahl komplizierter Präzisionsfilter erforderlich, wenn in einem System dieser Art ein hoher Auflösungsgrad erhalten werden muß. Daher können nur die größten und teuersten Systeme von dieser Methode vollen Gebrauch machen.
Es gab bisher zahlreiche Versuche, die mathematischen Methoden, die der klassischen Fourier-Transformation zugeordnet sind, zu vereinfachen und dadurch vereinfachte Spektralanalysen zu ermöglichen. So ist in der Arbeit »An Algorithm for the Machine Calculation of Complex Fourier Series« von J. W. C ο ο 1 e y und J. W. T ü k e y in Mathematics of Computation 19,297 bis 301,1965, ein vereinfachter Algorithmus zum Berechnen von Fourier-Koeffizienten auf einem Digitalrechner beschrieben. Durch eine sorgfältige Auswahl gruppierter Summationen waren die Verfasser in der Lage, eine beträchtliche Ökonomie . hinsichtlich der Anzahl von Additionen und Multiplikationen zu bewirken, die zur Bestimmung der gewünschten Koeffizienten erforderlich sind. Die meisten Allzweckrechner sind jedoch nicht dafür ausgelegt, eine beliebig große Anzahl paralleler arithmetischer Operationen durchzuführen. Auch die reduzierte Anzahl von Operationen, die durch den grundsätzlichen Algorithmus nach C ο ο 1 e y und T u k e y erforderlich sind, hat sich als zu groß erwiesen, um in vielen Fällen noch eine real-time-Spektralanalyse zu erhalten. Außerdem sind die sehr hohen Kosten für die Rechenzeit eines Allzweckrechners im allgemeinen zu hoch, um real-time-Spektralanalysen anführen zu können.
Die erfindungsgemäße Aufgabe besteht darin, eine gegenüber dem beschriebenen Stand der Technik verbesserte Datenverarbeitungsanlage für schnelle Fourier-Transformationen zur Verfügung zu stellen, die mit vergleichsweise geringem Rechen-, Belegungszeit- und Speicheraufwand ergebnisgenaue, besonders schritt- und akkumulationsschnelle »real-time«-Spektralanalysen durchführen kann.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß die arithmetische Einheit eine Prüfschal-
- tung aufweist, die feststellt, ob bei irgendeiner Iteration einer der gebildeten Werte Ai+1 außerhalb einer vor- ■■ Tierbestimmten-!: Zone' S" der komplexen Ebene liegt, daß die Prüfschaltung im Falle einer Überschreitung die Erhöhung. des .Zählstandes EK einer Maßstabfaktörschaltung "und eine Halbierung aller Ergebnisse während der nachfolgenden'Verarbeitung bewirkt.
Der erfindungsgemäße Vorteil besteht darin, daß bei der Durchführung der !.Iterationen sehr viel Rechenarbeit ,und vor. allem Speicherkapazität eingespart werden kann. Das erfindungsgemäß entwickelte modifizierte Gleitverfahren ermöglicht eine hohe Verarbeitungsgenauigkeit, ohne daß die Kosten und der Zeitverbrauch einer üblichen Gleit-Arithmetik, geschweige denn einer Fest-Arithmetik, auf-
treten. Erfindungsgemäß ist es jetzt nur noch nötig, fallweise und auf ganze Iterationsreihen, statt Einzelglieder derselben, bezogene Maßstabänderungen vorzunehmen. Das hat einen zusätzlichen entscheidenden Einfluß auf die erreichte Schnelligkeit der Arithmetik-Schleifenabarbeitung.
Der Vorteil gegenüber einem Allzweckrechner ist der, daß sehr schnelle digitale elektronische Schaltungen dazu verwendet werden können, parallele Verarbeitungsschritte auszuführen, wodurch eine realtime-Spektralanalyse von einer oder mehreren Eingangsabtastwertfolgen ermöglicht wird und wodurch die Genauigkeit und Wirksamkeit der digitalen elektronischen Schaltungen ohne die Kosten von Vielzweck-Rechnern realisiert werden kann.
Ein oben bereits angesprochener Vorteil dieser Anordnung ist der, daß der erforderliche Speicherraum minimalisiert wird, weil die Iterationsergebnisse einander ersetzen.
Im folgenden wird die Erfindung an Hand der Zeichnung erläutert. Es zeigen
Fig. la bis Id den sich ändernden Inhalt der Speichereinheit nach aufeinanderfolgenden Iterationen, wie diese in einer Ausführungsform der Erfindung durchgeführt werden,
F i g. 2 ein schematisches Blockschaltbild der Ausführungsform nach der Erfindung,
Fig. 3a und 3b in größeren Details je ein Blockschaltbild einer Komplexarithmetikeinheit bzw. des zugeordneten Trigonometriefunktionsgenerators entsprechender Ausführungsform nach der Erfindung,
Fig. 4 einen typischen Bereich der komplexen Zahlenebene, in den der Wert des Resultates einer Iteration fallen muß, wenn keine Maßstabsänderung durchzuführen ist,
Fig. 5 ein Zustandsdiagramm zur Erleichterung des Verständnisses eines Multiplizier-Rekoders, der in einigen Ausführungsformen der Erfindung vorgesehen ist,
F i g. 6 zwei typische Ziffernpositionen einer speziellen Ausführung einer Komplexarithmetikeinheit,
Fig. 7a und 7b zwei Addierkreise, die in der Schaltung nach F i g. 6 verwendet sind,
F i g. 8 ein Blockschaltbild der Schrittschaltung entsprechend einer Ausführungsform der Erfindung und
F i g. 9 ein Blockschaltbild einer Ausführungsform der Erfindung, die dafür ausgelegt ist, in einer Betriebsart zur Basis-4 zu arbeiten.
Allgemeiner Hintergrund
und theoretische Erwägungen
Eine periodische Funktion f(t) kann als Fourierreihe dargestellt werden durch
fit) =ΣΖ>(«) exp (7 If- «i)
(1)
hierin bedeutet
t„+T
D(n) = ± J'/(i) exp (-]ψ Hi) dr.
(2)
Wenn der Wert von f(t) nur durch N äquidistante Abtastpunkte in jedem Intervall der Länge T gegeben ist, dann kann durch Ersetzen des Integrals in Gleichung (2) durch eine Summation sowie des Differentials di durch das Inkrement T/N eine Annäherung für D(n) erhalten werden. Benutzt man zur Identifizierung von Annäherungen an f(t) ein * und setzt der Einfachheit halber i0 = 0, so hat die Annäherung D*(n) die Form
T = die Periode von f(t).
Die komplexen Koeffizienten D(n) sind gegeben durch Aus Gleichung (3) ist ersichtlich, daß
£)*(«) = D*(n + N)
ist, d. h., das Abtasten bewirkt zwangläufig, daß die annähernde Verteilung der Harmonischen periodisch ist, unabhängig von dem tatsächlichen Spektrum von f(t). Wenn daher D* eine vernünftige Annäherung an D sein soll, muß D{n) für π außerhalb
des Intervalls -^=— < η < -~- als vernachlässigbar
angenommen werden. Mit dieser Annahme kann f(t) in Gleichung (1) angenähert werden durch f*(t):
D*(n) exp (j ^-
π = 0
Die Periodizität von D* erlaubt es, daß die in Gleichung (5) gegebenen Summationsgrenzen an Stelle "der üblichen symmetrischen Grenzen —N/2 und verwendet werden können. Als Ergebnis weicht die Gleichung (5) durch eine multiplikative Konstante und durch das Vorzeichen des Exponenten von Gleichung (3) ab. Es gilt also
55 Ist f(t) eine komplexe Funktion der reellen Variablen t, so kann sie mit Hilfe zweier reeller Funktionen /1 und /2 ausgedrückt werden:
fit) = fHt)+jf2(t). (7)
Die Fourierkoeffizienten D*(n), die dieser komplexen Funktion f(t) entsprechen, sind ausdrück bar durch
wobei D1* und Df die (Näherungs-)Koeffizienten für / 1 bzw. /2 sind. Kennzeichnet man die konjungiert komplexe Größe durch ein ~, so ergibt sich aus Gleichung (3) ohne weiteres
60
- n)
f = Df(JV .-h). (9)
Daher kann die Gleichung (8) modifiziert werden zu: D*(N - n) = ßf (n) + jD$(n) (10)
D*(N - n) = Df(ii) - ./Df(H). (11)
Die Gleichungen (8) und (11) können kombiniert von κ Abtastwerten benutzt wird,also werden zu:." .. '.' V" ;""...'■'.....'■ ·.:','.', .: · ... ■ - .·. . '.-. ......·....· ...... -: .
(12)
(16)
= yr (D*(n).- D*(N- «)). ;(13J
Es soll nun eine Form des Cooley-Tukey-Algorithmus abgeleitet werden. Für diese Ableitung wird / (t) als periodische Funktion über die Periode T genommen. Der Einfachheit halber soll angenommen sein, daß eine' gegebene Periode zum Zeitpunkt t = 0 beginnt und sich bis t = T erstreckt. Die Periode wird in K Intervalle unterteilt, von denen jedes die Länge T/k besitzt.
Die Fourier-Koeffizienten F(ri) (die Sternchen sollen nachfolgend weggelassen werden) werden für f(t) auf Grund von K/2 Abtastungen, genommen bei t = 0, 2 T/k, 4 T/K ... (K - 2) TjK, errechnet. Es erweist sich als zweckmäßig, eine neue Funktion g(t) zu definieren durch
. g(t)=f(t+ Tk).
Die Fourierkoeffizienten G(ri), die der Funktion g(t) entsprechen, können dann berechnet werden,' und zwar beruhend auf den Abtastwerten von f(t), genommen bei t = T/K, 3 T/K ... (K - 1) T/K. Das heißt, F(ri) und G(n) werden je Fourierkoeffizienten sein, die f(t) entsprechen, und zwar beruhend auf getrennten, aber ineinandergeschachtelten Gruppen von K/2 Abtastwerten. Der einfacheren Bezeichnung halber werden folgende Definitionen angewandt: gilt, dann können die Koeffizienten^ von F und G wie folgt zur Bewertung von D verwendet werden: .. ....
■ 1
0<n<y-i,
07b)
K I
(14)
G(n) = ^r
Λ »ι = 0
(15a).
m\ (15b) Gleichung (17 b) folgt aus den Beobachtungen, daß
i) = F{n)
Gln + ^-) =
Unter Verwendung der Gleichung (3) können, wenn die Aufzeichnungslänge JV ersetzt wird durch K/2, die Größen F(n) und G(n) ausgedrückt werden als
45
55
60
Wenn D(n), η = 0, 1, 2 ... K - 1 zur Bezeichnung der Fourier-Koeffizienten für die kombinierte Gruppe
Die Gleichungen (17a) und (17b) demonstrieren die Grundoperation bei der binären Formulierung des Cooley-Tukey-Algorithmus, bei der nämlich die Fourierkoeffizienten zweier ineinandergeschachtelter Abtastungsaufzeichnungen miteinander kombiniert werden, um eine Gruppe von Koeffizienten zu erhalten, die dem Doppelten der Abtastfrequenz entspricht. Die Operation erfolgt, um für eine endliche (sagen wir JV) Abtastungsaufzeichnung die Fourierkoeffizienten zu berechnen, indem jede Abtastung als eine unabhängige eintermige Aufzeichnung betrachtet wird. Wegen der angenommenen Periodizität ist das Abtastintervall für jede dieser eintermigen Abtastungsaufzeichnungen die Periode T der abgetasteten Funktion. Der Fourierkoeffizient für jede solche eintermige Abtastungsaufzeichnung ist der Abtastwert selbst [d.h. Gleichung(3) mit JV = I]. Mit K = 2 können die Gleichungen (17a) und (17b) dazu verwendet werden, Abtastungen, d. h. Reihen, zu paaren, die um T/2 versetzt sind, der Hälfte der Abtastperiode der Eins-Abtastungsaufzeichnungen. Mit K = 4 können die Gleichungen (17a) und (17b) dazu verwendet werden, die zweitermigen Reihen zu paaren, was zu JV/4-Reihen führt, von denen jede vier Koeffizienten aufweist und auf Abtastungen beruht, die äquidistant in Intervallen von T/4 auseinanderliegen, usw. Wenn JV (die Größe der Gesamtaufzeichnung) ein Exponent von 2 ist, kann die beschriebene Prozedur rekursiv angewandt werden, um eine kombinierte JV-termige Fourierreihe fürdie JV Abtastungen zu erhalten. Da die Reihenlänge sich mit jeder Iteration verdoppelt, ist die Anzahl erforderlicher Iterationen gleich log2 JV. Da die Gesamtzahl der während jeder Iteration erzeugten Koeffizienten gleich JV ist (JV/2' Reihen, jede 2' lang) und eine komplexe Multiplikation [W · G(n) in Gleichung (17a), (17 b)] für jedes während jeder Iteration gebildete Koeffizientenpaar erforderlich ist, ist die Gesamtzahl der komplexen Multiplikationen
gleich (N/2)' log2 N. Für große N nähert sich hierbei der Bruchteil derjenigen Multiplikationen, welche entweder durch einen verschwindenden Realteil oder einen verschwindenden Imaginärteil von W vereinfacht werden, dem Wert 3/log2 N. Dies ergibt sich daraus, daß der der Größe W zugeordnete Winkel für jede der ersten zwei Iterationen ein Vielfaches, für die dritte Iteration ein Drittel des Vielfachen und für die vierte Iteration ein Viertel des Vielfachen, usw. von π/2 ist. ;
Die ursprüngliche Arbeit von Coole y—T u k e y legt dar, daß das Verarbeiten einer Aufzeichnung von N Abtastwerten anstatt einer besonderen Speicherung von N Operanden plus der N Resultate einer Iteration nur eine Rechenspeicherkapazität für N komplexe Zahlen erfördert. Dies deshalb, weil jedes gegebene Operandenpaar F{ri) und G(n) in den Gleichungen (17) dazu verwendet wird, nur ein Paar von Resultaten zu bilden. Die Operanden können daher vom resultierenden Paar überschrieben werden.
Fig. 1 zeigt eine mögliche Speicheranordnung zum Ausrechnen der Fourierkoeffizienten nach der Cooley-Tukey-Methode mit N = 8. Fi g. 1 a zeigt N = 8 Abtastwerte einer Eingangssignalaufzeichnung, die in einer von links nach rechts laufenden Reihe A0 nacheinander gespeichert sind. Die Bezeichnung D(I/J, K...) gibt den /-ten Koeffizienten, der der aus den Abtastwerten J, K... bestehenden Abtastungsaufzeichnung entspricht, wieder.
Bei der ersten Iteration werden die um die halbe Gesamtaufzeichnungslänge (und deshalb um N/2 = 4 Speicherstellen) versetzten Abtastwerte unter Verwendung der Gleichungen (17) kombiniert, um zweitermige Fourierreihen zu erzeugen. So werden D (0/0,4) und D (1/0,4) aus den Elementen in den Speicherstellen 0 und 4 gebildet, und die Resultate können dann in jenen Speicherstellen erneut gespeichert werden, weil die Abtastwerte 0 und 4 nicht wieder j erforderlich sein werden. In ähnlicher Weise werden die anderen Elemente der ersten Iteration in der Reihe Al (Fig. Ib) erzeugt und gespeichert. Dem folgen dann weitere Iterationen, die die Reihen A 2 und A 3 (F i g. 1 c bzw. 1 d) liefern. Die in die Reihe A 2 sich ergehenden Resultate beruhen auf drei ursprünglichen Eingangsabtastwerten, während jedes der Elemente von A3 auf allen der ursprünglichen Abtastwerte beruht. Die Reihe A 3 ist das Endresultat. Ausgenommen der Reihenfolge enthält diese Reihe die Resultate, die nach üblichen Methoden erst nach einer beträchtlich größeren Rechenarbeit erhalten würden. Im allgemeinen sind nach der fc-ten Iteration alle ähnlich numerierten Koeffizienten der Harmonischen gruppiert, aber die 2 k Gruppen harmonischer Koeffizienten erscheinen in einer Reihenfolge, die durch Umkehren der zur Indizierung derselben notwendigen k binären Ziffern beschrieben ist. Für das Beispiel der Fig. 1 erscheinen nach der dritten Iteration die im Speicher gespeicherten Koeffizienten in einer Reihenfolge, die durch Umkehren eines dreistelligen Binärziffernindex beschrieben sind. Da die Speicherstelle Odem Wert O = 000 zugeordnet ist, braucht das erste Element nicht umgeordnet zu werden. Der Koeffizient in der Speicherstelle 1 =001 muß jedoch in die Speicherstelle 1.00 = 4 übertragen werden. In ähnlicher Weise verbleibt der Koeffizient in der Speicherstelle 2 = 010 beim übertragen in die Speicherstelle 010 = 2, während sich der Koeffizient in der Speicherstelle 3 = 011 nach 110 = 6 bewegt, usw. Die Folge der während jeder Iteration benutzten Exponentwerte stimmt mit diesem Muster überein, da die Hochzahl von W in Gleichung (17) identisch ist mit der Zähl der Harmonischen.
Um Vorsorge für einen wirksamen Gebrauch des Speichers bei dem vorliegenden Algorithmus zu treffen, ist es zweckmäßig, die (komplexen) Resultate der i-teri Iteration als lineare Reihe A1(K), K = 0, 1 .. .N - 1 zu bezeichnen. A0 ist die Aufzeichnung von N Abtastwerten, die zu verarbeiten ist, wobei N = 2'" ist. Die Größe Zcn soll die 2"-bewertete Ziffer sein, wenn der Index K in binärer Form ausgedrückt wird, d. h.
m - i
κ = Σ. V 2\
Es sei bemerkt, daß der Index K sich nicht auf die
Zahl des harmonischen Koeffizienten bezieht. Die durch die Gleichungen (17) gegebenen Beziehungen können dann als rekursive Beziehung ausgedrückt werden durch
_i_2 ..A0) + (— _„ l,km-t-i ■ ■ ■
mit
θ =
Um erneut zu Iterieren, ist Ai+l(km_l, k„,_2 ·· · ^0) das K-te Element in der Reihe, die von der (i + l)-ten Iteration resultiert, wobei K = (fcm_i, km_2 · · · ^o) eine binäre Zahl ist. Die Verwendung binärer Ziffern für K erleichtert das Paaren der zu kombinierenden Reihenelemente, die durch
")m — ί — 1
= N/21
i+l
Speicherstellen getrennt sind. Die Zahl des harmonisehen Koeffizienten, der durch ein bestimmtes A1 dargestellt ist, wird gefunden durch Umkehren des Binärziffernfeldes km_x, fcm_2.. .&„,-,-· Dieses umgekehrte Feld erscheint in den Ausdrücken für Θ. Im einzelnen werden nach der letzten Iteration (1 = m) die ganzen m Binärziffern des Indexes K umgekehrt, um die Zahl des Fourierkoeffizienten in der K-ten Stellung zu identifizieren.
Die vorstehend beschriebene Methode ist die sogenannte Binärversion, d. h., N ist eine ganzzahlige Hochzahl von 2, und zwei Abtastwertaufzeichnungen werden ineinandergeschachtelt. Eine brauchbare Variante dieser Methode liegt im Ineinanderschachteln von vier Abtastwertaufzeichnungen an Stelle von zwei. Diese letztere Methode hat den Vorteil, daß die erforderliche Anzahl von Multiplikationen um 25% gegenüber der binären Methode reduziert wird. Ist ferner überschüssiger Speicherraum verfügbar, so müssen nur halb so viele Bezugnahmen auf den Speicher gemacht werden.
Die nachstehende Beschreibung erfolgt an Hand der binären Form des Algorithmus, es versteht sich jedoch, daß ein äquivalentes System zur Basis 4 auf Binärimplementationsgrundlage leicht entworfen werden könnte.
4Ό9 686/41
Allgemeine Betriebsmethode
F i g. 2 zeigt das Blockdiagramm eines schnellen Fouriertransformationsverarbeiters (FFTP) entsprechend einer Ausfuhrungsform der Erfindung, die den vorstehend beschriebenen Cooley-Tukey-Algorithmus wirksam realisiert. Diese vereinfachte Darstellung des Ausführungsbeispiels soll nun allgemein beschrieben werden. In den nachfolgenden Abschnitten wird jeder Aspekt dieser Ausfuhrungsform detailliert beschrieben.
Es sei angenommen, daß jedes Eingangssignal effektiv bereits in T sekundenlange Aufzeichnungen unterteilt worden ist und daß die erste dieser Aufzeichnungen zur Zeit t = 0 beginnen soll. Zur Vereinfachung der vorläufigen Diskussion soll ein einziges Eingangssignal angenommen werden. Während jedes T sekundenlangen Intervalls werden N = 2m Abtastwerte des Eingangssignals erhalten und dem Eingangspuffer 10 nacheinander präsentiert. Nach einer (gegebenenfalls erforderlichen) Umordnung oder Umsetzung von der Serienform in die Parallelform im Eingangspuffer 10 werden^ die Eingangsabtastwerte in den Systemspeicher 20 übertragen. Der Eingangspuffer 10 führt auch alle Funktionen wie Geschwindigkeitsänderungen oder Zeitsteuerung durch, die zur übertragung erforderlich sind. Die im Speicher 20 dann gespeicherte Information entspricht der in F i g. 1 a dargestellten, d. h., sie stellt die Reihe A0 oder die Ergebnisse der nullten Iteration dar. Selbstverständlich braucht die Länge der Reihe keine Beziehung zu der in F i g. 1 a dargestellten zu haben.
Die Arithmetik 50 verarbeitet dann die gespeicherten Abtastwerte und die vom Trigonometriefunktion-Generator 60 gelieferten Trigonometriefunktionswerte entsprechend Gleichung (18),um eine Reihe von Ergebnissen zu berechnen, die der Reihe A1 in F i g. 1 b entspricht. Die Schrittschaltung 70 dirigiert die Reihenfolge der vom Trigonometriefunktion-Generator 60 und vom Speicher 20 gelieferten Operanden und dirigiert auch die Rückgabe der Resultate zum Speicher 20.
Die Elemente der im Speicher 20 gespeicherten Reihe A1 werden dann Operanden und erzeugen zusammen mit den Werten des Trigonometriefunk-.
ίο
tions-Generators 60 die Reihe A 2. Dieser iterative Prozeß setzt sich fort, bis die w-te Reihe Am im Speicher gespeichert ist. Diese Reihe enthält die Endresultate der Fourieranalyse, und diese Resultate werden dann mit Hilfe des Ausgangspuffers 40 ausgelesen, der die im Einzelfall gewünschte Umordnung, beispielsweise eine Parallel-Serien-Umsetzung, eine Geschwindigkeitsänderung u. dgl. ausführt. . .
Da die Elemente jeder Reihe für nur eine nachfolgende Iteration benutzt werden, ist es möglich, die gesamte Speicherkapazität für Rechenzwecke auf diejenige zu begrenzen, welche für nur eine einzelne Reihe erforderlich ist. Das heißt, die Resultate einer betrachteten Berechnung ersetzen im Speicher diejenigen Operanden, von denen sie teilweise abgeleitet wurden. Dieses Ersetzen erfolgt unter der Steuerung der Schrittschaltung 70.
Komplexarithmetikeinheit-Aufbau
Die Grundarithmetikoperation, die zum Erzeugen aufeinanderfolgender Reihenelemente durchgeführt wird, ist entsprechend Gleichung (18) eine komplexe Multiplikation, gefolgt von einer komplexen Addition, d. h.
Ai+l(J) =
(19)
Aus den Symmetrieeigenschaften der Gleichung (18) ergibt sich unmittelbar
oder
A1+1(K) =
(20)
Wenn Operanden aufeinanderfolgend abgerufen werden (are accessed), wobei der Term A1(K) dem Term Ai(J) vorangeht, gibt die Gleichung (20) an, wie der zweite Operand mit dem ersten Resultat kombiniert wird, um die Zahl der komplexen Multiplikationen um den Faktor 1/2 zu reduzieren. Bezeichnet man die Real- und Imaginärteile der Elemente A1 mit ARi bzw. AI^so kann Gleichung (19) dahingehend umgeschrieben werden, daß sie explizit die vier reellen Multiplikationen angibt, die zur Bildung des einzigen komplexen Produkts A1(K) ■ exp(/0) erforderlich sind. Man erhält also:
ARi+1(J) = ARi(J) + ARi(K) cos Θ + AL1(K) sin G AI1+1(J) = AI1(J) + AI1(K) cos θ + ARi(K) sin G.
(21a)
(21b)
Ein spezielles Ausführungsbeispiel der Erfindung weist eine Arithmetikeinheit auf, die die arithmetischen Operationen entsprechend den Gleichungen (21 a, 21 b) ausführt. Eine Ausführung dieser Arithmetikeinheit ist in Fig. 3a als Blockschaltbild dargestellt. Tatsächlich sind diese Bauelemente vorteilhafterweise doppelt ausgeführt, um den Real- und Imaginärteil von A1+1(J) entsprechend Gleichungen (21 a und 21 b) gleichzeitig berechnen zu können. Diese Betriebsart mit zwei getrennten Arithmetikeinheiten ist vorzuziehen, weil hierdurch die Notwendigkeit einer Speicherung AR1(K) und AIi(K) entfällt, die erforderlich sein würde, wenn AR1+1(J) und AL1+1(J) getrennt zu berechnen wären.
Die Schaltung nach Fig. 3a enthält zwei parallele Ubertragsbewahrungs-Addierer 301 und 302. Diese Addierer liefern durch getrenntes Speichern der Ubertragsziffern eine schnelle Akkumulation von Teilsummen, wie dies in Multiplikationsschaltungen erforderlich ist. Diese Ubertragsziffern werden später in die akkumulierten Teilsummen zum Erzeugen des gewünschten Resultats eingegeben.
F i g. 3 zeigt des weiteren einen Akkumulator 303 üblicher Ausführung sowie einen zugeordneten Ubertragsgenerator 304. Die, Selektoren 305, 306 und 307 sind Logikblöcke, die je in der Lage sind, als ihr Ausgangssignal eines ihrer verschiedenen Eingangssignale oder bestimmte einfache Funktionen (einschließlich von Vielfachen) ihrer Eingangssignale auszuwählen.
Zur Erläuterung sei angenommen, daß die Arithmetikschleife der Fig. 3a dafür ausgelegt ist, die durch Gleichung (21 a) geforderten Operationen durchzuführen. Eine äquivalente Schaltung kann dafür vorgesehen sein, um gleichzeitig die durch Gleichung (21b) geforderten Operationen durchzuführen.
11 12
Die Eingangsleitung 308 führt das reelle Eingangs- Ein Nebenergebnis bei der Verwendung zweier
signal ARj(K) vom Speicher zum Addierereingang- hintereinandergeschalteter Addierer ist, daß die Um-
selektor 306, von wo aus die Übergabe als Multipli- Wandlung einer Zahl aus der gespeicherten Ubertrags-
kand zum Addierer 301 erfolgt. Der Eingangsleiter 309 form in die kanonische Form, wie weiter unten noch
führt in ähnlicher Weise das imaginäre Eingangssignal 5 beschrieben wird, erleichtert wird.
AIj(K) dem Selektor 307 zu, wo es zum geeigneten Fig. 3b zeigt eine mögliche Ausführungsform des
Zeitpunkt als Multiplikandeneingangssignal für den Trigonometriefunktionsgenerators 60 der F i g. 2. Die
Addierer 302 ausgewählt wird. Die Leitungen 310 Sinus- und Cosinusfunktionsgeneratoren 323 und 325
. bzw. 311, die Selektoren 306 bzw. 307 für rekodierte können zweckmäßigerweise aus rezirkulierenden
Cosinus- und Sinusmultiplikatorwerte mit dem in io Schieberegistern oder anderen gesonderten Speicher-
der Fig. 2 dargestellten Trigonometriefunktions- einrichtungen aufgebaut sein. Alternativ können sie
generator 60. Selbstverständlich gibt es einige An- tatsächlich durch numerische Werte gebildet sein, die
wendungsfälle, in denen ein Recodieren der Multi- in einem Teil des Hauptspeichers gespeichert sind,
plikatoren nicht notwendig oder nicht erwünscht ist. Eine Methode für einen wirksamen Zugriff zu diesen
Die Vorteile eines Recodierens der Trigonometrie- 15 Werten wird nachstehend unter dem Abschnitt »Folge
funktionswerte werden später noch erläutert. Eine der trigonometrischen Koeffizienten« erläutert. Die
ähnliche Rolle kommt den Leitern 308 bis 311 zu, Recodierer 322 und 324 können zahlreiche Formen
wenn die Arithmetikeinheit zur Berechnung entspre- annehmen, einschließlich eines bloßen Leitungswegs
chend Gleichung (21b) benutzt wird, allerdings mit für den Fall, daß kein Recodieren zu bewerkstelligen
der Ausnahme, daß dann die Leitung 308 mit dem 20 ist. Eine besonders zweckmäßige Recodierschaltung
Selektor 307 statt dem Selektor 306 und die Leitung wird nachstehend beschrieben.
309 mit dem Selektor308 statt dem Selektor307 T, ' , ■, .,_.,'.
verbunden ist. A Komplexanthmetik-Einheit-
Die Verwendung zweier in Kaskade geschalteter Automatisches Maßstabsetzen (Scaling)
Ubertragsbewahrungsaddierer ermöglicht es, Multi- 25 Die durch Gleichung (19) gegebene Grundarith-
plikandenvielfache gleicher Stellenbewertung in einer metikoperation impliziert bei jeder Iteration eine
einzigen Operation zu akkumulieren. So wird bei- Betragsverdopplung in dem Bereich, in dem komplexe
spielsweise ein durch Multiplizieren von ARj(K) mit Zahlen möglich sind. Würde die Arithmetikeinheit
einer Ziffer von cos Θ gebildetes Teilprodukt in einer eine Festkomma-Arithmetik verwenden und wäre sie
einzigen Operation mit einem durch Multiplizieren 30 zum Maßstabsetzen ausgelegt, dann wurden m Itera-
von AIj(K) mit einer Ziffer von sinus Θ gebildeten tionen, die mit Abtastwerten beginnen, die in n-Bit
Teilprodukt kombiniert. Weitere Vorteile solcher Art quantisiert sind, eine Genauigkeit von η + m Bit
hintereinandergeschalteter Addierer zur Bildung der erfordern, um sowohl in der Arithmetikeinheit als
Summe von Produkten gegenüber der Verwendung auch im Speicher dargestellt zu werden. Für Anwen-
einer einzigen Addierschaltung sind: 35 dungsfälle, in denen m im gleichen Bereich wie η liegt
Zunächst ist die Zeitverzögerung kleiner. Da die oder größer als η ist, würde eine ohne Maßstab
in den Knotenpunkten der Logikschaltung gemessene arbeitende (unsealed) Festkommaarithmetik dazu füh-
Ausbreitungsverzögerung des Äquivalentes eines zwei- ren, daß die Anordnung nicht effizient zu gebrauchen
stufigen Flipflops in einer arithmetischen Schleife ist.
annähernd doppelt so groß wie die Zeitverzögerung 40 Alternativ würde das Aufrechterhalten einer koneiner binären Addierstufe ist, erhöht das Hinter- , stanten Grenze durch Halbieren der Resultate bei einanderschalten zweier Addierer den Prozentsatz jeder Iteration (wobei das Halbieren »per definitionem« an Zeit, die den Logikelementen, welche die Arith- den Verlust des niedrig bewerteten Bit einschließt) metik tatsächlich durchführen, zugeteilt werden kann, ohne Rücksicht für die Daten zu einem unnötigen gegenüber einer Arithmetikschleife mit nur einem 45 Genauigkeitsverlust führen und könnte in einigen einzigen Addierer um 50%. Wenn des weiteren die Fällen bedeutungslose Ergebnisse bedeuten. Zur ErZeit zum Durchsteuern des zu verteilenden Signals läuterung sei die Verarbeitung einer Aufzeichnung während jedes Schrittes berücksichtigt wird, ist die mit nur einem von 0 verschiedenen Abtastwert betrach-Verbesserung sogar noch größer. tet. Das Indiziermuster ist so, daß einer der Operanden
Zweitens wird keine Zeit und auch keine Schaltung 50 in Gleichung (19) in diesem Falle immer 0 sein würde,
zur Zwischenspeicherung des ersten erzeugten Pro- so daß, wenn die Zahl der Iterationen die Zahl der
dukts benötigt, während das zweite gebildet wird. Binärziffern im ursprünglichen Abtastwert übersteigt,
Drittens entspricht die numerische Genauigkeit alle Resultate 0 sein würden. In der Praxis würden sich
der einer abgerundeten Summe von Produkten und Annäherungen an dieses Beispiel ergeben, was auf
nicht einer Summe von bereits jeweils vor der Addition 55 abrupte Signalpegeländerungen zurückzuführen ist.
abgerundeten Produkten. Dies ist ein Ergebnis des Die Prozedur des Maßstabsetzens ist derart, daß
Addierens von Multiplikandenvielfachen gleicher Stel- ein gemeinsamer Maßstabfaktor für die ganze Reihe
lenbewertung beider zu summierenden Produkte, benutzt und der Maßstab der Reihe nur wenn nötig
bevor die Teilproduktsumme nach rechts verschoben geändert wird. Auf diese Weise wird eine maximale
wird. Auf diese Weise werden Beiträge des gekürzten 60 Genauigkeit beibehalten, ohne daß dabei die Kosten
Teils der beiden Produkte im erhaltenen Ergebnis und der Zeitverbrauch einer Gleitkommaarithmetik
richtig wiedergegeben. Beim Abrunden dieses Resul- (floating point arithmetic) erforderlich sein würden,
tats ist der maximale Rundungsfehler auf 1 /2 gegenüber Wenn ein Arithmetikresultat bei irgendeiner Iteration
der niedrigstbewerteten Ziffernstelle begrenzt. Wenn überfließt, dann werden alle während dieser Iteration
nacheinander abgerundete Produkte (für die gleiche 65 gebildeten Resultate nach rechts verschoben, abge-
Ziffernstellenzahl) gebildet würden, würde das einen rundet und abgeschnitten. Eine Zählung der Anzahl
maximalen, asymptotisch gegen 1 gehenden Run- von Iterationen, bei denen ein Maßstabsetzen erfor-
dungsfehler ermöglichen. derlich war, bestimmt daher den Maßstabsfaktor.
Wird die Zählung mit EX bezeichnet, dann hat die schließende Reihe A1n die Interpretation
■)EX
= 2
EX — m ,
(22)
IO
'5
Hierin ist ΛΓdie Reih'engröße.
Die Verwendung eines gemeinsamen Maßstabs für die ganze Reihe, statt die Zählen individuell zu normieren, macht es bedeutungsvoll, bei der Berechnung mehr Ziffernstellen als in den ursprünglichen Abtastwerten oder in den trigonometrischen Koeffizienten beizubehalten. Die Zahl solcher Ziffern von erweiterter Genauigkeit bestimmt, wie weit große isolierte Elemente in der Reihe (die eine Maßstabsänderung forcieren) akkumulieren können, ohne in den verbleibenden Elementen den Gesämtverlust an Genauigkeit höherzutreiben. r
Bei der Verwendung eines gemeinsamen Maßstabfaktors wird die Entscheidung, ob die Reihe im Maßstab zu ändern ist oder nicht, am besten bei Beginn jeder Iteration gemacht, und zwar beruhend auf der Beobachtung der Resultate der vorausgegangenen Iteration. Würde nur eine teilweise Maßstabsänderung verwendet, so würde sich das Indizieren, das zur Kennzeichnung derjenigen Reihenteile, deren Maßstab geändert worden ist, erforderlich ist, sich bald als recht aufwendig und viel Speicherraum beanspruchend erweisen.
Das gewählte Entscheidungskriterium, ob alle Resultate einer Iteration im Maßstab um 1/2 zu ändern sind, oder ob der Maßstab ungeändert bleiben soll erfordert eine Bestimmung, ob irgendein Resultai der vorangegangenen Iteration außerhalb einer bestimmten Zone in der komplexen Zahlenebehe war. Wird diese Zone mit S bezeichnet und werden die Zahlen im: Speicher als vorzeichenbewertpte richtige Bruchteile interpretiert, so ist die notwendige und hinreichende Bedingung für einen Punkt A, daß dieser in S enthalten ist:
Ui <y.
(24)
Bei einem Ausführungsbeispiel der Erfindung· erweist es sich als zweckmäßig, alle Rechenergebnisse nicht mit einem Kreis des Radius 1/2 in Beziehung zu setzen, wie dies durch Gleichung (24) gefordert wird, sondern mit einer Annäherung zu vergleichen, die in Form einer unregelmäßig abgestuften Zone ähnlich der teilweise in Fig. 4 dargestellten vorliegt, wo die Koordinatenachsen den ersten Quadranten in der komplexen Zahlenebene definieren/ Da die Begrenzung in jedem Quadranten symmetrisch ist. kann die Annäherung an Hand der in den ersten Quadranten der komplexen Zahlenebehe fallenden Ausdrücke beschrieben werden, nämlich
/1 ,■ .. 1
. 13\ /5 . 3
13 , . 1\ · , /15 , . I
+^jund U+
Wenn A = O0O1O2 ... a5 die binäre 2er Komplementdarstellung eines Realteils oder eines Imaginärteils einer Zahl bezeichnet und ν für die logische Disjunktion steht, sind die zur Bestimmung, ob A innerhalb der vorgeschriebenen Grenzen liegt oder nicht, zu prüfenden Boolschen Ausdrücke die folgenden: ■
(25 a)
(25 b)
(25 c)
(25d)
(\a\ < 32 J = 5<Ä [52 Va3Vo4V α5] ν O0O1 [_a2 ν a3a4 ν α5]
ν '< 32) =' "0^1 ^2 v ^3 v ^4"5-'v a°ai ^2 v °3 v a*a^
(\a\ < -A = O0O1 (a2 ν a3 ν O0O1 (O2 ν O3))
(\a\ < jA = O0O12 ν ä3ä4) ν O0O1 (Ci2
-τ-) = O0O1O2VO0O1O2
-r-.l =. O0O1O2O3 V O0O1O2O3.
(25 e)
(25 f)
Die sechs Signale der obigen Form von jedem Real- und Imaginärteil werden paarweise kombiniert, um zu bestimmen, ob ein komplexes Resultat innerhalb der durch F i g. 4 definierten Begrenzung liegt.
Zur Erfüllung der Gleichungen (25 a) bis (25 O werden übliche Logiknetzwerke verwendet, ebenso für das Netzwerk zum Kombinieren der Prüfergebnisse für die Real- und Imaginärteile. Weitere Einzelheiten folgen nachstehend bei der Betrachtung der Art und · Weise, in der die Maßstabssetzoperationen in das Gesamtrechenprogramm hineinpassen.
Komplexarithmetikeinheit —
Reihenfolge der Operationen
Die von der in Fig. 3a dargestellten Arithmetikeinheit entsprechend den Gleichungen (20), (21a) und (21 b) durchgeführten Arithmetikoperationen sind die folgenden:
1. ARj(K) und AI1(K) werden über die Leitungen 308 und 309 in Fig. 3a angelegt. Werden gesonderte Arithmetikschleifen für ARi+1 (J) und /IZ1+1 (J) benutzt.
so werden diese Multiplikanden jeder Schleife präsentiert, obgleich, wie erwähnt, die Addierer, denen sie zugeführt werden, in beiden Schleifen entgegengesetzt arbeiten. Bei einigen Anwendungen ist es zweckmäßig, eine Pufferung zwischen Speicher und Addierern vorzunehmen.
■; 2. Ein Speicherzyklus wird ausgeführt, um Zugriff zu A1(J) zu erhalten. In einigen Fällen könnte dies selbstverständlich auch zur gleichen Zeit bewerkstelligt werden, in der der Zugriff zu A1(K) erfolgt. Da das aber zu jenem Zeitpunkt nicht nötig ist, müßte eine Zwischenspeicherung von Aj(J) vorgenommen werden.
3. Die recodierten Sinus-(9- und Cosinus-0-Multiplikatorfunktionen werden über die Leitungen 310 und 311 angelegt. Dann werden die allgemein bekannten iterativen Addier- und Schiebeschritte zur Bildung von A1(K) exp(J&) ausgeführt. Zu diesem Zweck bilden die Selektoren 306 und 307 entsprechende Vielfache ihrer jeweiligen Komponenten von A;(K). Wenn beispielsweise die Ubertragbewahrungsaddierer zur Ausführung einer Multiplikation zur Basis 4 verwendet werden, bilden die Selektoren (entsprechend einer nachstehend unter dem Abschnitt »Multiplikator — Recodierung« beschriebenen vorteilhaften Methode) das 0-, +1-, —1- oder +2fache der komplexen Komponente /IR1(K) oder AI1(K) in Abhängigkeit vom Wert des recodierten trigonometrischen Multiplikators.
4. ARj(J) und AI1(J) werden gerade dann zu den entsprechenden Real- und Imaginäreingangsselektoren 306 übergeführt, wenn die schließliche Teilsumme der Multiplikationen in die Akkumulatoren eingegeben wird.
5. Die Selektoren 306 bilden die +1 Vielfachen von ARj(J) und AIj(J), und die Ergebnisse werden zum Akkumulator übertragen. Dieses Resultat in Form eines gespeicherten Übertrages wird dann »assimiliert«, indem der Selektor 306 am Ausgang des Ubertragsgenerators 304 als Eingangseinrichtung für das obere Addiererpaar 301 gewählt wird. Der Ubertragsgenerator 304 bildet ein Ziffernwort, dessen Ziffern Null sind, wenn die entsprechende Ziffer in Form eines gespeicherten Übertrages der Zahl durch fortschreitende Überträge ungeändert bleibt. Eine Übertragsgenerator-Ziffer ist Eins, wenn die entsprechende übertragsgespeicherte Form zu vermehren ist. Ein ziffernweises Addieren dieses Worts, während die bei der Addition gebildeten Überträge zur Basis 4 gelöscht werden, liefert das Resultat in kanonischer Form. Wenn eine andere Arithmetik als die Arithmetik zur Basis 4 verwendet wird, ergeben sich daraus natürlich ähnliche Verfahrensweisen.
6. Das assimilierte Resultat des Schritts 5, nämlich Aj+1(J), wird an den Ausgang angelegt. Gleichzeitig wird es durch den Selektor 305 am Akkumulatoreingang negiert und auch in das Register eingebracht.
7. Aj+1(K) wird dann entsprechend Gleichung (20) durch Auswählen der +2-Vielfachen von ARj(J) und AIj(J) als Eingangssignale für die oberen Addierer 301 realisiert. Dieses Resultat wird wie bei Schritt 5 assimiliert und zum Ausgang übertragen, sobald das erste Resultat, nämlich A1+1 (J) gespeichert worden ist.
Es sei bemerkt, daß in einigen Fällen eine effizientere Wirkungsweise zu erzielen ist, wenn zu gewissen Zeiten addiert statt multipliziert wird. Dies ist möglich, wenn die trigonometrischen Argumente ganzzahlige Vielfache von π/2 sind, was zu Funktionswerten von 0, + 1 oder -1 führt.
Komplexarithmetikeinheit —
Multiplikator-Recodierung ·
Ein als Multiplikator-Recodierung bekanntes Verfahren wird bei einer Ausführungsform der Erfindung verwendet.
Die hier benutzte Multiplikator-Recodierung erfolgt zur Basis 4, ist nach links gerichtet und liegt in nichtredundanter Form vor. Der Zweck der Recodierung
Ό ist der, bei einer Multiplikation eine Verringerung der Anzahl Addiererbenutzungen auf die Hälfte der Zahl der im Multiplikator stehenden Ziffern zu ermöglichen, also eine Paarung als Ziffern zur Basis 4. Die Wirkung der Recodierung ist, Zahlen zur Basis 4 neu auszudrücken (deren Ziffern zweckmäßig die Werte 0, 1, 2 oder 3 annehmen), und zwar unter-Ausschluß des Werts 3. An Stelle einer 3 werden die Werte — 1 oder — 2 benutzt. Der Grund des Ausschließens von 3 ist der, daß Schaltungsaufwand und Ausführungszeit, die zur Bildung von —1- oder — 2fachen eines Multiplikanden in einer Binärmaschine erforderlich sind, wesentlich geringer sind als die entsprechenden Werte zur Bildung des + 3-Vielfachen. Das Recodieren ist nicht redundant, d.h., die Zahl möglicher Zifferr.-werte in der recodierten Zahl ist gleich dem Radix, weil die Multiplikatorziffer nacheinander im Verarbeiter behandelt werden. Deshalb ergibt sich kein Zeitvorteil dadurch, daß man mehr als vier mögliche Ziffernwerte zuläßt.
Es sei angenommen, daß der Multiplikator, X, in binärer Radix-Komplementform gegeben ist, d.h.:
Ik
X = 2 χ. !+X Xj 2~>,
so daß also die Bits zur Bildung von Ziffern zur Basis 4, y„ wie folgt gepaart werden können:
X = X^1X0- X1X2X3X4. ... X2 ic-l X2k
Ie
= Σ y.-4"
i = 0
Fürt > Okann^dieWerte0,1,2oder3annehmen; da der Multiplikator ein Sinus- oder Kosinuswert sein wird, kann y0 die Werte +1,0 oder — 1 annehmen (d. h.,der vierte Wert, —2, den X-1X0 darstellen kann, braucht nicht vorgesehen zu werden). Es bezeichne m; eine jedem y,· zugeordnete Boolsche Variable, die definiert ist durch
(26)
rrij = x2i-iX2iVX2i-imi+l,
-worin ν für die logische Disjunktion (logical union) steht. Wenn dann y\ die i-te Ziffer des recodierten Multiplikators bezeichnet, ist die Recodierung gegeben durch:
y'i = yi +
- 4 m,..
(27)
Die sequentielle Natur des Recodierens ist aus der rekursiven Form der Gleichung (26) ohne weiteres ersichtlich und ist im Zustandsdiagramm der F i g. 5 dargestellt. Hier bezeichnen die übergänge IJ/K, daß die recodierte Ziffer K auf das Binärziffernpaar IJ hin für den angegebenen Zustand von M erzeugt wird.
409 686/41
Die Kreise 501 und 502 stellen die Zustände M = 1 bzw. M = O dar. Entsprechend einem Ausfuhrungsbeispiel der Erfindung verkörpert ein Flipflop M, das die Interpretation der Multiplikatorziftern zur Basis 4 modifiziert, mv Bei Verwendung von + 2, + 1,0 und — 1 als die erlaubten Ziffernwerte sind die Boolschen Ausdrücke, die den Recodierer definieren, die folgenden:
+ 2: X21-^x21-M ν
+1: x2,_!x2,M ν
0: X21-I -X21M ν
-1: X2^1 X21M ν
IO
21^1 X21M .
(28)
Der Recodierer erzeugt unter Verwendung der Gleichung (26) auch den nächsten Wert für M.
Wenn die Binärziffern X21^1X21-, die eine Ziffer zur Basis 4 bilden, betrachtet werden und beide den Wert 1 haben, so hat das Recodieren die Wirkung, den Wert χ2,·-ι negativ zu bewerten, um dieses dann durch Addieren von 1 zur nächsten Ziffer auf der linken Seite zu korrigieren. Deshalb sind für das negativ bewertete Vorzeichenbit keine speziellen Maßnahmen erforderlich, d. h., durch »Vernachlässigen« des soeben beschriebenen Korrektionsschrittes kann die gleiche Recodierlogik auf y0 wie die anderen Ziffern zur Basis 4 angewandt werden.
Es sei bemerkt, daß die Multiplikanden-Vielfachen für den unteren Addierer nach dem Realteilakkumulator in F i g. 3 a die Werte —2, —1,0 und + 1 haben. Daher können die als sin θ erzeugten Ziffernwerte, wenn recodiert, entsprechend Gleichung (23) negativ interpretiert werden, um Negation des zweiten Produkts in Gleichung (21 a) wiederzugeben.
Ein Nebenprodukt der Recodierung besteht darin, daß die Negation des Multiplikators vereinfacht wird. So kann, um unter Verwendung der Identität
COS
= — sin Θ,
einen Cosinuswert aus einer Sinustabelle zu bilden, die Zweierkomplementnegation durch eine bitweise Negation von sin Θ erzeugt werden, gleichzeitig mit einem Einstellen des Flipflops M auf 1 als Anfangszustand für Multiplikationen.
Komplexarithmetikeinheit — Typische Ziffernstellen
In F i g. 6 sind zwei Binärziffernstellen des Realteils der Arithmetikschleife der F i g. 3 dargestellt. Diese Ziffernstellen sind identisch mit den Ziffernstellen im Imaginärteil. Die Ziffernstellen sind im Gegensatz zu den niedrig bewerteten Stellen (in denen wegen des Komplementübertrags, des Abrundens usw. spezielle Maßnahmen erforderlich sind) und auch im Gegensatz zu den hochbewerteten Stellen (in denen der Vorzeichenweitergabe und dem Zwischenüberfließen Rechnung getragen werden muß) »typisch«. Die hoch- und niedrigbewerteten Stellen werden unten noch beschrieben. Grad- und ungradzahlige Bitstellen unterscheiden sich voneinander nur dadurch, daß der Ubertraggenerator auf Basis 4 arbeitet. Einer dieser Unterschiede (Fig. 6), ist der, daß bei gradzahlig numerierten Stellen, beispielsweise der rechten Ziffernstelle in F i g. 6 eine vierte Option am Eingang des oberen Addierers 603 notwendig ist. Ein weiterer Unterschied besteht darin, daß es erforderlich ist, ein Ubertragssignal von gradzahlig numerierten Stellen während der »Assimilation« zu unterdrücken. Die in Fig. 6 benutzte Bezeichnung enthält mit IB beginnende Terme. Dadurch wird ein Eingangspuffer oder, wenn keines verwendet wird, einfach Speichereingang bezeichnet. Die Indizes bezeichnen die Stellenwertigkeit jedes Bits, wobei der Index k die Bewertung von 2~k angibt. Eine Überbewertung bezeichnet die logische Negation. Der Buchstabe R am Ende des Signals steht für den Realteil; die entsprechende Imaginärarithmetikschleife würde Signale enthalten, die beispielsweise durch IBI21 für Eingang-(Puffer)-Imaginärbewertung 2~2' identifiziert sind. CG-Signale, rühren von den durch die Indizes identifizierten Ubertraggeneratorbit her. Die t/CR-Signale werden in den Addierschaltungen (F i,g. 7 a, b) erzeugt. Mögliche Ausgangspufferstufen 610 sind mit den zugeordneten Gattern dargestellt. Die Leitungen 856 und 857 für Maßstabsänderung bzw. Maßstabsänderung verbinden zweckmäßig den Ausgang der Arithmetikeinheit und das angenommene Ausgangspuffer, um eine Maßstabsänderung, wenn nötig, zu bewirken. Die Leitung 915 ist die »Assimilierleitung«.
Die Flipflops 601 und 602 dienen zur Realisierung der Akkumulatorbits ASR und ACR (beziehen sich jeweils auf das reelle Akkumulatorsummenbit bzw. den im Akkumulator-gespeicherten reellen übertrag; die Flipflops sind je vom J-K-Typus und damit doppelstufig gespeichert werden können. Sie sind die einzigen Speicherelemente innerhalb der Arithmetikschleife. Die in Fig. 6 dargestellten oberen und unteren Addierer 603 und 604, auch als Typ 1 bzw. Typ 2 bezeichnet, sind voneinander verschieden, weil jedes »UND«- und »EXKLUSIV-ODER«-verknüpfte Summen- und Ubertragsbitpaar im Ubertragsgenerator verwertet werden kann. Folglich werden diese Signale als Zwischenergebnisse im Addierer vom Typ 1 erzeugt. Die Verbindungen von den oberen Addierern zu dem Ubertraggenerator sind in F i g. 6 nicht dargestellt. Es sind weniger verzögernde Ubertragungswege erforderlich, wenn die Summe und der übertrag direkt gebildet werden, wie dies an Hand eines Vergleichs der beiden Addierertypen in Fig. 7a und 7 b zu sehen ist. F i g. 7 a zeigt einen Typ-1-Addierer 603,und Fig. 7b zeigt einen Typ-2-Addierer 604. In beiden Schaltungen sind die logischen Gatterelemente NAND-Schaltungen. Die dreieckigen Elemente sind Inverter. Obgleich nicht immer erforderlich, ist Vorsorge zur Unterdrückung von Überträgen in allen Typ-1-Addierern getroffen. Die Leitung 914 in Fig. 7a dient zu diesem Zweck.
Es ist im Zusammenhang mit Fig. 6 zu beachten, daß die Vielfachen des als Eingangsignal an den unteren Addierer verfügbaren Operanden-Imaginärteils — 2, — 1, +1 sind, wobei das Minuszeichen in Gleichung (21a) durch eine nichterfüllte 0 wiedergegeben wird. Dieselben diese Selektion bewirkenden Steuersignale werden im Imaginärteil der Arithmetikschleife benutzt, um die jeweilige Vielfachen +2, +1 und — 1 des Realteils des Operanden während der Multiplikation auszuwählen.
Komplexarithmetikeinheit —
Höchstwertige Ziffernstellen
Die am linken Ende der Arithmetikschleifen einmalig erforderliche Einrichtung hängt vom Bereich der darzustellenden Zahlen ab. Die Beschränkungen im Maßstabsetzen, das Multiplikatorrecodieren, der
gespeicherte Arithmetikübertrag sowie die durch den Umstand gesetzten Schranken, daß die beiden Multiplikatoren der Sinus bzw. Cosinus des Winkels sind, gehen sämtlich in die Bestimmung dieses Zahlenbereichs ein.
Zunächst sei der Zahlenbereich in den Akkumulatoren betrachtet. Da alle Resultate einer jeden Iteration
die Bedingung \a\ < -γ erfüllen müssen, um eine Maßstabsänderung um 1/2 während der nächsten Iteration zu verhindern, folgt, daß keine Resultate der in Gleichung (19) beschriebenen Operation den
Betrag 1 überschreiten werden (vorausgesetzt, die Anfangsdaten genügen dieser Bedingung) oder, äquivalent hierzu, keine Operanden bei der Rekursion den Betrag 1 überschreiten. Bezeichnet man den Realteil bzw. den Imaginärteil als AR bzw. AI, dann gilt als Schranke für den Betrag von A
MAXl! AR ±/U| < f2.
für alle Vorzeichenkombinationen. Die Schritte Multiplikationsschritte Realteil können beispielsweise beschrieben werden durch
c„_k-AR-ys„_kAI). (30)
Hierin bedeutet pk = die /c-te Teilproduktsumme, k = 0, 1 ... n, p0 = 0; die Endproduktsumme ist Apn, und ycn-k(ysn-k) ist die recodierte Ziffer zur Basis 4 der Stellenbewertung 4"~k beim Cosinus. ys„_k ist die recodierte Ziffer zur Basis 4 der Stellenbewertung 4"~k beim Sinus, η ist die Zahl der Ziffern zur Basis 4 rechts vom Radixpunkt.
Deshalb zeigen, weil der maximale Absolutwert einer Ziffer in den recodierten Multiplikatoren gleich 2 ist, die Gleichungen (29) und (30) an, daß das Maximum, um die eine Teilproduktsumme während irgendeines Zwischenschrittes bei der Multiplikation vermehrt werden kann, gleich -j-(2 ]f2) ist. Da Ziffern
für beide Multiplikatoren während Zwischenschritten wiederholt den Wert 2 annehmen können, kann die begrenzende Teilproduktsumme, die im Akkumulator darzustellen ist, errechnet werden als die Summe einer geometrischen Reihe, die gegeben ist durch: Als nächstes sei der Fall betrachtet, daß die Ausgabeschranke des ersten, d. h. oberen Ubertragbewahrungsaddierers dem Betrage nach 2 überschreitet, nicht aber 4. Um zu zeigen, daß diese Zwischensumme größer als 2 sein kann, sei angenommen, daß jede Komponente eines Operanden 1 — Θ ist und daß eine Multiplikatorziffer 2 erscheint. Dann, wenn die vorausgegangene Teilproduktsumme 2 Θ überschritten hat, überschreitet der Betrag des Ausgangssignals des ersten Addierers 2. Falls die obere Summe während der Multiplikation 4 überschritten hatte, konnte die Teilproduktsumme 4 überschreiten, was im Gegensatz zu den früheren Maßnahmen zu einem Wert von pk > 1 führt. (Während der anderen Arithmetikoperationen braucht dieser Wert 2 nicht zu überschreiten.) Deshalb wird eine Achter-Komplementdarstellung zur Darstellung der oberen Summe verwendet. Wenn US; und UC1 Summe- bzw. Ubertragsbit bezeichnen, ist die numerische Interpretation
(1/2) -]/2
1 - 1/4
2J/2
= 0,945 < 1
(31)
Die Grenze für den Absolutwert jedes Teils des schließlichen komplexen Produktes ist gleichfalls 1, ungeachtet des Umstands, daß der Koeffizient 1/4 in Gleichung (30) beim letzten Schritt nicht angewendet wird. Dies deshalb, weil der komplexe Multiplikator, exp(/0) betragsmäßig auf 1 begrenzt ist. Da die Komponenten von A1(J) in Gleichung (20) in ähnlicher Weise auf 1 begrenzt sind, ist
A1(J) + Ai(k)exp(j0)
im Absolutwert auf 2 begrenzt. Diese Grenze ist in der Tat notwendig, weil eine Maßstabsänderung um 1/2 die Resultate auf einen im Speicher darstellbaren Bereich reduzieren muß. Der Grenzwert selbst muß vom möglichen Zahlenbereich ausgeschlossen werden, da sowohl +1 als auch — 1 im Speicher nicht dargestellt werden kann. Der Ausschluß wird bewerkstelligt durch Definieren des Bereichs in F i g. 4 derart, daß nur solche Zahlen erfaßt werden, deren Größe kleiner als 1/2 ist. Der in den Akkumulatoren gespeicherte absolute Größenbereich ist daher kleiner als 2, und deshalb ist eine Viererkomplementdarstellung ausreichend. Wenn AS1 und AC1 die /-te Akkumulatorsumme bzw. gespeicherte Ubertragsbit bezeichnen, ist die numerische Interpretation
-2
(32)
-1
40 Schließlich muß das Ausgangssignal des unteren Addierers während der Multiplikation ebenfalls kleiner als 4 sein, weil |p,| < 1 ist. Jedoch sind hier weniger Abweichungen von der typischen Ziffernstellenlögik vorhanden, wenn eine Sechzehner-Komplementdarstellung benutzt wird. Sind S1- und C1 Summen- bzw. Ubertragsausgänge, so ist die Interpretation
+u
!S_3+T(S,-
1 =0
Das Ausgangspuffer erfordert nur eine Zweierkomplementdarstellung.
Komplexarithmetikeinheit —
Niedrigstwertige Ziffernstellen und Abrundungsregeln
Die Multiplikation führt bei den niedrigbewerteten Ziffernstellen zu zwei Komplikationen. Auch das Abrunden erfordert eine nicht übliche Schaltung.
Zunächst sei die Multiplikation betrachtet.
Ziffern des Ubertragbewahrungs-Teilprodukts, die hinter die niedrigbewertete Ziffernstelle nach rechts verschoben sind, können nicht vernachlässigt werden (was möglich sein würde, wenn Ubertragweitergabeaddierer benutzt würden, oder wenn die Schiebedistanz nur eine Ziffer wäre), da ein Assimilieren dieser Ziffern die Genauigkeit der niedrigbewerteten Ziffer beeinträchtigen könnte. Im einzelnen muß bei Ver-
schieben des Ausgangssignals des zweiten Addierers
um zwei Ziffernstellen nach rechts die Wirkung von Qo = S1O = 1 berücksichtigt werden, obgleich diese Ziffern einzeln zu vernachlässigen sind.
Das Recodieren des Multiplikators erforderte die Verwendung negativer Ziffernwerte, was einen Komplementübertrag in der niedrigbewerteten Stelle des' Multiplikanden-Vielfachen erfordert. Jedoch ist es auch wegen des verschoben gespeicherten Übertrags erforderlich, den Übertrag in den niedrigbewerteten Ziffernaddierer, der üblicherweise für diese Anwendung verfügbar ist, einzugeben.
Das Problem kann durch Numerieren der in jeder Stelle während eines Zwischenschritts bei der Multiplikation zu addierenden Ziffern illustriert werden
AQ0 AC,
11
Akkumulator
AS10 AS11 Inhalt . .
D10 O11 Multiplikandenvielfaches
AV zum oberen Addierer
ElO .E11 Multiplikandenvielfaches
Ef1 zum unteren Addierer
Kn wegen S10 = C10 = 1 auf vor
herigem Schritt
Die mit einem * versehenen Bits sind Komplementüberträge. In allen außer der letzten Stelle sind vier Bits zu addieren. Drei können als Eingangssignal für den oberen Addierer verwendet werden, und das vierte bildet zusammen mit dem Summen- und Ubertragsausgangssignal des oberen Addierer das Eingangssignal für den unteren. In der letzten Stelle sind bis zu 5 Bits zu addieren, da der obere Addierer keinen Übertrag-Ausgang zur niedrigbewerteten Stellung des unteren Addierers besitzt. Jedoch besteht, wie oben angezeigt, die Notwendigkeit, sieben Bits in der niedrigbewerteten Stelle zu berücksichtigen.
Die vorgesehene Lösung ist, ein Extra-Bit am rechten Ende jedes Akkumulators zu definieren, um bei jedem Schritt die Existenz eines Unterschusses oder Fehlers im akkumulierten Teilprodukt aufzuzeichnen. Um zu verhindern, daß die gesamte Arithmetikschleife »langsamer« abgearbeitet wird, sind vier zusätzliche Flipfiops zur Informationsaufzeichnung vorgesehen, die den nächsten Zustand dieses Bit bestimmen, das mit DFR (DFI) für die Real- (Imaginär-)Arithmetikschleife bezeichnet ist. Während jedes Schrittes, bei dem eine Verschiebung um zwei Bits nach rechts stattfindet, werden die Ausgänge S10, Sn und C10 des unteren Addierers, zusammen mit einem der anderen Summandenzifferh der niedrigstwertigen Stelle, für die kein Eingang verfügbar war (beispielsweise Df1), in Flipflops aufgezeichnet. Dann wird parallel zum Schritt i + 1 die unten angegebene Addition ausgeführt: : '
SSl
*
r n*
1 n
während des Schrittes /
gebildete Ziffern
DF1
+ 1
Das Resultat dieser Addition ist der durch DF\ +1 dargestellte übertrag hoher Größenordnung, der wie die niedrigstbewertete Ziffer im Akkumulator bewertet wird. Die beiden anderen Bits der obigen Summe stellen Ziffern des Produkts dar, die nicht beibehalten werden (obgleich eine derselben das Abrunden beeinflußt, wie nachstehend beschrieben wird). ■ : - - - !
Beim letzten Multiplikationsschritt, bei dem keine Verschiebung stattfindet, ist. wegen der Ziffern des vorausgegangenen Schritts DF1 +1 = ImOgIiCh-Df1 = I kann . während dieses Schritts ebenfalls auftreten. Dafür ist aber kein Addierereingang verfügbar. Daher
ίο kann das Produkt, wie es im Akkumulator bis zur Ziffernstelle 11 dargestellt ist, um bis zu 2 abweichen. Die Behandlung dieses Fehlers wird im Rahmen der Diskussion des vorzunehmenden Abrundens beschrieben. ■ , ■
Die für das Abrunden der Resultate vorgesehene Prozedur ist die folgende
(a) Wenn die Arithmetikresultate der laufenden Iteration im Maßstab nicht geändert werden", wird nur das Produkt abgerundet (da dieses die einzige Gelegenheit für ein Abrunden ist). Es, gilt . die Regel, in der niedrigst bewerteten Ziffernstelle des Produktes 1 hinzuzufügen, wenn durchgeschnittene-Teil in bezug auf diese Ziffer^ gleich oder größer als 1/2 ist. Die erforderliche Införma-
tion wird dadurch erhalten, daß das gegenüber DFi+1 nächst höherwertige Summenbit .bei der Operation nach Anweisung der Gleichung (35) während des letzten Multiplikationsschritts beibehalten wird. Der infolge dauerndenden Auf-
, rundens einseitig gerichtete Fehler wird als vernachlässigbar betrachtet, ,wenn die Abrundung genau gleich 1/2 ist. ' .,.,.
(b) Wenn die Arithmetikresultate im Maßstab geändert werden, dann wird^das obige Abrunden
unterdrückt. Die einzige abzurundende Zahl ist Ai+l(J), wie diese nach Gleichung(19) definiert ist. Das Abrunden besteht aus einem Addieren von 1 zur niedrigstbewerteten Ziffer, die nach der Maßstabsänderung beibehalten wird, und war
abhängig davon, ob der abgeschnittene Teil zumindest, gleich 1/2 ist ..oder nicht. Ein gesondertes Abrunden von Ai+l(K) ist nicht erforderlich, weil die Größe 2A1(J) in Gleichung.(20) die Ziffernstelle niedriger Größenordnung nicht be-
einfiußt. ; Λ
Wenn keine Maßstabsänderung erfolgt, kann eine Zahl bis 3 (wenn man die Ziffer niedriger Größenordnung als Einheit betrachtet) erforderlich sein, um das Produkt nach dem letzten iterativen Schritt bei der Multiplikation zu vergrößern; der vorstehend beschriebene Fehler kann bis zu 2 groß und ein Abrunden erforderlich werden. Diese Korrektur ist während der der Multiplikation folgenden Addition wegen des Akkumulatorbits ACn = 0 möglich, das der Multiplikation folgt. Folglich ist dieser Addierereingang verfügbar, und zwei der drei Eingänge zur niedrigstbewerteten Stufe des unteren Addierers sind vorhanden, weil der untere Addierer während dieser Addition nicht anderweitig in Funktion tritt.
Wenn eine Maßstabsänderung erfolgt, kann abgerundet werden, indem erzwungen wird, daß ACn als eine 1 am Ubertraggenerator erscheint, und zwar auf die Addition folgend, die /I1+1(J) vervollständigt (wiederum, dieses Bit würde sonst 0 sein). Dies bewirkt - die Addition von 1 zur Ziffer niedriger Größenordnung des Akkumulators derart, daß eine Ubertragweitergabe zur nächsten Stufe (Stelle Nr. 10) die
bedingte Abrundung beim Bit niedriger Größenordnung ausführt. Jeglicher Fehler im Produkt wird während der Addition in der gleichen Weise korrigiert, wie diese vorstehend für den Fall ohne Maßstabsänderung angegeben ist.
Komplexarithmetikeinheit — Ubertraggenerator
Wie erwähnt, dient der Ubertraggenerator dazu, eine in übertrag gespeicherter Form vorliegende Zahl in die kanonische Form umzuwandeln. Diese Um-Wandlung wird durch Verwenden der lokalen Ubertragsweitergabeeigenschaft des Ubertragsbewahrungs-
C.G.k =
k+1Gk+2
Das Ubertragsausgangssignal des oberen Addierers in den gradzahlig numerierten Bitstellen, d. ti. jeweils in der höherbewerteten Bitstelle der zu Ziffern zur Basis 4 gepaarten Bits, wird während der Assimilation (siehe F i g. 6) unterdrückt, da die ziffernweise Addition eine Modulus-4-Addition ist. Würde dies nicht getan, so würde der Term Gk+i in Gleichung (36) zweifache Wirkung auf die Ziffernstelle k haben, einmal über das Addiernetzwerk und einmal über den C. G.fc-Term. Würden alternativ hierzu Gk+1 von der Gleichung (36) weggelassen, so würde ein Fehler in der Ziffer k — 1 existieren, weil das Ubertragsbewahrungsaddiernetzwerk der F i g. 6 keinen Weg für Gk +1 zur Beeinflussung der Ziffer k — 1 vorsieht (oder für G2i+2 zur Beeinflussung der Ziffer 2i entsprechend den in der Zeichnung benutzten Indizes.
Schrittschaltelogik (Indexing Logic) — Allgemeines
Zusätzlich zur Komplexarithmetikeinheit enthält das Ausführungsbeispiel der Erfindung nach Fig. 2:
(a) eine Schrittschaltung zum Bereitstellen einer selbstkonsistenten Folge von Operanden und Trigonometriefunktionswerten für die Komplexarithmetikeinheit,
(b) ein Eingangspuffer zum Eingeben neuer Daten in den Speicher zu Verarbeitungszwecken und
(c) ein Ausgangspuffer zur übergabe der vervollständigten Resultate an einen programmierten Rechner, einen anderen Speicher oder eine Verarbeitungsanlage nach Aufforderung, wobei die im Cooley-Tukey-Algorithmus vorliegenden Resultate in übliche Folgen als Bestandteil der übergabe umgesetzt werden.
Flexibilität hinsichtlich folgender Punkte ist verfügbar:
(a) Format der Daten während der übergabe an den FFTP-Speicher,
(b) Größe der Reihe,
(c) Auswahl der vom FFTP-Speicher zum Rechner zu übertragenden Resultate,
(d) Vorzeichen des Exponenten des Überhangs (kernal) (d. h.,um die Fouriertransformation oder die Inversion anzunähern) und
(e) die numerische Genauigkeit der trigonometrischen Koeffizienten.
Schrittschaltelogik —
Ordnen von Operanden-Adressen
Zunächst seien die folgenden Größen definiert:
(a) N = 2m ist die Größe der verarbeiteten Reihe, m ganzzahlig,
addierernetzwerks selbst bewerkstelligt. Betrachtet man Paare binärer Ziffern im Akkumulator als Einzelziffern zur Basis 4, so bildet der Ubertraggenerator ein Wort aus Bit, eines für jede quaternäre Akkumulatorziffer, das in jeder Stelle im Wege einer Modulus-4-Addition hinzuzufügen ist.
Die UND- sowie die EXCLUSIV-ODER-Verknüpfung zwischen AC1AS1 seien mit G, bzw. P1- bezeichnet, um die Ubertragserzeugungsbedingung und die Ubertragsweitergabebedingung nmemonisch zu kennzeichnen. Das Ubertraggeneratorausgangssignal für die Bitstelle k, k ungradzahlig, ist dann
ν P
k+1Pk+2
P10G
10Gn.
(36)
(b) m — log2 N und
(c) ι ist der Iterationsindex im Algorithmus,
ί = 0, 1 ...m- 1.
Die Eingangspaare, die als Operanden während der i-ten Iteration erforderlich sind, sind durch die Indizes in Gleichung (18) gegeben. Wenn die mit 0,1 ... N — 1 numerierten komplexen Reiheneingänge im Speicher bei den gleichnumerierten Adressen gespeichert werden, kann das erforderliche Adressenmuster beschrieben werden als Unterteilung der geordneten Reihe in 2'+1 gleiche Segmente, wonach als Operandenpaare die entsprechenden Elemente in benachbarten Segmenten ausgewählt werden. Bei dem in Gleichung (18) benutzten Index identifiziert das Binärfeld A:m_! ... /c,„_i_1 diese Segmente, während das Feld /cm_,_2... Zc0 die Stelle des innerhalb des Segments gelegenen, zu verarbeitenden Elements bezeichnet.
Die Erzeugung dieses Adressenmusters in der FFTP-Anlage wird bei einem Ausführungsbeispiel der Erfindung durch das Iterationsschieberegister 201 zusammen mit binärem Adressenzähler 202 (Fig. 8) bewerkstelligt. Es seien die Inhalte dieser beiden Register wie folgt bezeichnet:
.. . ISR12, ISRn ... ISR0
bzw.
... ACi2,
Die Bits von AC entsprechen den Ziffern von K in Gleichung (18). Der laufende Wert von /, der Iterationszahlindex wird kodiert in
ISRm_i_1 = 1,
ISRj = 0, für; φ m- i - \ .
Zur Bildung der Adressen in der für die vorstehend unter »Komplexarithmetikeinheit — Folge von Operationen« beschriebenen Operationen erforderlichen Reihenfolge werden die nachstehenden Schritte aufeinanderfolgend ausgeführt:
(a) ISRj ν ACj—> ACj, allej.
(b) Auslesen aus Speicher. Gibt Zugriff zu A1[K).
(c) TSR j ■ ACj -* ACj, alle j.
(d) Auslesen aus Speicher. Gibt Zugriff zu A1(J).
(e) Speichere erstes Ergebnis, /I1+1(J).
(0 ISRj ν ACj -> ACj, alle /
(g) Speichere zweites Ergebnis, Ai+l{K).
(h) Addiere zu AC 1 und wiederhole die obige Operation.
409 686/41
. Bei jedem Speicherzugriff ist die verwendete Adresse die durch AC angezeigte. Wenn der obige Schritt (h) zu einem überschießenden übertrag (carry-out) hoher Größenordnung des Adressenzählers 202 führt, was das Ende einer Iteration anzeigt, werden die Inhalte ISR des Iterationsschieberegisters 202 um eine Bitstelle nach rechts verschoben. Keine Abweichung von der obigen Folge, oder Steuerschleife, ist am Ende von Zwischeniteration erforderlich, weil der überschießende übertrag ebenfalls anzeigt, daß die übrigen Bits in der Adressen 0 sind. Die Steuerschleife wird nach der letzten Iteration beendigt, wenn die Verschiebung nach rechts im Interationsschieberegister 201 mit ISR0 = 1 versucht wird.
Folge der trigonometrischen Koeffizienten
Da die Indexziffern, die die Ö-Werte in Gleichung (18) definieren, nur die links von &,„_,_! gelegenen sind, sind das /SÄ-Register 201 und das /4C-Register 202 gleichfalls zum Ordnen der trigonometrischen Koeffizienten in der gewünschten Reihenfolge brauchbar. Während der Adressenzähler 202 selbst das gewünschte Indexfeld hält, wird die praktische Verwendung dieses Registers kompliziert durch die variable Lage und Größe des Felds, die anderweitig erwünscht sind. Das Indexfeld km_l ... /c„,_; wird deshalb in einem gesonderten Zähler doubliziert. Dieser Zähler ist als <9-Zähler 204 in F i g. 8 bezeichnet. Ebenso wie im AdressenzähIerregister ist die Bedingung für ein Weiterstufen (incrementing) dieses Feld ein übertrag durch &,(|_,·_ι (d.h., /IC,,,,.,-^). Deshalb kann der Inkrement-Theta-Logikblock 203 in F i g. 8 durch die folgende Boolsche Funktion beschrieben werden
V ISRj ■ Cj,
j = 0
hierin ist »V« die logische ODER-Verknüpfung und Cj der übertrag in das Bit; des Adressenzählers oder, äquivalent, der I-nach-0-Ubergang von /4C,-_t. Die Bits des Thetazählers sind bezeichnet als
• · · T12, T11 T0,
und der korrekte Wert von θ wird dargestellt, wenn das Bit Tj, das zweckmäßig als die 2J bewertete Ziffer des Zählers interpretiert wird, der Bewertung .τ · 2~J~l zugeordnet wird. Die resultierende Folge der Ö-Werte ist in der nachstehenden Tabelle dargestellt:
Tn- 1 Tn -2 Zähler-Bit Ά zugeordnete Bewertung .T .7 4 . T0 Interpretation
T2 2"-' 8 0 (im Bogenmaß)
.7 0 — -- 0 0 .7
2" 0 0 1 2
0 0 0 1 0 0
Wertefolge 0 0 0 0 1 .t/2
0 0 Γ 0 0 -t/4
0 0 1 1 1 3.t/4
0 1 . 1 0 .t/8
0 1 5.t/8
1 1
Eine Methode zum Erhalt der trigonometrischen Funktionswerte aus den Argumenten ist Geradeaus-Vorwärts-Logiknetzwerk. Eine andere Methode ist, den Inhalt des Theta-Zählers 204 zur Adressierung einer Tabelle im Speicher zu verwenden. Diese Methode wird durch ein Bit eines nachstehend erläuterten Steuerworts gewählt.
Die tatsächlichen, als Multiplikatoren zu verwendenden trigonometrischen Funktionswerte können leicht in der richtigen Reihenfolge erzeugt werden, wenn einmal die Folge der Argumente verfügbar ist. Ein typischer Sinusumsetzer 210 ist in Fig. 8 dargestellt, der seine Eingangswerte vom; Thetazähler 204 erhält und Sinusfunktionswerte an die Arithmetikeinheit 50 in Fig. 2 oder, wenn Recodieren gewünscht ist, an den Recodierer322 in Fig. 3b. Selbstverständlich kann eine ähnliche Umsetzung für Cosinusfunktionswerte vorgesehen sein, oder die Cosinuswerte selbst können a,us den Sinuswerten hergeleitet werden.
Eine alternative Methode zum Bereitstellen der notwendigen trigonometrischen Werte erfordert das Speichern derselben zusammen mit den Resultaten der Iteration. Diese trigonometrischen Werte können dann, ansprechendauf ihre jeweiligen vom Thetazähler erzeugten Argumente wiederholt werden. Fig. 8 zeigt einen Speicheradressenselektor, der in der Lage ist, die Wiedergewinnung der Iterationsresultate oder der trigonometrischen Werte auf Signale des Adressenzählers 202 bzw. des Thetazählers 204 hin zu steuern.
Verfügbare Anwendungsmöglichkeiten
Vieles der dem vorliegenden Gegenstand eigenen Flexibilität wird in der Schrittschaltung der F i g. 8 ermöglicht. Ein Steuerregister220· in Fig. 8 wird mit einer Information darüber beliefert, von welcher Art eine auszuführende Transformation ist, d.h. mit einer Information, die eine Frequenz- oder eine Zeittransformation, die Aufzeichnungslänge usw. betrifft. Für diese Zwecke ist das Steuerregister 220 in verschiedene Felder eingeteilt. Das Aufzeichnungslänge-Feld RLF des Steuerregisters bezeichnet die Größe der zu verarbeitenden Aufzeichnung. Die
Größe der Reihe kann beispielsweise so gewählt werden, daß sie jeglichen Wert von 213~ "-Werten annimmt, mit η = 0, ί ... 5 oder 6. Im Hinblick auf einfachen apparativen Aufwand wird das AufzeichnungsIänge-Feld RLF unter Verwendung von 6 Bits redundant ausgedrückt, so daß eine Aufzeichnungslänge von 2I3~* angezeigt wird, wenn die am weitesten links stehenden η Bits dieses Felds gleich I sind. Die folgende Tabelle illustriert die Kodierung.
Aufzetchnu ngsEnge-Feld Aufzeichnungslänge
000000 213
100000 2t2
110000 2"
Π1Ι11 27
= RU +t
i, i = 7, 8 ... 11
(40)
/SR1 = 0, r < 7.
(41)
212O - 2*)bis213 - 1 sind, und nicht von 0 bis\2k - I laufen.
Weiter enthält das Steuerregister 220 das Tabelle/ Dekode-( TD)-Bh, das eine Anzeige erlaubt, daß eine Tabelle geometrischer Koeffizienten zu verwenden ist, vorausgesetzt, daß eine kleinere als maximale Reihe verarbeitet wird. Diese Maßnahme bildet ein Mittel, die Effekte einer reduzierten Genauigkeit zu studieren, und auch ein Mittel zur Auswahl optimaler Koeffizientenwerte. Ist TD = I, so wird der Thetazähler 204 als Adresse für eine Speicherbezugsnahme für die Sinus und Cosinus benutzt, an Stelle beispielsweise vom Umsetzer 210 umgesetzt zu werden. Die Bits des Thetazählers werden an die Speicheradresse angeschlossen, aber in umgekehrter Reihenfolge, d. h.:
T0 zum Adressenbit 12,
7^ zum Adressenbit 11,
20
Das Aufzeichnungslänge-Feld RLF dient dazu
(a) das richtige Bit des Iterationsschieberegisters 201 in F i g. 8 auf I zu steuern, wenn die Verarbeitung einer Aufzeichnung begonnen wird,
(b) den Adressenzähler zu einer Modulus 213~ "-Zählung während des FFT-Zyklus zu veranlassen,
(c) AC beim Einführen neuer Daten zu modifizieren und .
(d) die Operation des Thetazählers zu modifizieren, wenn er für eine Speicherbezugnahme entweder während eines Tabellennachschauens (table lookup) oder der übergabe der Resultate vom FFTP benutzt wird.
Es seien die RLF-Bits als AL12, RLn .. .KL7 bezeichnet. Als anfanglicher Schritt beim FFT-Prozeß wird das /SR-Register wie folgt eingestellt:
30
35
40
45
Daher wird ISRj für eine Reihe auf 1 eingestellt, bei der der binäre CT-Algorithmus j -l· I Iterationen erfordert.
Das Aufzeichnungslängefeld RLF modifiziert die vorstehend beschriebene Operation, des Adressen-Zählers durch Halten jeglicher nichtgebrauchter Bits am linken Ende des Adressenzählers auf Ir wenn die Größe der Reihe kleiner ist als 213 für die gegenwärtige Darstellung. Dies resultiert in einem überschießen (carry-out) der Ziffer AC12 am Ende jeder FFT-Iteration unabhängig von der Reihengröße. Im einzelnen wird der Schritt (a) des vorstehend beschriebenen grundsätzlichen Indizierens erweitert, um
6b
zu erfassen.
Diese Operation ändert tatsächlich den /IC-Inhalt nur zu Beginn jeder Iteration, ist aber in der Steuerschleife für die Erzeugung jedes ResuLtatpaars der Einfachheit halber eingeschlossen. Eine zufallige Folge der ODER-Verknüpfung in Gleichung (41) ist dier daß, wenn die Reihengröße 2k ist, mit k < 13, die von der Reihe besetzten FFTP- Speicherstellen von T11 zum Adressen bit 0.
Die Tabelle ist nach monoton zunehmenden Argumentwerten zu ordnen, an Stelle daß gefordert würde, mit dem umgekehrten Indexmuster konform zu gehen.
Wird der Thetazähler zur Speicherbezugnahme benutzt, so wird das Aufzeichnungslänge-Feld zur Modifizierung der Werte, die es annimmt, benutzt. Der Operationsgrundzyklus ist im einzelnen:
(a) stufe den Thetazähler weiter,
(b) lese aus dem Speicher das zwecks Zugriff angesteuerte Wort in die Komplexarithmetikeinheit und
(c) steuere RLF im Wege einer ODER-Verknüpfung in den Thetazähler, d. h.
RLlz-jVTj-» Tj, j = 0,1... 5.
- Diese Schleife wird mit anderen Operationen dahingehend angehalten, daß Schritt (a) auftritt, wenn das Steuersignal zur Weiterstufung von Theta erzeugt wird (Fig. 8),das anzeigt, daß ein neues Koeffizientenpaar erforderlich ist.
Die durch die obigen Operationen gebildeten Adressenwerte sind so, daß die Tabelle in den Speicherstellen 0 bis T"~l für eine Reihengröße von 2'" zu speichern ist. Das für die /-te Speicherstelle anwendbare Argument ist/ · π · 2~"t+I.
Ist TD = I, dann hat das AiJ-Bit keine Wirkung. Eine Unterscheidung zwischen der Fouriertransformation und der Umkehrung wird durch das Vorzeichen der in der gespeicherten Tabelle stehenden Sinuswerte wiedergegeben.
Schließlich enthält das Steuerwort zwei Bits, die in Fi g. 8 mit FI und F2 bezeichnet sind und die eine Spezifizierung des Formats zur Dateninterpretation während der übergabe erlauben.
Zur reai-time-Spektraianalyse ist erforderlieh, daß die vom FFTP benötigte Zeit zur Ausführung einer Analyse einer bestimmten Aufzeichnung ausreichend kurzer ist ais die Signalzeit, die durch diese Aufzeichnung dargestellt wird. Wenn beispielsweise jedes von zwei Signalen in T-Sekunden lange Aufzeichnungen: unterteilt wird, wird eine Bearbeitungszeit benötigt, die T/2 nicht überschreitet, wenn beide in real-time verarbeitet werden sollen.
Die Grundoperatioo bei der Basis-4-Imprementa-
tion des FFT-Algorithmus kann in Matrixform wie folgt ausgedrückt werden:
W2 W3 -W2 -j W3
A1+1(L)
1 W IjW
\-W W1
-W3
I-jW -W2 jW3
A1(K) A1(L)
1. Überführe Ai(R) vom Speicher in das Register 910.
2. Bilde A1(P) ■ W3 bei im Register 903 plaziertem Endprodukt (W, W2 und W3 werden als verfügbar angenommen). Die Komplexmultiplikationsprozedur ist die gleiche wie bei der Operation zur Basis 2.
Ai(M) _Ai(P)_
Hierin ist W komplex und j = Y-I. Es kann passieren, daß, nachdem die drei komplexen Produkte, die beim Bilden von A1+1(K) verlangt werden, dargestellt worden sind, die restlichen Resultate ohne weitere explizite Multiplikationen gebildet werden können. Dies deshalb, weil ein jedes der restlichen Produkte sich höchstens um eine Negation und/oder eine Multiplikation mit; von einem der drei Produkte unterscheiden, die zur Bildung von Ai+1(K) benötigt werden. Eine Multiplikation mit j erfordert lediglich den Austausch der Real- und Imaginärteile einer komplexen Zahl plus die Negation des Realteils.
Eine Systemorganisation, die in der Lage ist, alternativ entsprechend der Basis-2- oder der Basis-4-Form des Cooley-Tukey-Algorithmus zu arbeiten, ist in F i g. 9 dargestellt. Der mit der strichpunktierten Linie umrahmte Systemteil 800 enthält im wesentlichen die gleiche Einrichtung, wie diese bei den vorstehend beschriebenen Basis-2-Ausführungen verwendet wurden. Der Block 930 ist ein Addiernetzwerk. Die drei zusätzlichen Register 901 bis 903 sorgen für die Speicherung der beim Bilden von mehr als einer Summe erforderlichen Zwischenergebnisse. Sämtliche Register 901 bis 903, 910 und 920 sind in Real- und Imaginärteile R bzw. / unterteilt. Die Leitung 140 ist der Eingang vom Speicher, und die Leitungen 905 und 904 sind die Realteil- bzw. Imaginärteil-Eingänge zum Addierer 930. Die Prozedur für eine Operation zur Basis 4 ist bei der angegebenen Systemorganisation die folgende:
3. überführe /4,(L) in das Register 910.
4. Bilde A1(L) ■ W im Akkumulator.
5. Bilde die Summen
A1(L) ■ W + A1(P) W3 A1(L) ■ W - A1(P) W3
Register 901
• Register 902
6. Entnehme A1(M) und bilde A1(M) W2.
7. Bringe A1(K) in Register 910 und bilde die Summen
A1(K) - A1(M) W2 A1(K) + A1(M) W2
► Register 903
► Register 910 und Akkumulator.
40
8. Die Endresultate können dann wie folgt gebildet werden:
(a) BMeAi+1(K) = (Inhalt des Registers 901)
+ (Inhalt des Registers 903), und gehe mit dem Resultat in den Speicher und den Akkumulator.
(b) Bilde A1+1(M) = (Akkumulatorinhalt)
+ 2 (Inhalt des Registers 910). Das heißt, Ai+1 (M) kann ausgedrückt werden als -A1+1 (K) + 2IAi(K) + A1(M) W2I
(c) Bringe den Inhalt des Registers 903 in den Akkumulator.
Bilde Ai+l (L) = (Inhalt des Akkumulators)
+ j (Inhalt des Registers 902),
■ und gebe das Ergebnis in den Speicher und den Akkumulator. Beachte, daß das 7-fache des Inhalts des Registers 902 ermöglicht wird durch Umkehren der Verbindungen der Real- und Imaginärteile (Fig. 9).
(d) Bilde Ai+1 (P) = -(Inhalt des Akkumula
tors)
+ 2 (Inhalt des Registers 903).
Wegen der bei den Koeffizienten vorhandenen Symmetriebeziehungen wird der angegebene Grundschritt bei einer Organisation zur Basis 4 mit drei komplexen Multiplikationen und acht Additionen vervollständigt und nicht mit den offensichtlich zwölf Multiplikationen und zwölf Additionen.
Hierzu 3 Blatt Zeichnungen

Claims (2)

Patentansprüche:
1. Datenverarbeitungsanlage mit einem Speicher und einer arithmetischen Einheit zur Gewinnung von N komplexen Fourier-Koeffizienten entsprechend einer Eingangsfolge von N = 2'" Abtastwerten /I0(O), A0(I)... A0(N - 1) mit Hilfe eines Iterationsverfahrens, bei dem vorherbestimmte Paare J, K von N komplexen Werten A1+1(O), Ai+1(I)... Ai+l(N - 1) beim (i + l)-ten Iterationsschritt.füf T=^j k 5(Mr- 1) entsprechend. v , der Anweisung 'Aj+1(J)-'= A1(J) + A1(K) exp(/<9) - =: und ,A1+1 (K\ _= A1(J) + A1 (K) exp (j Θ + π) berechnet werden, wobei die Werte A0 für die erste Iteration aus den Abtastwerten gebildet werden und die bei der /η-ten Iteration gebildeten Werte die N komplexen Fourier-Koeffizienten darstellen, dadurch gekennzeichnet, daß die arithmetische Einheit eine Prüfschaltung aufweist, die feststellt, ob bei irgendeiner Iteration einer der gebildeten Werte A;+l außerhalb einer vorherbestimmten Zone S der komplexen Ebene liegt, daß die Prüfschaltung im Falle einer Überschreitung die Erhöhung des Zählstandes EK einer Maßstabfaktorschaltung und eine Halbierung aller Ergebnisse während der nachfolgenden Verarbeitung bewirkt.
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Zone S durch \a\ < 1/2 bestimmt ist.
DE1549584A 1966-12-29 1967-09-27 Datenverarbeitungsanlage Expired DE1549584C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US60576866A 1966-12-29 1966-12-29

Publications (3)

Publication Number Publication Date
DE1549584A1 DE1549584A1 (de) 1972-01-20
DE1549584B2 DE1549584B2 (de) 1974-06-20
DE1549584C3 true DE1549584C3 (de) 1975-02-06

Family

ID=24425131

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1549584A Expired DE1549584C3 (de) 1966-12-29 1967-09-27 Datenverarbeitungsanlage

Country Status (5)

Country Link
US (1) US3517173A (de)
JP (1) JPS4631371B1 (de)
DE (1) DE1549584C3 (de)
FR (1) FR1537416A (de)
GB (1) GB1211859A (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3638004A (en) * 1968-10-28 1972-01-25 Time Data Corp Fourier transform computer
US3816729A (en) * 1969-10-06 1974-06-11 Raytheon Co Real time fourier transformation apparatus
US3662161A (en) * 1969-11-03 1972-05-09 Bell Telephone Labor Inc Global highly parallel fast fourier transform processor
US3601592A (en) * 1970-04-15 1971-08-24 Ibm Fast fourier transform addressing system
US3673399A (en) * 1970-05-28 1972-06-27 Ibm Fft processor with unique addressing
US3634668A (en) * 1970-06-01 1972-01-11 Sylvania Electric Prod Log spectrum decoding utilizing symmetry
US3686490A (en) * 1970-06-02 1972-08-22 Ratheon Co Real time serial fourier transformation circuit
US3679882A (en) * 1970-06-11 1972-07-25 Ibm Fourier digital filter or equalizer and method of operation therefor
US3634760A (en) * 1970-06-22 1972-01-11 Electronique Informatique Soc Frequency spectrum analyzer with fft computer
US3748451A (en) * 1970-08-21 1973-07-24 Control Data Corp General purpose matrix processor with convolution capabilities
US3680105A (en) * 1970-10-05 1972-07-25 Raytheon Co Pulse compression radar system
US3676565A (en) * 1970-12-01 1972-07-11 Singer Co Time domain waveform synthesizing method
US3725686A (en) * 1971-01-29 1973-04-03 Hughes Aircraft Co Polyphasor generation by vector addition and scalar multiplication
US3742201A (en) * 1971-02-22 1973-06-26 Raytheon Co Transformer system for orthogonal digital waveforms
DE2113883C2 (de) * 1971-03-23 1982-09-30 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Peilverfahren
US3767905A (en) * 1971-05-12 1973-10-23 Solartron Electronic Group Addressable memory fft processor with exponential term generation
US3881100A (en) * 1971-11-24 1975-04-29 Raytheon Co Real-time fourier transformation apparatus
US3731284A (en) * 1971-12-27 1973-05-01 Bell Telephone Labor Inc Method and apparatus for reordering data
GB2136170A (en) * 1983-03-03 1984-09-12 Electronic Automation Ltd Method and apparatus for accessing a memory system
US4785196A (en) * 1983-03-07 1988-11-15 Conoco Inc. Method and apparatus for converting seismic traces to synthetic well logs
US20040003017A1 (en) * 2002-06-26 2004-01-01 Amit Dagan Method for performing complex number multiplication and fast fourier
WO2010035634A1 (ja) * 2008-09-26 2010-04-01 本田技研工業株式会社 周波数成分分析装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL182171C (nl) * 1952-09-12 Delta Nederland B V Collectorzonweringsstelsel.
US3009106A (en) * 1959-09-18 1961-11-14 Kurt H Haase Wave form analyzing method and apparatus
US3180445A (en) * 1960-12-21 1965-04-27 Jersey Prod Res Co Frequency spectrum control for seismic signals
US3274542A (en) * 1963-03-25 1966-09-20 Socony Mobil Oil Co Inc Methods of band-equalizing seismograms

Also Published As

Publication number Publication date
GB1211859A (en) 1970-11-11
JPS4631371B1 (de) 1971-09-11
DE1549584A1 (de) 1972-01-20
US3517173A (en) 1970-06-23
DE1549584B2 (de) 1974-06-20
FR1537416A (fr) 1968-08-23

Similar Documents

Publication Publication Date Title
DE1549584C3 (de) Datenverarbeitungsanlage
DE3789116T2 (de) Prozessor zur zweidimensionalen diskreten cosinustransformation.
DE69130652T2 (de) Digitaler paralleler Hochgeschwindigkeitsmultiplizierer
DE3750017T2 (de) Prozessor für orthogonale Transformation.
DE3650335T2 (de) Rechenverfahren und -gerät für endlichfeldmultiplikation.
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE1956209C3 (de) Multipliziervorrichtung
DE2135590A1 (de) Vorrichtung und Verfahren zur Er zeugung trigonometrischer und anderer Funktionen
DE68923262T2 (de) Zweierkomplementmultiplikation mit einem Vorzeichen-/Grössen-Multiplizierer.
DE3209450A1 (de) Digitalfilterbank
DE69409418T2 (de) Vorrichtung und Verfahren zur Ableitung von Polynomialmengen
DE68924386T2 (de) Verfahren und Gerät zur Radix-2**n-Division mit überlappender Quotientenbitauswahl und gleichzeitiger Rundung und Korrektur des Quotienten.
DE102020105536A1 (de) Maschinenlerntrainingsarchitektur für programmierbare Vorrichtungen
DE1809219A1 (de) Binaeres Vielfach-Addierwerk zur gleichzeitigen Addition mehrerer binaerer Zahlen
DE69025182T2 (de) Digitaler prozessor für zweierkomplementberechnungen
DE2729912A1 (de) Digitale signalverarbeitungsanordnung
CH627010A5 (de)
DE69715309T2 (de) Arithmetische Schaltung für die Berechnung der Quadratwurzel einer Summe von Quadraten
DE69032391T2 (de) Mehrere Bit umkodierender Multiplizierer
DE2732008A1 (de) Einrichtung zur reduzierung von fibonacci-p-codes auf die minimalform
DE2163621A1 (de) Schaltungsanordnung zur Durchführung der Fourier-Analyse
DE2612665A1 (de) Konvolutionsfunktionsgenerator und dessen anwendung in digitalfiltern
DE2902766A1 (de) Zwei-term-vektor-multiplizierschaltung
DE2712582C2 (de) DDA-Rechner (Digital-Differential-Analysator)
DE1222290B (de) Binaere Recheneinrichtung zur Bildung und Akkumulation von Produkten

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee