DE2123174A1 - Digitalrechner - Google Patents

Digitalrechner

Info

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
Application number
DE19712123174
Other languages
English (en)
Inventor
Douglas Farnborough Hampshire Garde (Großbritannien)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemalto Terminals Ltd
Original Assignee
Solartron Electronic Group Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Solartron Electronic Group Ltd filed Critical Solartron Electronic Group Ltd
Publication of DE2123174A1 publication Critical patent/DE2123174A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5446Methods 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
6 Frankiuri a. M. 1
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πθ.
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
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.
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ß,
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)

  1. 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
    " xd
    sind, wobei die Multiplikatoren a . gleich +1 oder -1 und der-
    P —1 -i «3
    art 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. 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. 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. 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. 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. 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. 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. 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 oder
    subtrahiert, wobei die Steuereinrichtung auf die dabei gebildeten Werte von θ + <ff a. tan" 2~"^ anspricht, um die Werte
    P _1 _i von a. derart zu bestimmen, daß die Werte von Θ+2Γ a. tan 2 u
    ΰ j=o α
    fortschreitend gegen Null gehen.
  9. 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/1165
    dierer/Subtrahierer veranlaßt, wahlweise in Abhängigkeit von den Werten von a. zu addieren bzw. subtrahieren.
  10. 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/1165
    Leerseite
DE19712123174 1970-05-12 1971-05-11 Digitalrechner Pending DE2123174A1 (de)

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)

* Cited by examiner, † Cited by third party
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算法实现方法和装置

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