DE2135590C3 - Schaltungsanordnung zum Interpolieren des Wertes einer Funktion einer unabhängigen Veränderlichen - Google Patents
Schaltungsanordnung zum Interpolieren des Wertes einer Funktion einer unabhängigen VeränderlichenInfo
- Publication number
- DE2135590C3 DE2135590C3 DE2135590A DE2135590A DE2135590C3 DE 2135590 C3 DE2135590 C3 DE 2135590C3 DE 2135590 A DE2135590 A DE 2135590A DE 2135590 A DE2135590 A DE 2135590A DE 2135590 C3 DE2135590 C3 DE 2135590C3
- Authority
- DE
- Germany
- Prior art keywords
- register
- value
- registers
- order
- circuit arrangement
- 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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
-
- 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
Description
Die Erfindung bezieht sich auf eine Schaltungsanordnung gemäß dem Oberbegriff des Anspruchs 1.
Eine solche Schaltungsanordnung ist ihrer grundsätzlichen Art nach aus der Druckschrift Wilhelm
Simon, »Die numerische Steuerung von Werkzeugmaschinen«, 1963. Seiten 186 bis 190 und 195 bis
205, bekannt. Insbesondere sind in dieser Druckschrift zur zeit- und weggerechten Steuerung von We^kzeugmaschinenschlitten
Interpolatoren bekannt, mit denen man zwischen zwei Stützpunkten auf einer Kurve eine
lineare oder eine zirkuläre Interpolation vornehmen kann. Die Interpolation erfolgt in beiden Fällen derart,
daß man schrittweise von dem einen Stützpunkt in Richtung auf den anderen Stützpunkt voranschreitet.
Ergänzend zu diesem Stand der Technik wird auf
die Druckschrift »Control Engineering«. Januar 1961.
Seiten 71 bis 76 verwiesen, aus der es bekannt ist, mit digital arbeitenden Differenzen-Summatoren lineare
und zirkuläre Interpolationen durchzurühren.
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung zu schaffen, die auch Interpolationen
höherer Ordnung ermöglicht und mit möglichst wenig gespeicherten Anfangswerten auskommt.
Diese Aufgabe wird durch die im Anspruch 1 gekennzeichneten Merkmale gelöst.
Die Erfindung umfaßt somit die Entwicklung einer linearen Interpolation, bei der quadratische, kubische
und höhere Korrekturglieder berücksichtigt werden können, so daß eine äußerst genaue Interpolation
durchgeführt werden kann. Bei diesen Gliedern kann es sich um die Glieder einer polynomen Reihe handeln,
die im folgenden binäre polynome Reihe genannt wird und deren Eigenschaften nachstehend erläuten
werden.
Das Prinzip des nach der Erfindung angewandten Interpolationsverfahrens wird Interpolation durch
wiederholte Zweiteilung des Interpolationssegments genannt, d. h. des Segments, das die beiden Punktwerte
der Funktion verbindet, die den vorgegebenen Wert der unabhängigen Variablen (x) einklammern. Der
Punktwert in der Mitte dieses Segments läßt sich durch Interpolation ermitteln. Man erhält dann zwei neue
Halbsegmente, d. h. die durch Zweiteilung des ursprünglichen Segments gebildeten Hälften, von denen
die eine den vorgegebenen Wert der unabhängigen Variablen (x) enthält und das neue, interessierende
Segment ist. Dieses Segment kann in der gleichen Weise zweigeteilt werden, und zwar so oft wie
erwünscht, wobei man sich dem vorgegebenen Wert der unabhängigen Variablen (x) annähert. Die wiederholte
Zweiteilung des Interpolationssegments ist daher ein iterativer Vorgang, der sich sehr leicht schaltungstechnisch
verwirklichen läßt.
Weiterbildungen der Erfindung sind in Unteransprüchen gekennzeichnet.
Die Vorteile der Erfindung können an Hand einiger
Beispiele kurz erläutert werden. Die Funktion sin χ
kann in einem Bereich von 0 bis 90 bis auf eine Genauigkeit von 12 Bits unter Verwendung
von (neben den beiden Anfangswerten von sin 0° und sin 90°) nicht mehr als drei Koeffizienten als gespei- s
cherte Information für jeweils quadratische, kubische und biquadratische Glieder interpoliert werden. Darüber
hinaus läßt sich mit Hilfe der gleichen Hardware eine ganze Gruppe anderer Funktionen interpolieren,
wobei für jede von diesen lediglich zwei geeignete Anfangswerte und drei Koeffizienten gespeichert zu
werden brauchen.
Die iterative Bildung der linearen algebraischen Kombinationen stellt einen Algorithmus dar, dessen
genaue Form stark unterschiedlich sein kann. Spezielle Beispiele und einige mögliche Abwandlungen der
Algorithmen sind nachstehend erläutert. Es ist unmöglich, alle Abwandlungen anzugeben, die vorgenommen
werden können. Die Form des Algorithmus ist weitgehend von den als Anfangswerten gewählten Größen
abhängig, die in die Register eingegeben werden. Dies brauchen nicht die hier angegebenen Größen zu sein.
Als Beispiel für einen Algorithmus mit entsprechenden Abwandlungen sei die Bildung einer Folge oder
Reihe von Interpolationen angegeben, bei denen als Anfangswerte Abtastwerte der abhängigen Variablen
verwendet werden. Dabei wird jedoch immer noch das gleiche Schema der Registrierung in den Registern
verwendet, nämlich ein durch 1 teilendes Register, ein durch 2 teilendes Register, ein durch 4 teilendes
Register usw.
Im Prinzip handelt es sich bei den Algorithmen um Additions-Schiebe-Algorilhmen, die leicht durchführbar
sind, da die einzigen erforderlichen Operationen Additionen (unter Berücksichtigung des Vorzeichens)
und Stellenverschiebungen sind, bei denen sich eine Division durch 2,4 usw. ergibt. Diese Verschiebungen
lassen sich, wie nachstehend beschrieben wird, leicht bitseriell durchführen. Für einen Bitparallel-Betrieb
gibt es ebenfalls Verfahren zur Durchführung der Verschiebungen. Ein Verfahren besteht in der Verwendung
von Parallelzugriff-Registern, die auch Schieberegister darstellen. Nachdem eine Zahl über einen
Bitparallel-Mehrfachkanal in ein Register eingegeben
worden ist, werden Schiebeimpulse zugeführt, um durch' die erforderliche Potenz von 2 zu dividieren.
Ein anderes Verfahren besteht darin, die Zahl über einen Datenmehrfachkanal einzugeben, der derart
an das Register angeschlossen ist, daß die Eingabe mit bereits erfolgter Verschiebung durchgeführt wird.
Um beispielsweise durch 4 zu dividieren, ist der höchststellige Kanal des Mehrfachkanals mit der dritthöchsten
Bitstelle des Registers, das zweithöchste Bit des Kanals des Mehrfachkanals mit der vierthöchsten
Bitstelle des Registers usw. verbunden.
Soweit beschrieben, wird der Algorithmus im Vorwärtsbetrieb verwendet, d.h. χ vorgegeben und y
berechnet. Ein wesentlicher Vorteil der Erfindung besteht darin, daß die Algorithmen leicht im umgekehrten
Betrieb angewandt werden können, d. h. um je zu berechnen, wenn 3; vorgegeben ist. So kann beispielsweise
die gleiche Hardware zur Berechnung von sin χ im Vorwärtsbetrieb und von aresin y im
umgekehrten Betrieb verwendet werden. Dies ist möglich, weil im Vorwärtsbetrieb die aufeinanderfolgenden
Bestimmungen, ob das obere oder untere Halbsegment ausgewählt werden soll, von den aufeinanderfolgenden
Bits von χ bitweise gesteuert werden.
Im Umkehrbetrieb wird bei jeder Interpolation ge prüft, ob die Auswahl des oberen Halbsegments da
berechnete y größer oder nicht größer als das gegeben« y, das als Y geschrieben wird, macht. Wenn y kleine:
als Y ist, wird ein 1 -Bit in χ eingegeben und di< Auswahl des oberen Halbscgmenls beibehalten. Wenr
y größer ist, wird ein O-Bit in χ eingegeben und die
Auswahl des oberen Halbsegments pelöscht und da« untere Halbsegment gewählt. Auf diese Weise bewirk er
die aufeinanderfolgenden Interpolationen eine Annäherung des berechneten y an das vorgegebene Y
und die Bits von χ werden entsprechend vom höchst stelligen Bit an abwärts aufgebaut. Wenn jedoch in irgendeiner
Stufe y = Y, kann der Vorgang bei aller restlichen Bits von χ = 0 abgeschlossen werden.
Bevorzugte Ausführungsbeispiele der Erfindung
werden nachfolgend an Hand der Zeichnungen nähei erläutert.
Die Fig. 1 stellt eine lineare Interpolation dar
Die Fig. 2 und 3 stellen eine quadratische Inter polation dar.
Die Fig. 4 stellt ein Blockschaltbild eines Aus führungsbeispiels nach der Erfindung zur Ausführung)
des quadratischen Interpolationsalgorithmus dar.
Die F i g. 5 und 6 stellen die Anwendung binäre! Reihen zur Annäherung der Funktion sine dar.
Die Fig. 7 stellt ein B'ockschaltbild eines Ausführungsbeispiels
nach der Erfindung zur Ausführung des kubischen Interpolationsalgorithmus dar.
Die Fig. 7A stellt eine Zeitsteuerschaltung fiii
F i g. 7 dar.
Die Fig. 8A bis 8G stellen grafisch den Verlaul
der binären Polynome der zweiten bis achten Ordnung dar.
Die F i g. 9 bis 13 stellen Flußdiagramme der quadratischen
bis oktalen Algorithmen dar.
Die Fig. HA zeigt eine Abwandlung des quartischen Algorithmus nach F i g. 11.
Die Fig. 14 ist ein Blockschaltbild der wesentlichen
Einzelheiten eines weiteren Ausführungsbeispiels nach der Erfindung zur Durchführung des
kubischen Algorithmus unter Verwendung einer bitparallelen, wortseriellen Arithmetik.
Die Fig. 15 ist ein Blockschaltbild der wesentlichen
Einzelheiten eines weiteren Ausführungsbeispiels nach der Erfindung zur Durchführung des kubischen
Algorithmus unter Verwendung einer bitseriellen, wortseriellen Arithmetik.
Die Fig. 16 ist ein Blockschaltbild, das die Anwendung
eines Algorithmus im Umkehrbetrieb darstellt.
Die Fig. 17 stellt in Form eines Diagramms die Bestimmung der Koeffizienten für ein binäres Polynom
dar.
Interpolation durch wiederholte Zweiteilung
Die Fig. 1 stellt als eine lineare Funktion von
χ in einem Segment von χ = 0 bis χ = 1 dar y(0) = 2a und y(i) = 2b. Bei der ersten Interpolation
erhält man auf einfache Weise
= (Za + 2b)ß = a + b.
Für die zweite Interpolation stehen zwei Möglichkeiten zur Verfügung. Es ist möglich, entweder
t)
zu berechnen, und die Wahl wird in Abhängigkeit davon getroffen, ob der Wert von χ im Bereich
von Ί bis 1 oder von 0 bis -. liegt. Bei F i g. 1 wurde
angenommen, daß der gegebene Wert von .v gleich :
ist. Die Reihenfolge der Interpolationen, die durch die vertikalen Pfeile symbolisiert werden, ist also
erstens: Interpolation bis y (y) — a + b,
zweitens: Interpolation bis y ( j = a + ^ >'(y/· drittens: Interpolation bis y (γλ =γ)'(τ)
zweitens: Interpolation bis y ( j = a + ^ >'(y/· drittens: Interpolation bis y (γλ =γ)'(τ)
Dieses Verfahren kann auf so viele Interpolationen angewandt werden, wie es zur Annäherung von χ mit
der gewünschten Genauigkeit erforderlich ist. Man hat also nach jeder Interpolation die Wahl entweder
einen oberhalb oder einen unterhalb von dem zuletzt berechneten Wert von y liegenden Wert von y zu
berechnen, d.h. entweder aufwärts (UP) oder abwärts (DOWN) zu gehen, was entsprechend dem
englischen jeweils mit U und D symbolisiert wird.
Das heißt y Λ^Λ ist U von y
aus und
y Λ^Λ ist
D von y (γλ aus.
Interpolation auf einer Parabel
Fig. 2 zeigt eine Parabel der Form y = 4.v(l —x), wobei y(0) = y(\) = 0 und y (y) = L
Fig. 2 zeigt eine Parabel der Form y = 4.v(l —x), wobei y(0) = y(\) = 0 und y (y) = L
Die Interpolation bis y (yj kann als eine lineare
40
in Fig. 3 ausführlicher dargestellt, in der eine Parabel
103 einer geraden Linie 104 überlagert ist. Zur Vereinfachung
sind nicht alle Alternativen angegeben, doch erfolgt bei jedem Schritt eine willkürliche Wahl
von (J oder von D:
Kl) + K/4·
t) +Ht)*
Die obigen Schlußfolgerungen können zu folgendem Algorithmus zusammengefaßt werden:
wobei α,, £>, und K1 zu Anfang vorgegebene (eingegebene)
Werte sind.
K =
a„ = £/„_,
Kn = (Kn
Kn = (Kn
Interpolation plus Addition eines Korrekturgliedes K = 1 angesehen werden, die »Notwendiger Rest«
genannt wird und genauer als KM=l = 1 definiert
wird, wobei η die Nummer der Interpolation ist. Für die zweite Interpolation gehen wir entweder nach
χ = -7- oder χ = -j-, die beide y = -r ergeben. Wie
sich an Hand der Linien 101 und 102 in F i g. 2 ergibt, erhält man durch lineare Interpolation Werte von
y, so daß sich als notwendiger Rest ergibt: Kn=2 = χ.
Es läßt sich leicht zeigen, daß Kn=3 =—, K„=4 =-^-55
usw. ist. So ergibt sich z. B. für y (-g-J gleich -r^-.
Eine lineare Mittelpunktsinterpolation zwischen y i-^-J = χ und y (y-j = 1 ergibt einen Wert von
1 und C5A6 -7/8) = V16-
Das Schema ergibt Kn = -j-K„_j, und dadurch ist
es möglich, genau auf einer Parabel zu interpolieren, wenn die zwei Anfangswerte und der Anfangswert
von K gegeben sind, wobei dieser Wert vor jeder neuen Interpolation durch 4 dividiert wird. Dies ist
Verwirklichung des quadratischen Algorithmus
Bevor mit der allgemeinen Entwicklung der Algorithmen fortgefahren wird, erscheint es zweckmäßig,
ein einfaches Ausführungsbeispiel der Erfindung zu betrachten, das in F i g. 4 dargestellt ist. Bei diesem
Beispiel ist angenommen, daß die Schieberegister zum Speichern der Werte verwendet werden, die in
dem Algorithmus erscheinen, und daß Divisionen durch Potenzen von 2 durch das an sich bekannte
Verschieben des Inhalts des Registers in Richtung auf abnehmende Stellenwertigkeit durchgeführt werden.
Es sei darauf hingewiesen, daß die schematischen Schaltbilder nicht die Taktimpulsanordnungen zum
Verschieben des Inhalts der Schieberegister und zum Markieren der verschiedenen Operationsphasen darstellen.
Sie zeigen auch nicht die Tore, die zum Steuern des Informationsflusses verwendet werden. Die Darstellung
dieser Einzelheiten führt zu einer Überladung der Diagramme, zumal diese Einzelheiten dem Fachmann
an sich geläufig sind. Die Zeit- oder Taktsteuerung wird jedoch für F i g. 7 später kurz beschrieben.
Die Schaltung nach F i g. 4 enthält Schieberegister, die mit einem Code gekennzeichnet sind, der mit
SR beginnt, und zwei Volladdierer FAl und FA3.
Bei den Schieberegistern handelt es sich um folgende:
SRA enthält an,
SRB enthält b„
SRF enthält y„
SRK enthält Kn,
SRx enthält x.
Zu Beginn werden O1, bt und· K1 aus einem Festspeicher
9 in entsprechende Register übertragen und der gegebene Wert von χ ins Register SRx eingegeben.
FA3 addiert an und bn zur Bildung von am + b„. FA1
addiert Kn zu dem von FA3 ausgegebenen Ergebnis
zur Bildung von ^n, das ins Register SRF geschoben
wird. y„ wird auch zurückgeführt, und zwar mit einer
Uberverschiebung um ein Bit, um y„ durch 2 zu dividieren
und an oder b„ in Abhängigkeit davon zu ersetzen,
ob der eingegebene Wert von χ ein Fortschreiten nach U oder nach D verlangt.
Zu diesem Zweck wird das höchststellige Bit im Register SRx durch eine Schaltung 10 geprüft, um
festzustellen, ob es eine 0 oder eine 1 ist. Wenn dieses Bit eine 0 ist, werden die beiden Tore 11« durch das
Ausgangssignal eines Inverters 10α geöffnet, so daß
b„ durch yy, ersetzt wird, während a„ einfach umläuft.
Wenn das Bit jedoch eine 1 ist, werden zwei Tore Hb geöffnet, so daß a„ durch -^yn ersetzt wird, während
b„ umläuft.
Nach jedem Umlauf über die beiden Addierer wird der Inhalt des Registers SRx um eine Stelle nach links
verschoben, um das höchststellige Bit zu löschen und das nächste Bit nach oben in diese Stelle zu verschieben
und den nächsten Zyklus vorzubereiten. Sobald alle Ziffern von χ eine 0 sind, beendet eine
Schaltung 13 die Operationen und gestattet die Ausgabe von y aus dem Register SRF.
Die Funktionseinheiten zur Durchführung dieses Algorithmus sind bei diesem Ausführungsbeispiel
einfache Schieberegister und Addierer. Dies ist möglich, weil bei diesem Algorithmus nur Additionen und
Divisionen durch Potenzen von 2, d.h. Verschiebungen, erforderlich sind, so daß dieser Algorithmus
Additions-Schiebe-Algorithmus genannt wird. Es sei jedoch darauf hingewiesen, daß die Erfindung nicht
auf irgendeine spezielle Art der Durchführung der arithmetischen Operationen beschränkt ist.
Einführung von Gliedern höherer Ordnung
Vor der Betrachtung der Reihen aus binären Polynomen, ist es zweckmäßig, die Aufgabe zu
betrachten, die Funktion y = sin Θ im Bereich von 0° bis 90° zu interpolieren, d. h. χ = 1 entspricht
(■) = 90°, χ = y entspricht Θ = 45° usw. In Fig. 5
ist die Funktion sin θ durch die Kurve 110 dargestellt.
Der lineare Interpolationsalgorithmus mit a = 0, b = 0,5 ergibt die Linie 111, die — von der Kurve 110
subtrahiert — die den notwendigen Rest darstellende Kurve 112 ergibt, die angenähert, jedoch nicht genau
gleich einer Parabel ist, die als strichpunktierte Kurve 113 dargestellt ist. Sin 45° = 0,70711 und das
quadratische Glied des Algorithmus ergeben die Parabel 113, wenn K1 gleich 0,20711 gesetzt wird.
Eine sehr viel kleinere den erforderlichen Rest darstellende Kurve bleibt nicht übrig und ist um der
Klarheit willen in einem größeren ^'-Maßstab als Kurve 114 in F i g. 6 dargestellt.
Man erkennt sofort die kubische Grundform dieser Kurve an Hand eines Vergleichs mit einer echten
kubischen Kurve 115 der Form C^x(I -x)(xy)
mit Nulldurchgängen bei χ = 0, y und 1, wobei der
Koeffizient C so gewählt ist, daß sich die beste Annäherung an die Kurve 114 ergibt. Dies wird dadurch
erreicht, daß man die notwendigen Reste bei
χ = -j- und -4- gleichgroß und mit entgegengesetztem
Vorzeichen wählt. Die neue Restkurve ist die Kurve 116 und hat weitgehend quartische (biquadratische)
Form. Diese läßt sich wieder durch einen Ausdruck in der Form
annähern, wobei Q so gewählt wird, daß exakte Gleichheit bei χ = -ξ und ^ vorliegt. Bei diesem Beispiel
ist Q in Wirklichkeit ein negativer Koeffizient. Man sieht, daß der notwendige Rest, insbesondere
der schlechteste mögliche notwendige Rest im gesamten Bereich von x, sehr schnell nach Null konvergiert
(beachte die unterschiedlichen y-Maßstähe in den Fig. 5 und 6). Man sieht also, daß zumindest bei
regulären Funktionen die binären Reihen, deren Glieder bis zum quartischen Glied betrachtet wurden,
ein wirksames Mittel zur Annäherung der Funktionen darstellen. Es wurde ferner bereits dargestellt, daß die
Glieder bis zum quartischen Glied mit Hilfe eines einfachen Algorithmus genau interpoliert werden können.
Dies gilt auch für die Glieder höherer Ordnung, obwohl dann einige zusätzliche, das Verfahren komplizierende
Faktoren auftreten. Der kubische Algorithmus erfordert daher lediglich die Addition eines
Gliedes von der Form Cn = (C„_l)ß, das zuerst eingegeben
wird, wenn η = 2 ist, doch wird das kubische
Glied wegen der bipolaren Form der kubischen Kurve bei einer LZ-Interpolation (Interpolation mit Aufwärtsschritt
U) addiert und bei einer D-Interpolation (Interpolation mit Abwärtsschritt D) subtrahiert. Dafür
wird im folgenden das Symbol
-D
+ U
η
η
verwendet.
Die Ergänzung der F i g. 4 zur Durchführung des kubischenAlgorithmusistin Fig. 7 dargestellt. Dass
Schieberegister SRC speichert Cn, und ein weiterer
Volladdierer FA 2 kombiniert Cn mit Kn zur Bildung
von TKn, das zu a„ + b„ addiert wird. Die Ausgangsgröße
der Schaltung 10 (z. B. eines Flipflop) hat jetzt die zusätzliche Aufgabe, den Volladdierer FAl zur
Addition zu veranlassen, wenn das x-Bit gleich 1 ist, und zur Subtraktion zu veranlassen, wenn das x-Bit
gleich 0 ist.
Der quartische Algorithmus führt ein quartisches Glied Qn = (Q„-i)/16, wie erwartet werden könnte,
ein, doch hat sich herausgestellt, daß eine weitere Komplikation insofern entsteht, als Cn durch
TCn = Cn +
-D
+ U
n-l
8Q„
ersetzt werden muß, wobei die Vorzeichenwahl jetzt davon abhängt, ob der vorhergehende Schritt (n — 1)
aufwärts (U) oder abwärts [D) erfolgte. Dies wird nachstehend ausführlicher erläutert.
Als Beispiel für die Steueraufgaben sei angenommen, daß die Rechnung bis zu einer 16-Bit-Genauigkeit
fortgesetzt wird und das SRA, SRB, SRK und SRC
zwanzig Bit lang sind, um Abrundungsfehler zu berücksichtigen.
Die Register SRx und SRF sind sechzehn Bit lang. Der Betrieb wird durch einen Haupttaktoszillator
160 (Fig. 7a) gesteuert, der mit einem 23stufigen Ringzähler 161 über ein Tor 162 verbunden
ist, das geöffnet wird, wenn ein Start-Flipflop 163 gesetzt wird. Ein ODER-Tor 164, das an den ersten
zwanzig Stufen des Ringzählers angeschlossen ist, bildet Gruppen aus zwanzig Schiebeimpulsen für
jede Gruppe von dreiundzwanzig Schiebeimpuisen, die vom Tor 162 durchgelassen werden. Das Ausgangssignal
des ODER-Tores 164 (20 Impulse) wird dem Schiebeeingang des Registers SRF und auch über
ODER-Tore 165 und 166 den Schieberegistern SRA und SRB zugeführt. Dem einen dieser beiden Register
wird auch der einundzwanzigste Impuls über ein ODER-Tor 167 oder 168 zugeführt. Wenn daher
das x-Bil = 1 und SRB für einen Umlauf freigegeben ist, muß y„ ins SRA geschoben werden, und zwar
mit einer zusätzlichen Verschiebung zur Durchführung der Division durch 2. Zu diesem Zweck schaltet das
Signal auf der Leitung 169 von der Schaltung 10 (F i g. 7) das Tor 167 durch, so daß der einundzwanzigste
Schiebeimpuls zum ODER-Glied 165 und somit ins FRA durchgelassen wird. Wenn dagegen das
x-Bit 0 ist, schaltet das Signal auf der Leitung 170 vom Inverter 10α das UND-Tor 168 durch.
Wenn die 21. Verschiebung des SRA (oder SRB) stattfindet, muß ein Stellenwertigkeitsbit daran gehindert
werden, in die höchste Stelle des SRA (oder SRB) zu gelangen. Zu diesem Zweck wird ein UND-Tor
171 in dem >-„-tJmlaufkreis über einen Inverter
172 während des 21. Schiebeimpulses gesperrt.
Da SRK eine Division durch 4 durchzufuhren hat.
erhält es sowohl den 21. als auch den 22. Schiebeimpuls über ODER-Tore 173 und 174 zusätzlich zu
den zwanzig Ausgangsimpulsen des Tores 164. Während des 21. und 22. Impulses wird ein UND-Tor 175
im 7X„-Umlaufkreis über einen Inverter 176 gesperrt.
Das SRC muß eine Division durch 8 durchführen und erhält daher den 21., 22. und 23. Schiebeimpuls über
ODER-Tore 177 und 178 sowie die zwanzig Ausgangsimpulse des Tores 164. Während des 21., 21 und
23. Impulses wird ein UND-Tor 179 im C„-Umiaufkreis über einen Inverter 180 gesperrt.
Der 23. Impuls jeder Gruppe schiebt c1'- · 'nhalt des
Registers SRx um 1 Bit in der umgekehrten Richtung weiter, um das Bit der nächst niedrigeren Stelle von
χ in die Steuerposition zu bringen. Wenn eine derartige Verschiebung anzeigt, daß alle x-Ziffern, die im
Register SRx verbleiben, 0 sind, gibt die Schaltung 13
das BEENDE-Signal ab. Dies setzt das Flipflop 163 zurück, um das Tor 162 zu sperren und die Operationen
zu beenden, wobei der eewünschte Wert vom ν im SRF zurückbleibt. ~
Da SRx sechzehn Bits aufweist, dauert eine ganze
Folge von Iterationen bzw. Wiederholungen 16 - 23 = 368 Taktimpulse. BerücksiQhtigt man weitere
100 Taktperioden zum Einspeichern von x, a, b, K und C, dann ergibt sich eine Gesamtrechenzeit von
46,8 Mikrosekunden bei Verwendung eines 10-MHz-Taktgebers.
Als Vergleich sei daraufhingewiesen, daß das bitparallele, wortserielle System nach Fig. 14,
das nachstehend beschrieben ist, etwa 88 Taktperioden benötigt, d. h. 8,8 Mikrosekunden bei gleicher Genauigkeit
und Taktfrequenz. Das Serien/Serien-Ausführungsbeispiel nach Fig. 15 benötigt etwa 1560
Taktperioden oder 156 Mikrosekunden.
Die binären Polynome
Im folgenden werden die binären Polynome bis zum
oktischen Glied angegeben und ihre Eigenschaften erläutert.
Wenn eine polynome Annäherung für y = f(x) in
einem bestimmten Bereich von χ verwendet wird, ist es üblich, die Aufgabe zuerst durch Normalisierung
in einen x-Bereich von entweder — I bis + 1 oder 0 bis 1 zu transformieren.
Die Klasse der binären Polynome wird auf die beiden obigen x-Bereiche begrenzt, wobei für das
Polynom n-ter Ordnung die folgende Schreibweise benutzt wird:
Bn für den x-Bereich von — 1 bis +1.
B* für den x-Bereich von 0 bis 1.
B* für den x-Bereich von 0 bis 1.
Unabhängig vom x-Bereich bleiben die grafischen
Darstellungen der binären Polynome unverändert, obwohl jede Änderung des x-Maßstabes eine neue
Gruppe polynomer Ausdrücke zur Folge hat. Im folgenden wird der x-Bereich von 0 bis 1 weiterhin als
Beispiel beschrieben.
Die oben beschriebenen Interpohiüonsvorgänge
führen erstens zum halben Wert von x. zweitens zu den ungeradzahligen Viertelwerten von x, drittens
zu den ungeradzahligen Achtelwerten von χ usw. durch wiederholte Zweiteilung, die eine binäre Folge
von x-Punkten ergibt. Die Eigenschaft der binären Polynome besteht darin, daß bei Auswahl der richtigen
Werte für die Koeffizienten X1. C2 usw. die Polynome
eine exakte Annäherung an so viele Punktederbinären
Folge ergeben, wie es bei der verwendeten polynomen Ordnungszahl möglich ist.
Im folgenden sei die Näherung betrachtet:
ν = goß? + g,ßf + g2ß? + g3Bf + ....
wobei die Faktoren g„ die Koeffizienten und ß* die
binären Polynome (im x-Bereich von 0 bis 1) sind. Die für die binäre Folge genau angenäherter Werte
erforderlichen Polynome sind:
Punkt genauer
Annäherung
Annäherung
Erforderliche polynome
Glieder
Glieder
X
X
X
X
O und
1
1
1 , 3
T und T
4 4
4 4
3 .5
τ
und
τ
•Tr und -s-
goß*undglß*
g3ß* + g4ß*
g5B* + g6ß*
g7B7* + g8ß8*
g5B* + g6ß*
g7B7* + g8ß8*
Eine Grundregel ist die, daß, wenn jeder Punkt genauer Annäherung gebildet ist, alle folgenden Polynome
diese Annäherung beibehalten. Zum Beispiel liegt nach der quadratischen Approximation eine
genaue Annäherung für χ = 0. -γ und 1 vor. Das
kubische Polynom Sf und alle folgenden Polynome müssen daher die Form x(l-x)ix—yj aufweisen.
Obiges Beispiel fortsetzend, fordert die RegeL daß das quartische Polyr.om Bf ebenfalls die Form
13 14
x(l — χ) ίχ— -^Λ aufweisen muß, da die ermittelten gleichzeitig bei χ = y, -^, -^ und -^ zu erhalten
Punkte genauer Annäherung immer noch ν = 0, ^ Entsprechendes gilt fur die B-Polynome.
Jedes binäre Polynom enthält die von .x abhängiger
und 1 sind. BJ muß jedoch von vierter Ordnung sein, 5 und mit einem Normalisierungsfaktor multiplizierter
und die erforderliche Form ergibt sich in der Tat Faktoren, die in der eben beschriebenen Weise
j ι. «ζ- j i_ ι ji-i / Mn* .U--1 bestimmt werden. Auf den ersten Blick erscheiner
durch Wiederholung des Faktors (x- Tj. BJ enthalt dje Norrna,isjerungsfaktoren redundant, da sie in die
, , ..... Koeffizienten hineingezogen werden könnten. Sie
g3 und g4 werden so gewählt. (o haben jedoch einen B erhe B blichen praktischen Wert
daß sich eine genaue Annäherung bei da ihre Verwendung es ermöglicht, an den Koeffi-
I , 3 -Ui-V- · .· u j zienten Abrundungsfehler zu erkennen. Nach der
x = T und x= j ergibt. Die qu.ntischen und Abrundung bzw. dem Abbrechen binärer polynomer
sextischen Glieder ß* und ß* müssen daher Reihen bei irgendeiner Ordnungszahl, kann an dem
1\ , / 3 \ ,, χι π . Ii u · 's oder den nächsten Koeffizienten unmittelbar der
-Tj und (x-Tj enthalten, um Nullstellen be. ■ resukierende Abrundungsfehler festgestellt werden.
1 , 3 ... , Die Normalisierungsfaktoren wurden auf der Basis
χ = τ und χ = j zu erhalten, wahrend g5 und g6 ^,^ daß d„r Spi4nwert jedes Polynoms gieich ,
so gewählt werden, daß sich eine genaue Annäherung oder ungefähr gleich 1 ist, wie dies für Additions-
,. 3 , 5 -u. γλ· .u j 20 Schiebe-AIgorilhmen gilt. DieAddilions-Schiehe- For-
be. χ = j und χ = τ ergibt. D.e septischen und derung fur a„e ^^^ WertCi die sich durch
oktischen Glieder ß* und Bf müssen daher Interpolation bei binären x-Werten ergeben, haben die
(x - y) und (x - |-) enthalten, und g7 und gg werden °rm ganze Zah,
so gewählt, daß sich eine genaue Annäherung bei 25 binäre Zahl '
x = j und χ = { ergibt. Es sei darauf hingewiesen, Zum Beispje, fe, ein Wert von 7/8 zu!ässig dagegen ein
daß diese Definitionen oder Grenzen nicht die einzigen Wert von 8/7 nicht.
sind. Zum Beispiel könnten g5 und gb eine genaue Es ist wichtig zu wissen, daß die Normalisierungs-
! η 30 faktoren so gewählt werden können, daß die ganze
Annäherung bei χ = -^ und χ = -g ergeben, so daß Zahl jedes geradzahligen Polynoms gleich I ist. Die
5 ganzen Zahlen aller ungeradzahligen Polynome sind
ßf und ßj dann (x — yJ und (x — -g-j enthielten. Als 0. so daß sich die ganze Zahl der angenäherten
^ / V / ( Funktion durch die Summe der Koeffizienten der
weiteres Beispiel könnten die Nullstellen χ = ^ und 35 geradzahligen Glieder ergibt.
- In den folgenden Tabellen sind die binären PoIy-
x = 4- in ß* und ß| wiederholt werden. In diesem nome bis zur achten Ordnung angegeben, wobei die
Tabelle 1 die ß*-Polynome unci die Tabelle II die
Falle müssen vier Gleichungen für g5, g6, g7 und g8 ß-Polynome angibt,
gleichzeitig gelöst werden, um eine genaue Annäherung 40
gleichzeitig gelöst werden, um eine genaue Annäherung 40
x-Bereich von 0 bis 1, binäre Polynome
Polynom-Ordnung Polynom B* Bevorzugte
Koeffizienten
Schreibweise
Schreibweise
Βξ =
Linear
Linear
B1* = 2x- 1 g, =(fc-fl)
Quadratisch B2* = 4 χ (! - χ) g2 = K
64
64 / 1 \
Kubisch B3* = -^-X(I- x)(x - yj g3 = C
Quartisch B* = ^x(I- x) (x - -ί) g4 = Q
Quintisch ß? = ^- χ(1 - x)(x - \) (x - }) (x - ^) g5 = /
215 / I \2/ 1 \ / 3 N
Sextisch B* = -JT χ: (1 - x)(χ - ^) (χ - - ) (χ - -) g„ = S
tj \ ζ / ν t/V "* /
Fortsetzung
Polynom-Ordnung
Septisch
Oktisch
Polynom Bt
Bevorzugte
Koeffizienten
Schreibweise
x-Bereich von —1 bis +1, binäre Polynome
Polynom-Ordnung
Polynom ß„
Linear
Quadratisch
Kubisch
Kubisch
Quartisch
Quintisch
Sextisch
Septisch
Oktisch
Bevorzugte
Koeffizienten
Schreibweise
g0 = (b + a)
gi = Φ - a)
gi = Φ - a)
S3 = yx(l+x)(l-x)
B4 =
B5 = y5 X (1 +X)(I- x)(x + ^) (x - y)
ße = -J.v2(l+x)(l-v)(.v + |)(x-y)
B7 = ^x(I+X)(I
2" 2
ß8 = Wsx (i+x)(i
Die ß„-Polynome sind in den F ig. 8A bis 8G von während die zur Bestimmung von yn führenden
der zweiten bis zur achten Ordnung dargestellt. Additionen angegeben sind. Die Anfangsbedingungen
Die dargestellten Formen gelten auch für die ß*-Poly- 50 sind ebenfalls eingetragen. Umlaufkanäle sind nicht
nome, wenn man den Bereich von χ = - 1 bis χ = +1 dargestellt. Statt dessen enthält jeder Block eine
als Bereich von 0 bis 1 ansieht, d. h. -1 durch 0, Gleichung, die die Art ihres Umlaufkanals angibt.
-0,5 durch 0,25, 0 durch 0,5 usw. ersetzt. F i g 9 zeigt den quadratischen Algorithmus in
Das bereits an Hand der F i g. 5 und 6 erläuterte dieser Schreibweise, und die Äquivalenz von F i g. 9
Beispiel von sin θ zeigt, wie die binären Polynome 55 mit Fig. 4 wird sofort ersichtlich. Fig. IO zeigt den
zur Annäherung an eine vorgegebene Funktion ver- kubischen Algorithmus und entspricht der Fig. 7.
Vom kubischen Algorithmus an hat es sich bisweilen als zweckmäßig herausgestellt, die ungeradzahligen
und geradzahligen Glieder so zu behandeln, als würden sie in getrennten parallelen Kanälen gebildet, die jeweils
links und rechts vom Flußdiagramm dargestellt
gg
wendet werden können. Weitere Hinweise für die Bestimmung der Koeffizienten K, C, Q usw. werden
nachstehend gegeben.
Binäre polynome Algorithmen
Die linearen, quadratischen, kubischen und quartischen Algorithmen wurden bereits in unterschiedlicher
Vollständigkeit erläutert. Im folgenden werden die Algorithmen bis zum oktischen Algorithmus in
einer systematischen Flußdiagrammdarstellung wiedergegeben, bei der die Blöcke die Größen darstellen,
wie a„, hn,K„, die in dem Algorithmus vorkommen.
g g
sind. Ferner wird in dieser Schreibweise der notwendige Rest eines Gliedes Kn, Cn usw. in der Form RKn,
RCn usw. und TKn = Kn + RKn, TCn = Cn + RCn
usw. angegeben.
Um das Verständnis der Flußdiagramme zu erleichtern,
wird der Zusammenhang zwischen den Fig. 10 und 7 angegeben.
Die Gleichung im Block 120 (Fig. 10) wird durch
den um das Register SRC in F i g. 7 herum verlaufenden Kreis »Umlauf und Division durch 8« gebildet.
Das Symbol
-D
+ U
(F i g. 10) wird durch die /4DD/Sl/ß-Steuerung des
Addierers FA2 in Fi g. 7 verwirklicht.
Die Gleichung im Block 121 (Fig. 10) wird durch
den Kreis »Umlauf und Division durch 4«, der um das Register SRK und den Addierer FA 2 in F i g. 7
herumfuhr;, gebildet.
Die Gleichungen in den Blöcken 122 und 123 (Fig. IC) werden durch die Tore 11a, 110 gebildet,
die durch die Schaltung 10 nach F i g. 7 gesteuert werden.
Die /IDD-Operation 124 (Fig. 10) wird durch den
Addierer FAl in F i g. 7 bewirkt.
Die ^DD-Operationen 125 und 126 (Fig. 10)
werden durch die Addierer FA 1 und FA3 in Fig. 7
bewirkt (mit dem trivialen Unterschied, daß die Ordnung der Additionen in zwei Figuren verschieden
ist).
Die Fig. 11, 12 und 13 stellen jeweils den quartischen, sextischen und oktischen Algorithmus dar.
Die gerätetechnische Verwirklichung dieser Algorithmen ergibt sich im wesentlichen durch eine
Analogie mit den F i g. 4 und 7. Da jetzt jedoch das Symbol
-D
+ U
n-1
n-1
auftritt, muß offensichtlich das höchststellige Bit
zwischengespeichert werden, das sich als höchststelliges
Bit im Register SRx in der Stufe n— 1 ergab, um es in der Stufe η für die entsprechende Addition/Subtraktion-Steuerung
verwenden zu können. Ferner muß neben einem Register mit einem 1/16-Umlaufkreis
fur Qn auch für eine Eingabe des Gliedes 8ö* = (ön-i)/2z· B. über ein Zwischenspeicherregister
gesorgt werden. Während also Qn _, mit einer 4-Bitüberverschiebung
für die Division durch 16 ins ß„-Register zurückgeschoben wird, um Qn zu bilden,
wird ßn-i gleichzeitig nur mit einer 1-Bit-Überverschiebung
zur Durchführung einer Division durch 2 und mithin zur Bildung von SQn in das Zwischenspeicherregister
geschoben.
Andere Algorithmen
Vom quartischen Algorithmus an können zahlreiche andere Algorithmen verwendet werden. Die in den
Fig. 11 bis 13 dargestellten Formen werden als die wirksamsten angesehen. Geringe Wirkungsgradverluste
ergeben sich bei Anwendung einer Form, bei der die ungeradzahligen und geradzahligen Glieder nacheinander
statt in getrennten Kanälen behandelt werden. Ein Beispiel dieser Alternative ist in Fig. 1IA
dargestellt, die den abgewandelten Teil von Fig. 11
bis zur Bildung von RKn zeigt. Der Rest des Algorithmus
ist der gleiche.
Bei den soweit angegebenen Algorithmen ergeben sich keine logischen Änderungen, d. h. sobald ein
logisches Glied, wie
-D
+ U
TCn
von η = 2 an wirksam wird, gilt dieser ohne Änderung
ίο für alle weiteren Stufen. Ferner wird jeder Anfangswert, wie K, C usw., nur einmal und für alle Fälle
eingegeben. Nach der Erfindung wurden jedoch andere Algorithmen entwickelt, bei denen logische
Änderungen auftreten und/oder Koeffizienten in einer späteren Stufe eingegeben oder erneut eingegeben
werden. Diese Alternativen sind weniger wirksam als die angegebenen Formen, doch liegen sie ebenfalls im
Rahmen der Erfindung.
Quintischer bis oktischer Algorithmus
Fig. 12 zeigt das bevorzugte Ausfuhrungsbeispiel
für den sextischen Algorithmus. Der quintische Algorithmus ist der gleiche wie der sextische Algorithmus,
jedoch durch Weglassen des sextischen Gliedes abgerundet. Tatsächlich stellt Fig. 12 alle Algorithmen
bis zum sextischen dar, da der quadratische, kubische und quartische Algorithmus nach den F i g. 9, 10 und
11 leicht aus der Darstellung nach Fig. 12 durch
einfaches Abrunden bei dem quadratischen, kubischen oder quintischen Glied entnommen werden können.
Fig. 13 stellt die bevorzugte Form für den oktischen
Algorithmus dar, aus dem sich der septische Algorithmus durch Abrundung gewünschtenfalls ergibt. Dieser
Algorithmus läßt sich jedoch nicht durch Abrundung in den sextischen Algorithmus nach Fig. 12 ändern.
Der bei der sechsten Ordnung abgebrochene Algorithmus nach Fig. 13 würde einen völlig brauchbaren sextischen
Algorithmus ergeben, doch ist der sextische Algorithmus nach F i g.12 etwas wirksamer.
Die ersten beiden Glieder des Algorithmus sind in Fig. 13 etwas anders als in den vorherigen Figuren
dargestellt. Bei den Fig. 9 bis 12 sind a„ und b„
jeweils die Punktwerte von y bei dem unteren und oberen x-Wert des Interpolationssegmentes. Wenn
die andere Vereinbarung getroffen wird, daß a„ stets den Punktwert darstellt, der nicht durch den neu
errechneten Punktwert ersetzt wird, dagegen b„ stets
den neu errechneten Punktwert darstellt, d. h. 0>„_,)/2,
ergibt sich die Reihenfolge der Register, wie es in Fig. 13 dargestellt ist.
Der Vorteil der Verwirklichung des Algorithmus in dieser Weise besteht darin, daß sich eine vollständig
geordnete Reihenfolge von Registern von der nullten bis zur achten Ordnung ergibt, wobei der Inhalt jedes
Registers durch 2m dividiert und m die zugehörige
Ordnungszahl ist. Somit erhält man ein 1/1-Register (nullter Ordnung), ein 1/2-Register (erster Ordnung)
usw. bis zum 1/256-Register (achter Ordnung).
Gerätetechnische Verwirklichung der Algorithmen
Die F i g. 4 und 7 stellen Beispiele für die gerätetechnische Verwirklichung in bitserieller, wortparalleler
Form dar. Obwohl man von der binären Basis der Algorithmen nicht abgehen kann, so können doch
f>5 zumindest theoretisch die tatsächlichen Rechenoperationen
in einem nichtbinären Zahlensystem ausgeführt werden. In der Praxis dürfte nur das binäre
Zahlensystem oder eine Binär-Dezimal-Codierun:!
von Interesse sein, und dafür gibt es dann grundsätzlich vier Möglichkeiten:
1. Bitparalleler, wort paralleler Betrieb. Dadurch ergibt sich zwar eine nahezu sofortige Interpolation,
doch ist dafür eine weitere technische " Entwicklung erforderlich, bevor diese praktisch
angewandt werden kann, so daß sie hier nicht ausführlicher behandelt wird.
2. BitparaUeJer, wortserieller Betrieb tniit hoher
Geschwindigkeit.
3. Bitserieller, wortparalleler Betrieb mit mittlerer Geschwindigkeit.
4. Bitserieller, wortserieller Betrieb mit niedriger
Geschwindigkeit.
"5
Diese vier Möglichkeiten können gewünschtenfalls gemischt werden.
Als Beispiel und zum Vergleichen mit der bil seriellen,
wortparallelen Lösung nach F i g. 7 zeigen die: Fig. 14
und 15 jeweils die Grundmerkmale von Schaltungen zur Ausführung des kubischen Algorithmus in bitparalleler,
wortserieller bzw. bitserieller, woi !serieller Konfiguration.
Nach Fig. 14 erfolgt der Datenfluß über drei
parallele Hauptkanäle (Mehrfachkanäle) Hl, Hl und
H3. Die Hauptkanäk Hl und Hl bilden die beiden
Eingänge eines Paralleladdierers 130, der vier Umgesteuerte
Ausgänge JX bis J 4 aufweist. Jl und J2
sind jeweils auf Hl und Hl zurückgekoppelt. J 3 gibt
ein Halbsummenausgangssignal an H3 ab, wahrem;
J 4 lediglich zum Auslesen von >■„ am Ende der Operation
dient. H3 sorgt für eine Paralleleingabe in die o„-, b„-, Kn- und C„-Register 131 bis 134 und wird
auch zur Eingabe der Anfangswerte aus einem Festspeicher 135 oder einer anderen Quelle dieser
Werte verwendet. b„ und K„ werden auf den Kanal Hl
gegeben, während a„ und c„ auf den Kanal H 2 gegeben
werden.
Die verschiedenen in der Zeichnung dargestellten Tore werden wählbar durch eine nichtdargestellte
Reihenfolgesteuerschaltung betätigt, die die Reihenfolge von Operationen, die nachstehend angegeben
sind, in an sich bekannter Weise bestimmt. Die Kn- und C„-Register 133 und 134 sind Schieberegister (obwohl
mit parallelem Zugriff) zur Ausführung der erforderliehen Divisionen. Das C„-Register 134 hat <"-»rner die
Möglichkeit einer Komplementbildung zui wählbaren Eingabe von ±C„, wie es durch den Algorithmus
verlangt wird.
Ein Interpolationszyklus läuft wie folgt ab, unter der Voraussetzung, daß alle Anfangswerte eingegeben
worden sind, d. h. η = 3 oder höher ist.
1. Addition von Cn oder -Cn auf H2 zu Kn auf Hl
zur Bildung von TKn auf Jl.
2. Addition von TKn auf H1 zu a„ auf H 2, Summe
auf Jl.
3. Addition von TKn + an auf H2 zu br auf Hl,
zur Bildung von y y„ auf J3 und Rückführung
von j Vn zu an oder bn.
4. Verschiebung von Kn um zwei Bits und von Cn
um drei Bits zur Bildung von Kn + 1 und Cn + 1.
Wenn η der letzte Zyklus ist, wird die Operation 3 (,s
so abgewandelt, daß y„ am Ausaang J4 erscheint, und
die Operation 4 wird natürlich weggelassen.
zeigt, wie der kubische Algorithmus in
60
Fig. 15 zeig
bitserieller, wortserieller Arithmetik verwirklicht werden kann, und zwar unter Anwendung des an sich
bekannten Verfahren der Speicherung aller Größen in einem einzigen langen Schieberegisterspeicher 140,
das somit bei diesem Ausführungsbeispiel die b„-,
an-, Kn- und C„-Register enthält. Der Ausgang des
Speichers ist mit einem Eingang eines Villaddierers 14Ϊ verbunden, dessen Ausgang mit einem Puffer-Schieberegister
142 verbunden ist, das seinerseits mit dem anderen Eingang des Addierers verbunden ist.
Der Volladdierer wird in ähnlicher Weise auf Addition oder Subtraktion umgeschaltet, wie der Addierer FA 2
nach Fig. 2.
Zwei Umlaufkreise sind über eine Umlauf- und Divisionslogik 143 gebildet. In dem ersten Kreis 144
werden die Größen ohneÄnderung in Umlauf gebracht. In dem zweiten Kreis 145, in dem auch der Addierer
141 liegt, werden Cn. TKn und yn in Umlauf gebracht,
wobei letztere (durch 2 dividiert) a„ oder b„ in Abhängigkeit
davon ersetzt, ob die Interpolation nach oben (U) oder nach unten (D) fortgesetzt wird. Die Logik
143 dividiert yn durch 2, TKn durch 4 und Cn durch 8,
wobei das erste Bit oder die ersten zwei oder drei Bits der umlaufenden Größe je nach dem vorliegenden Fall
gelöscht und dem ersten Viertel (von links) des Schieberegisters 140 ein bis drei zusätzliche Schiebeimpulse
zugeführt werden, um das erste nichlgelöschte Bit in die niedrigste Bitstelle des Registers zu bringen,
das die umlaufende Größe aufnimmt.
Die Logik 143 steuert auch die Eingabe der Anfangsgrößen aus dem Festspeicher 146.
Ein Interpolationszyklus läuft daher wie folgt ab:
1. Verschiebung von Cn in das Puffer-Register 142
über den Addierer 141 und gleichzeitige Neueingabe von Cn ins Register 140 über die Logik 143. v.as einer
Division durch 8 (wie erwähnt) entspricht, um Cn+1 = C/8 zu bilden.
2. Verschiebung von Kn aus 140 und Cn aus 142
über den Addierer, so gesteuert, daß eine Addition oder Subtraktion entsprechend
-D
+ U
ausgeführt wird, um TKn zu bilden. Gleichzeitige
Eingabe von TKn in 142 und 140. wodurch eine Division durch 4 bei der Eingabe in 140 (wie erwähnt)
zur Bildung von Kn + 1 = TKJA durchgeführt wird.
3. Verschiebung von a„ aus 140 und TKn aus 142
über den Addierer zur Bildung von a„ + TKn und dessen
Eingabe in 142.
4. Verschiebung von bn aus 140 und a„ + TKn aus
142 über den Addierer zur Bildung von y„- Bei Abwärtsinterpolation
(D) erfolgt gleichzeitige Eingabe von yn über den Kreis 145, um t>„ zu ersetzen, und Division
durch 2 zur Bildung von bn+l = yJ2, wobei a„ unverändert
bleibt, um an+l = an zu erhalten. Bei Aufwärtsinterpolation
([/) erfolgt Eingabe von yn in 142 und
Rückführung von bn über Kreis 144 zur Bildung von
/>„ + , = b„ und Fortsetzung mit 5).
5. (Nur Aufwärts (L')). Rückführung von Cn., und
Kn + 1 in unveränderter Form über Kreis 144 Herausschiebung
von a„ aus 140 und gleichzeitiges Verschieben von allein v„ aus 142 über den Addierer und den
Kreis 145. um a„ zu ersetzen und durch 2 zu dividieren,
so daß sich ergibt a„ + 1 = v„ 2. Unveränderte Rücken 1.
lUIJl Ull£ VUII Un
uuci ucii
Die zur Erzielung des erwähnten Informationsflusses erforderlichen Tore wurden nicht erwähnt,
weil es dem Fachmann der Rechentechnik geläufig ist, wie er diese Steuerung entsprechend einer vorgeschriebenen
Operationsfolge auszuführen hat.
Das Ausführungsbeispiel, bei dem im bitseriellen und wortseriellen Betrieb gearbeitet wird, läßt sich
besonders vorteilhaft in MSI- oder LSI-Technik ausfuhren. In dieser Technik läßt sich ein extrem
vielseitiger und genauer Funktionsgenerator nach dei Erfindung ausbilden.
Vorzeichen und andere in Betracht
zu ziehende Faktoren
zu ziehende Faktoren
Um die Erläuterung des der Erfindung zugrundeliegenden Prinzips zu vereinfachen, wurde das Vorzeichen
bislang lediglich mathematisch berücksichtigt (neben einem kurzen Hinweis auf die Komplementierfähigkeit
der Register 134 in Fig. 14). In der Praxis muß jedoch auch das Vorzeichen gerätetechnisch
verarbeitet werden.
Das bevorzugte Verfahren besteht in der Voranstellung eines Vorzeichenbits vor jede Zahl und in der
Verwendung der Zweier-Komplementform für negative Zahlen. Wenn dann die Division durch Uberverschiebung
bewirkt wird, muß die Logik das niedrigstellige Bit oder die niedrigstelligen Bits durch ein
äquivalentes höchststelliges Bit oder äquivalente höchststellige Bits, nämlich O-Bits bei einer positiven
Zahl und 1-Bits bei einer negativen Zahl, ersetzen.
Im Hinblick auf die große Anzahl der angewandten Widerholungen müssen Vorkehrungen zur Berücksichtigung
von Abrundungsfehlern getroffen werden. Der Einfachheit halber wird nicht die Verwendung
einer Abrundungslogik, sondern von Registern mit üb;rkapazität (Überlänge) bevorzugt. Für eine Genauigkeit
bis auf 24 Bits (Binärstellen) genügt gewöhnlich ein Register mit einer Kapazität von vier Uberschußbits.
Mit 28-Bit-Registern erhält man daher eine Genauigkeit bis auf 24 Bits, bei vier Überschußbits.
Die Anfangswerte von a, b und K sollten mit einem Bit mehr vorgegeben werden, als es der gewünschten
Genauigkeit entspricht.
Mehrfachfunk tionserzeugung
Es wurde zwar die Funktion sin Θ ausführlich behandelt, doch dürfte klar sein, daß die binären
Polynome auch zur Annäherung zahlreicher anderer Funktionen verwendet werden können, wie Kreis-,
Hyperbel-, Exponential-, Wurzel-, reziproke, logarithmische und deren Umkehrfunktionen. Jede Funktion
erfordert die Festlegung des passenden Bereiches der unabhängigen Variablen und der richtigen Koeffizienten
a,b, K, C usw. für die Funktion. Wenn beispielsweise der quartische Algorithmus angewandt
wird, wird jede Funktion durch fünf Ausdrücke vollständig beschrieben, so daß die gleiche Hardware
so ausgebildet werden kann, daß sich damit jede Funktion erzeugen läßt, vorausgesetzt, daß ein kleiner
Festspeicher zur Verfugung steht, in dem die Koeffizienten
für die verschiedenen Funktionen enthalten sind. Ein Programm, das Zugriff zu diesen Funktionen
verlangt, braucht dann lediglich die richtigen Koeffizienten sowie den Wert der unabhängigen
Variablen in dem Festspeicher zu adressieren.
Verbesserung der Genauigkeit
Der wirksamste Weg, die Interpolationsgenauigkei
zu verbessern, ist im allgemeinen der übergang au einen Algorithmus höherer Ordnung, z. B. vom quar
tischen auf den sextischen. Wenn jedoch eine Grupp< von Funktionen durch die gleiche Hardware erzeug'
werden soll, dann sind, darunter häufig bis zu zwe Funktionen, die mehr Schwierigkeiten als die anderer
ίο bereiten. Wegen dieser schwierigen Funktionen kanr
es daher unzweckmäßig sein, einen Algorithmus mil höherer Ordnung zu wählen. Statt dessen können diese
Funktionen nach dem an sich bekannten Interpolationsverfahren behandelt werden, bei dem die Funktion
in mehrere Zonen oder Anfangssegmente mil jeweils ihrem eigenen a, b, K, C usw. unterteilt wird
So wird beispielsweise eine Quadratwurzelfunktion so in Zonen aufgeteilt, daß zumindest die Bereiche
χ = 0,5 bis 1 und χ = 0,25 bis 0,5 getrennt behandelt werden. Obwohl mit Hilfe von Algorithmen höherei
Ordnung periodische Funktionen interpoliert werden können, z. B. sin θ über 180° oder 360°, kann es dennoch
zweckmäßig sein, nur über 90° zu interpolieren und eine Vorzeichen- und Komplementierlogik zur
Erzielung eines Vierquadrantenbetriebs, wie dies an sich bekannt ist, zu verwenden. Eine andere Möglichkeit,
die Genauigkeit zu v;rbessern, besteht darin, nicht allein errechnete Glieder zu verwenden (nach
der Eingabe der Anfangswerte), sondern auch Korreklurglieder zu addieren, z. B. SK oder SC, zumindest
bei den ersten Werten von n. Dies Verfahren wird jedoch nicht bevorzugt, weil die Korrekturglieder in
einem Festspeicher gespeichert werden müssen und im allgemeinen für die verschiedenen Kurvensegmente
unterschiedlich sind. Trotzdem ist der Speicheraufwand im Vergleich zu bekannten Verfahren sehr gering.
Die gleiche Genauigkeit läßt sich jedoch wirksamer durch Anwendung eines Algorithmus mit höherer
Ordnung erzielen.
Umkehrbetrieb
Diese Algorithmen können auch ohne weiteres im Umkehrbetrieb bzw. auf Umkehrfunktionen angewandt
werden, also zur Bestimmung von x, wenn y vorgegeben ist. Das Verfahren besteht in einer schrittweisen
Annäherung an y, ähnlich wie bei einem Analog/Digital-Umsetzer, der mit schrittweiser Annäherung
arbeitet.
Im Vorwärtsbetrieb (unter Vorwärtsbetrieb wird hier das Gegenteil von Umkehrbetrieb verstanden)
steuern die Binärzeichen des x-Registers das Weitergehen in Aufwärts- oder Abwärtsrichtung in jeder
Stufe des Interpolationsalgorithmus. Beim Umkehrbetrieb muß daher die Bestimmung, ob aufwärts
oder abwärts weitergegangen werden soll, durch einen Vergleich und entsprechendes Laden des x-Schieberegisters
durchgeführt werden.
Als Beispiel sei wieder die Funktion sin θ und speziell der Fall aresin 0,800... betrachtet. Mit
dem ersten Schritt des Algorithmus muß dann
sin 45° = 0,7071 gewählt werden. Ein Vergleich
mit 0,800 zeigt, daß die Lösung zu niedrig ist,
so daß der nächste Schritt ausgeführt werden muß — in
die erste Binärstelle des x-Registers wird eine 1 gesetzt.
Der nächste Versuch erfolgt mit sin 67—= 0,9238 Da die Lösung »zu hoch« ist, erfolgt
der nächste Schritt nach unten, und ins v-Rcgister
wird eine 0 gesetzt usw.
Wenn die gespeicherte Funktion monoton ist. ergibt sich nur eine Lösung, doch muß die Grenze
oder Definition der +ve- oder — ve-Steigung gespeichert (oder eingegeben) werden. Wenn die Funktion
nicht monoton ist, sind zwei oder mehr Lösungen möglich. Einige erste Schritte des Algorithmus werden
dann so vorgeschrieben, daß gewährleistet wird, daß sich die gewünschte Lösung ergibt.
Das Prinzip ist in F i g. 16 dargestellt. Der Block 150.
der mit ALGORITHMUS beschriftet ist, enthält die a-, b-, K- usw. Register und zugehörigen Schaltungen,
einschließlich den Festspeicher zur Eingabe der Anfangswerte. Die Register 151 und 152 für
χ und y„ sind getrennt dargestellt, während ein sog. inverses oder N-Register 153 den vorgegebenen Wert
von y enthält. Ein Vergleicher 154 signalisiert, ob y„ höher, niedriger oder gleich y ist. Eine Schrittlogik 155
setzt dann »Zu hoch« mit »Abwärts« (D) und »Zu niedrig« mit »Aufwärts« (U) gleich, wenn die Steigung
der Funktion positiv ist, und ändert die Zuordnung, wenn die Steigung negativ ist.
Funktionen von zwei oder mehr Variablen
Eine Funktion von zwei oder mehr Variablen kann durch binäre polynome Koeffizienten bestimmt und
durch wiederholte Anwendung des gleichen Algorithmus interpoliert werden, indem man jedesmal die
gleiche Hardware verwendet.
Es sei ein einfaches Beispiel betrachtet, bei dem eine gekrümmte Oberfläche durch ihren Abstand ζ
von der x-_y-Ebene beschrieben ist und diese Abhängigkeit
quadratisch ist. Es seien die Koordinaten χ und y gegeben und ζ gesucht. Für einen bestimmten
Wert von y, d.h. y = y\ ist die Abhängigkeit ζ von χ
durch die Koeffizienten a\ b' und K' bestimmt. Wenn diese drei Koeffizienten gegeben sind, erhält man ζ
für irgendeinen Wert von χ durch eine einzige Interpolation
des Algorithmus.
Jeder der drei obigen Koeffizienten hat wiederum eine durch drei gespeicherte Koeffizienten bestimmte
Abhängigkeit von y.
α ist bestimmt durch
b ist bestimmt durch
K ist bestimmt durch
b ist bestimmt durch
K ist bestimmt durch
α»
ab
ab
festgelegt, die eine genaue Annäherung an die binäre Folge von x-Werten ermöglichen, und können leicht
algebraisch bestimmt werden. Dies ist ein sehr großer Vorteil der binären Polynome, wie ihn die Tschebyscheff-Polynome
aufweisen, die gewöhnlich zur Annäherung von Funktionen verwendet werden. Die Tschebyscheff-Polynome sind orthogonal und erfordern
ein kompliziertes Multiplikations- und Integrationsprogramm für die Koeffizientenbestimmung.
Die binären Polynome sind nicht orthogonal, sondern die Koeffizientenbestimmung erfolgt rein algebraisch.
In Fig. 17 ist die Länge verschiedener Ordinatenwerte dargestellt. Es sei angenommen, daß die erfor-
y i-j jusw. der anzunä-
derlichen Punktwerte
hemden Funktion bekannt sind. Für α und b erhält
man sofort jeweils -^ y{0) und ^ y(l). Damit ergibt
sich K als y (-y J — (α + />)■ Damit können die beiden
zusammengehörigen Gleichungen für C und Q aufgestellt werden.
3K
Die Lösung dieser Gleichungen ergibt:
40
45
Bei einem gegebenen Wert von y sind daher drei Algorithmus-Durchgänge erforderlich, um die drei
Koeffizienten für den letzten Durchgang zu ermitteln.
Bei zwei unabhängigen Variablen müssen daher beim quadratischen Algorithmus neun Wörter gespeichert
und vier Interpolationsalgorithmus-Durchgänge erfolgen, während beim kubischen Algorithmus sechzehn
Wörter gespeichert und fünf Durchgänge des Algorithmus durchgeführt werden müssen usw. Bei
drei unabhängigen Variablen erfordert der quadratische Algorithmus siebenundzwanzig Speicherwörter
und dreizehn Durchgänge des Algorithmus, während beim kubischen Algorithmus vierundsechzig Wörter
gespeichert und einundzwanzig Durchgänge des Algorithmus durchgeführt werden müssen usw.
Bestimmung der natürlichen Koeffizienten
Die natürlichen Koeffizienten K, C, Q usw. der binären Polynome sind durch diejenigen Koeffizienten
Setzt man y (γ\ = a + b + K und dividiert man
durch 2, dann vereinfacht sich dies zu:
. 1 [ /3\ /IN 1 Ι /Γ
2 I \4/ \4/ 2 J \2y
Dieses Verfahren kann systematisch erweitert werden. So können zwei zusammengehörige Gleichungen
für / und S aus y (jAund y (γ) und zwei Gleichunger
für P und E aus y ί y J und y (-w- J aufgestellt werden.
Die zur Durchführung des Algorithmus verwendete Hardware kann selbst zur Unterstützung der Bestimmung
der Koeffizienten durch schrittweise Interpolation bis zu χ = -=r, je = -j- und -7- usw. bis zui
r
2 4 4
Ordnungszahl des zur Verfugung stehenden Algorithmus
verwendet werden, um dadurch die »notwen-
25 26
digen Restwerte« ζ zu bestimmen, die wie folgt definiert sind:
z(j=i'(-J — (lineare Interpolation bei ν = y),
:( ~ ) = y(-.-) — (quadratische Interpolation bei .v = - ),
\47 }\AJ V 4;
ζ (-~-J = .»'(χ) — (quadratische Interpolation bei χ = —J,
r( - ) = y ( —) — (sextische Interpolation bei χ = —),
\o/ \b J \ 0/
;(-—) = y(—J - (quartische Interpolation bei χ = ---),
\ ο / \ ο/ \ o/
r( —J = y\Yj - (quartische Interpolation bei χ = -j,
z( —) = yi-5-) — (sextische Interpolation bei χ = --).
\o/\o/V ° /
Zur Vereinfachung der Schreibweise wird im fol- sierenden x-Bereiches angegeben. Es hat sich gezeigt,
of-nHpn 7 (l \a\t 7 7 (x \ά\<ϊ 7 ,/3ViU7 llsw daß die folgenden quintischen und sextischen Koeffi-
*ienaen ζ i-^-iais ζ., ζ i-riais z^, zi^-jais z->
usw. ■ . ,. ,-, . . « ,.
\°/ \4/ \8/ J zienten die Genauigkeit etwas verbessern, wenn die
geschrieben. Dann läßt sich zeigen, daß gilt: Polynome beim sextischen Glied abgebrochen werden,
30 und offensichtlich sind sie auch sehr viel einfacher
^ = z* ' zu bestimmen als die natürlichen Koeffizienten:
C = IT U6 — Z2) , 13 5 7'
2 , i
1 2
^ ~ ~2~ ^6 ~ Zl'' wobei alle vier z-Werte nach der quarlischen Approxi
mation bestimmt werden.
3 Derartige abgewandelte Koeffizienten können auch J = ~4~ (Z3 ~ zs). 40 dadurch ermittelt werden, daß man Koeffizienten
höherer Ordnung als eigentlich erforderlich bestimmt
S - -A(z + ζ ) und d'e Inf°rmat'on von diesen aus zurück in die
3 ' tatsächlich erforderlichen Koeffizienten »teleskopiert«.
ρ _ _ Wenn beispielsweise beim sextischen Glied abge-
7 '" 45 brochen wird, jedoch die septischen und oktischen
2 Koeffizienten bestimmt werden, dann läßt sich das E = -γ (z7 + ζ,). folgende einfache Schema
Abwandlung der natürlichen Koeffizienten o /' = / + _ ρ
Es lassen sich viele Verfahren angeben, um die
natürlichen Koeffizienten so abzuwandeln, daß ent- g
weder die Genauigkeit der Interpolation verbessert S' = S + — E
q oder die Koeffizientenbestimmung vereinfacht wird.
Diese Betrachtung ist nicht sehr wichtig, wenn die 55 . „ , r ,,
j Koeffizienten für eine genormte Funktionserzeugung oder eIn erweitertes Schema aufstellen:
programmiert werden, jedoch dann wichtig, wenn
j die Erfindung bei einer im Echtzeitbetrieb arbeitenden q<
— c + —,
schnellen Datenverarbeitungsanlage angewandt wird. 16'
Bei einem derartigen Betrieb wird die Hardware so 60
programmiert, daß die Koeffizienten in regelmäßigen q, _ q -E
Abständen von den Datenabtastungen bestimmt wer- 32'
den und zwischen diesen Abständen die Interpolation
in der gewünschten Weise durchgeführt wird. . ,9
Die Genauigkeit einer polynomen Annäherung 65 Ϊ6
einer Funktion wird normalerweise durch die schlechteste Differenz zwischen der Annäherung und der 9
richtigen Funktion an irgendeiner Stelle des interes- S' = S + -5- E.
Es wurde gezeigt, daß sich bei Anwendung dieses letzten Schemas auf cos (■) von 0" bis 90" eine schlechteste
Differenz ergibt, die nur das l,20fache derjenigen beträgt, die sich durch die Tschebyschcff-Polynomanordnung
sechster Ordnung ergibt (Tschebyscheff-Polynome sind als die genaueste polynome Annäherung
bekannt, die möglich ist). Selbst die binäre polynome Annäherung sechster Ordnung mit natürlichen
Koeffizienten ergibt eine schlechteste Differenz von nur dem 5,O3fachen derjenigen nach Tscheb ys
c h e f f.
Demgegenüber haben die binären Polynome den Vorteil gegenüber Tschebyscheff-Polynomen, daß sie
an den Enden des x-Bereiches eine genaue Annäherung ergeben.
Extrapolation
Wenn die Funktion geeignet ist, können die oben angegebenen Algorithmen zur Extrapolation außerhalb
des normalen x-Bereiches verwendeil werden. Wählt man den normalen Bereich von 0 bis 1 und
nimmt man an, daß die natürlichen Koeffizienten a, b. K, C und Q dafür bereits bestimmt wurden, dann
erhält man für die Koeffizienten a\ />', K', C und Q'
im Bereich von χ = 0 bis .v = 2 folgendes:
u = a.
W = lh - u - 4K - 32Γ - \92Q.
K' =-- AK + nc + Ι92ζ>.
C = V,C + 64ζλ
Q = 16ρ.
Rechneraufbau
in Die zur Durchführung eines Algorithmus aufgebaute
Hardware kann auch das Herz eines kleinen, aber ungewöhnlich leistungsfähigen Rechners bilden.
Mit einem kleinen Festspeicher verfügt der Rechner über einen großen Bereich von Funktionen, wie es
in dem Abschnitt »Mehrfachfunktionserzeugung« beschrieben wurde. Die gleiche Hardware kann auch
zur Durchführung der Grundoperationen Addition und Subtraktion und auch zur Durchführung einer
Multiplikation und Division verwendet werden. Die Multiplikation von .v und j·· entspricht der linearen
Interpolation mit α = 0, b = -^- y. während die Division
als die Umkehrung der Multiplikation durchgeführt werden kann. So kann die gleiche Hardware
als Funktionsgenerator und als Recheneinheit betrieben werden.
Hierzu 14 Blatt Zeichnungen
Claims (13)
1. Schaltungsanordnung zum Interpolieren des Wertes einer Funktion (y) einer unabhängigen
Veränderlichen (x) durch wiederholte Interpolation in einem Wertebereich der unabhängigen Variablen,
um in Richtung auf einen vorgegebenen Wert in einem Wertebereich der unabhängigen Variablen,
um in Richtung auf einen vorgegebenen Wert der unabhängigen Variablen zu konvergieren, der
als Binärwort in einem Speicher für die unabhängige Variable gespeichert ist, enthaltend ein
erstes und ein zweites Register zum Speichern von Bereichsendwerten der Funktion und eine Steuereinrichtung
zum Steuern des Betriebs in einer Folge von Zyklen, wobei in jedem Zyklus der Wert im ersten oder zweiten Register auf einen
inteipolierten Wert nachgestellt wird, der näher bei dem vorgegebenen Wert der unabhängigen
Variablen Hegt, gekennzeichnet durch folgende Merkmale:
a) Die Steuereinrichtung (10, 11, 13 und Fig.
7A) ist so ausgebildet, daß jede Interpolation aus einer Zweiteilung des bei der vorangegangenen
Zweiteilung entstandenen Wertebereichs der unabhängigen Variablen unter Auswahl derjenigen
Hälfte des zweigeteilten Bereichs besteht, die den vorgegebenen Wert der unabhängigen Variablen
enthält, und diese Auswahl durch das jeweils im vorliegenden Zyklus höchstwertige Bit des den
vorgegebenen Wert darstellenden Binärworts erfolgt, wobei das im Speicher (SRx) gespeicherte
Binärwort des vorgegebenen Werts nach jedem Zyklus um eine Stelle nach links verschoben wird,
so daß bei jeder Zweiteilung die linear interpolierten Werte der Funktion (y) für den zweigeteilten
Bereich gewonnen werden;
b) ein drittes Register (SRK) zum Speichern einer für die vorgegebene Funktion vorbestimmten
Korrekturgröße, um die lineare Interpolation durch Addition dieser Korrekturgröße in eine
Interpolation höherer Ordnung zu verbessern;
c) ein erster, selektiv steuerbarer Rückführweg (11a, lib), der anssprechend auf die Steuereinrichtung
(10) in jedem Zyklus den Inhalt des ersten oder des zweiten Registers (SRA oder SRB)
in Abhängigkeit vom Wert des diesem Zyklus zugeordneten höchstwertigen Bit des vorgegebenen
Binärwortes in eines der ersten und zweiten Re- so
gister (SRA oder SRB) gibt;
d) ein zweiter Rückführweg einschließlich einer mit allen drei genannten Registern verbundenen,
linear arithmetischen Schaltung (FA3, FAi), die
in das andere der ersten und zweiten Register eine durch 2 dividierte Linearkombination des
Inhalts der drei genannten Register (SRA, SRB, SRK) gibt; und
e) ein dritter Rückführweg, der in jedem Zyklus
in das dritte Register (SRK) seinen eigenen, durch f,o
4 dividierten Inhalt gibt.
2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß der erste Rückführweg
so ausgebildet ist, daß
a) für den Fall, daß der vorgegebene Wert der (15
unabhängigen Variablen in die untere Hälfte des zweigeteilten Segmentes fällt, in das dem unteren
Funktionswert zugeordnete erste Register sein eigener Inhalt und in das dem oberen Funktionswert zugeordnete zweite Register die durch 2
dividierte Summe des Inhalts des ersten, zweiten und dritten Registers (SRA, SRB, SRK) eingegeben
wird;
b) für den Fall, daß der vorgegebene Wert der unabhängigen Variablen in die obere Hälfte des
zweigeteilten Segmentes fällt, in das dem oberen Funktionswert zugeordnete zweite Register sein
eigener Inhalt und in das dem unteren Funktionswert zugeordnete erste Register die durch 2 dividierte
Summe des Inhalts des ersten, zweiten und dritten Registers eingegeben wird.
3. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß der erste Rückführweg
so ausgebildet ist, daß
a) für den Fall, daß der vorgegebene Wert der unabhängigen Variablen in die untere Hälfte des
zweigeteilten Segmentes fällt, in das erste Register sein eigener Inhalt und in das zweite Register die
durch 2 dividierte Summe des Inhalts des ersten, zweiten und dritten Registers eingegeben wird und
b) für den Fall, daß der vorgegebene Wert der unabhängigen Variablen in die obere Hälfte des zweigeteilten
Segmentes fällt, in das erste Register der Inhalt des zweiten und in das zweite Register die
durch 2 dividierte Summe des Inhalts des ersten, zweiten und dritten Registers eingegeben wird.
4. Schaltungsanordnung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet,
daß zusätzlich zu dem dritten Register (SRK) mehrere Register (SRC, ...) zur Speicherung von
Korrekturwerten höherer Ordnung vorgesehen sind, von denen jedes eine lineare Kombination
seines eigenen Inhalts und, mit Ausnahme des Registers (SRC in Fig. 7) der höchsten Ordnung,
des Inhalts des Registers oder der Register höherer Ordnung erhält, wobei diese Kombination im
Falle des dritten Registers (SRK) durch 22 = 4, im Falle des vierten Registers (SRC) durch 23 = 8
und im Falle von weiteren Registern in entsprechender Weise dividiert wird.
5. Schaltungsanordnung nach Anspruch 4, dadurch gekennzeichnet, daß den Registern (SRK,
SRC, ...) zur Speicherung von Korrekturwerten eine Verknüpfungsschaltung zugeordnet ist, die
aus Vielfachen (8Qn, Fig. 11) eines Korrekturwertes
höherer Ordnung lineare Kombinationen (TCn) bildet, wobei das Vielfache durch Summieren
mehrerer Zwischenquotienten gebildet ist, die sich bei der Berechnung des Gliedes höherer Ordnung
bei der vorausgegangenen Zweiteilung während aufeinanderfolgender Divisionen durch 2 ergeben.
6. Schallungsanordnung nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß die Verknüpfungsschaltung
so ausgebildet ist, daß sie das Vorzeichen mindestens eines Korrekturwertes in einer linearen
Kombination in Abhängigkeit davon auswählt, welche Hälfte des Segmentes bei der vorhergehenden
Zweiteilung ausgewählt wurde.
7. Schaltungsanordnung nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, daß die
Verknüpfungsschaltung Leitungen (169,170, F i g. 7) enthält, die das Vorzeichen mindestens eines
Korrekturwerles in einer linearen Kombination
in Abhängigkeit davon auswählen, welche Hälfte des Segmentes bei der laufenden Zweiteilung
ausgewählt wird.
8. Schaltungsanordnung nach einem der Ansprüche 1 bis 7, die im Umkehrbetrieb (Fig. 16)
betreibbar ist, um den Wen der unabhängigen Variablen (x) zu bestimmen, der einem vorgegebenen
Wert der abhängigen Variablen (y) entspricht, gekennzeichnet durch einen Vergleicher
(154), der bei jeder Zweiteilung überprüft, ob der
Wert der abhängigen Variablen, der durch Auswahl einer vorbestimmten Hälfte des derzeitigen
Segments erzeugt worden ist, größer oder kleiner als der gegebene Wert der abhängigen Variablen
ist, um im ersten Fall die vorbestimmte Auswahl beizubehalten und im zweiten Fall die vorbestimmte
Auswahl durch die Auswahl der anderen Hälfte des derzeitigen Segments zu ersetzen und entsprechend
ein 1 -Bit oder ein O-Bit in das Register (SRx) für die unabhängige Variable einzugeben,
wobei die so eingegebenen Bits in Stellen mit aufeinanderfolgend absteigender Stellenwertigkeit
eingegeben werden.
9. Schaltungsanordnung nach Anspruch 7, gekennzeichnet durch einen Festwertspeicher (9)
zum Speichern von Anfangswerten, die in die Register eingegeben werden müssen.
10. Schaltungsanordnung nach einem der Ansprüche I bis 9, dadurch gekennzeichnet, daß die
Register (SRA, SRB, SRK) Schieberegister sind und daß mehrere Volladdierer (FA 1, FA 3) zum
Addieren des Inhalts der Register in bitseriellem Betrieb, wobei jedem Binärwert ein eigenes, Umlaufverbindungen
aufweisendes Register zugeordnet ist und die Umlaufverbindungen zur erneuten Eingabe der linearen Kombinationen in die Register
dienen, und Steuermittel vorgesehen sind, die derart betreibbar sind, daß sie eine Relativverschiebung
der erneut in die Schieberegister eingegebenen Größen bewirken, so daß die Divisionen
durch die Potenzen von 2 ausgeführt werden.
11. Schaltungsanordnung nach einem der Ansprüche
1 bis 9, dadurch gekennzeichnet, daß die Register (131 bis 134, Fig. 14) Parallelzugriffsregister
sind und daß ein Paralleladdierer (130), mehrere Hauptdatenübertragungskanäle (H, J),
die die Register und den Addierer über wählbar betreibbare Tore verbinden, und ^1- -uermitlel
vorhanden sind, die derart betreibbar sind, daß sie die Tore in einer solchen Reihenfolge ansteuern,
daß die lineal en Kombinationen durch eine Folge bitparalleler Operationen gebildet und die so
gebildeten Größen in die Register zurückgeleitet werden.
12. Schaltungsanordnung nach Anspruch 11, dadurch gekennzeichnet, daß zumindest eines der
Register (133 oder 134) zusätzlich als Schieberegister ausgebildet ist und daß die Steuermittel
derart betreibbar sind, daß die in sie zurückgeleiteten Größen derart verschoben werden, daß
die Division durch die entsprechende Potenz von 2 bewirkt wird.
13. Schaltungsanordnung nach einem der Ansprüche
1 bis 9, gekennzeichnet durch ein Hauptschieberegister (140, Fig. 15), das die Inhalte der
erwähnten Register seriell erhält, einen Volladdierer (141), der an das Hauptschieberegister angeschlossen
ist, und ein Pufferregister (142) zur Ausführung von Additionen in bitseriellem, wortseriellem
Betrieb und dadurch, daß der Ausgang des Addierers mit dem Eingang des Pu/Terregisters
und einem Umlaufkreis zur Rückleitung der linearen K ombinationen in die verschiedenen Teile des
Hauptregisters über eine Divisionslogik (143) verbunden ist, die derart betreibbar ist. daß sie die
Kombinationen durch die entsprechenden Potenzen von 2 dividiert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB3490070A GB1363073A (en) | 1970-07-17 | 1970-07-17 | Generation of trigonometrical and other functions by interpolation between point values |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2135590A1 DE2135590A1 (de) | 1972-01-20 |
DE2135590B2 DE2135590B2 (de) | 1977-07-21 |
DE2135590C3 true DE2135590C3 (de) | 1978-03-16 |
Family
ID=10371300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2135590A Expired DE2135590C3 (de) | 1970-07-17 | 1971-07-16 | Schaltungsanordnung zum Interpolieren des Wertes einer Funktion einer unabhängigen Veränderlichen |
Country Status (8)
Country | Link |
---|---|
US (1) | US3789203A (de) |
JP (1) | JPS549455B1 (de) |
CA (1) | CA950120A (de) |
DE (1) | DE2135590C3 (de) |
FR (1) | FR2099446B1 (de) |
GB (1) | GB1363073A (de) |
IT (1) | IT940163B (de) |
NL (1) | NL7109799A (de) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3967100A (en) * | 1973-11-12 | 1976-06-29 | Naonobu Shimomura | Digital function generator utilizing cascade accumulation |
JPS5434579B2 (de) * | 1974-06-25 | 1979-10-27 | ||
US3943346A (en) * | 1974-07-22 | 1976-03-09 | Rca Corporation | Digital interpolator for reducing time quantization errors |
US3996456A (en) * | 1975-02-13 | 1976-12-07 | Armco Steel Corporation | Recursive interpolation |
GB1536845A (en) * | 1975-02-26 | 1978-12-20 | Bell & Howell Ltd | Generation of mathematical functions |
NL7607956A (nl) * | 1976-07-19 | 1978-01-23 | Technicon Instr | Werkwijze en inrichting voor het regenereren van een gedegenereerde kurve en inrichting voor het analyseren van een reeks fluidummon- sters, voorzien van deze inrichting. |
US4313173A (en) * | 1980-06-10 | 1982-01-26 | Bell Telephone Laboratories, Incorporated | Linear interpolator |
US4511882A (en) * | 1982-07-02 | 1985-04-16 | The Babcock & Wilcox Company | Function generator |
JPS59122040A (ja) * | 1982-12-27 | 1984-07-14 | Sony Corp | デイジタル信号処理回路 |
US4553260A (en) * | 1983-03-18 | 1985-11-12 | Honeywell Inc. | Means and method of processing optical image edge data |
US4763293A (en) * | 1984-02-27 | 1988-08-09 | Canon Kabushiki Kaisha | Data processing device for interpolation |
US4700319A (en) * | 1985-06-06 | 1987-10-13 | The United States Of America As Represented By The Secretary Of The Air Force | Arithmetic pipeline for image processing |
US4894794A (en) * | 1985-10-15 | 1990-01-16 | Polaroid Corporation | System for providing continous linear interpolation |
CA1270953C (en) * | 1986-05-23 | 1990-06-26 | CURVE APPROXIMATION METHOD | |
US4823298A (en) * | 1987-05-11 | 1989-04-18 | Rca Licensing Corporation | Circuitry for approximating the control signal for a BTSC spectral expander |
FR2622320B1 (fr) * | 1987-10-27 | 1990-11-30 | Thomson Semiconducteurs | Operateur d'interpolation lineaire |
USRE38427E1 (en) * | 1987-10-27 | 2004-02-10 | Stmicroelectronics S.A. | Linear interpolation operator |
JPH0664089B2 (ja) * | 1990-09-07 | 1994-08-22 | 菊水電子工業株式会社 | サンプリング信号処理装置 |
GB9108467D0 (en) * | 1991-04-19 | 1991-06-05 | British Aerospace | Waveform generation |
JP3082169B2 (ja) * | 1991-11-20 | 2000-08-28 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | データ処理システム及びその実行方法 |
US5739820A (en) * | 1992-11-19 | 1998-04-14 | Apple Computer Inc. | Method and apparatus for specular reflection shading of computer graphic images |
JPH06180691A (ja) * | 1992-12-11 | 1994-06-28 | Fujitsu Ltd | 適応的入出力装置 |
US5305248A (en) * | 1993-04-23 | 1994-04-19 | International Business Machines Corporation | Fast IEEE double precision reciprocals and square roots |
FR2705155A1 (fr) * | 1993-05-12 | 1994-11-18 | Philips Laboratoire Electroniq | Dispositif et méthode pour générer une fonction d'approximation. |
GB9321365D0 (en) * | 1993-10-15 | 1993-12-08 | British Aerospace | Waveform processing |
US5379241A (en) * | 1993-12-23 | 1995-01-03 | Genesis Microchip, Inc. | Method and apparatus for quadratic interpolation |
DE4406300C2 (de) * | 1994-02-26 | 1997-10-30 | Itt Ind Gmbh Deutsche | Lineares Interpolationsverfahren |
JPH08147357A (ja) * | 1994-11-22 | 1996-06-07 | Nec Yamagata Ltd | 製造装置の簡易モデリング方法 |
US5812983A (en) * | 1995-08-03 | 1998-09-22 | Kumagai; Yasuo | Computed medical file and chart system |
JPH09266463A (ja) * | 1996-03-28 | 1997-10-07 | Mitsubishi Electric Corp | データ補間回路およびデータ信号供給回路 |
US5751617A (en) * | 1996-04-22 | 1998-05-12 | Samsung Electronics Co., Ltd. | Calculating the average of two integer numbers rounded away from zero in a single instruction cycle |
US6007232A (en) * | 1996-11-14 | 1999-12-28 | Samsung Electronics Co., Ltd. | Calculating the average of two integer numbers rounded towards zero in a single instruction cycle |
US5917739A (en) * | 1996-11-14 | 1999-06-29 | Samsung Electronics Co., Ltd. | Calculating the average of four integer numbers rounded towards zero in a single instruction cycle |
US6173271B1 (en) | 1997-11-26 | 2001-01-09 | California Institute Of Technology | Television advertising automated billing system |
US6073151A (en) * | 1998-06-29 | 2000-06-06 | Motorola, Inc. | Bit-serial linear interpolator with sliced output |
US20020009394A1 (en) | 1999-04-02 | 2002-01-24 | Hubert Koster | Automated process line |
US6539128B1 (en) | 1999-04-16 | 2003-03-25 | Macronix International Co., Ltd. | Method and apparatus for interpolation |
CN1203450C (zh) | 1999-04-22 | 2005-05-25 | 因芬尼昂技术股份公司 | 求出被扫描信号的插补中间值的方法和装置 |
US7917301B1 (en) | 2000-09-19 | 2011-03-29 | Sequenom, Inc. | Method and device for identifying a biological sample |
US7076516B2 (en) * | 2000-09-19 | 2006-07-11 | California Institute Of Technology | Efficient method of identifying non-solution or non-optimal regions of the domain of a function |
US7222145B2 (en) * | 2001-12-07 | 2007-05-22 | Sun Microsystems, Inc. | Method and apparatus for solving systems of equations in fixed-point form |
TWI223781B (en) * | 2002-04-01 | 2004-11-11 | Mstar Semiconductor Inc | Scaling method by using dual point slope control |
TWI234746B (en) * | 2002-04-01 | 2005-06-21 | Mstar Semiconductor Inc | Scaling method by using symmetrical middle-point slope control |
US20030187893A1 (en) * | 2002-04-01 | 2003-10-02 | Kun-Nan Cheng | Method of data interpolation with bi-switch slope control scaling |
US20030187613A1 (en) * | 2002-04-01 | 2003-10-02 | Kun-Nan Cheng | Method of data interpolation using midpoint slope control scaling |
DE10360168A1 (de) * | 2003-12-20 | 2005-07-21 | Rexroth Indramat Gmbh | Verfahren und Vorrichtung zur Korrektur der Lageabweichung eines Transportgutes |
JP2010182382A (ja) * | 2009-02-06 | 2010-08-19 | Toshiba Corp | デジタルオーディオ信号補間装置、及びデジタルオーディオ信号補間方法 |
JP6221323B2 (ja) | 2013-04-22 | 2017-11-01 | カシオ計算機株式会社 | グラフ表示装置およびその制御プログラム |
JP6221372B2 (ja) * | 2013-06-11 | 2017-11-01 | カシオ計算機株式会社 | グラフ表示装置、プログラム、およびサーバ装置 |
JP6318615B2 (ja) | 2013-12-27 | 2018-05-09 | カシオ計算機株式会社 | グラフ表示制御装置、電子機器およびプログラム |
JP6244901B2 (ja) | 2013-12-27 | 2017-12-13 | カシオ計算機株式会社 | グラフ表示制御装置、電子機器およびプログラム |
JP6287412B2 (ja) | 2014-03-19 | 2018-03-07 | カシオ計算機株式会社 | 図形描画装置、図形描画方法およびプログラム |
JP6394163B2 (ja) | 2014-08-07 | 2018-09-26 | カシオ計算機株式会社 | グラフ表示装置、グラフ表示方法およびプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3412240A (en) * | 1963-02-21 | 1968-11-19 | Gen Precision Systems Inc | Linear interpolater |
US3564222A (en) * | 1968-07-01 | 1971-02-16 | Bendix Corp | Digital function generator solving the equation f(x) {32 {0 mx {30 {0 b |
US3684876A (en) * | 1970-03-26 | 1972-08-15 | Evans & Sutherland Computer Co | Vector computing system as for use in a matrix computer |
US3649821A (en) * | 1970-06-15 | 1972-03-14 | Philco Ford Corp | Digital multiple-tone generator |
-
1970
- 1970-07-17 GB GB3490070A patent/GB1363073A/en not_active Expired
-
1971
- 1971-07-15 NL NL7109799A patent/NL7109799A/xx not_active Application Discontinuation
- 1971-07-16 IT IT83659/71A patent/IT940163B/it active
- 1971-07-16 CA CA118,389A patent/CA950120A/en not_active Expired
- 1971-07-16 DE DE2135590A patent/DE2135590C3/de not_active Expired
- 1971-07-16 US US00163360A patent/US3789203A/en not_active Expired - Lifetime
- 1971-07-17 JP JP5348671A patent/JPS549455B1/ja active Pending
- 1971-07-19 FR FR717126328A patent/FR2099446B1/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
GB1363073A (en) | 1974-08-14 |
JPS549455B1 (de) | 1979-04-24 |
US3789203A (en) | 1974-01-29 |
DE2135590B2 (de) | 1977-07-21 |
FR2099446B1 (de) | 1973-06-29 |
CA950120A (en) | 1974-06-25 |
NL7109799A (de) | 1972-01-19 |
AU3132471A (en) | 1973-01-18 |
FR2099446A1 (de) | 1972-03-17 |
DE2135590A1 (de) | 1972-01-20 |
IT940163B (it) | 1973-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2135590C3 (de) | Schaltungsanordnung zum Interpolieren des Wertes einer Funktion einer unabhängigen Veränderlichen | |
DE2321112A1 (de) | Elektrische signalverarbeitungsanlage | |
DE2145404A1 (de) | Nichtrekursive Digitalfiltereinrichtung mit Verzögerungs- und Addier-Anordnung | |
DE1549584C3 (de) | Datenverarbeitungsanlage | |
DE1222717B (de) | Digitaler Interpolationsrechner | |
DE1219717B (de) | Digital arbeitender Interpolator | |
DE2606931A1 (de) | Verfahren zur erzeugung von werten mathematischer funktionen | |
DE3507584C2 (de) | ||
DE2063199B2 (de) | Einrichtung zur Ausführung logischer Funktionen | |
DE2221693A1 (de) | Anordnung zur Ausfuehrung einer Multiplikation in einem Rechner | |
DE3303269C2 (de) | ||
DE60109344T2 (de) | Hochgeschwindigkeitscodierer für Faltungscodes | |
DE2039228C3 (de) | Schaltungsanordnung in einer Datenverarbeitungsanlage zum Verschieben einer binär kodierten Oktalzahl um eine Anzahl von Dezimalstellen nach rechts | |
DE4010735A1 (de) | Digitale wortserielle multiplizierschaltung | |
DE69332937T2 (de) | Korrekturverfahren für verlorengegangene Daten und Schaltung dafür | |
DE2523755A1 (de) | Divisionsverarbeitungssystem mit 2n-facher genauigkeit | |
DE2712582C2 (de) | DDA-Rechner (Digital-Differential-Analysator) | |
DE1222290B (de) | Binaere Recheneinrichtung zur Bildung und Akkumulation von Produkten | |
DE1549461C3 (de) | ||
DE19925464C2 (de) | Verfahren und Schaltungsanordnung zur Abtastratenanpassung digitaler Signale | |
DE2426648B2 (de) | Schaltungsanordnung zur erzeugung von interpolationsimpulsen | |
DE1234055B (de) | Anordnung zur Addition oder Subtraktion | |
DE2508141A1 (de) | Verfahren zur transformation von reellen zahlen | |
DE1524146C (de) | Divisionseinrichtung | |
DE2140386A1 (de) | Digitalrechengerat |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |