DE2736072A1 - Winkelfunktionsgenerator - Google Patents

Winkelfunktionsgenerator

Info

Publication number
DE2736072A1
DE2736072A1 DE19772736072 DE2736072A DE2736072A1 DE 2736072 A1 DE2736072 A1 DE 2736072A1 DE 19772736072 DE19772736072 DE 19772736072 DE 2736072 A DE2736072 A DE 2736072A DE 2736072 A1 DE2736072 A1 DE 2736072A1
Authority
DE
Germany
Prior art keywords
sin
bits
rom
last value
cos
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.)
Withdrawn
Application number
DE19772736072
Other languages
English (en)
Inventor
Thomas Peter Lind
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Singer Co
Original Assignee
Singer Co
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 Singer Co filed Critical Singer Co
Publication of DE2736072A1 publication Critical patent/DE2736072A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0356Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/04Trigonometric functions

Description

Patentanwalt DIPL-PHYS. DR. W. LANGhIOFF Rechtsanwalt B. LANGHOFF*
MÜNCHEN 81 · WISSMANNSTRASSE 14 TELEFON 93 27 74 TELEGRAMMADRESSE: LANGHOFFPATENT MÜNCHEN
München, den 10.8.19 77 Unser Zeichen: 33-1708
Patentanmeldung
der
THE SINGER COMPANY, 321 First Street, Elizabeth, N.J.07207
USA
Winkelfunktionsgenerator
809807/0795
* Ständiger allgemeiner Vertreter nach § 46 PatAnwO, zugelassen bei den Landgerichten München I und D.
Die Erfindung bezieht sich auf die Berechnung trigonometrischer Funktionen eines Winkels und betrifft insbesondere die Verringerung des Schaltungsaufwandes dafür durch Unterteilung des Winkels in eine Anzahl kleinerer Teilwinkel.
Bisher wurde Software in einem iterativen Verfahren zur Entwicklung der Sinusfunktion gemäß der unendlichen Reihe verwendet:
SiNUS(X) = 2L+2L +2L + ....
3! 5! 7!
Diese Annäherung in einer unendlichen Reihe ist langsam, insbesondere, wenn eine hohe Genauigkeit erfordert wird.
Zum Ablesen der trigonometrischen Funktionen bei weniger genauen Anwendungen werden einfache Hardware-Nachschlagetabellen verwendet. Da Eingangs-Bits (NE) zur Erhöhung der Genauigkeit hinzugefügt werden, verdoppelt sich die Anzahl der Adressteilen in den Tabellen gemäß der Beziehung :
NF
Anzahl der Stellen = 2
Bei Verwendung von 20 Eingangs-Bits (NE =20) benötigt man über 1 000 000 ROM-Stellen. Diese Hardware-Tabellentechnik ist sehr viel rascher als die Software-Technik mit der unendlichen Reihe, jedoch weniger genau mit einem vernünftigen Hardware - Aufwand.
Die US-PS 3 813 528 mit dem Titel "Schneller Funktionsgenerator" entwickelt eine Tabellentechnik für
809807/0795
trigonometrische Funktionen, bei der der Winkel entsprechend der nachstehenden trigonometrischen Beziehung in
zwei kleinere Winkel unterteilt wird:
SINU+II) = SIN(I)COS(II) + COS(I)SIN(II).
Der Erfindung liegt die Aufgabe zugrunde, die trigonometrischen Funktionen eines binären Winkels durch Unterteilung dieses Winkels in eine Reihe allmählich kleiner werdender Teilwinkel zu schaffen, die durch konsekutive Gruppen
binärer Stellen gebildet werden.
Ferner soll mit weniger Schaltungsaufwand rasch und genau die Sinusfunktion einer Reihe von Teilwinkels gebildet
werden. Weiterhin soll rasch und genau die approximative Sinusfunktion gemäß einem Algorithmus gebildet werden, der von den Näherungen für die Sinus- und Cosinuswerte sehr kleiner Winkel abgeleitet ist. Schließlich soll rasch und genau die Sinusfunktion von einem monotonen approximativen Sinusalgorithmus gebildet werden.
Die Erfindung geht aus von einer Vorrichtung zum Bestimmen der Sinusfunktion mit NA Ausgangsbits eines mit NI Binärstellen dargestellten Eingangswinkels zum Liefern der
Funktion SIN(EINGANG) mit NA Bits und löst die gestellte Aufgabe durch eine Eingangsschaltung zur Aufnahme von NE Binärstellen des Eingangswinkels und zum Erzeugen einer Anzahl allmählich kleiner werdender Teilwinkel A,B,C, ... Letztwert-1, und Letztwert, die durch aufeinanderfolgende Gruppen sequentieller Binärstellen gebildet werden, so daß der
Eingangswinkel = A+B+C+...Letztwert-1, + Letztwert, und Eingangewinkel> A> B> C> ....Letztwert-1 > Letztwert ist, und durch eine Anzahl Funktionegeneratoren, die jeweils einen Tern der angenäherten Sinusbeziehung liefern:
SIN(EIMGANG). SIN(A)+COS(A)SIN(B*C+..Letztwert-1 + Letztwert),
809807/0795
Die Erfindung ist nachstehend anhand schematischer Zeichnungen näher beschrieben. Es zeigt:
Fig. 1 ein Blockdiagramm, das den Schaltungsaufwand zur Implementierung eines Sinus-Näherungsalgorithmus mit vier Teilwinkeln veranschaulicht;
Fig. 2 ein Flußdiagramm, das die Verringerung der ROM-Adreßstellen jeder der bei der Ableitung des Sinus-Näherungsalgorithmus verwendeten Näherungen (Gleichung 1) aufzeigt;
Fig. 3 ein Teil des gegen den Winkel aufgetragenen
genauen Sinuswertes und des approximativen Sinus (Gleichung 1), und
Fig. H ein Blockdiagramm einer allgemeinen Schaltung, welche alle sechs trigonometrischen Funktionen von 0 bis 2ir liefert.
Fig. 1 zeigt ein Blockdiagramm eines Sinus-Funktionsgenerators 100, der am Eingang 110 einen binären Eingangswinkel (EINGANG), im folgenden "Eingang" genannt, empfängt und am Ausgang 120 SINUS(EINGANG)liefert. Der Eingang hat N(Eingang) = NE Binär-Bits, die in dieser Ausführungsform in vier allmählich kleiner werdende Teilwinkel A,B,C und D aufgeteilt werden, wobei die höchstrangige Bit-Gruppe (Na) A ergibt, welches der größte Teilwinkel ist, die nächstrangige Bitgruppe (Nb) B ergibt, usw. ... und die niedrigstrangige Bitgruppe (Nd) D ergibt, welches der kleinste Teilwinkel ist, entsprechend:
EINGANG = A+B+C+D EINGANG >>A > B > C > D, und NA = Na + Nb + Nc + Nd .
Jeder Teilwinkel wird durch aufeinanderfolgende Gruppen von Binärstellen des EingangswinkeIs gebildet. Die vier Teilwinkel werden weitergegeben zu den ROMs 130, ItO, 150 und 160 und ergeben die vier Terme des Sinus-Näherungsalgorithmus:
809807/0795
(Gleichung 1):
SINUS(EINGANG) = SIN(Ap+As) + COS(Apb+Asbmax)SIN(B)
+ COS(Apc+Ascmax)SIN(C) +COS(Apd+Asdmax)SIN(D)
Der Ausgang der vier ROMs wird im Termaddierer 170 summiert und bildet den SIN(EINGANG) mit N(Ausgang) = NA Bits am Ausgang 120.
Bei dem obigen Sinus-Näherungsalgorithmus (Gleichung 1) wurde der Teilwinkel A des ersten Term weiter in einen durch die MSBs (höchetrangige Bits) von A gebildeten Primäranteil (Ap) und einen durch die übrigen LSBs (niedrigstrangige Bits) von A gebildeten Sekundäranteil (As) aufgeteilt. Die anderen Terme haben in gleicher Weise durch die MSBs von A gebildete Primäranteile Apb, Apc und Apd sowie durch mindestens einen Teil der übrigen LSBe von A gebildete Sekundäranteile Asb, Asc und Asd. Die Sekundäranteile haben einen konstanten oder vorbestimmten Wert, um die Anzahl der von den ROMs benötigten Adreßstellen möglichst gering zu halten. Für jeden variablen Bit-Eingang des Teilwinkels A in einem durch eine Konstante ersetzten Term ist die Anzahl der von dem ROM benötigten Adreßstellen um die Hälfte verringert, gemäß der folgenden Beziehung:
Adreßstellen = 2(Bits variablen Eingangs) Insbesondere gilt für den zweiten Term COSINUS(Apb+Asbmax)SINUS(B):
ROM IHO Stellen = 2 (APb+Asb+B>
Wird Asb bei Asbmax fest, so reduziert sich die Adressenerfordernis auf:
ROM mo Stellen = 2<Apb+B)
Der vorbestimmte Wert jedes Sekundärterms ist vorzugsweise der Höchstwert, bei dem der Sinus-Näherungsalgorithmus (Gleichung 1) seine Monotonizität aufrechterhält} d. ist die Fähigkeit der Beziehung, kontinuierlich bei steigenden Werten des EINGANGS zuzunehmen. Die Anzahl der Bits bei den variablen Primäranteilen von A und bei den festen Sekundäranteilen von A in jedem Term kann bei jeder Anwendung entsprechend den Raum- und Genauigkeitsforderungen variieren.
809807/0795
Der Algorithmus der Gleichung 1 wird aus der trigonometrischen Grundformel abgeleitet:
(Gleichung 2): SINU + II) = SIN(I)COS(II) + COS(I)SIN(II), wobei die drei untenstehenden Näherungen verwendet werden. Es sei angenommen, daß I + II = EINGANG = Reihe von Teilwinkeln A + B + C + ...
... + Letztwert-1 + Letztwert ist wobei gilt:
EINGANG>> A> B> C> ....> Letztwert-1 > Letztwert I (ein großer Winkel) = A II (ein kleiner Winkel) = B + C + ... . Letztwert-1 +
+ Letztwert.
Reduziert man die Teilwinkelreihe auf vier Teile, so ergibt dies:
(Gl.3): SIN(EINGANG) = SIN(A)COS(B+C+D) + COS(A)SIN(B+C+D) , da der cos des sehr kleinen Winkels B+C+D sich der Einheit nähert (Näherung eins), kann C0S(B+C+D) in Gleichung 3 durch "1" ersetzt werden, was ergibt: (Gl. 4):SIN(EINGANG) = SIN(A) + COS(A)SIN(B+C+D).
Zweitens kann, da der sin des sehr kleinen Winkels B+C+D in Radian sich dem numerischen Wert von B+C+D nähert (Näherung zwei), SIN(B+C+D) durch SIN(B) + SIN(C) + SIN(D) ersetzt werden, was ergibt:
(Gl. 5): SIN(EINGANG) = SIN(A) + COS(A)SIN(B)
+ COS(A)SIN(C)
+ COS(A)SIN(D)
Drittens wird A in jedem Term in einen variablen Primäranteil Ap- und einen festen Sekundäranteil As- aufgeteilt, was ergibt:
809807/0796
(61. 6): SIN(EINGANG) = SIN(Ap+As) + COS(Apb+Asb)SIN(B)
+ COS(Apc+Asc)SIN(C) + COS(Apd+Asd)SIN(D)
Bringt man jeden festen Sekundäranteil As- der Gleichung 6 auf den durch die Anzahl dort vorhandener Binarstellen ermöglichten Wert (Näherung drei), so ergibt dies den Sinus-Näherungsalgorithmus (Gleichung 1).
Vier Teilwinkelausführungsformenjnit„NE_=20
Die den Winkel ausdrückenden Eingangsbits können auf vielerlei Weise in eine Reihe allmählich kleiner werdender Teilwinkel aufgeteilt werden. Für NE = 20 werden die Eingangsbits vorzugsweise in eine viergliedrige Teilwinkelreihe aufgeteilt:
A B C D
1-2-3-4-5-6-7-8-9 lo-U-12 13-14-15-16 17-18-19-20
A hat 9 Bits (Na=9)
B hat 3 Bits (Nb=3)
Apb hat 6 Bits
Asbmax hat 3 Bits
C hat 4 Bits (Nc*4)
Apc hat 5 Bits
Ascmax hat 4 Bits
D hat 4 Bits (Nd=4)
Apd hat 5 Bits
Asdmax hat 4 Bits
Die festen Bits der Sekundäranteile von A bei jedem Term erfordern keine entsprechenden Adreßstellen innerhalb der ROMs. Die Summe der variablen Bits jedes Terms ist neun und
Erster Term =
Zweiter Term =
Dritter Term =
Vierter Term
809807/0795
ROM Adressteilen = 2 (An2ahl der variablen Bits) 2736072
= 29
= 512
Vier ROMs mit 512 Adressteilen mit je neun Bits ist gerade die richtige Größe für die obige Ausführungsform mit vier Termen und NE = 20.
Größere ROMs können mehr variable Bits verarbeiten und ermöglichen größere Primäranteile von A (variabel) und kleinere Sekundäranteile von A (fest), was einen genaueren SINUS(EINGANG) am Ausgang 120 ergibt.
Einfluß von Näherungen nach Gleichung 1 auf die Verringerung
Fig. 2 zeigt ein Flußdiagramm, das die für die bekannte Näherung erforderliche ROM-Größe zeigt sowie die Verringerung derselben aufgrund jeder Näherung nach der vorliegenden Erfindung.
Bei einem EINGANG mit 20 Bits (NE = 20). wäre bei der bekann-
20 ten Näherung mit einem einzigen Winkel ein ROM mit 2 Stellen erforderlich, oder 2OU8 ROMs mit 512 Stellen. Mit der vorliegenden Erfindung wird diese Erfordernis durch den Faktor 512 geteilt und ergibt lediglich vier ROMs (ein ROM für jeden Term der Gleichung 1) mit je 512 Stellen. Ursprünglich ergibt die Substitution der trigonometrischen Identität (Gl. 2) Gleichung
20 3 mit zwei Ausgangstermen, wobei jeder 2 Stellen erfordert.
Die Näherung eins gilt für den ersten Ursprungsterm der Gleichung 3 (der der erste Term der Gleichung 1 wird), wobei der Teilwinkel B (3 Bits), der Teilwinkel C (U Bits) und der Teilwinkel DC+ Bits) unterdrückt werden. Die Unterdrückung von elf Bitstellen reduziert den ROM-Bedarf des ersten Term um einen Faktor 2096 (211) auf eine ROM-Größe von 512 (29).
80*807/0796
Die Näherung zwei gilt für den zweiten Ursprungsterm und erzeugt drei neue Terme mit weniger Eingangswert-Bitstellen, die jeweils «+096, 8192 bzw. 8192 ROM-Stellen erfordern.
Die Näherung drei gilt für die obigen drei neuen Terme und unterdrückt die Eingangsbits durch Abrunden der niedrigstrangigen Bits der Sekundäranteile As jedes Terms auf einen festen Wert. Für jedes abgerundete Bit verringert sich der ROM-Bedarf um die Hälfte. Die Anzahl der abgerundeten bzw. festen Bits kann je nach der gewünschten Genauigkeit und dem zulässigen Schaltungsaufwand unterschiedlich sein.
Bei dem ersten neuen Term (der der zweite Term der Gleichung 1 wird) werden drei der neun Bits des Teilwinkels A in dem Sekundäranteil Asbmax festgelegt, und sechs variable Bits verbleiben in dem Primäranteil Apb. Diese sechs Bits bilden zusammen mit drei weiteren Bits des Teilwinkels B neun Bits
variablen Eingangs, die lediglich 512 (2 ) ROM-Stellen erfordern.
Bei dem zweiten neuen Term (der der dritte Term der Gleichung 1 wird) werden vier der neun Bits des Teilwinkels A in Ascmax festgelegt, und fünf variable Bits verbleiben für Apc. Diese fünf variablen Bits erfordern zusammen mit vier weiteren variablen Bits des Teilwinkels lediglich 512 ROM-Stellen.
In gleicher Weise wird der dritte neue Term (der der vierte Term der Gleichung 1 wird) auf fünf variable Bits in Apd und vier variable Bits im Teilwinkel D reduziert und erfordert lediglich 512 ROM-Stellen.
809807/0796
Fig. 3 zeigt einen Teil der exakten Sinusfunktion und des gegen den Eingangswinkel aufgetragenen Sinus-Näherungsalgo" rithmus (Gleichung 1). Der durch die Näherungen eins, zwei und drei eingeführte geringfügige Fehler summiert sich peri~ odisch und bewirkt, daß der Näherungsalgorithmus periodisch abweicht und wieder zum exakten Sinuswert zurückkehrt. Der Algorithmus entspricht zu Beginn und am Ende jedes Teilwinkels A (den Ap+As-Subtermen des ersten Terms der Gleichung 1) genau der exakten Sinusfunktion. Dieser fehlerfreie Zustand tritt immer dann auf, wenn alle Binärstellen der zweiten, dritten und vierten Terme gleich Null sind. Diese letztgenannten Terme enthalten alle durch die Näherung eingeführten Fehler. Der erste Term ist immer fehlerfrei. Der fehlerfreie Zustand tritt an Vielfachen des Teilwinkels A auf, die gleichmäßig verteilt sind bei:
Winkel zwischen fehler- 2 π = J__ = _ rad
freien Punkten : pil" ^ 29 Io24
Die Treppenstufenwirkung zwischen den fehlerfreien Punkten ist durch die Quantelung des LSB des EINGANGS verursacht. Es sind 2(Nb+Nc+Nd) s 211 .
Stufen oder LSB-Inkremente zwischen jedem fehlerfreien Punkt vorhanden, und der LSB-Inkrement-Winkel ist:
., O20 2,097,152
809807/0795
Aufgrund der As-max zugeordneten Werte summiert sich der Fehler zwischen fehlerfreien Punkten, und die LSB-Inkrementtreppenstufe entfernt sich von der exakten Sinusfunktion. Diese Abweichung wird an jedem fehlerfreien Punkt durch eine Korrektur beseitigt. Die Monotonizität des approximativen Sinusalgorithmus (und ebenso der genauen Sinusfunktion) ist aus Fig. 3 ersichtlich. Denn der Algorithmus nimmt mit steigendem EINGANG zu und nimmt niemals ab, wenn der EINGANG zunimmt.
Die Näherungen eins und zwei in den Termen 2, 3 und 4 hängen con den Eigenheiten kleiner cos-Winkel (d.h. Teilwinkel B, C und D) ab, und der daraus resultierende Fehler hängt davon ab, wie NE zwischen (Na) und (Nb+Nc+Nd) liegt, Der Fehler bei den Näherungen eins und zwei kann dadurch reduziert werden, daß man dem Teilwinkel A mehr Eingangsbits zuordnet.
Die Näherung drei in den Termen 2, 3 und H hängt von dem durch die Multiplikation bei jedem dieser Terme bedingten Verlust an LSBs ab. Die LSBs des Teilwinkels A in diesen Termen können abgerundet werden oder vorbestimmte Werte aufweisen, wie As-rnax, und zwar ohne wesentlichen Fehler, da das Produkt dieser LSBs hinter die Rundungsstelle fällt (Stelle, hinter der die darauffolgenden Ziffern nicht mehr berücksichtigt werden). Der geringfügige Fehler bei dem vorbestimmten Wert ist sogar kleiner, wenn die Größe der Teilwinkel abnimmt. Als Ergebnis gilt, daß die letzteren Terme der Gleichung 1 größere Näherungen (mehr feste Bits) aufnehmen können, ohne daß die Fehler wesentlich zunehmen. Allgemein ausgedrückt kann die Anzahl der abgerundeten Bits in jedem Sekundäranteil As- des Teilwinkels A zunehmen, wenn der Rang der Terme abnimmt. Das bedeutet:
Naeb = Nase = .... NasLetztwert-1 = Lasletztwert .
Daraus folgt zwangsläufig, daß die Anzahl variabler Bits im übrigen Anteil Ap- des Teilwinkels abnimmt, wenn der Rang der Terme abnimmt:
809807/0795
- tff" -
Napb - Nape - .... NapLetztwert-1 - NapLetztwert
Die Anzahl der dem Teilwinkel A in jedem ROM zugeordneten Eingangsstellen kann ohne wesentliche Zunahme an abgerundet ten Fehlern abnehmen; es können· auch mehr ROM-Eingangssteilen dem anderen Teilwinkel jedes Terms zugeordnet werden, so daß ein größerer NE ohne zusätzlichen Schaltungsaufwand erzielt werden kann. Bei einer einheitlichen ROM-Größe für jeden Term der Gleichung 1, ausgedrückt durch
Napb+Nb = Napc+Nb = ... NapLetztwert + NLetztwert,
und einer abnehmenden Eingangsstellenzuordnung zu dem variablen Anteil Ap- des Teilwinkels A, ausgedrückt durch
Napb - Nape - ... NapLetztwert,
ist eine zunehmende Anzahl von Eingangsstellen für den anderen Teilwinkel in jedem Term verfügbar:
Nb-Nc- ... NLetztwert.
Allzweck^-^Ausführungsforin
Fig. 4 zeigt eine Allzweck-Schaltung 400, welche alle sechs trigonometrischen Funktionen von 0 bis 2tr auf der Grundlage der Sinusfunktionstabellen (0 bis π/2) in der Schaltung 100 nach Fig. 1 liefert. Der Eingangswert am Eingang mo umfaßt NE (20 Bits) plus ein SIN/COS Funktionskennzeichen (1 Bit) sowie ein Quadrantkennzeichen (2 Bits). Die Kennzeichenbits werden durch eine 3-zu-2-Entschlüsselungseinrichtung 420 verarbeitet und liefern ein SIN/COS-Wählsignal SEL und ein Vorzeichenwählsignal SIGN SEL. Die SEL-Signale steuern den Datenfluß zur und von der Sinusfunktionsschaltung 100, wodurch die einzige Sinusfunktion des
809807/0796
Quadranten I folgendes erzeugt:
+ Cosinusfunktion des Quadranten II,
- Sinusfunktion des Quadranten III, und
- Cosinusfunktion des Quadranten IV.
Die Cosinusfunktion für die Quadranten II und IV wird durch Erzeugen des Wertes (1/2ιτ - DATENEINGANG·) an der das Eingangskomplement bildenden Schaltung 4 30 gewonnen. Sowohl DATENEINGANGSWERT als auch (1/2π - DATENEINGANG) erscheinen bei MUX 440, und einer der Werte wird zur Sinusfunktionsschaltung 100 weitergegeben in Abhängigkeit von dem SIN/COS-Wählsignal SEL. Der Ausgang der Schaltung 100 ist entweder
SIN(EINGANG)
oder SIN(l/2ff - EINGANG) = COS(EINGANG).
Ein Ausgangskomplementbildner 450 liefert in Abhängigkeit von dem Vorzeichenwählsignal SIGN SEL die negativen Sinus- und Cosinusfunktionen für die Quadranten III und IV.
Die anderen trigonometrischen Funktionen können durch das Divisionsnetz 460 aus dem SIN(EINGANG) im Sinusregister 470 und dem COS(EINGANG) in dem Cosinusregister 480 geliefert werden.
Bevorzugte Hardware für die Ausführungsform mit vier
Das ROM 130 kann ein 512 χ 24 Bit-PROM sein (sechs Speicher NMI 6306) zur Aufnahme des Teilwinkels A (9 Bits) und für 24 Bits Ausgangsauflösung.
Das ROM 140 kann ein 512 χ 16 Bit-PROM sein (vier Speicher NMI 6306) zur Aufnahme von Apb (6 Bits) und des Teilwinkels B (3 Bits) und für 16 Bits Ausgangsauflösung.
809807/0795
Das ROM 150 kann ein 512 χ 12 Bit-PROM sein (drei Speicher NMI 6306) zum Aufnahme von Apc (5 Bits) und des Teilwinkels C (4 Bits).
Das ROM 160 kann ein 512 χ 8 Bit-PROM sein (zwei Speicher NMI 6306) zur Aufnahme von Apd (5 Bits) und des Teilwinkels D (U Bits).
Die Breite der ROMs nimmt ab, da
SIN(A) >> COS(Apb+Aspmax)SIN(B) > COS(Apc+Ascmax)SIN(C) >Cos(Apd+Asdmax)SIN(D)
was eine allmählich ansteigende Anzahl Anfangsnullen für die letzteren Produktterme ergibt. Ferner fällt eine allmählich ansteigende Anzahl an LSBs in den letzteren Produkttermen nach rechts von der Rundungsstelle und gehen damit verloren. Die Aufteilung der NE in eine Anzahl von Teilwinkeln verringert nicht nur die Anzahl der Adreßstellen (oder der Höhe) jedes ROM, wie in Fig. 2 dargestellt ist, sondern verringert auch die Anzahl bedeutender Binärstellen (oder der Breite) jedes ROM, wie oben beschrieben wurde. Die Gesamtverringerung der ROM-Zone (Höhe χ Breite) verglichen zwischen bekannten Ausführungsformen und der vorliegenden Erfindung ist:
(1 048 576 Höhe)(24 Bits Breite) = 26 165 824 Bits
Erster Term (512 Höhe)(24 Bits Breite) = 12 288 Bits Zweiter Term (512 Höhe)(16 Bits Breite) = 8 192 Bits Dritter Term (512 Höhe)(12 Bits Breite) = 6 144 Bits Vierter Term (512 Höhe)(8 Bits Breite) =_]ία096_Βΐΐ8 insgesamt vorliegende Erfindung = 30 720 Bits
809807/0795
/19
ROM-Zone Stand der Technik = 25,165,824 = 819.2
ROM-Zone vorliegende Erfindung
30,720
Die in Verbindung mit Fig. 2 hergestellte Größe 512 bezieht sich auf das Verhältnis der Adreßstelle des bekannten ROM zu den ROMs nach der vorliegenden Erfindung.
Der Termaddierer 170 kann aus zwei Teilsummenaddierern (74283) bestehen, auf die jeweils ein Teilsummenregister (74174) folgt, welche kaskadenartig mit einem Gesamtsummenaddierer (74283) verbunden sind.
Erhöht man die Anzahl der Teilwinkel, so entsteht ein zusätzlicher Term in dem Sinus-Näherungsalgorithmus (Gl. 1), was ein zusätzliches ROM erfordert. Der Gesamtbedarf der Adreßstellen wird jedoch verringert. Beispielsweise könnten zwanzig Eingangsbits wie folgt in fünf Teilwinkel aufgeteilt werden:
A B C D E
1-2-3-4-5-6-7-8 9-10 11-12-13 14-15-16 17-18-19-20
Erster Term Zweiter Term
Dritter Term
Vierter Term
A hat 8 Bits B hat 2 Bits (nb=2) Apb hat 6 Bits Apbmax hat 2 Bits C hat 3 Bits (Nc=3) Apc hat 5 Bits Ascmax hat 3 Bits D hat 3 Bits (Nd=3) Apd hat 5 Bits Asdmax hat 3 Bits
809807/0795
Fünfter Term - E hat 4 Bits (Ne=U)
Ape hat 4 Bits Asemax hat 4 Bits
Es wird ein 256-ROM für jeden Term benötigt, und die Gesamtadreßstelle ist lediglich 1280 (entgegen 2048 bei der Ausführungsform mit vier Teilwinkeln nach Fig. 1). Der Fehler des vorbestimmten Wertes der Näherung drei wird kleiner, da bei den früheren Termen weniger Binärstellen abgerundet wurden. Der Winkel zwischen fehlerfreien Punkten (Teilwinkel A, 8 Bits) ist jetzt:
fehlerfreier Punkt-
,Na 2x2" 512 abstand
Dieser fehlerfreie Punktabstand kann noch durch Verwendung eines größeren ROMs für den ersten Term verringert werden. Mit Na=IO (hierbei muß der erste ROM 102H Stellen haben) wird der Teilwinkel A (fehlerfreie Punktabstand) aufπ /2048 rad reduziert, und der gesamte ROM-Bedarf ist 1024 + 4x256 = 2048.
Die Erfindung ist nicht auf die dargestellten und beschriebenen Ausführungsformen beschränkt; vielmehr sind Änderungen und Abweichungen denkbar, ohne daß dadurch vom eigentlichen Erfindungsgedanken abgewichen wird. So kann z.B. der Inhalt der ROMs in Fig. 1 irgendeinen einzigen Quadranten der Sinus- oder Cosinusfunktion enthalten. Eingangs- und Ausgangskomplementbildner können entsprechend so gesteuert werden, daß sie eine volle Periode der Sinus- und Cosinusfunktionen entwickeln.
801807/0798
Leerseite

