DE2123174A1 - Digitalrechner - Google Patents
DigitalrechnerInfo
- Publication number
- DE2123174A1 DE2123174A1 DE19712123174 DE2123174A DE2123174A1 DE 2123174 A1 DE2123174 A1 DE 2123174A1 DE 19712123174 DE19712123174 DE 19712123174 DE 2123174 A DE2123174 A DE 2123174A DE 2123174 A1 DE2123174 A1 DE 2123174A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- address
- values
- digital computer
- bit
- 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.)
- Pending
Links
Classifications
-
- 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/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
-
- 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
-
- 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
-
- 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/5446—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 using crossaddition algorithms, e.g. CORDIC
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Description
Patentanwälte
Dr.-Ing. Williölm ßeichel
Dipl-Ing. Wölbung Roichel
Dipl-Ing. Wölbung Roichel
6 Frankiuri a. M. 1
Parksiraßö 13
Parksiraßö 13
6659
THE SOLARTRON ELECTRONIC GROUP LIMITED, Farnborough, England
Digitalrechner
Die Erfindung bezieht sich auf einen Digitalrechner für einen speziellen Zweck, nämlich zum Durchführen der schnellen (fast)
Fourier-Transformation. Diese Transformation ist ein Algorithmus, der durch einen Aufsatz von J.V/. Cooley und J.W.
Tukey mit dem Titel "An algorithm for the machine calculation of complex Fourier series" in der Fachzeitschrift Mathematics
of Computation, Band 19, April 1965, Seite 297 bis 301, bekannt wurde. Die direkte Anwendung der Gleichungen der komplexen
Fourier-Reihen umfaßt N Operationen (komplexe Multiplikationen, gefolgt von Additionen), wobei=in den Reihen N
Terme vorhanden sind, das bedeutet N Datenpunkte. Wenn N = 10 , gibt es 10 Operationen. Die schnelle Fourier-Transformation
eliminiert die Redundanz, die auftritt, wenn N ein Produkt aus verschiedenen Faktoren ist, wenn also in den Gleichungen
gewisse Symmetrien auftreten. Dies ist bei der digitalen Berechnung insbesondere der Fall, wenn N = 2m. Die Anzahl der
Operationen vermindert sich dann auf N'log^N, d.h. m*N. Wenn
N = 2 (etwa 105), beträgt die Anzahl der Operationen lediglich
10240. Da man die Operationen zu Paaren mit derselben
109849/1 165
komplexen Multiplikation zusammenfassen kann und wenn man die Eingangsdaten derart eingibt, daß eine sprektrale Faltungsredundanz
vermieden wird, vermindert sich die Anzahl der Operationen auf 2560.
Die schnelle Fourier-Transformation kann man auf einem Allzweckrechner
programmieren. Dies ist jedoch nicht zweckmäßig. Man hat daher bereits versucht, für diesen Zweck Spezialrechner zu
bauen. Hierzu wird beispielsweise auf einen Aufsatz von R. R.
Shively mit dem Titel "A Digital Processor to Generate Spectra in Real Time" in der Fachzeitschrift IEEE Transactions on
Computers,- Band O17, Nr. 5, Mai 1968, verwiesen. Der Erfindung
liegt nun die Aufgabe zugrunde, einen wesentlich einfacheren Spezialrechner für diesen Zweck zu schaffen.
Die Eingangsdaten kann man durch N Terme in der Form Aj. (b ..;.. b^) darstellen, v/obei es sich bei b bis b^ um
m-Bits des Adressencode der Terme handelt. Die Berechnung schreitet in einer Reihe von Stufen fort, wobei die Terme
Ap, A, ..... A berechnet werden. Die Terme einer allgemeinen
Stufe werden durch A-, dargestellt. Der Algorithmus kann wie
folgt geschrieben werden:
dabei ist
θ - V2"1 + Vi2"l+1 + .··· Vi2"1
ferner ist b ., = 0 oder 1.
Diese letzten Alternativen ermöglichen, daß zwei Terme von den entsprechenden Termen A-, berechnet werden können. In
der Gleichung (1) ist die Übereinkunft getroffen, daß in allen drei Termen der Gleichung die Bits b anders als b π dieselben
109849/1 165
τη Ί
sind. Für jede Stufe sind daher 2 ~ Gleichungen (1) vorhanden,
die allen verschiedenen Kombinationen der Bits b entsprechen, die anders als ^1n-1 sind. Die Endterme Am sind die benötigten
Terme der Fourier-Reihen. Dazu ist ein Ordnungsvorgang
notwendig, der jedoch bekannt ist und mit dem sich die vorliegende Erfindung nicht befaßt.
Bei jeder Anwendung der Gleichung (1) ist es notwendig, den. Vektor A1 (... .1...) um den Y/inkel θ zu drehen (dessen zwei
verschiedene Vierte für b ^ = O oder 1 sich lediglich um 180°
unterscheiden) und zu A, (....0...) zu addieren.
Es ist zweckmäßig, die Gleichung (1) in einer kompakteren Form durch die folgenden Gleichungen (3) und (4) darzustellen:
A1+1 (1) = A1 (0) +A1 (1) Exp. (2*19) (3)
A1+1 (0) = A1 (0) - A1 (1) Exp. (2 ϊτΐθ) (4)
Für beide Gleichungen (3) und (4) ist dabei θ durch die folgende
Gleichung (5) gegeben:
θ = bm 2"1 + bm_1 2-l+1 + .... bm_l+12-2 + 2-1 ■ (5)
In allen Gleichungen ist θ ein Winkel, der in Radiant /2n angegeben
ist.
Die Vektorrotation umfaßt eine komplexe Multiplikation, die auf der Grundlage der folgenden Gleichungen ausgeführt werden kann,
wie es bereits bekannt ist:
Wenn X1 + iY1 = (X + IY) Exp. (2*19),
giVt X1 = X cos 2irQ - Y sin 2*Q
und Y=X sin 2πθ + Y cos 2πθ.
und Y=X sin 2πθ + Y cos 2πθ.
109849/1165
Jede Operation umfaßt daher vier Multiplikationen. Ferner ist ein großer Speicher notwendig, um die erforderlichen Werte von
sin 27TQ und cos 2 π θ zu liefern. Da man eine schnelle Rechenzeit
erzielen will, ist es unmöglich, die cos- und sin-Werte jedesmal neu zu berechnen, wenn man sie benötigt. Nach der
Erfindung benötigt man lediglich zwei Multiplikationen für jede Operation, und es ist nur ein kleiner Speicher erforderlich.
Ein Spezialdigitalrechner zum Ausführen der schnellen Fourier-Transformation
ist nach der Erfindung gekennzeichnet durch einen Datenspeicher für die Real- und Imaginärteile X, und Y1 der Terme
A-,, ein Adressenregister zum Speichern der Adresse eines
Terms, eine Einrichtung, die die gespeicherte Adresse veranlaßt, während jeder Stufe der Berechnung durch alle ihre Werte zyklisch
zu laufen, ein Stufenregister zum Speichern eines Bit, das die Stufe 1 der Berechnung identifiziert, eine Einrichtung, die auf
jede gespeicherte Adresse und das Stufenbit anspricht, um die Werte X1(I), Y1(I), X1(O) und Y1(O) zu gewinnen und den Wert
von θ für die 1 höchstwertigen Bits der gespeicherten Adresse zu bestimmen, eine Einrichtung, die iterativ mit den Werten
X1(I) und Y1(I) arbeitet, um Werte KX1(I) und KY1(I) zu berechnen,
wobei K eine Konstante ist und X1+iY1 = (X + iY) EXP.
(2iri9) und die iterativen Operationen die Form
haben, wobei die Multiplikatoren a. gleich +1 oder -1 und derart
sind, daß Q + ^ a. tan 2 ° gegenNull geht, eine Einrichtung,
j=o J J
109849/1 165
die die Konstante K entfernt, um X1O) und Y1O) abzuleiten,
und eine Einrichtung, die die folgenden Additionen und Subtraktionen ausführt:
X1+1 (0) = X1 (0) + xj(1) (8)
Y1+1 (0) = Y1 (0) + yJ(1) · (9)
X1+1 (D = X1 (0) - X1(D (10)
Y1+1 (D = Y1 (ο) - y
Üie erwähnten iterativen Operationen bewirken die Vektorrota- '
tion nach einem bekannten Rechenverfahren, das als cordisches Rechenverfahren bekannt ist und beispielsweise in einem Aufsatz
von J.E. Voider mit dem Titel:"The CORDIC Trignometric
Computing Technique" in der Fachzeitschrift IRE Transactions on Electronic Computers, September 1959, Seite 330 bis 334,
beschrieben ist. Die Anwendung dieses Verfahrens in dem nach der Erfindung aufgebauten Rechner ermöglicht die Verwendung
eines sehr kleinen Festwertspeichers, da es lediglich notwendig ist, eine Reihe von Werten tan" 2" ," taiT^Z"^ usw. zu
speichern.
Jede der iterativen Operationen führt eine Multiplikation mit einem konstanten Betrag ein, d.h., es handelt sich um keine
reine Vektorrotation. Am Ende der P iterativen Operationen besteht die kumulative Wirkung in der Multiplikation mit der
bereits erwähnten Konstanten K. Eine bequeme Art, diese Konstante zu entfernen, besteht darin, eine Multiplikation mit
1/K vorzunehmen. Ein für diesen Zweck geeignetes, einfaches Verfahren wird noch beschrieben.
Bei einer bevorzugten Weiterbildung der Erfindung wird die Größe des Festwertspeichers dadurch weiter vermindert, daß '
_1
lediglich die ersten tan -Werte, beispielsweise die ersten sechs Werte, gespeichert werden. Dies ist möglich, da sich der
lediglich die ersten tan -Werte, beispielsweise die ersten sechs Werte, gespeichert werden. Dies ist möglich, da sich der
109849/1165
Tangens eines Winkels für kleine Winkel dem Winkel (in Radiant) selbst nähert. So ist für j>5 der Ausdruck tan ~12~^ ^ 2""^.
Bei einem gerätetechnischen Ausführungsbeispiel der Erfindung wird tan ~12"^ = 1/2 tan ~12"^+1 für j>5 gesetzt.
Zum besseren Verständnis der Erfindung wird im folgenden ein Ausführungsbeispiel beschrieben, das auf der Serienschieberegistertechnik
beruht, die zum Ausführen von vielen der Operationen geeignet ist. Man kann jedoch auch die Paralleltechnik
benutzen. Darüberhinaus ist die Erfindung auf die Verwendung irgendeiner besonderen arithmetischen Berechnungsmethode nicht
beschränkt.
Obwohl ein Ausführungsbeispiel der Erfindung nahezu in allen Einzelheiten beschrieben wird, sei erwähnt, daß die Schaltungen,
die die zeitliche Reihenfolge der verschiedenen Operationen steuern, nicht beschrieben werden. Eine solche Beschreibung
wäre äußerst mühsam und würde zum Verständnis der Erfindung nicht beitragen. Darüberhinaus sind diese Verfahren
bei Digitaldaten verarbeitenden Anlagen allgemein bekannt. Weiterhin gibt es viele Möglichkeiten, den beschriebenen Rechner
abzuändern. Die Erfindung soll daher Abänderungen und Modifikationen sowohl bei den benutzten mathematischen Operationen
als auch bei den beschriebenen Schaltungen umfassen, die die Operationen ausführen.
Ein bevorzugtes Ausführungsbeispiel der Erfindung wird an Hand von Figuren beschrieben.
Die Fig. 1 zeigt schematisch den Aufbau eines nach der Erfindung ausgebildeten Rechners.
Die Fig. 2 zeigt die Schaltungen zum Bestimmen der Datenadresse und des Θ-Wertes für jede Anwendung der Gleichung
(1).
Die Fig. 3 zeigt die Schaltung zum Bestimmen der Werte von a.
aus dem Θ-Wert.
109849/1165
Die Fig. 4 zeigt eine Datenverarbeitungsschaltung beim Ausführen einer cordischen Vektorrotation.
Die Fig. 5 zeigt die Datenverarbeitungsschaltung beim Ausführen einer Multiplikation mit 1/K.
Die Fig. 6 zeigt die Datenverarbeitungsschaltung beim Arbeiten mit den Gleichungen (8) bis (11).
In einem in der Fig. 1 dargestellten Datenspeicher 10 sind anfangs
die 2m Tenne von A gespeichert. Die Real- und Imaginärteile
davon X und Y sind getrennt gespeichert. Wenn A1 real
ist, sind alle Y1 Null. Mit fortschreitender Berechnung erscheinen
jedoch Imaginärteile Y2, Y, usw. Bei jeder Stufe der
Berechnung werden die Terme der Reihe nach von einem m-Bit-Zähler
(Register) 11 adressiert, das mit einem m-Bit-Schieberegister 12 zusammenarbeitet, das ein einziges Bit enthält, das
die Stufe 1 identifiziert. Dieses-Bit befindet sich anfangs in
der höchstwertigen Stufe des Registers 12 und wird immer dann zur nächsten Stufe geschoben, wenn der Zähler 11 überläuft.
Schiebeeingänge zu Schieberegistern sind durch doppelköpfige Pfeile gekennzeichnet. Venn das Einzelbit zurück in die höchstwertige
Stufe oder Stelle geschoben wird, tritt an einer Leitung 13 ein Endimpuls auf, der anzeigt, daß die Berechnung beendet
ist und daß jetzt die in dem Speicher 10 gespeicherten Terme die benötigten Endterme A sind.
Das von dem Register 12 identifizierte Bit wird benutzt, um das entsprechende Bit der Adresse in dem Register 11 zu modifizieren,
um zwei Adressen (...1...) und (...0...) abzuleiten, die mit D(1) und D(O) bezeichnet sind. Ferner werden die höchstwertigen
Bits des Registers 11, und zwar bis zu dem von dem Bit im Register 12 identifizierten Bit, in umgekehrter Reihenfolge
in ein Register 14 gegeben, um den Wert von θ zu liefern. In der Praxis ist für m ein Wert von 10 geeignet. Der Einfachheit
halber wird ein Beispiel einer Adressierung mit m = 3 •beschrieben.
109849/1165
O | O | 1 | Dritte Stufe | 1 | ] ■ | — | 8 | — | 12 ist 100 | |
01 01 |
O | D | OO | 1 | Zahl | im | Register | θ | ||
1 | 1 | OO | D(1) | D(O) | 100 | |||||
Erste Stufe | 1 | 1 | D | 01 | 1 | 100 | 000 | 100 | ||
Zähler 11 | 1 | 1 | 01 | 101 | 001 | ' 100 | ||||
t{00 | 1 | 10 | 1 | 110 | 010 | 100 | ||||
: | 1 | 10 | 111 | 011 | 100 | |||||
11 | 1 | 100 | 000 | 100 | ||||||
c | 1 | 101 | 001 | 100 | ||||||
1 | 110 | 010 | 100 | |||||||
1 | 111 | 011 | 12 ist 010 | |||||||
1 | Zahl | im | Register | 100 | ||||||
1 | 010 | 000 | 100 | |||||||
)01 | 011 | 001 | 100 | |||||||
)10 | 010 | 000 | 100 | |||||||
m | 011 | 001 | 110 | |||||||
OO . | 110 | 100 | 110 | |||||||
01 | 111 | 101 | 110 | |||||||
10 | 110 | 100 | 110 | |||||||
11 | 111 | 101 | 12 ist 001 | |||||||
Zweite Stufe | Zahl | im | Register | 100 | ||||||
doio | 001 | 000 | 100 | |||||||
C | 001 | 000 | 110 | |||||||
011 | 010 | 110 | ||||||||
011 | 010 | 101 | ||||||||
101 | 100 | 101 | ||||||||
101 | 100 | 111 | ||||||||
111 | 110 | 111 | ||||||||
111 | 110 | |||||||||
109849/1 165
Im Zähler 11 vorhandene Zahlen, die sich durch das Bit an der durch 4ie Zahl im Register identifizierten Stelle unterscheiden,
führen zu demselben Paar von Adressen D(1) und D(O). Es sind Maßnahmen vorhanden, die sicherstellen, daß jedes Adressenpaar
nur einmal verwendet wird.
Die Adressen D(1) und D(O) werden dazu benutzt, um die Zahlen X1(I), Y1(I), X1(O) und Y1(O) zu bestimmen, die aus dem Datenspeicher
10 ausgelesen und einem Verarbeiter 15 zugeführt werden, von dem die verarbeiteten Zahlen in den Speicher wieder
eingegeben werden. Die V/iedereingabeadressen werden ebenfalls durch D(1) und D(O) vorgeschrieben.
Der Verarbeiter oder die Zentraleinheit 15 enthält zwei Addierer, die erstens die iterativen Operationen der Gleichungen
(6) und (7) und zweitens die Multiplikation mit 1/K durchführen
sowie drittens die Gleichungen (8) bis (11) erfüllen. Zur Ausführung der Gleichungen (6) und (7) ist es notwendig, die
Multiplikatoren a. zu bestimmen. Zu diesem Zweck wird der Inhalt des Θ-Registers 14 durch einen Volladdierer 16 zirkuliert,
der, in an sich bekannter Weise, derart ausgelegt sein kann, daß er entweder subtrahiert oder addiert, wobei er anfangs
derart eingestellt ist, daß er subtrahiert. Der zweite Eingang des Addierers 16 kommt von einem Festwertspeicher 17» der die
—1 —0 —1 —1
Werte tan 2 , tan 2 usw. speichert. Bei jeder Addition o.der Subtraktion wird das Überlauf bit überwacht, und, für den Fall, daß dieses Bit 1 ist, der Zustand einer bistabilen Kippstufe oder eines Flipflop 18 geändert. Die beiden Zustände dieses Flipflop entsprechen der Bedingung a. = -1 und a. = +1 und entsprechen jeweils zusätzlich der Durchführung einer Subtraktion und Addition durch den Addierer 16.
Werte tan 2 , tan 2 usw. speichert. Bei jeder Addition o.der Subtraktion wird das Überlauf bit überwacht, und, für den Fall, daß dieses Bit 1 ist, der Zustand einer bistabilen Kippstufe oder eines Flipflop 18 geändert. Die beiden Zustände dieses Flipflop entsprechen der Bedingung a. = -1 und a. = +1 und entsprechen jeweils zusätzlich der Durchführung einer Subtraktion und Addition durch den Addierer 16.
Als nächstes wird an Hand der Fig. 2 die Ableitung von D(1), D(O) und θ im einzelnen betrachtet. Der Zähler 11 besteht aus
einem umkehrbaren Schieberegister 20, das über einen Volladdierer 21 in eine Schleife geschaltet ist. Der Volladdierer 21
109849/1165
- ίο- 2123m
schaltet die Zahl in dem Register 20 um 1 weiter, wenn ein
Inkrementsignal Q1 an den Anschluß 22 gelegt wird. Ein solches
Signal tritt immer dann auf, wenn der Verarbeiter 15 der
Fig. 1 bereit ist, die nächsten beiden Terme zu verarbeiten. Das Inkrementsignal veranlaßt, daß einem rechten Schiebeeingang
24 Schiebeimpulse S1 zugeführt werden, die einen vollständigen Umlauf des Registers und damit eine Inkrementbildung
seines Inhalts veranlassen. Ein Signal ES1, das das Ende des Schiebeimpulszuges markiert, öffnet ein Tor 25, um festzustellen,
ob am Zähler 11 ein Überlauf aufgetreten ist. Falls dies der Fall sein aollte, wird ein rechter Schiebeimpuls
einem Schiebeeingang 26 des Registers 12 zugeführt. Gleichzeitig wird mit einem Tor 27 überprüft, ob die Berechnung beendet worden
ist. Sollte dies der Fall sein, wird an der Leitung 13 das
" Endesignal abgegeben. Die Schiebe impulse S1 v/erden auch dem
rechten Schiebeeingang 26 des Registers 12 zugeführt, um dessen Inhalt durch ein Tor 28, das durch das Inkrementsignal Q1
geöffnet wird, umlaufen zu lassen. Die synchron miteinander umlaufenden Ausgänge der beiden Schieberegister werden einem
Tor .29 zugeführt, das feststellt, ob im Register 20 das Bit, das sich an derselben Stelle befindet wie das einzelne Bit
in dem Register 12, eine 1 oder eine 0 ist. Wenn dieses Bit eine 0 ist, werden die Adressen D(1) und D(O) nicht benutzt,
um eine Adressenduplikation zu vermeiden. Zu diesem Zweck wird das Ausgangssignal des Tores 29 einem Flipflop 30 vom
D-Typ zugeführt, dessen Takteingang von dem einzigen Bit im Register 12 taktiert wird. Am Ende des Umlaufs gibt das Signal
ES1 den Zustand des Flipflop 30 an, Falls Q = 1, läßt ein Tor 31 ein Signal Q2 durch, das die gleiche Funktion wie
das Signal Q1 hat und daher einen weiteren Zyklus der Schieberegister
einleitet. Wenn jedoch Q = 1, gibt ein Tor 32 ein Signal Q3 ab, dessen Wirkung noch beschrieben wird.
Wenn die Schieberegister 12 und 20 umlaufen, werden ihre Inhalte benutzt, um D(1) und D(O) in zwei Pufferregistern 35
und 36 zu bilden. Die Bits der Zahl im Register 20 plus das 1-Bit in dem Register 12 gelangen durch ein ODER-Tor 37 in das
109849/1165
D(i)-Register 35. Die Bits der Zahl im Register 20 gelangen in
das D(O)- Register 36 über ein UND-Tor 38, dem noch der durch einen Inverter 39 invertierte Ausgang des Registers 12 zugeführt
wird.
Das bereits erwähnte Signal Q3 wird dazu benutzt, um die Eingäbe
von θ in das Register 14 auszulösen, und zwar dadurch, daß eine bistabile Kippstufe oder ein Flipflop 42 gesetzt und
ein Schiebeimpulszug S2 ausgelöst wird, der linken Schiebeeingängen 43 und 44 der Register 20 und 12 zugeführt wird, so
daß die Register über Tore 45 und 46, die von dem Q-Ausgang 0.4'
eines Flipflop 42' geöffnet werden, einen vollständigen Umlauf in umgekehrter Richtung vornehmen. Der Q-Ausgang Q4 des Flipflop 42 öffnet Tore 47 und 48. Über das geöffnete Tor 47 gelangen
die Schiebeimpulse S2 zu einem rechten Schiebeeingang 50 des Registers 14. Das Tor 48 gestattet es, daß die in umgekehrter
Richtung aus dem Register 20 tretenden Bits in der richtigen Reihenfolge in das Register 14 gelangen. Wenn das
einzige 1-Bit in dem Register 12 erscheint, wird das Flipflop 42 zurückgesetzt, um den V/ert θ im Register 14 einzufrieren,
obwohl die Register 20 und 12 ihre Umläufe weiter führen, um sie zu beenden.
V/enn der umgekehrte Umlauf beendet ist, wird ein Signal Q5
erzeugt, und der Rechner fährt fort, a zu bestimmen, wie <
im einzelnen an Hand der Fig. 3 beschrieben wird.
Nach der Fig. 3 ist das Θ-Register 14 über einen Volladdierer
52 und ein Tor 53 in eine Umlaufschleife geschaltet. Das Tor
53 wird von einem Signal Q6 nur während jedes Zuges von Schierbeimpulsen S3 geöffnet, die dem rechten Schiebeeingang 50 zugeführt
werden, um einen vollständigen Umlauf des Registers zu bewirken. Der Volladdierer wird dazu benutzt, um den Inhalt
eines weiteren Schieberegisters 54 entweder von dem Inhalt des Registers 14 zu. subtrahieren oder zu diesem Inhalt zu ad-
—1 —"i dieren. In dem Register 54 befindet sich der tan 2 , und die
Impulse S3 werden einem Rechtsschiebeeingang 55 zugeführt.
109849/1165
Anfangs setzt das Signal Q5 ein J-K-Flipflop
zurück, das dem Flipflop 18 in der Fig. 1 entspricht. Das Flipflop liefert an seinem Q-Ausgang ein Signal a. Wenn
a = 1, a . = +1. Wenn das Signal ä am Q-Ausgang ä = 1, dann
<j
a. = -1. Das Signal a steuert den Volladdierer 52, so daß,
a. = -1. Das Signal a steuert den Volladdierer 52, so daß,
wenn a = 1, der Addierer addiert, und, wenn a = 0, der Addierer subtrahiert.
Am Ende jedes Schiebeimpulszuges S3 überwacht ein Impulszugendsignal
ES3 das Überlaufbit über ein Tor 56, dessen Ausgang dem D-Eingang des Flipflop 18 zugeführt wird. Unter dem Takt
des Signals ES3 setzt das Flipflop seinen Q-Ausgang immer Null, fc wenn ein Überlaufbit auftritt.
Die V/erte von tan 2 bis tan 2 werden von dem Festwertspeicher
17, der von einem kleinen Zähler 57 adressiert wird, zu dem Register 54 übertragen. Dieser Zähler wird von dem Signal
Q5 auf Null zurückgesetzt, das das Ende der Bestimmung von D(1), D(O) und θ bezeichnet und tan ~ 2 entsprechend
adressiert und diesen Wert zum Register 54 überträgt. Solange
ein Tor 59 offen ist, wird der Zähler 57 durch jedes Impulszugendesignal ES3 inkrementiert oder weitergeschaltet. Es werden
—1 —1 —1 —2 daher die aufeinanderfolgenden Werte von tan 2 , tan 2
usw. zum Register 54 übertragen.
Das Tor 59 wird durch den Q-Ausgang Q7 eines Setz-Rücksetz-Flipflop
60 geöffnet oder durchgeschaltet. Dieses Flipflop wird durch das Signal Q5 geset&t und durch eine Schaltung 61
zurückgesetzt, die feststellt, wenn der Zähler bis sechs gezählt hat. Wenn das Flipflop 60 zurückgesetzt wird, veranlaßt
ein Impuls 07 am Q-Ausgang eine Extraverschiebung des Regi- . sters 54, das jetzt über ein Tor 62, das von ÖT durchgeschaltet·
ist, in einer geschlossenen Schleife liegt. Dies hat die Wirkung, daß der Inhalt des Register 54 dividiert wird, daß
nämlich tan ~ 2 durch zwei dividiert wird, um tan " 2~ in
—1 —5 —-
1/2 tan 2 ^ umzuformen. Der Q7-Ausgang des Flipflop 60
schaltet ferner ein Tor 63 durch, durch das nachfolgende Impulse ES3 hindurchgehen, um eine Extraverschiebung zu bewir- -
109849/1165
—1 —i ken, so daß jeder neue Wert von tan 2 ° durch Division des
vorangegangenen Wertes durch zwei gebildet wird.
Im folgenden wird angenommen, daß jeder Viert von a . bei der
gleichzeitigen Ausführung der Gleichungen (6) und (7) benutzt wird. Es ist auch möglich, alle Werte von a. zu bilden, sie
zwischenzuspeichern und anschließend die Gleichungen (6) und (7) auszuführen.
Die Gleichungen (6) und (7) werden von dem in der Fig. 1 dargestellten
Verarbeiter 15 ausgeführt, der in der Fig. 4 im einzelnen gezeigt ist. Bei der Anordnung nach der Fig. 4 wer-•den
die Werte von X1(I) und Y-, (1), die durch D(1) adressiert·
sind, in an sich bekannter V/eise vom Datenspeicher 10 (Fig.1) in X- und X- Register 70 und 71 übertragen. Die Register 70
und 71 sind über Volladdierer 72 und 73 in Umlaufschleifen
eingeschaltet. Diese Volladdierer dienen dazu, um "von dem Inhalt jedes Registers den um einen Maßstab geänderten Inhalt
des anderen Registers hinzuzufügen oder abzuziehen. Hierzu dienen maßstabändernde Einrichtungen 74 und 75. Diese den
Maßstab ändernden Einrichtungen sind im Handel erhältliche Schaltungen, die in Übereinstimmung mit einer in einem Register
77 gespeicherten Adressen einen Ausgang von dem zugeordneten Schieberegister auswählen. Wenn die Adresse Null ist,
d.h. j = 0, wird die niedrigstwertige Stufe ausgewählt und daher X. mit dem im Maßstab nicht geänderten Y. vereint und
Y. mit dem nicht im Maßstab geänderten X. vereint. Wenn j = 1, wird die zweitniedrigstwertige Stufe ausgewählt,und
daher X. mit 1/2 Y.. vereint und Y. mit 1/2 X. vereint usw.
Auf diese Weise wird der Maßstabsfaktor 2 ° in die Gleichungen (6) und (7) eingeführt.
Ob irgendeine Vereinigung additiv oder subtraktiv vorgenommen wird, hängt von dem Wert von a . ab. Das Signal a von der
Fig. 3 wird daher benutzt, um zu bestimmen, ob der Addierer 72 addiert oder subtrahiert, und das Signal ä wird benutzt,
um zu bestimmen, obe der Addierer 73 addiert oder subtrahiert.
109849/1165
Das Adressenregister 77 für die Maßstabsschaltungen wird von einem Umlaufzähler 78 gesteuert, der eine Kapazität
von P hat, die gleich der Anzahl der Bits in jedem Viert X und Y entspricht und beispielsweise 16 betragen kann.
Der Zähler 78 zählt die Schiebeimpulse S3, die den Schieberegistern 70 und 71 zugeführt v/erden. Anfangs setzt das Signal
Q5 sowohl den Zähler 78 als auch das Register 77 für j = O zurück. Am Ende des ersten Umlaufs ist der Zähler 78 auf Null
zurückgekehrt, wird jedoch durch das Impulszugendesignal ES3 um 1 weitergeschaltet. Jedes dieser Impulssignale überträgt in
das Register 77 den neuen Wert im Zähler 78. Dieser Wert bleibt unverändert, bis der nächste Impuls ES3 erscheint.
Der Zähler 78 stellt sicher, daß nur P-j Bits von den Maßstabänderungsschaltungen
74 und 75 über Tore 90 und 91 zu den Addierern 73 und 72 gelangen. Die letzten j Bits sind die niedristwertigen
Bits des neuen Viertes von X-J+1 oder Y .+1, die vom
Addierer 72 oder 73 in das Register 70 oder 71 gelangen. Die Tore 90 und 91 werden von einem Flipflop 92 durchgeschaltet,
das von dem Impuls Q5 und jedem Impuls ES3 gesetzt und durch ein Signal Q8 zurückgesetzt wird, wenn der Zähler 78 den
Wert P erreicht.
Wenn durch P Impulszüge S3 die Schaltungen der Figuren 3 und 4 P vollständige Umläufe ausgeführt haben, wird ein weiterer Impulszug
S4 benutzt, um die jetzt in den Registern 70 und 71 befindlichen Zahlen KX und KY1 mit 1/K zu multiplizieren.
Diesen Impulszügen geht ein Impuls Q9 voran und folgt jeweils ein Impuls ES4 nach. Das Schaltschema der Fig. 4 wird dazu in
das Schema nach der Fig. 5 umgeschaltet, wobei die Ausgänge der Tore 90 und 91 mit den Addieren 72 bzw. 73 verbunden sind.
Durch wahlweise Addition und Subtraktion der im Maßstab geänderten Werte von dem X- und Y-Register zu dem Inhalt desselben
Registers wird ihr Inhalt mit 1/K multipliziert. Die Folge der Additions- und Subtraktionsoperationen, die notwendig
sinds um den benötigten Wert von K zu erhalten, wird durch
einen kleinen Festwertspeicher 95 bestimmt, der von dem Regi-
109849/1165
ster 77 gesteuert wird und dessen Ausgang den Addier/Subtrahier-Eingang
von beiden Addierern 72 und 73 steuert. Bei dieser Operation ist für einige V/erte von j weder eine Addition noch
eine Subtraktion erforderlich. Für diese V/erte liefert der Speicher 95 ein Ausgangssignal Q10, das den Zähler 78 unmittelbar
weiterschaltet und den neuen Wert von j in das Register 77 bringt. Umlaufvorgänge aufgrund der Impulse S4 werden daher
lediglich für V/erte von j ausgeführt, die eine Additionsoder Subtraktionsoperation erfordern. Dadurch wird die. zur
Multiplikation mit 1/K erforderliche Zeit so gering wie möglich gehalten.
Man kann zeigen, daß
K =V (1+1) (1+1/4) (1+1/16)
Die abschließenden Operationen betreffen die Gleichungen (9) bis (11). Sie werden mit den Registern 70 und 71» die jetzt
X (1) und Y (1) enthalten, und den Registern 96 und 97 durchgeführt, in die unter der Steuerung von D(O) X(O) und Y(O)
eingegeben ist". Die Register werden unter der Steuerung von Schiebeimpulsen S5 durch geschlossene Schleifen geschoben, in
die Tore 98, 99, 100 und 101 eingeschaltet sind. Die Tore werden durch ein Signal Q11 durchgeschaltet. Den Schiebeimpulsen
S5 folgt jeweils ein Impulszugendeimpuls ES5, der einem Flipflop 102 zugeführt wird, das daraufhin abwechselnd gesetzt
und zurückgesetzt wird. Der Q-Ausgang Q12 des Flipflop 102
veranlaßt die Addierer 72 und 73 abwechselnd zu addieren (für die Gleichungen (8) und (9)) und zn subtrahieren (für die
chungen (10) und (11)). Das Signal Q12 arbeitet auch mit dem
D(1)-Register 35 und dem D(O)-Register 36 (Fig. 1) zusammen, um sicherzustellen, daß X1 +1(0) und Y-i+-j(O) zu der Adresse
D(O) im Speicher 10 und das Xi+1O) und Y^ (Ό zu der Adresse D(1) zurückgeführt werden.
109849/1165
Am Ende von zwei Impulszügen S5 tritt das nächste Signal Q1 . auf, um die nächste Adresse auszuwählen und die beschriebene
Folge von Operationen erneut zu beginnen.
Der Verarbeiter oder die Recheneinheit 15 wird von passenden Toren, die von einer in der Fig. 1 lediglich als Blockschaltbild
dargestellten Reihenfolge- und Zeitsteuerschaltung 105
gesteuert werden, in die in den Figuren 4, 5 und 6 gezeigten _ Verschaltungsanordnungen gebracht.
109849/1 1 65
Claims (10)
- Patentansprücheλ) Spezialdigitalrechner zum Durchführen der schnellen Fourier-Transformation,gekennzeichnet durch einen Datenspeicher für die Real- und Imaginärteile X1 und Y1 der Terme A1, ein Adressenregister zum Speichern der Adresse eines Terms, eine Einrichtung, die veranlaßt, daß die gespeicherte Adresse durch alle ihre Werte während jeder Stufe der Berechnung zyklisch weitergeschaltet wird, ein Stufenregister zum Speichern eines Bit, das die Stufe 1 der Berechnung identifiziert, eine Einrichtung, die auf jede gespeicherte Adresse und das Stufenbit anspricht, um die Werte X1(I), Y1(I), X1(O) und Y1(O) zu extrahieren und den Wert von θ von den 1 höchstwertigen Bits der gespeicherten Adresse zu bestimmen, eine Einrichtung, die geeignet ist, die Werte X1(I) und Y-, (1) iterativ zu verarbeiten, um Werte KX1(I) und KY1(I) zu berechnen, wobei K eine Konstante ist und X1 + iY1 = (x + iY) Exp. (2iriö) und die iterativen Operationen von der Form" xdsind, wobei die Multiplikatoren a . gleich +1 oder -1 und der-P —1 -i «3art sind, daß Q +a^ a^ tan 2 ° gegen Null strebt, eine Einrichtung, die geeignet ist, die Konstante K zu entfernen, um X1(I) und Y1(I) abzuleiten, und eine Einrichtung, die geeignet ist, die folgenden Additionen und Subtraktionen auszuführen:C) (9)(1) (10)109849/1165
Xl+1 (O) = Xl (0) +1 Xl+1 (D- Xl (0) -4 Yl+1 (1) = Yl (0) -*1 - 2. Digitalrechner nach Anspruch 1,
gekennzeichnet durch einen Speicher (17), der lediglich die ersten Werte von tan" 2 J enthält, und eine Einrichtung (54), die die nachfolgenden Werte dadurch ableitet, daß sie die vorangegangenen Werte durch 2 wiederholt dividiert. - 3. Digitalrechner nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß sowohl das Adressenregister (20) als auch das Stufenregister (12) Schieberegister sind, daß das Adressenregister über einen Addierer (21) in eine Umlaufschleife geschaltet ist, um die Adresse bei jedem Umlauf um 1 zu inkrementieren, und daß das Stufenregister in eine Umlaufschleife geschaltet ist, um einen mit dem Adressenregister Schritt haltenden Umlauf vorzunehmen .
- 4. Digitalrechner nach Anspruch 3,
gekennzeichnet durch ein erstes und ein zweites Pufferregister (36 und 35), die einerseits die Adresse von X1(O) und Y1(O) und andererseits von X1(I) und Y1(I) enthalten, und eine Einrichtung zum Verschieben der in dem Adressenregister (20) enthaltenen Adresse in die beiden Pufferregister, wobei jedoch unter der Steuerung des Stufenregisters (12) das Bit, das dem 1-Bit in dem Stufenregister entspricht, in dem ersten Pufferregister auf 0 und in dem zweiten Pufferregister auf 1 gezwungen wird. - 5. Digitalrechner nach Anspruch 3 oder 4, gekennzeichnet durch ein Schieberegister (14) zum Speichern von θ und eine Einrichtung (43,44) zum Ausführen von synchronen umgekehrten Umläufen des Adressenregisters (20) und des Stufenregisters (12) sowie zum Verschieben von Bits von dem Adressenregister in das Θ- Register, bis das 1-Bit in dem Stufenregister nachgewiesen wird.109849/116S
- 6. Digitalrechner nach Anspruch 3, 4 oder 5, gekennzeichnet durch eine Einrichtung (25), die auf ein Überlaufen des Adressenregisters (20) anspricht, um das 1-Bit in dem Stufenregister (12) zu der nächsten niedrigwertigen Stelle zu verschieben.
- 7. Digitalrechner nach einem der Ansprüche 3 bis 6, gekennzeichnet durch eine Einrichtung (29,30), die während des inkrementierenden Umlaufs der Adresse feststellt, wenn das im Adressenregister an derselben Stelle wie das 1-Bit im Stufenregister befindliche Bit einen vorgegebenen Wert hat, und die daraufhin in Betrieb, gesetzt wird, um unmittelbar danach einen weiteren inkrementierenden Umlauf auszulösen, ohne daß dabei die Gleichungen (6) bis (11) verarbeitet werden.
- 8. Digitalrechner nach einem der Ansprüche 1 bis 7, gekennzeichnet durch ein Register (14)/ in dem θ enthalten ist, und eine Steuereinrichtung (18,52), die in Abhängigkeit von den Werten von a.—1 — i " zum Inhalt des Registers die Vierte von tan 2 ° addiert odersubtrahiert, wobei die Steuereinrichtung auf die dabei gebildeten Werte von θ + <ff a. tan" 2~"^ anspricht, um die WerteP _1 _i von a. derart zu bestimmen, daß die Werte von Θ+2Γ a. tan 2 uΰ j=o αfortschreitend gegen Null gehen.
- 9. Digitalrechner nach einem der Ansprüche 1 bis 8, gekennzeichnet durch eine Einrichtung (78) zum Zählen der genannten iterativen Operationen, zwei Schieberegistern (70,71), die X bzw. Y speichern und über zugeordnete Addierer/Subtrahierer (72,73) in Umlaufschleifen eingeschaltet sind, Maßstabsänderungseinrichtungen (74,75), die zwischen die Schieberegister geschaltet und jeweils mit den nicht zugeordneten Addierern/Subtrahierern verbunden sind und die von der Zähleinrichtung derart gesteuert werden, daß sie die Multiplikatoren 2~^ in die Gleichungen (6) und (7) einführen, und eine Einrichtung (18), die die Ad-109849/1165dierer/Subtrahierer veranlaßt, wahlweise in Abhängigkeit von den Werten von a. zu addieren bzw. subtrahieren.
- 10. Digitalrechner nach Anspruch 9,
gekennzeichnet durch eine Einrichtung (90,91),die jede Maßstabsänderungseinrichtung (74,75) mit dem zugeordneten Addierer/Subtrahierer (72,73), anstatt mit dem nicht zugeordneten Addierer/Subtrahierer verbindet, und eine Einrichtung, die eine Folge von Umläufen des X- und Y-Registers veranlaßt, wobei die Maßstabsänderungseinrichtungen durch Zustände unterschiedlicher V/ertigkeit geschaltet werden, während die Addierer/Subtrahierer in einer vorgegebenen Reihenfolge addieren und subtrahieren, so daß sowohlKX-,(i) und KY(I) mit 1/K multipliziert werden.109849/1165Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2300270 | 1970-05-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2123174A1 true DE2123174A1 (de) | 1971-12-02 |
Family
ID=10188524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19712123174 Pending DE2123174A1 (de) | 1970-05-12 | 1971-05-11 | Digitalrechner |
Country Status (4)
Country | Link |
---|---|
JP (1) | JPS5647575B1 (de) |
DE (1) | DE2123174A1 (de) |
FR (1) | FR2092595A5 (de) |
GB (1) | GB1350904A (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4811236A (en) * | 1986-11-03 | 1989-03-07 | Westinghouse Electric Corp. | Transmission line voltage detector for static VAR generator |
CN108197076B (zh) * | 2018-01-26 | 2021-05-18 | 中国电子科技集团公司第三十八研究所 | 一种无溢出的圆周旋转cordic算法实现方法和装置 |
-
1970
- 1970-05-12 GB GB1350904D patent/GB1350904A/en not_active Expired
-
1971
- 1971-05-11 DE DE19712123174 patent/DE2123174A1/de active Pending
- 1971-05-12 FR FR7117097A patent/FR2092595A5/fr not_active Expired
- 1971-05-12 JP JP3123671A patent/JPS5647575B1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JPS5647575B1 (de) | 1981-11-10 |
FR2092595A5 (de) | 1972-01-21 |
GB1350904A (en) | 1974-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3875979T2 (de) | Schaltung zur berechnung des quantisierten koeffizienten der diskreten cosinustransformation von digitalen signalabschnitten. | |
DE2523860C3 (de) | Vorrichtung zur digitalen, linearen Interpolation einer fabulierten Funktion | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE2246968A1 (de) | Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen | |
DE2729912C2 (de) | Anordnung zum Erzeugen digitaler Ausgangssignalwerte | |
DE1549584A1 (de) | Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten | |
DE2133638C3 (de) | Verfahren zum Betrieb eines lernfähigen Systems aus in Kaskade geschalteten, zur nicht linearen Datenverarbeitung geeigneten lernfähigen Datenverarbeitungseinheiten | |
DE2150751A1 (de) | Digitaler Sinus-Kosinus-Generator | |
DE1549478B1 (de) | Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden | |
DE2310553A1 (de) | Vorrichtung zur durchfuehrung arithmetischer und logischer operationen | |
DE3447634C2 (de) | ||
DE2123174A1 (de) | Digitalrechner | |
DE1190705B (de) | Elektronische Vierspeziesrecheneinheit | |
DE2203143B2 (de) | Rechenanordnung zum Dividieren von Dezimalzahlen | |
DE1222290B (de) | Binaere Recheneinrichtung zur Bildung und Akkumulation von Produkten | |
DE1125685B (de) | Rechenmaschine | |
DE1549485C3 (de) | Anordnung zur Division binärer Operanden ohne Rückstellung des Restes | |
DE3416536C2 (de) | ||
DE1549461C3 (de) | ||
DE1103646B (de) | Inkrement-Rechenmaschine | |
DE1239506B (de) | Divisionseinrichtung | |
DE2422495C2 (de) | Datenverarbeitungsanlage | |
DE1303692C2 (de) | Binaerrechner | |
DE3609056A1 (de) | Zaehlerschaltkreis | |
DE1801725C3 (de) | Digitaler Fourier-Analysator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OHJ | Non-payment of the annual fee |