DE2736072A1 - Winkelfunktionsgenerator - Google Patents
WinkelfunktionsgeneratorInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/035—Reduction of table size
- G06F1/0356—Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/04—Trigonometric 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
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:
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.
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.
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),
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;
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):
+ 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):
Wird Asb bei Asbmax fest, so reduziert sich die Adressenerfordernis auf:
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:
+ 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 =
Zweiter Term =
Dritter Term =
Vierter Term
809807/0795
= 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:
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:
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).
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
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
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)
- 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ß derEingangswinkel - 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, und809807/0795ORIGINAL INSPECTED- die Gruppe der niedrigstrangigen Bits NLetztwert denTeilwinkel 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/07958. 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/0795I»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
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)
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)
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 |
-
1976
- 1976-08-11 US US05/713,562 patent/US4077063A/en not_active Expired - Lifetime
-
1977
- 1977-07-20 CA CA283,122A patent/CA1090922A/en not_active Expired
- 1977-07-28 GB GB31698/77A patent/GB1565303A/en not_active Expired
- 1977-08-10 DE DE19772736072 patent/DE2736072A1/de not_active Withdrawn
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 |