Claims (1)

  1. Patentansprüche :
    Vorrichtung zum Bestimmen der Sinusfunktion mit NA Ausgangsbits eines mit NB Binärstellen dargestellten Eingangs winke Is zum Liefern der Funktion SIN(EINGANG) mit NA Bits, gekennzeichnet durch eine Eingangsschaltung zur Aufnahme von NE Binärstellen des Ein-* gangswinkels und zum Erzeugen einer Anzahl allmählich kleiner werdender Teilwinkel A,B,C, ... Letztwert-1, und Letztwert, die durch aufeinanderfolgende Gruppen sequentieller Binärstellen gebildet werden, so daß der
    Eingangswinkel - A+B+C+ ... Letztwert-1, + Letztwert, und Eingangswinkel> A> B> C> ... Letztwert-1,> Letztwert ist, und durch eine Anzahl Funktionsgeneratoren, die jeweils einen Term der angenäherten Sinusbeziehung liefern: SIN(EINGANG)" SIN(A)+COS(A)SIN(B+C+...Letztwert-1,
    + Letztwert).
    2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daft die folgende angenäherte Sinusbeziehung verwendet wird:
    (SIN(EINGANG) -SIN(A) + COS(A)SIN(B)
    + COS(A)SIN(C)
    + COS(A)SINiLetztwert-l) + COS(A) SIN(Letztwert).
    3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet! daß die Eingangsschaltung mit dem Funktionsgenerator so zusammengeschaltet ist, daß
    - die Gruppe der höchstrangigen Bits Na den Teilwinkel A bildet,
    - die Gruppe der nächstrangigen Bits Nb den Teilwinkel B bildet,
    - die Gruppe der ...»
    - die Gruppe der vorletztrangigen Bits NLetztwert-1 den Teilwinkel Letztwert-1 bildet, und
    809807/0795
    ORIGINAL INSPECTED
    - die Gruppe der niedrigstrangigen Bits NLetztwert den
    Teilwinkel Letztwert bildet,
    so daß:
    NE = Na+Nb+Nc ... + NLetztwert-1 + NLetztwert ist.
    Vorrichtung nach Anspruch 3, dadurch g e k e η η zeichnet , daß der Teilwinkel A einen Sekundäranteil Ap aufweist, der durch die höchstrangigen Bits von A gebildet ist, sowie einen Sekundäranteil As, der durch die übrigen niedrigrangigen Bits von A gebildet ist, und daß die angenäherte Sinusbeziehung verwendet ist:
    (SIN(EINGANG) = SIN(Ap+As) + COS(Apb+Asb)SIN(B)
    + COS(Apc+Asc)SIN(C)
    + COS(ApLetztwert-l + AsLetztwert-1) SIN(Letztwert-l) + COS(ApLetztwert + As Letztwert)
    SIN(Letztwert),
    wobei der Ap-Anteil für die Teilwinkel B bis zum Letztwert jede beliebige Gruppe der höchstrangigen Bits von A ist und der As-Anteil für die Teilwinkel B bis zum Letztwert mindestens die höchstrangigen Bits der übrigen niedrigrangigen Bits von A ist.
    5. Vorrichtung nach Anspruch f, dadurch g e k e η η zeichnet , daß die Sekundäranteile Asb, Asc ... AsLetztwert-1 und AsLetztwert jeweils einen konstanten Wert haben.
    6. Vorrichtung nach Anspruch I, dadurch g e k e η η zeichnet , daß jeder Sekundäranteil As- einen konstanten Wert hat, der gleich einem der Endpunkte des Bereichs der Werte für den zugeordneten Teilwinkel ist.
    7. Vorrichtung nach Anspruch 5, dadurch g e k e η η zeichnet , daß jeder Sekundäranteil As- einen konstanten Wert hat, der gleich dem Höchstwert des Bereichs der Werte für den zugeordneten Teilwinkel ist,
    809807/0795
    8. Vorrichtung nach Anspruch 5, dadurch g e k e η η -zeichnet , daß die verwendete angenäherte Sinusbeziehung eine monotone Beziehung ist.
    9. Vorrichtung nach Anspruch 5, dadurch g e k e η η -zeichnet , daß mindestens ein Teil des Funktionegenerators in der Anlage Speicher-Nachschlagetabellen für die Funktionen des zugehörigen Terms sind.
    10. Vorrichtung nach Anspruch 7, dadurch g e k e η η -zeichnet , daß alle Funktionsgeneratoren in der Anlage ROMs sind, welche einen ROM-Satz mit ROM-A, ROM-B, ROM-C, ... ROM-Letztwert-1, ROM-Letztwert bilden, wobei jedem Term in der angenäherten Sinusbeziehung ein ROM zugeordnet ist.
    11. Vorrichtung nach Anspruch 10, dadurch g e k e η η -zeichnet , daß die ROMs PROMs sind.
    12. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet , daß
    ROM-A den ersten Term SIN(A) liefert und 2Na Adreßstellen hat,
    ROM-B den zweiten Term COS(Apb+Aebmax)SIN(B) liefert und 2(Napb+Nb) Adreßstellen hat>
    ROM-C den dritten Term COS(Apc+Aecmax)SIN(B) liefert und 2(Napb+Nc) Adreß8tellen hat,
    ROM-
    ROM-Letztwert-1 den Letztwert-1-Term COS(ApLetztwert-1 ♦
    AeLetztwert-amax)SIN(Letztwert-l) Liefert und 2 (NaPLetztwert"1 -NLetztwert) Adreßetellen hat$
    ROM-Letztwert den Letztwert-Term COS(ApLetztwert +
    AsLetztwertmax( SIN (Letztwert) liefert und 2 (NaPLetztwert + NLetztwert) Adr#ßetellen hat.
    13. Vorrichtung nach Anspruch 12, dadurch g e k e η η -zeichnet , daß die Anzahl der Bitstellen in jedem ROM allaählich abnimmt entsprechend folgender Beziehung:
    ROM-A Bits > ROM-B Bits >...>ROM-Letztwert-Bits,
    809807/0795
    um Anfangsnullen zu eliminieren, die durch den abnehmenden Rang der Produktterme hiervon erzeugt werden.
    14. Vorrichtung nach Anspruch 11, dadurch g e k e η η zeichnet , daß die Eingangsschaltung fest mit den zugehörigen ROMs verbunden ist, um die Binärstellen jedes Teilwinkels dem entsprechenden ROM zuzuführen.
    15. Vorrichtung nach Anspruch 14, dadurch g e k e η η zeichnet , daß die verbundenen ROM-Eingänge ver~ teilt werden, so daß
    Na>> Nb > Nc > Nd ist.
    809807/0796
DE19772736072 1976-08-11 1977-08-10 Winkelfunktionsgenerator Withdrawn DE2736072A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/713,562 US4077063A (en) 1976-08-11 1976-08-11 Apparatus for rapidly determining the trigonometric functions of an input angle

Publications (1)

Publication Number Publication Date
DE2736072A1 true DE2736072A1 (de) 1978-02-16

Family

ID=24866628

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772736072 Withdrawn DE2736072A1 (de) 1976-08-11 1977-08-10 Winkelfunktionsgenerator

Country Status (4)

Country Link
US (1) US4077063A (de)
CA (1) CA1090922A (de)
DE (1) DE2736072A1 (de)
GB (1) GB1565303A (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4164022A (en) * 1978-05-05 1979-08-07 Sperry Rand Corporation Electronic digital arctangent computational apparatus
DE3231990A1 (de) * 1982-08-27 1984-03-01 Siemens AG, 1000 Berlin und 8000 München Auswerteeinrichtung fuer einen digitalen inkrementalgeber
JPS62502576A (ja) * 1985-04-22 1987-10-01 アメリカン テレフオン アンド テレグラフ カムパニ− 高速正弦および余弦発生装置
US4809205A (en) * 1986-11-19 1989-02-28 Rockwell International Corporation Digital sine conversion circuit for use in direct digital synthesizers
JPH0776916B2 (ja) * 1987-06-30 1995-08-16 日本電気株式会社 疑似除算方式を用いた三角関数演算装置
US5359551A (en) * 1989-06-14 1994-10-25 Log Point Technologies, Inc. High speed logarithmic function generating apparatus
JPH03204720A (ja) * 1990-01-08 1991-09-06 Nec Corp 初等関数演算装置
US5113361A (en) * 1990-08-02 1992-05-12 Harris Corporation Sin/cos generator implementation
US5276633A (en) * 1992-08-14 1994-01-04 Harris Corporation Sine/cosine generator and method
WO1994018632A1 (en) * 1993-02-01 1994-08-18 Lester Caryl Pickett Low latency function generating apparatus and method
US6661852B1 (en) 1999-07-21 2003-12-09 Raytheon Company Apparatus and method for quadrature tuner error correction
US6640237B1 (en) * 1999-07-27 2003-10-28 Raytheon Company Method and system for generating a trigonometric function
US6647075B1 (en) 2000-03-17 2003-11-11 Raytheon Company Digital tuner with optimized clock frequency and integrated parallel CIC filter and local oscillator
US6590948B1 (en) 2000-03-17 2003-07-08 Raytheon Company Parallel asynchronous sample rate reducer
JP4199100B2 (ja) * 2003-12-12 2008-12-17 富士通株式会社 関数演算方法及び関数演算回路
US20060253511A1 (en) * 2005-05-06 2006-11-09 Harris Corporation RF broadcasting employing sinusoidal-cosine wave generation with plural look-up tables
US8200728B2 (en) * 2008-05-29 2012-06-12 Harris Corporation Sine/cosine generator
US10942706B2 (en) * 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3569684A (en) * 1967-03-23 1971-03-09 North American Rockwell Sine-cosine generator comprised of a diode array
NL164403C (nl) * 1970-10-19 1980-12-15 Hollandse Signaalapparaten Bv Digitale sinus/cosinus generator.
US3813528A (en) * 1972-06-02 1974-05-28 Singer Co High-speed function generator
US3898446A (en) * 1974-09-06 1975-08-05 Us Army Quadratic phase memory

Also Published As

Publication number Publication date
CA1090922A (en) 1980-12-02
US4077063A (en) 1978-02-28
GB1565303A (en) 1980-04-16

Similar Documents

Publication Publication Date Title
DE2736072A1 (de) Winkelfunktionsgenerator
DE2754270C2 (de)
DE2523860C3 (de) Vorrichtung zur digitalen, linearen Interpolation einer fabulierten Funktion
DE2712224A1 (de) Datenverarbeitungsanlage
DE2361512C2 (de) Schaltungsanordnung zur Prüfung eines Additionsresultates
DE3507584C2 (de)
DE2063199A1 (de) Einrichtung zur Ausfuhrung logischer Funktionen
DE2212967C3 (de) Einrichtung zur Speicherung und Verarbeitung einer Zahl in Gleitkommadarstellung
DE3303269C2 (de)
DE1271433B (de) Adressiereinrichtung fuer einen Tabellenwertspeicher
DE4010735C2 (de)
DE1499174B1 (de) Dividiervorrichtung fuer Digitalrechner
EP0669585B1 (de) Iterativer Interpolator
DE3312796C2 (de)
EP0629943B1 (de) Multiplizierer für reelle und komplexe Zahlen
DE2952689C2 (de)
DE1549485A1 (de) Anordnung zur Division binaerer Operanden
DE2853540A1 (de) Rechenelement nach dem dda-prinzip
DE60024116T2 (de) Verfahren zur automatischen anordnung der aufgaben einer anwendung in einer signalverarbeitungsmaschine
DE2135607C2 (de) Schaltungsanordnung zur Inkrementierung oder Dekrementierung
DE19738357B4 (de) Verfahren zum Betrieb eines digitalen Sinus-Generators
EP0483399A1 (de) Einrichtung zum Vergleich zweier dual kodierter Daten
DE1963030C3 (de) Anordnung zum Umsetzen einer Binärzahl in eine tetradisch codierte Dezimalzahl in einem Rechner
DE3029033C2 (de) Schaltungsanordnung
DE3644952A1 (de) Numerisches steuersystem fuer hochdynamische prozesse

Legal Events

Date Code Title Description
8141 Disposal/no request for examination