DE2135590B2 - Schaltungsanordnung zum interpolieren des wertes einer funktion einer unabhaengigen veraenderlichen - Google Patents

Schaltungsanordnung zum interpolieren des wertes einer funktion einer unabhaengigen veraenderlichen

Info

Publication number
DE2135590B2
DE2135590B2 DE19712135590 DE2135590A DE2135590B2 DE 2135590 B2 DE2135590 B2 DE 2135590B2 DE 19712135590 DE19712135590 DE 19712135590 DE 2135590 A DE2135590 A DE 2135590A DE 2135590 B2 DE2135590 B2 DE 2135590B2
Authority
DE
Germany
Prior art keywords
register
value
registers
circuit arrangement
order
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.)
Granted
Application number
DE19712135590
Other languages
English (en)
Other versions
DE2135590C3 (de
DE2135590A1 (de
Inventor
Reginald Knowles Susan Farnborough Hampshire Catherall (Großbritannien)
Original Assignee
The Solartron Electronic Group Ltd, Farnborough, Hampshire (Großbntan men)
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 The Solartron Electronic Group Ltd, Farnborough, Hampshire (Großbntan men) filed Critical The Solartron Electronic Group Ltd, Farnborough, Hampshire (Großbntan men)
Publication of DE2135590A1 publication Critical patent/DE2135590A1/de
Publication of DE2135590B2 publication Critical patent/DE2135590B2/de
Application granted granted Critical
Publication of DE2135590C3 publication Critical patent/DE2135590C3/de
Expired 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/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (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)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

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 Werkzeugmaschinenschlitten 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 durchzuführen.
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung zu schaffen, die auch Interpolationer 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äutert werden.
Das Prinzip des nach der Erfindung angewandten Interpolationsverfahrens wird Interpolation durch wiederholte Zweiteilung des Interpolationssegments genannt, d. h. des Segments, das die beiden Punkt werte 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 gespeicherte 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-Sehiebe-Algorithmen, 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 χ zu berechnen, wenn y 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 »oll, von den aufeinanderfolgenden Bits von χ bitweise genteuei ι werden Im Umkehrbetrieb wird bei jeder Interpolation geprüft, ob die Auswahl des oberen Halbsegments das berechnete y größer oder nicht größer als das gegebene y, das als Y geschrieben wird, macht. Wenn y kleiner
als Y ist, wird ein 1-Bit in χ eingegeben und die Auswahl des oberen Halbsegments beibehalten. Wenn y größer ist, wird ein O-Bit in χ eingegeben und die Auswahl des oberen Halbsegments gelöscht und das untere Halbsegment gewählt. Auf diese Weise bewirken
ίο die aufeinanderfolgenden Interpolationen eine Annäherung des berechneten y an das vorgegebene Y, und die Bits von χ werden entsprechend vom höchststelligen Bit an abwärts aufgebaut. Wenn jedoch in irgendeiner Stufe y = Y, kann der Vorgang bei allen restlichen Bits von χ = 0 abgeschlossen werden.
Bevorzugte Ausführungsbeispiele der Erfindung werden nachfolgend an Hand der Zeichnungen näher erläutert.
Die Fig. 1 stellt eine lineare Interpolation dar
Die Fig. 2 und 3 stellen eine quadratische Interpolation dar.
Die F i g. 4 stellt ein Blockschaltbild eines Ausführungsbeispiels nach der Erfindung zur Ausführung des quadratischen Interpolationsalgorithmus dar.
Die F i g. 5 und 6 stellen die Anwendung binärer Reihen zur Annäherung der Funktion sin« dar.
Die Fig. 7 stellt ein Blockschaltbild eines Ausfuhrungsbeispiels nach der Erfindung zur Ausführung des kubischen Interpolationsalgorithmus dar.
Die Fig. 7A stellt eine Zeitsteuerschaltung für Fig. 7 dar.
Die Fig. 8A bis 8G stellen grafisch den Vcrlaul der binären Polynome der zweiten bis achten Ordnung dar.
Die Fig. 9 bis 13 stellen Flußdiagramme der quadratischen bis oktalen Algorithmen dar.
Die Fig. 11A zeigt eine Abwandlung des quartischen Algorithmus nach Fig. 11.
Die Fig. 14 ist ein Blockschaltbild der wescntliehen Einzelheiten eines weiteren Ausführungsbei-
spiejs nach der Erfindung zur Durchführung des
kubischen Algorithmus unter Verwendung einer bit-
parallclcn, wortsericllcn Arithmetik.
Die Fig. 15 ist ein Blockschaltbild der wesentlichen Einzelheiten eines weiteren Ausführungsbeispicls nach
der Erfindung zur Durchführung des kubischen
Algorithmus unter Verwendung einer bitseriellcn
wortsericllcn Arithmetik.
Die F i g. 16 ist ein Blockschaltbild, das die An wen-
so dung 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 vor χ in einem Segment von χ - 0 bis χ - l dar y(p) 2a und y{\) Ib Bei d t ttli
χ in einem Segment von χ - 0 bis χ - l dar y(p) - 2a und y{\) - Ib. Bei der ersten tnterpolatiot erhält man auf einfache Welse
y (y) - (2e + 2b)/2 - a + b.
FUr die zweite Interpolation stehen zwei Möglich kokon zur Verfügung. Bs ist möglich, entweder
zu berechnen, und die Wahl wird in Abhängigkeit davon getroffen, ob der Wert von χ im Bereich von -ι- bis 1 oder von 0 bis y liegt. Bei F i g. 1 wurde
angenommen, daß der gegebene Wert von χ gleich
ist. Die Reihenfolge der Interpolationen, die durch die vertikalen Pfeile symbolisiert werden, ist also
erstens: Interpolation bis y (-A = a + b,
zweitens: Interpolation bis y (-Λ = a y
drittens: Interpolation bis y (in = ~ϊ >'\τ)
in F i g. 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 U oder von D:
+ y yfy
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 >· 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 (3A ist U von y (JA aus und y Cj\ ist D von y (-=· j aus.
Die obigen Schlußfolgerungen können zu folgendem Algorithmus zusammengefaßt werden:
yn =
Kn,
Interpolation auf einer Parabel
Fig. 2 zeigt eine Parabel der Form y = 4x(1 -x), wobei y(0) = y(l) = O und y (JA = 1.
Die Interpolation bis y(^ j kann als eine lineare
Interpolation plus Addition eines Korrekturglicdcs K = 1 angeschen werden, die »Notwendiger Rest« genannt wird und genauer als KM=1 = 1 definiert wird, wobei η dio Nummer der Interpolation ist. Für die zweite Interpolation gehen wir entweder nach
x=i oder χ = \ , die beide y = -V ergeben. Wie
4 *V 4
sich an Hand der Linien 101 und 102 in F i g. 2 ergibt, erhält man durch lineare Interpolation Werte von -i, so daß sich als notwendiger Rest ergibt: Xn. 2 - ^ . Eh läßt sich leicht zeigen, daß Knm3 - ^6 . Kn^ »-$( u&w. ist. So ergibt sich z.B. für y (j) gleich -J- . Eine lineare Mittelpunktsinterpolation zwischen y (\*) m 2 Und y VT J "* ' ergibt einen Wert von I und (1V11S-1/.) - V
Das Schema ergibt Kn
K11.,, 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 wobei a,, O1 und K1 zu Anfang vorgegebene (eingegebene) Werte sind.
U b„ = />„_,,
D K = ()-„_1)/2,
U an = (yn-,)/2.
D a„ = α,,.,.
Verwirklichung des quadratischen Algorithmus
.15 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 Verschicben des Inhalts des Registers in Richtung auf abnehmende Stcllenwcrtigkcit 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
.10 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.
ss Die Schaltung nach F1 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:
to SRA enthält o„,
SRB enthalt l>„, SRF enthält y„, SRK enthält Xn, SKx enthält x.
f>* Zu Beginn werden U1, b, und X1 aus einem Festspeicher 9 in entsprechende Register Übertragen und der Begebene Wert von χ ins Register SRx eingegeben. FA3addiert a„ und t>„ zur Bildung von a„+\. FAX
709829/378
addiert Kn zu dem von FA3 ausgegebenen Ergebnis zur Bildung von y„, 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 a„ 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 11a durch das Ausgangssignal eines Inverters 10α geöffnet, so daß
b„ durch ^ y„ ersetzt wird, während an einfach umläuft. Wenn das Bit jedoch eine 1 ist, werden zwei Tore 11/) geöffnet, so daß a„ durch y yn ersetzt wird, während
bn 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", ν = j entspricht (·) = 43" usw. In Fig. 5 ist die Funktion sin W durch die Kurve 110 dargestellt. Der lineare Interpolntionsalgorilhmus mit a = 0, /) =■■ 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 113dargestellt ist. Sin 45" - 0,707t! und das quadratische Glied des Algorithmus ergeben die Parabel 113, wenn Kx 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 y·Maßstab als Kurve 114 in Fi g. 6 dargestellt.
Man erkennt sofort die kubische Grundform dieser Kurve an Hand eines Vergleichs mit einer echten kubischen Kurve US der Form C^x(I -x)(x L)
ι mit Nulldurchgängen bei χ - 0, -j und 1, wobei der
Koeffizient Γ 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
x » I 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äbe in den F i g. 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„_,)/8, das zuerst eingegeben wird, wenn η = 2 ist, doch wird das kubische Glied wegen der bipolaren Form der kubischen Kurve bei einer [^-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 kubischen Algorithmus ist in Fig. 7 dargestellt. Dass Schieberegister SRC speichert C11. und ein weiterer Volladdicrer FA2 kombiniert Cn mil Kn zur Bildung von TKn, das zu «„ + b„ addiert wird. Die Ausgangsgröße der Schallung 10 (z. B. eines Flipflop) hat jetzt die zusätzliche Aufgabe, den Volladdicrer FAl zur Addition zu veranlassen, wenn das x-Bil gleich I ist, und zur Subtraktion zu veranlassen, wenn dus .v-Bit gleich 0 ist.
D"r quartische Algorithmus führt ein quartisches Glied C - (Qn-,)/16, wie erwartet werden könnte, ein, doch hat sich herausgestellt, daß eine weltorc
S5 Komplikation insofern entsteht, als Cn durch
TCn - Cn +
-D
+ t/
M-I
8Qn
ersetzt werden muß, wobei die Vorzeichenwahl jetzi davon abhängt, ob der vorhergehende Schritt (n-1 aufwärts [U) oder abwärts (D) erfolgte. Dies wire nachstehend ausführlicher erläutert,
Als Beispiel IUr die Steueraufgaben sol angenommen daß die Rechnung bis zu einer 16-Blt-Qenaulgkel 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 s ist, das geöffnet wird, wenn ein Start-Flipfiop 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 Schiebeimpulsen, 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-Bit = 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 SR-4 (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 y„-Umlaufkreis über einen Inverter 172 während des 21. Schiebeimpulses gesperrt.
Da SRK eine Division durch 4 durchzuführen 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 ΤΧ,,-Umlaufkrcis über einen Inverter 176 gesperrt. Das SRC muß eine Division durch 8 durchführen und erhall daher den 21., 22. und 21 Schiebeimpuls über ODER-Tore 177 und 178 sowie die zwanzig Ausgangsimpulse des Tores 164. Während des 21.. 22. und 2.V Impulses wird ein UND-Tor 179 im ('„-Umlaufkreis über einen Inverter 180 gesperrt. 4«,
Der 21 Impuls jeder Gruppe schiebt den Inhalt des Registers SRx um 1 Bit in der umgekehrten Richtung weiter, um das Bit der nächst niedrigeren Stelle von χ in die Stcucrposition /u bringen. Wenn eine derartige Verschiebung unzeigt, 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 gewünschte Wert vom y im SRF zurückbleibt. M
Da SRx sechzehn Bits aufweint, duuert eine ganze Folge von Iterationen bzw. Wiederholungen 16 23 - 368 Taktimpulse. Berücksichtigt man weitere 100 Taktperioden zum Einspeichern von λ, α, b. K und C dann ergibt sich eine Qesamircchen/eit von to 46,8 Mikrosekunden bei Verwendung eines 10-MHz-Taktgebers. Als Vergleich sei darauf hingewiesen, daß das bitparallcte, wortserielte System nach Fig. 14, das nachstehend beschrieben ist, etwa 88 Taktperioden benötigt, d. h. 8,8 Mikrosekunden bei gleicher Qenaulgkelt und Taktfrequenz. Das Scricn/Serien-AusfUhrungsbeispiel nach Fig. IS benotigt etwa 1560 Taktporloden 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 — fix) in einem bestimmten Bereich von χ verwendet wird, ist es üblich, die Aufgabe zuerst durch Normalisierung in einen x-Bereich von entweder — 1 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,
BJ 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 Interpolationsvorgä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 K1, C2 usw. die Polynome eine exakte Annäherung an so viele Punkte der binären Folge ergeben, wie es bei der verwendeten polynomen Ordnungszahl möglich ist.
Im folgenden sei die Näherung betrachtet:
.V = goBS + g.Bf +g2ßj + gjßj + ····
wobei die Faktoren g„ die Koeffizienten und B1* 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
0 und 1
1
3
4
5
§
Erforderliche polynome
Glieder
X I
" 2
7
1
goßj? UIHIg1Bf
x z -- 4 und
I und
g2ßj
X =
X =
- ' und Ml 12Ξ
X β g7fl? + ggßj
Eine Grundregel ist die, daß, wenn jeder Punkt genauer Annäherung gebildet lat, alle folgenden Poly· nome diese Annäherung beibehalten. Zum Beispiel liegt nach der quadratischen Approximation eine genaue Annäherung für χ ■ 0, y und 1 vor. Das kubische Polynom ßf und alle folgenden Polynome müssen daher die Form x(l-x)(x-y) aufweisen.
Obiges Beispiel fortsetzend, fordert die Regel, daß das quartlsohe Polynom Bj ebenfalls die Form
13 ... ι 1 Λ und -ο ζ" erhalten.
X(I -χ) (χ- -ί) aulweisen muß, d« Λ ermittelten glelehzettig bei * = 8 · 8 · 8 8
Punkte 8enauer Annäherung Immer noch , = 0. ί ^f^S^^mS™**™™*™
und 1 sind Bl muB jedoch von vierter Ordnung sein, s und mit einem No™»J»e8 bsschriebenen Weise und dteerfoShe Form ergibt sich in der Tat Faktoren. d£j de e»e ^
u,* Wiederholung des Faktors (,-1).« enthalt SSSÄg«« —^ £
daß L 2L genaue —ng bei djjhre
±o^rl
^) und (^) e^ten, um «stellen bei -
x , I und x - f a »rl.al.en, währendft und * ^a,„.η
so gew«. werden, daß sieh eine genaue Annäherung ^Ä
^r:v rtrrr g
fx _ 2Λ und fx - 4) enthalten, und g7 und g8 werden _|anze_^hl
so gewählt, daß sich eine genaue Annäherung bei ,5 bmare Zahl
x = I und χ = i ergibt. Es sei darauf hingewiesen, Zum Beispiel ist ein Wert von 7/8 zulässig, dagegen ein
Ä 30
Annäherung «,-*-.-* -*- - - ^
B, und B, dann (,-^) und (,-f) enthielte, Als Ojo^J* *
weiteres Beispiel könnten die Nullstellen χ = | und 35 ^^lf^J^tkb£ sind die binären PoIy
, - 1 in B7* und Bt wiederholt werden. In diesem nomebis jjr -JJ-^^»^ g
Falle müssen vier Gleichungen für g5, g6, g7 und g8 B-Polynome angibt, gleichzeitig gelöst werden, um eine genaue Annäherung 4o
Tabelle 1
x-Bereich von 0 bis 1, binäre Polynome
Polynom-Ordnung
Bevorzugte
go = Φ + ' Linear \ ^ gi = Φ ~
Quadratisch
Kubisch B* =
256..,, _,L· i
Quartisch
B* = ~x(l-x)(x -y)
Quintisch Bf = -^ x(l-x)(*-
Fortsetzung
Polynom-Ordnung
Polynom BJ
Bevorzugte Koeffizienten Schreibweise
Septisch
Oktisch
Bf -
B, . * x U -
2J\X 4 A
Tabelle Il
x-Bereich von -1 bis +1, binäre Polynome
Polynom-Ordnung
Linear
Quadratisch
Kubisch
Polynom B„
Bevorzugte Koeffizienten Schreibweise
B0 = 1
B1 = χ
B2 = (1+X)(I-X)
go = (b + a)
g, = (b - a)
B3 =
--X(l+X)(l-X)
Quartisch
Quintisch
Sextisch
Septisch
Oktisch
-χ)
— X (1 + X) (1 - X)(X + yj (x - yj g5 -
^i ~ TRi-
Dh — TTT^
Die ß„-Polynome sind in den Fig. 8A bis 8G von der zweiten bis zur achten Ordnung dargestellt. Die dargestellten Formen gelten auch für die BJ-PoIynome, wenn man den Bereich von χ = — 1 bis χ = +1 als Bereich von 0 bis 1 ansieht, d. h. — 1 durch 0, -0,5 durch 0,25, 0 durch 0,5 usw. ersetzt.
Das bereits an Hand der F i g. 5 und 6 erläuterte Beispiel von sin Θ zeigt, wie die binären Polynome zur Annäherung an eine vorgegebene Funktion verwendet 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ändigkeil 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„, b„,K„, die in dem Algorithmus vorkommen. τ) (x - τ) (x + τ) {x - t)
1) (x-1) g7=P
während die zur Bestimmung von yn führenden Additionen angegeben sind. Die Anfangsbedingungen sind ebenfalls eingetragen. Umlaufkanäle sind nicht dargestellt. Statt dessen enthält jeder Block eine Gleichung, die die Art ihres Umlaufkanals angibt.
F i g. 9 zeigt den quadratischen Algorithmus in
dieser Schreibweise, und die Äquivalenz von F i g. 9 mit Fig. 4 wird sofort ersichtlich. Fig. 10 zeigt den 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 sind. Ferner wird in dieser Schreibweise der notwendige Rest eines Gliedes /<„, 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.
709 B29/37E
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
Bei den soweit angegebenen Algorithmen ergeben sich keine logischen Änderungen, d.h. sobald ein logisches Glied, wie
-D
+ U
(Fig. 10) wird durch die /IDö/St/B-Steuerung des Addierers FAl in Fig. 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 FAl in Fig. 7 herumführt, gebildet.
Die Gleichungen in den Blöcken 122 und 123 (Fig. 10) werden durch die Tore 11a, 116 gebildet, die durch die Schaltung 10 nach F i g. 7 gesteuert werden.
Die /4£>D-Operation 124 (Fig. 10) wird durch den Addierer FAl in F i g. 7 bewirkt.
Die /IDÖ-Operationen 125 und 126 (Fig. 10) werden durch die Addierer FAX 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 η
TCn
-D
+ U n-\
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 für Qn auch für eine Eingabe des Gliedes 8 Qn = (6»-i)/2 z. B. über ein Zwischenspeicherregister gesorgt werden. Während also Qn^1 mit einer 4-Bitüberverschiebung für die Division durch 16 ins Q„-Register zurückgeschoben wird, um Qn zu bilden, wird Qn-i gleichzeitig nur mit einer 1-Bit-Uberverschiebung zur Durchführung einer Division durch 2 und mithin zur Bildung von 8Qn 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. 11A dargestellt, die den abgewandelten Teil von Fig. 11 bis zur Bildung von RKn zeigt. Der Rest des Algorithmus ist der gleiche.
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 Ausführungsbeispiel 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.l 2 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 an und bn 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 bn stets den neu errechneten Punktwert darstellt, d. h. (y„_,)/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 Fig. 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 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-Codierung
/Ji
35 590
von Interesse sein, und dafür gibt es dann grundsätzlich vier Möglichkeiten:
1. Bitparalleler, wortparalleler 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. Bitparalleler, wortserieller Betrieb mit hoher Geschwindigkeit.
3. BUserieller, wortparalleler Betrieb mit mittlerer Geschwindigkeit.
4. Bitserieller, wortserieller Betrieb mit niedriger Geschwindigkeit.
Diese vier Möglichkeiten können gewünschtenfalls gemischt werden.
Als Beispiel und zum Vergleichen mit Jer bitseriellen, wortparallelen Lösung nach F i g. 7 zeigen die F i g. J 4 und 15 jeweils die Grundmerkmale von Schaltungen zur Ausführung des kubischen Algorithmus in bitparalleler, wortserieller bzw. bitserieller, wortserieller Konfiguration.
Nach Fig. 14 erfolgt der Datenfluß über drei parallele Hauptkanäle (Mehrfachkanäle) Hl, H 2 und H3. Die Hiiuptkanäle Hl und Hl bilden die beiden Eingänge eines Paralleladdierers 130, der vier torgesteuerte Ausgänge Jl bis J4 aufweist. Jl und Jl sind jeweils auf H1 und Hl zurückgekoppelt. J 3 gibt ein Halbsummenausgangssignal an H3 ab, während J 4 lediglich zum Auslesen von y„ am Ende der Operation dient. H 3 sorgt für eine Paralleleingabe in die a„-, b„-, Kn- und C„-Register 131 bis 134 und wird auch zur Eingabe der Anfangswerte aus einem Festspeicher 115 oder einer anderen Quelle dieser Werte verwendet. b„ und Kn werden auf den Kanal Hl gegeben, während an und Cn auf den Kanal Hl 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 Cn-Register 133 und 134 sind Schieberegister (obwohl mit parallelem Zugriff) zur Ausführung der erforderlichen Divisionen. Das C„-Register 134 hat ferner die Möglichkeil: einer Komplementbildung zur 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 H 2 zu Kn auf H1 zur Bildung von TKn auf Jl.
2. Addition von TKn auf Hl zu a„ auf H2, Summe auf J 2.
3. Addition von TKn + a„ auf H2 zu bn auf Hl,
zur Bildung von -γ y„ auf J3 und Rückführung 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 1140, s das somit bei diesem Ausführungsbeispiel die b„-, aa-, Kn- und Cn-Register enthält. Der Ausgang des Speichers ist mit einem Eingang eines Volladdierers 141 verbunden, dessen Ausgang mit einem PulTer-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 FAl nach F i g. 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 y„ 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 y„ 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 nichtgelö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, was einer Division durch 8 (wie erwähnt) entspricht, um
n+i
2
zu bilden.
von-
zuan 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 so abgewandelt, daß yn am Ausgang J4 erscheint, und die Operation 4 wird natürlich weggelassen.
Fig. 15 zeigt, wie der kubische Algorithmus in i n
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 = TK„/4 durchgeführt wird.
3. Verschiebung von a„ aus 140 und TKn aus 142 über den Addierer zur Bildung von an + TKn und dessen Eingabe in 142.
4. Verschiebung von bn aus 140 und a„ + TKn aus 142 über den Addierer zur Bildung von yn. Bei Abwärts-Interpolation (D) erfolgt gleichzeitige Eingabe von y„ über den Kreis 145, um bn zu ersetzen, und Division durch 2 zur Bildung von bn+l = yJ2, wobei an unverändert bleibt, um an+1 = a„ zu erhalten. Bei Aufwärtsinterpolation (U) erfolgt Eingabe von y„ in 142 und Rückführung von bn über Kreis 144 zur Bildung von bn+1 = bn und Fortsetzung mit 5).
5. (Nur Aufwärts (U)). Rückführung von Cn+1 und Kn+1 in unveränderter Form über Kreis 144. Herausschiebung von a„ aus 140 und gleichzeitiges Verschieben von allein yn aus 142 über den Addierer und den Kreis 145, um a„ zu ersetzen und durch 2 zu dividieren, so daß sich ergibt an+1 = yJ2. Unveränderte Rückführung von bn+1 über den Kreis 144.
21 22
Die zur Erzielung des erwähnten Informations- Verbesserung der Genauigkeit
flusses erforderlichen Tore wurden nicht erwähnt,
weil es dem Fachmann der Rechentechnik geläufig Der wirksamste Weg, die Interpolationsgenauigkeit
ist, wie er diese Steuerung entsprechend einer vorge- zu verbessern, ist im allgemeinen der übergang auf
schriebenen Operationsfolge auszuführen hat. 5 einen Algorithmus höherer Ordnung, z. B. vom quar-
Das Ausführungsbeispjel, bei dem im bitseriellen tischen auf den sextischen. Wenn jedoch eine Gruppe
und wortseriellen Betrieb gearbeitet wird, läßt sich von Funktionen durch die gleiche Hardware erzeugt
besonders vorteilhaft in MSI- oder LSI-Technik werden soll, dann sind, darunter häufig bis zu zwei
ausführen. In dieser Technik läßt sich ein extrem Funktionen, die mehr Schwierigkeiten als die anderen
vielseitiger und genauer Funktionsgenerator nach ι ο bereiten. Wegen dieser schwierigen Funktionen kann
der Erfindung ausbilden. es daher unzweckmäßig sein, einen Algorithmus mit
höherer Ordnung zu wählen. Statt dessen können diese
Vorzeichen und andere in Betracht Funktionen nach dem an sich bekannten Interpola-
zu ziehende Faktoren lötverfahren behandelt werden, bei dem die Funk-
15 tion in mehrere Zonen oder Anfangssegmente mit
Um die Erläuterung des der Erfindung zugrunde- jeweils ihrem eigenen a, b, K, C usw. unterteilt wird,
liegenden Prinzips zu vereinfachen, wurde das Vor- So wird beispielsweise eine Quadratwurzelfunktion
zeichen bislang lediglich mathematisch berücksichtigt so in Zonen aufgeteilt, daß zumindest die Bereiche
(neben einem kurzen Hinweis auf die Komplementier- χ = 0,5 bis 1 und χ = 0,25 bis 0,5 getrennt behandelt
fähigkeit der Register 134 in Fig. 14). In der Praxis 20 werden. Obwohl mit Hilfe von Algorithmen höherer
muß jedoch auch das Vorzeichen gerätetechnisch Ordnung periodische Funktionen interpoliert werden
verarbeitet werden. können, z. B. sin Θ über 180° oder 360°, kann es den-
Das bevorzugte Verfahren besieht in der Voran- noch zweckmäßig sein, nur über 90° zu interpolieren stellung eines Vorzeichenbits vor jede Zahl und in der und eine Vorzeichen- und Komplementierlogik zur Verwendung der Zweier-Komplementform für nega- 25 Erzielung eines Vierquadrantenbetriebs, wie dies an tive Zahlen. Wenn dann die Division durch Uberver- sich bekannt ist, zu verwenden. Eine andere Möglichschiebung bewirkt wird, muß die Logik das niedrig- keit, die Genauigkeit zu verbessern, besteht darin, stellige Bit oder die niedrigstelligen Bits durch ein nicht allein errechnete Glieder zu verwenden (nach äquivalentes höchststelliges Bit ode; äquivalente der Eingabe der Anfangswerte), sondern auch Korrekhöchststellige Bits, nämlich O-Bits bei einer positiven .10 turglieder zu addieren, z. B. SK oder SC, zumindest Zahl und i-Bits bei einer negativen Zahl, ersetzen. bei den ersten Werten von n. Dies Verfahren wird je-
Im Hinblick auf die große Anzahl der angewandten doch nicht bevorzugt, weil die Korrekturglieder in
Widerholungen müssen Vorkehrungen zur Berück- einem Festspeicher gespeichert werden müssen und
sichtigung von Abrundungsfehlern getroffen werden. im allgemeinen für die verschiedenen Kurvensegmente
Der Einfachheit halber wird nicht die Verwendung 35 unterschiedlich sind. Trotzdem ist der Speicherauf-
ciner Abrundungslogik, sondern von Registern mit wand im Vergleich zu bekannten Verfahren sehr gering.
Überkapazität (überlange) bevorzugt. Für eine Ge- Die gleiche Genauigkeit läßt sich jedoch wirksamer
nauigkeit bis auf 24 Bits (Binärstellen) genügt gewöhn- durch Anwendung eines Algorithmus mit höherer
lieh ein Register mit einer Kapazität von vier über- Ordnung erzielen,
schußbits. Mit 28-Bit-Registern erhält man daher eine 40
Genauigkeit bis auf 24 Bits, bei vier Uberschußbits. Umkehrbetrieb
Die Anfangswerte von α, b und K sollten mit einem Bit
mehr vorgegeben werden, als es der gewünschten Diese Algorithmen können auch ohne weiteres im
Genauigkeit entspricht. Umkehrbetrieb bzw. auf Umkehrfunktionen ungc-
45 wandt werden, also zur Bestimmung von x. wenn y vorgegeben ist. Das Verfahren besteht in einer schritt-
Mehrfachfunktionserzcugung weisen Annäherung an v. ähnlich wie bei einem
Analog/Digital-Umsetzer. der mit schrittweiser Annä-
Es wurde zwar die Funktion sin (·) ausführlich herung arbeitet.
behandelt, doch dürfte klar sein, daß die binären 50 Im Vorwärtsbetrieb (unter Vorwärtsbetrieb wird Polynome auch zur Annäherung zahlreicher anderer hier das Gegenteil von Umkehrbetrieb verstanden) Funktionen verwendet werden können, wie Kreis-, steuern die Binärzeichen des x-Registers das Weiter-Hyperbel-, Exponential-, Wurzel-, reziproke, logarith- gehen in Aufwärts- oder Abwärtsrichtung in jeder mische und deren Umkehrfunktionen. Jede Funktion Stufe des Interpolationsalgorithmus. Beim Umkehrerfordert die Festlegung ri*s passenden Bereiches j« betrieb muß daher die Bestimmung, ob aufwärts der unabhängigen Variablen und der richtigen Koef- oder abwärts weitergegangen werden soll, durch einen flzienten α, b, K, C usw. für die Funktion. Wenn bei- Vergleich und entsprechende» Laden des x-Schiebespielsweise der quartische Algorithmus angewandt registers durchgeführt werden, wird, wird jede Funktion durch fünf Ausdrücke Als Beispiel sei wieder die Funktion sin (V und vollständig beschrieben, so daß die gleiche Hardware fto speziell der Fall arcsin 0,800... betrachtet. Mit so ausgebildet werden kann, daß sich damit jede dem ersten Schritt des Algorithmus muß dann Funktion erzeuger läßt, vorausgesetzt, daß ein kleiner sin 45 =■■ 0,7071 — gewählt werden Ein Vergleich Festspciicher zur Verfügung steht, in dem die Kocffi- mit 0.800— zeigt, daß die Lösung zu niedrig ist, zienter. für die verschiedenen Funktionen enthalten so daß der nächste Schritt ausgeführt werden muß — in nind. Ein Programm, das Zugriff zu diesen Funk- M die erste Binärstelle des x-Registers wird eine I gesetzt, tionen verlangt, braucht dann lediglich die richtigen n nÄcu.tc Versuch erf„loi mii .in #,710 -Koeffizienten sowie der. Wert der unabhängigen D" nlch"lc Ver8Uch erfo1*' m" sin 67 2 * Variablen in dem Festspeicher zu adressieren Q,«)23K Da die Lösung »zu hoch« M. erfolgt
21
der nächste Schritt nach unten, und ins x-Register 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 α-, 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 Vcrgleicher 154 signalisiert, ob yn 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 a„ b ist bestimmt durch ah K ist bestimmt durch ük
bK
K„
Bei einem gegebenen Wert von y sind daher drei Algorithmus-Durchgange erforderlich, urn die drei Koeffizienten fUr 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 naturlichen Koeffizienten K. C. Q usw. der binären Polynome sind durch diejenigen Koeffizienten
590
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 F i g. 17 ist die Länge verschiedener Ordinatenwerte dargestellt. Es sei angenommen, daß die erforderlichen Punktwerte y(0), y (-7-} usw. der anzunähernden Funktion bekannt sind. Für α und b erhält man sofort jeweils y y(Q) undyv(l). Damit ergibt
sich K als y (y)— (α + b). Damit können die beiden zusammengehörigen Gleichungen für C und Q aufgestellt werden.
Die Lösung dieser Gleichungen ergibt:
oder
Setzt man y ( j j = a + b + K und dividiert man durch 2, dann vereinfacht sich dies zu:
Dieses Verfahren kann systematisch erweitert wer den. So können zwei zusammengehörige Gleichunge
IUr / und S aus y ( 5 )und y (j^j und zwei Gleichunge IUr P und B aus y (j) und y (fy aufgestellt werden.
Die zur Durchführung des Algorithmus verwendet Hardware kann selbst zur Unterstützung der Bestirr mung der Koeffizienten durch schrittweise Intei
ft' polation bis zu χ - j , χ « ^ und ^ usw. bis zi Ordnungszahl des zur Verfügung stehenden Algi rithmus verwendet werden, um dadurch die »notwei
TMBM/a
25 26
digen Restwerte« ζ zu bestimmen, die wie folgt definiert sind:
;( — ) = .v(^r) — (lineare Interpolation bei .v = -^r), :(-7-) = 3'(x) ~ (quadratische Interpolation bei .v = -j-j, :(-j) = )'("T") ~ (quadratische Interpolation bei χ = -τ-), z( —) = yi-5-) — (sextische Interpolation bei χ = — -),
r ( —-) = ν (-=-) — (quartische Interpolation bei .x = -5-), V.Ö / * \8 / \ ö/
ζ ( — ] = ν f-jr J — (quartische Interpolation bei χ = —), \8/ \8/ \ ö/
z(—) = ν(-JT) — (sextischc Interpolation bei χ = -^-). \8/ \8/ \ ο/
Zur Vereinfachung der Schreibweise wird im l'ol- sierenden x-Bereiches angegeben. Es hat sich gezeigt,
a ^1N.ic /^oif, ,^3V1Ic, ncv daß die folgenden quintischen und sextischen Koeffigenden ζ ^j als Z1, ζ ^j air, z2, ζ ^j als z3 usw. zienten die bGenau^keit elwas verbessern, wenn die
geschrieben. Dann läßt sich zeigen, daß gilt: Polynome beim sextischen Glied abgebrochen werden,
3ü und offensichtlich sind sie auch sehr viel einfacher K = ζ* > zu bestimmen als die natürlichen Koeffizienten:
r X <- ,\ ^1 = - 2j - Z3 + Z5 + Z7,
35 ° — ■> v*i '3 's τ '-i\ ,
1 L
Q = ~2 \zf<~ *2i 1 wobei alle vier z-Werte nach der quartischen Approxi
mation bestimmt werden.
3 Derartige abgewandelte Koeffizienten können auch
1 = -^ (2.1 - 2j), 4o dadurch ermittelt werden, daß man Koeffizienten
höherer Ordnung als eigentlich erforderlich bestimmt
S= -4(* + - ) 11110I die Information von diesen aus zurück in die
"5 ' tatsächlich erforderlichen Koeffizienten »telcskopicrt«.
ρ _ , _ z Wenn beispielsweise beim sextischen Glied abgc-
"7 ''" 45 brechen wird, jedoch die septischen und oktischen
2 Koeffizienten bestimmt werden, dann IHßt sich das E = -γ (z7 + Z1). folgende einfache Schema
Abwandlung der natürlichen Koeffizienten so /' - / + — P, Es lassen sich viele Verfahren angeben, um die
natürlichen Koeffizienten so abzuwandeln, daß ent- 9
weder die Oenauigkeit der Interpolation verbessert S' ■ S + -^ E oder die Koefflzientenbestimmung vereinfacht wird. 8
Diese Betrachtung ist nicht sehr wichtig, wenn die 5S . . . _ ,. . ,,
Koeffizienten für eine genormte Funktionserzeugung oder ein erweitertes Schema aufttellen: programmiert werden, jedoch dann wichtig, wenn
die Erfindung bei einer im Echtzeitbetrieb arbeitenden q> m C + L. schnellen Datenverarbeitungsanlage angewandt wird. 16*
Bei einem derartigen Betrieb wird die Hardware so ao
programmiert, daß die Koeffizienten in regelmäßigen Ql Q E
Abständen von den Datenabtastungen bestimmt wer- * · ~ 12' den und zwischen diesen Abständen die Interpolation in der gewünschten Weise durchgeführt wird. 9
Die Oenauigkeit einer polynomen Annäherung "* * ■ ' + β Ρ. einer Funktion wird normalerweise durch die schlechteste Differenz zwischen der Annäherung und der 9
richtigen Funktion an irgendeiner Stelle des interes- S' ■ S + -^ E.
Es wurde gezeigt, daß sich bei Anwendung dieses letzten Schemas auf cos (-) von 0r bis 90" eine schlechteste Differenz ergibt, die nur das l,20fache derjenigen beträgt, die sich durch die Tschebyscheff-Polynomanordnung sechster Ordnung ergibt (Tschebyscheff-Polynome sind als die genaueste polynomc 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,03fachen derjenigen nach Tschebysch e fr.
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 verwendet werden. Wählt man den normalen Bereich von 0 bis 1 und nimmt man an, daß die natürlichen Koeffizienten a, b, Ky C und Q dafür bereits bestimmt wurden, dann erhält man für die Koeffizienten a\ b\ K\ C und Q' im Bereich von χ = 0 bis χ = 2 folgendes:
a' = a,
b' = Ib - a - 4K - 32C - 192ß,
K' = AK + nc + 192Q,
C = 8C + 64Q,
Q' = 16ß.
Rechneraufbau
ίο 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 χ und y entspricht der linearen
Interpolation mit a = 0, b =-=- >', 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)

Patentansprüche:
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 )0 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 interpolierten Wert nachgestellt wird, der näher bei dem vorgegebenen Wert der unabhängigen Variablen liegt, 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ärwerts 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 Register (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 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 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 (Si? A, 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 oheren 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 Korrektur wert en 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. Schaltungsanordnung 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 Korrekturwertes 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 Wert 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 vorbestimm-
C. 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 1 bis 9, dadurch gekennzeichnet, daß die Register [SRA, SRB, SRK) Schieberegister sind und daß mehrere Volladdierer (FA\, FA3) 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 Korabinationen 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 Steuermittel vorhanden sind, die derart betreibbar sind, daß sie die Tore in einer solchen Reihenfolge ansteuern, daß die linearen 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, F i g. 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 de-n Eingang des Pufferregisters und einem Ural&uflcreis zur Rückleitung der linearen Kombinationen in die verschiedenen Teile des Hauptregisters über eine Divisionslogik (143) verbunden ist, die derart betreibbar ist, daß sie die Kombinationen durch die einsprechenden Potenzen von 2 dividiert.
DE2135590A 1970-07-17 1971-07-16 Schaltungsanordnung zum Interpolieren des Wertes einer Funktion einer unabhängigen Veränderlichen Expired DE2135590C3 (de)

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 true DE2135590B2 (de) 1977-07-21
DE2135590C3 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4406300A1 (de) * 1994-02-26 1995-08-31 Itt Ind Gmbh Deutsche Iterativer Interpolator

Families Citing this family (52)

* Cited by examiner, † Cited by third party
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
CA1270953A (en) * 1986-05-23 1990-06-26 Satoshi Naoi Method of curve approximation
US4823298A (en) * 1987-05-11 1989-04-18 Rca Licensing Corporation Circuitry for approximating the control signal for a BTSC spectral expander
USRE38427E1 (en) * 1987-10-27 2004-02-10 Stmicroelectronics S.A. Linear interpolation operator
FR2622320B1 (fr) * 1987-10-27 1990-11-30 Thomson Semiconducteurs Operateur d'interpolation lineaire
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
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
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
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
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
US20030187893A1 (en) * 2002-04-01 2003-10-02 Kun-Nan Cheng Method of data interpolation with bi-switch slope control scaling
TWI234746B (en) * 2002-04-01 2005-06-21 Mstar Semiconductor Inc Scaling method by using symmetrical middle-point slope control
US20030187613A1 (en) * 2002-04-01 2003-10-02 Kun-Nan Cheng Method of data interpolation using midpoint slope control scaling
TWI223781B (en) * 2002-04-01 2004-11-11 Mstar Semiconductor Inc Scaling method by using dual point slope control
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 カシオ計算機株式会社 グラフ表示装置、プログラム、およびサーバ装置
JP6244901B2 (ja) 2013-12-27 2017-12-13 カシオ計算機株式会社 グラフ表示制御装置、電子機器およびプログラム
JP6318615B2 (ja) 2013-12-27 2018-05-09 カシオ計算機株式会社 グラフ表示制御装置、電子機器およびプログラム
JP6287412B2 (ja) 2014-03-19 2018-03-07 カシオ計算機株式会社 図形描画装置、図形描画方法およびプログラム
JP6394163B2 (ja) 2014-08-07 2018-09-26 カシオ計算機株式会社 グラフ表示装置、グラフ表示方法およびプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4406300A1 (de) * 1994-02-26 1995-08-31 Itt Ind Gmbh Deutsche Iterativer Interpolator

Also Published As

Publication number Publication date
CA950120A (en) 1974-06-25
FR2099446A1 (de) 1972-03-17
US3789203A (en) 1974-01-29
AU3132471A (en) 1973-01-18
NL7109799A (de) 1972-01-19
JPS549455B1 (de) 1979-04-24
GB1363073A (en) 1974-08-14
FR2099446B1 (de) 1973-06-29
DE2135590C3 (de) 1978-03-16
DE2135590A1 (de) 1972-01-20
IT940163B (it) 1973-02-10

Similar Documents

Publication Publication Date Title
DE2135590B2 (de) Schaltungsanordnung zum interpolieren des wertes einer funktion einer unabhaengigen veraenderlichen
DE2321112C2 (de) Signalverarbeitungsanlage
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE3202365A1 (de) Datenspeicher mit fensterabtastung
DE2835689A1 (de) Anordnung zur veraenderung der aufloesung bei der bild-datenerfassung und -uebertragung
DE2311220A1 (de) Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung
DE2712224A1 (de) Datenverarbeitungsanlage
DE1549584A1 (de) Datenverarbeiter zum Erhalt komplexer Fourierreihe-Koeffizienten
DE3632639A1 (de) Einrichtung zum verarbeiten von bilddaten durch faltung
DE2606931A1 (de) Verfahren zur erzeugung von werten mathematischer funktionen
DE2221693A1 (de) Anordnung zur Ausfuehrung einer Multiplikation in einem Rechner
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE1115488B (de) Datenverarbeitungssystem
DE3303269C2 (de)
DE2506671C3 (de) Binärdaten-Handhabungsnetzwerk
DE2034841A1 (de) Digital Rechenanlage
DE1271433B (de) Adressiereinrichtung fuer einen Tabellenwertspeicher
DE60109344T2 (de) Hochgeschwindigkeitscodierer für Faltungscodes
DE2612665A1 (de) Konvolutionsfunktionsgenerator und dessen anwendung in digitalfiltern
DE2426253C3 (de) Vorrichtung zunv ZAehen det Quadratwurzel aus einer binären Zahl
DE3341339C2 (de) Befehlsfolgegenerator
DE2855946A1 (de) Pla-addierschaltung
DE2324692C2 (de) Digital-Analog-Wandler
DE1549461C3 (de)
DE1449540A1 (de) Digital-Rechenmaschine

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee