DE1549584C3 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/548—Trigonometric functions; Co-ordinate transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Landscapes
- Physics & Mathematics (AREA)
- 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
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)
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 Nβ
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.
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)
(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)
(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 = O0O1 (ä2 ν ä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
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 ·
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
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
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,-
!S_3+T(S,-
1 =0
Das Ausgangspuffer erfordert nur eine Zweierkomplementdarstellung.
Komplexarithmetikeinheit —
Niedrigstwertige Ziffernstellen und Abrundungsregeln
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° *
SSl
r° *
r n*
1 n
1 n
während des Schrittes /
gebildete Ziffern
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
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.
ί = 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.
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 - \ .
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.
(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 /
(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,
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
• 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).
+ 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)
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.
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)
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)
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 |
-
1966
- 1966-12-29 US US605768A patent/US3517173A/en not_active Expired - Lifetime
-
1967
- 1967-09-19 FR FR121539A patent/FR1537416A/fr not_active Expired
- 1967-09-27 DE DE1549584A patent/DE1549584C3/de not_active Expired
- 1967-09-28 GB GB44105/67A patent/GB1211859A/en not_active Expired
- 1967-09-29 JP JP6239867A patent/JPS4631371B1/ja active Pending
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 |