-
-
Verfahren zur näherungsweisen Logarithmierung und Delogarithmierung
und Schaltungsanordnungen zur Durchführung der Verfahren Die Erfindung betrifft
ein Verfahren zur näherungsweisen Logarithmierung einer normalisierten ~binären
Gleitkommazahl, die in einem Register mit N aufeinanderfolgenden Speicherplätzen
abgespeichert ist, wobei der Stellenwert jedes Speicherinhalts im Register von links
nach rechts abnimmt und wobei der Exponent der Gleitkommazahl in Zweier-Komplement-Darstellung
in einem ersten Registerabschnitt und die Mantisse der Gleitkommazahl in einem unmittelbar
rechts anschließenden zweiten Registerabschnitt steht und ein Verfahren zur näherungsweisen
Delogarithmierung einer binären Festpunktzahl, die in einem Register mit N aufeinanderfolgenden
Speicherplätzen abgespeichert ist, wobei der Stellenwert jedes Speicherinhalts im
Register von links nach rechts abnimmt.
-
Die Logarithmierung und Delogarithmierung von Variablen wurde in der
Steuerungstechnik bisher meist mit Hilfe von iterativen Verfahren, die die logarithmischen
Operationen auf die Grundfunktionen Addition und Subtraktion zurückführen, ausgeführt.
Derartige Verfahren nehmen jedoch eine erhebliche Rechenzeit in Anspruch, die der
in der Prozeßsteuertechnik meistens gestellten Forderung nach einer schnellen Reaktionszeit
entgegensteht. Die Logarithmierung und Delogarithmierung kann auch über Listen erfolgen,
die in einem Speicher abgelegt sind. Die Listenlänge ist dabei vom Wertebereich
und von der geforderten Genauigkeit abhängig. Mit diesen Verfahren ist ein sehr
hoher Speicherplatzbedarf ver-
bunden. Mit einer Vergrdßerung des
Speichers steigt außerdem auch die Zugriffszeit, sodaß wiederum die Rechenzeit verlängert
wird.
-
In der Prozeßsteuertecknik kommt es in vielen Fällen nicht auf eine
besonders hohe Genauigkeit der ermittelten Funktion an. Ausschlaggebend ist vielmehr
die geringe Rechenzeit.
-
Aufgabe der Erfindung ist es daher, Verfahren zur näherungsweisen
Logarithmierung und Delogarithmierung und Schaltungsanordnungen zur Durchführung
des Verfahrens anzugeben, die lediglich einfache Schiebeoperationen in einem Schieberegister
erfordern.
-
Diese Aufgabe wird zur Logarithmierung dadurch gelöst, daß durch einen
Schiebeimpuls der Inhalt des ersten Registerabschnitts eine Stelle nach rechts verschoben
wird, wobei der erste Speicherplatz des zweiten Registerabschnitts überschrieben
wird und daß in den freiwerdendenSpeicher des ersten Registerabschnitts das Vorzeichen-Bit
des Exponenten eingespeichert wird, wobei an den Ausgängen des Registers der angenäherte
Logarithmus der normalisierten Gleitkommazahl in Form einer Festpunktzahl mit einem
Dualpunkt an der Stelle des Dualpunkts der ursprünglichen Gleitkommazahl ansteht.
Zur Delogarithmierung wird die Aufgabe dadurch gelöst, daß durch einen Schiebeimpuls
der Inhalt des Registerabschnitts links vom Dualpunkt um eine Stelle nach links
verschoben wird, daß der Dualpunkt seine Lage behält und daß in den freiwerdenden
Speicherplatz eine 1 eingefügt wird, wobei an den Ausgängen des Registers die angenäherte
delogarithmierte Festpunktzahl in Form einer normalisierten Gleitkommazahl ansteht,
wobei in einem zweiten Registerabschnitt, der alle Speicherplätze rechts vom Dualpunkt
und einen Speicherplatz
links vom Dualpunkt umfaßt, die Mantisse
der Gleitkommazahl und in einem ersten Registerabschnitt der die restlichen Speicherplätze
umfaßt, der Exponent der Gleitkommazahl abgespeichert ist.
-
Mit diesem Verfahren ist es möglich, ohne aufwendige Rechenoperationen
mit einem einfachen Schiebevorgang in einem Register eine Gleitkommazahl näherungsweise
zu logarithmieren bzw. eine Festpunktzahl näherungsweise zu delogarithmieren, und
zwar jeweils bezogen auf die Basis 2. Die bisher nur mit großem Aufwand durchzuführenden
Rechenoperationen können damit rein hardwaremEBig gelöst werden, wobei abgesehen
vom Register kein weiterer Speicherplatz erforderlich ist.
-
Dementsprechend ist die für die Rechenöpertionen nach den beschriebenen
Verfahren benötigte Zeit auch sehr kurz, so daß die insbesondere in der Prozeßsteuertechnik
geforderten hohen Geschwindigkeiten ohne weiteres realisiert werden können.
-
Bei der näherungsweisen Logarithmierung kann zur Korrektur des erhaltenen
Näherungswertes zu dem Registerinhalt ein Korrekturwert LK = ld (1+ hE) -E E addiert
werden, wobeit E der Wert ist, der sich ergibt, wenn bei der zu korrigierenden Zahl
alle Stellen links vom Dualpunkt t0" gesetzt werden. Ebenso kann bei der Delogarithmierung
zur Korrektur des erhaltenen Näherungswertes von dem Registerinhalt ein Korrekturwert
DK - 1+ QE - 2expE E subtrahiert werden, wobei A E der Wert ist, der sich ergibt,
wenn bei der zu delogarithmierenden Zahl alle Stellen lins vom Dualpunkt tO" gesetzt
werden. Durch Hinzunahme dieser Korrekturverfahren können die erfindungsgemäßen
Verfahren zur näherungsweisen Logarithmierung bzw. Delogarithmierung auch in Anwendungsfällen
eingesetzt werden, bei denen die geforderte Genauigkeit höher wird. Die Korrekturwerte
können
beispielsweise für bestimmte Werte von A E in einer Liste abgelegt werden, wobei
die Länge der erforderlichen Liste von der geforderten Genauigkeit der Rechenoperation
abhängt. Auch wenn die geforderte Genauigkeit sehr hoch ist, wird diese Korrekturliste
wesentlich kürzer als eine Liste, wie sie zum unmittelbaren Logarithmieren bzw.
Delogarithmieren erforderlich wäre.
-
Eine Schaltungsanordnung zur Durchführung des Verfahrens zur Logarithmierung
kann zweckmäßigerweise zwei Register mit jeweils N Speicherplätzen aufweisen, wobei
im ersten Register die zu logarithmierende Gleitkommazahl abgespeichert ist und
im zweiten Register das Ergebnis der Logarithmierung in Festpunktdarstellung gebildet
wird und eine Verbindung der Ausgänge des ersten Registers mit den Eingängen des
zweiten Registers derart aufweisen, daß der Speicherplatz mit der n-ten Wertigkeit
des ersten Abschnitts des ersten Registers mit dem Speicherplatz mit der (n - 1)-ten
Wertigkeit des zweiten Registers verbunden ist, wobei zusätzlich der Speicherplatz
mit der höchsten Wertigkeit des ersten Abschnitts des ersten Registers mit dem Speicherplatz
mit der höchsten Wertigkeit des zweiten Registers verbunden ist, wobei der höchstwertige
Ausgang des zweiten Abschnitts des ersten Registers frei bleibt und wobei der n-te
Speicherplatz des zweiten Abschnitts des ersten Registers mit dem n-ten Speicherplatz
des zweiten Registers verbunden ist, und wobei der Logarithmiervorgang durch einen
Impuls auf den Setzeingang des zweiten Registers ausgelöst wird. Mit dieser Schaltungsanordnung
kann das Verfahren zur näherungsweisen Logarithmierung mit wenigen handelsüblichen
Bauteilen sowie einer festverdranteten Schaltung durchgeführt werden.
-
Das erfindungsgemäße Verfahren zur näherungsweisen Logarithmierung
kann auch durch ein Register und einen Datenbus realisiert werden, der die normalisierte
binäre Gleitkommazahl mit N aufeinanderfolgenden Bits in zwei Abschnitten überträgt,
wobei im ersten Datenbusabschnitt der Exponent und im zweiten Datenbusabschnitt
die Mantisse der Gleitkommazahl Ubertragen wird, wobei der Datenbus bei Übernahmebefehl
die einzelnen Bits des Datenbusses den Eingängen des Registers zuführt, wobei das
Bit mit der höchsten Wertigkeit des ersten Datenbusabschnitts mit den Eingängen
mit der höchsten und der zweithöchsten Wertigkeit des ersten Registerabschnitts,
das Bit mit der n-ten Wertigkeit des ersten DatenbusabsEhnitt.« mit dem (n- 1)-ten
Registereingang, das Bit mit der höchsten Wertigkeit des zweiten Datenbusabschnitts
mit keinem der Registereingänge und das n-te Bit des zweiten Datenbusabschnitts
mit dem n-ten Eingang des zweiten Registerabschnitts verbunden ist.
-
Eine Schaltungsanordnung mit einer Bus struktur bietet sich vor allem
dann an, wenn die Schaltung mit einer Rechenanlage, die den Datenbus steuert, zusammenarbeitet.
-
Der hardwaremäßige Aufwand kann dadurch weiter verringert werden.
-
Zur Durchführung des Verfahrens zur näherungsweisen Delogarithmierung
können zwei Register mit jeweils N Speicherplätzen eingesetzt werden, wobei im ersten
Register die zu delogarithmierende Festpunktzahl abgespeichert ist und im zweiten
Register das Ergebnis der Delogarithmierung in Gleitkommadarstellung gebildet wird
sowie mit einer Verbindung der Ausgänge des ersten Registers mit den Eingängen des
zweiten Registers derart, daB der höchstwertige Ausgang des ersten Registers frei
bleibt, daß von den anschließenden Speicherplätzen des ersten Registers links vom
Dualpunkt jeweils der Speicherplatz mit der n-ten Wertigkeit mit dem Speicherplatz
mit der (n + 1)-ten Wertigkeit des zweiten Regi-
sters verbunden
ist, daß von den restlichen Speicherplätzen des ersten Registers jeweils der Speicherplatz
mit der n-ten Wertigkeit mit dem Speicherplatz mit der gleichen Wertigkeit des zweiten
Registers verbunden ist und daß am Speicherplatz des zweiten Registers links vom
Dualpunkt eine feste 1 ansteht, wobei der Delogarithmiervorgang durch einen Impuls
auf den Setzeingang des zweiten Registers ausgelöst wird. Damit kann das erfindungsgemäße
Verfahren zur näherungsweisen Delogarithmierung ähnlich wie das erfindungsgerqäße
Verfahren zur näherungsweisen Logarithmierung mit Hilfe zweier Register durchgeführt
werden.
-
Das Verfahren zur angenäherten Delogarithmierung kann auch mit einem
Register und einem Datenbus durchtefUhrt werden, der die binäre Festpunktzahl mit
N aufeinanderfolgenden Bits überträgt und der bei Übernahmebefehl die einzelnen
Bits des Datenbusses den Registereingängen zuführt, wobei das höchstwertige Bit
des Datenbusses frei bleibt und dem Registereingang des Speicherplatzes links vom
Dualpunkt eine feste "1" zugeführt wird, wobei von den Bits des Datenbusses links
vom Dualpunkt jeweils das Bit mit der n-ten Wertigkeit bei Ubernahmebefehl mit dem
Registereingang mit der (n + 1)-ten Wertigkeit verbunden wird und wobei die restlichen
Bits des Datenbusses jeweils mit dem Registereingang der gleichen Wertigkeit verbunden
sind. Wie bei der Schaltungsanordnung zur angenäherten Logarithmierung ergibt sich
damit eine Möglichkeit, das erfindungsgemäße Verfahren mit einem Datenbus durchzuführen
und somit eine einfache Kopplung mit einem Rechner zu ermöglichen.
-
Die erfindungsgemäßen Verfahren sowie Schaltungsanordnungen zur Durchführung
der Verfahren werden im folgenden beispielhaft anhand der Figuren 1 bis 7 näher
erläutert.
-
Ausgangspunkt des Verfahrens zur näherungsweisen Logarithmierung ist
eine normalisierte Gleitkommazahl.
-
Bei einer normalisierten Gleitkommazahl liegt der Betrag der Mantisse
M zwischen eins und zwei. Es gilt also: 1< |M| IMI<2 Damit ist das höchstwertige
Bit der Mantisse M immer 1 und der Dualpunkt steht unmittelbar rechts von dieser
1. Falls auch Zahlen kleiner als 1 dargestellt werden sollen, kann der Exponent
E negativ werden. In diesen Fällen wird der Exponent im Zweier-Komplement dargestellt.
-
Das Logarithmierverfahren soll zunächst anhand eines Beispiels mit
einer 8-Bit Zahl mit drei Bits für den Exponenten E und fünf Bits für die Mantisse
M dargestellt werden. Diezulogarithmierende Zahl ag ist beiw spielsweise: ag r 0
101.1010 Diese Zahl ist in einem Register abgespeichert. Den angenäherten Logarithmus
al der Zahl ag erhält man nun, indem man den Exponenten E um eine Stelle nach rechts
schiebt. Die höchstwertige 1 der Mantisse wird bei diesem Vorgang überschrieben.
Falls E r O gilt, wird beim Schieben eine 0 nachgezogen. Wenn auch negative Exponenten
auftreten können, ist E im Zweier-Komplement darzustellen. E weist ein Vorzeichenbit
auf, wobei eine nOn positive Werte und eine In negative Werte kennzeichnet. In diesem
Fall gilt die verallgemeinerte Regel für das Nachziehen auf die freiwerdende Stelle:
Beim Schiebevorgang ist stets dasselbe Bit wie das Vorzeichenbit nachzuziehen.
-
Als Rechenbeispiel wurde für ag eine positive Zahl gewählt. Nach dem
beschriebenen Verfahren zur näherungsweisen Logarithmierung erhält man den angenäherten
Logarithmus
al von ag: al = 0010.1010 Die so erhaltene Zahl al ist eine Festpunktzahl mit einem
Dualpunkt an derselben Stelle wie der Dualpunkt der ursprünglichen Gleitkommazahl.
-
Zur Bestimmung des im Rechenbeispiel aufgetretenen relativen Fehlers
kann man ag und al ins Dezimalsystem umrechnen, al exakt delogarithmieren und schließlich
die auf ag bezogene Differenz von ag und 2a1 bilden.
-
Die Umrechnung von ag ins Dezimalsystem ergibt: ag = 0101.1010 - 22
x 1.625 1 4 x 1.625 - 6.5 al ins Dezimalsystem umgerechnet beträgt: ae , 2.625 Die
exakte Delogarithmierung von al ergibt:# 2al - 22.625 P 6.1688 Daraus kann schließlich
der relative Fehler berechnet werden:
Im folgenden wird auch das Verfahren zur näherungsweisen Delogarithmierung anhand
eines Rechenbeispiels dargestellt. Ausgangspunkt sei eine Zahl bl in Festpunktdarstellung,
die in einem Register abgespeichert ist.
-
Die näherungsweise Delogarithmierung wird wie folgt durchgeführt:
Alle Bits links vom Dualpunkt, d.h. in Richtung höherer Wertigkeit werden um eine
Stelle nach links geschoben. In den dabei entstehenden Zwischenraum unmittelbar
links vom Dualpunkt wird eine n1 n eingefügt.
-
Der so erhaltene Wert ist als normalisierte Gleitkommazahl zu betrachten,
wobei der Dualpunkt an seiner ursprünglichen Stelle bleibt. Eine Stelle links vom
Dualpunkt und alle Stellen rechts vom Dualpunkt sind als Mantisse und die übrigen
Stellen links vom Dualpunkt sind als Exponent der Gleitkommazahl zu betrachten.
-
Auch dieser Vorgang soll anhand eines Rechenbeispiels erläutert werden.
Die näherungsweise zu delogarithmierende Zahl bl betrage beispielsweise: bl 1 0001.0101
Nach DurchfUhrung des Delogarithmierverfahrens ergibt sich daraus der näherungsweise
delogarithmierte Wert:
Auch bei diesen Verfahren soll der im Rechenbeispiel aufgetretene relative Fehler
berechnet #erden. #azu werden zunächst die Zahlen bl und bg ins Dezimalsystem umgerechnet,
dann b exakt delogarithmiert und schließlich wird die auf 2il bezogene Differenz
von 2bl und bp bestimmt. Die Umrechnung von bl und b g ins Dezimalsystem ergibt:
b1 - 0001.0101 = 1,3125 bg P 0011.0101 s 21 x 1,3125 = 2,625 bl wird exakt delogarithmiert:
2bl 3 21,3125 , 2,4837 Daraus ergibt sich ein relativer Fehler von:
Im folgenden soll der mathematischen Hintergrund der Verfahren
zur näherungsweisen Logarithmierung und Delogarithmierung erläutert werden. Diese
Verfahren beruhen auf einer Approximation der Exponential-Funktion y 3 2E. Der approximierte
Wert von y wird mit y bezeichnet. y ist ein Polygonzug, der in seinen Knickpunkten
(Stützstellen) mit der Originalfunktion y übereinstimmt. Die Stützweite sind äquidistant
in E und liegen bei allen ganzzahligen Werten von E.
-
Fig. 1 zeigt die Näherungsfunktion y (E) und die Originalfunktion
y (E).
-
Die Funktion y (E) soll nun analytisch dargestellt werden. Dazu wird
zunächst die Sekantensteigung im im e -ten Intervall berechnet. Das # -te Intervall
ist das Intervall, das sich vom # #-ten Stützwert zum ( # #+ 1)--ten Stützwert erstreckt.
Der #-te Stützwert besitzt den Wert # als Abszisseswert. Es gilt also:
S = 2(#+1) - 2# = 2# (2-1) =2# 1) - 2 P 2 (2 - 1) 1 2# S = 2# = 2 E# (2) Damit kann
man y in folgender Weise angeben: y= " 2E# + 5 (E - E Y y = 2E# + 2E t(E - E y =
2E# (1 + E - Er) (3) Er kann als der ganzzahlige Anteil von E betrachtet werden
und entspricht, anders ausgedrückt, dem Abszissenwert der ersten Stütz stelle links
des gerade betrachteten
Wertes E. Der Wert A E: = E - Er kennzeichnet
die Lage innerhalb eines Intervalls. Mit dieser Definition erhält die Gleichung
3 folgende Form: y = 2E# (1 + # E) (4) Im folgenden soll nun der Zusammenhang zwischen
der Funkttion y - 2ET (1 + A E) und der Gleitkommadarstellung des Wertes y ermittelt
werden. Bei einer Zahl yg in normalisierter Gleitkommadarstellung gilt für die Mantisse
M stets 1 < M <2. Die Mantisse besitzt also genau eine Stelle links vom Dualpunkt,
wobei an dieser Stelle immer eine 1 steht. Links von der Mantisse steht der ganzzahlige
Exponent ## . Es gilt also: Yg - 2## M (5) Die Mantisse M wird nun in ihren ganzzahligen
Anteil und ihren gebrochenen Anteil # M aufgespalten. Wegen der obigen Normalisierung
ist dies immer möglich und der ganzzahlige Anteil hat immer den Wert 1. Man kann
also schreiben: Yg - 2## (1 + A M) (6) Es soll nun gelten: yg = Y y (7) Aufgrund
der oben eingeführten Normalisierungsvorschrift gelten damit auch folgende Zusammenhänge
## = E# (8) #M = #E (9) Zusammenfassend ergibt sich also:
Aus Gleichung 10 kann man erkennen, wie aus der normallsierten
Gleitkommadarstellung einer Zahl yg der Näherungswert für den Logarithmus dualis
dieser Zahl gefunden werden kann. Wie beschrieben, erhält man den Näherungswert
für E, also den angenäherten Logarithmus der Zahl y . 2E ~indem man in der normalisierten
Gleitkommazahldarstellung von yg zunächst die höchstwertige nln der Mantisse streicht.
Durch diesen Vorgang wird zunächst M =#E= E M - 1 gebildet. Anschließend wird der
Exponent E um eine Stelle nach rechts verschoben.
-
Durch dieses Verschieben von E#wird E# +AE E E gebildet, wen man das
so gewonnene Näherungsergebnis als Festpunktzahl interpretiert und den Dualpunkt
an seiner ursprUnglichen Stelle, d.h. also unmittelbar linkssont E =#M beläßt. Durch
dieses einfache Aneinanderreihen von E und A E kommt also eine Addition von E. und
A E zustande.
-
Dies gilt stets, da E#eine ganze Zahl ist und weil gilt: os E <1
E# ist also der Anteil der Zahl E vor dem Dualpunkt und #E ist stets der Anteil
der Zahl E nach dem Dualpunkt.
-
Diese Aneinanderreihung von Et und # E wird in folgenden anhand eines
Beispiels erläutert: Es sei: - 5 - 101.00 E . = 0,75 - 000.11 Man erkennt also,
daß das Aneinanderreihen von EV und A Emit einer Addition gleichbedeutend ist.
-
Falls Ef negativ ist, so wird es zweckmäßigerweise im binären Zweier-Komplement
dargestellt, da dann die Addition von E r undt E ebenfalls durch einfaches Hintereinanderschreiben
gebildet werden kann. Die beim Verschieben von Ey freiwerdende Stelle links außen
muß mit dem gleichen Bit wie das Vorzeichenbit von E # besetzt
werden.
Das Ergebnis E ist als Festpunktzahl im binären Zweier-Komplement zu interpretieren.
-
Die bisherigen Betrachtungen wurden stets für den Fall y > 0 durchgeführt.
Falls der Wertebereich von yg auch auf negative Werte erweitert werden soll, wird
der Betrag von yg zweckmäßigerweise nach dem beschriebenen Verfahren behandelt und
das Vorzeichen getrennt ausgewertet.
-
Bei der mathematischen Herleitung wurde der angenäherte Logarithmiervorgang
betrachtet. Das Verfahren kann selbstverständlich auch umgedreht werden, wobei man
eine näherungsweise Delogarithmierung erhält.
-
Das beschriebene Verfahren ist im folgenden Schema nochmals zusammengefaßt:
M
Vorzeichenbit von Im-folgenden soll der beim Logarithmieren und Delogarithmieren
auftretende relative Fehler berechnet werden.
-
Dieser ist durch die Abweichung des in Fig. 1 dargestellten Polygonzugs
y = yg von der Exponentialfunktion y gegeben.
-
Zur analytischen Darstellung des relativen Fehlers ist die Abweichung
des Wertes y vom Wert y bei gegebenem E zu ermitteln: y 2Ev 2EV +#E (11) y » 2~t
(1 +#E) (12)
Aus den Gleichungen (11) und (12) kann der relative
Fehler RLD beim angenäherten Delogarithmieren berechnet werden:
Der relative Fehler RFD ist also nur von A E, aber nicht von Ef abhängig. Der Fehler
hängt nur von der Lage des Wertes E innerhalb des Stützintervalls, aber nicht vom
Stützintervall selbst ab. Aufgrund der Funktion nach Gleichung (13) erkennt man
folgende Grenzwerte für den relativen Fehler RFD beim Delogarithmieren: RFD (#E
E = 0) = 0 RFD (AE = 1) = 0 RFD max w 0,058 Fig. 2 zeigt den Verlauf des relativen
Fehlers RFD beim Delogarithmieren als Funktion von #E.
-
Die mit den beschriebenen Verfahren erreichte Genauigkeit ist in vielen
Fällen ausreicht. Für Anwendungsfälle, bei denen ein kleinerer maximaler Fehler
gefordert wird, kann ein zusätzliches Korrekturverfahren für das Ergebnis der näherungsweisen
Logarithmierung bzw. Delogarithmierung eingeführt werden.
-
Zur Korrektur eines angenäherten logarithmierten Wertes werden die
Bits rechts vom Dualpunkt al als Index eines Listenelementes innerhalb einer Korrekturliste
interpretiert Dabei sind soviele Bits als Index zu interpretieren, daß die gesamte
Korrekturliste adressiert werden kann. Bei einer Korrekturliste von z.B. 16 Elemen-
ten
sind die ersten 4 Bits rechts vom Dualpunkt als Listenindex zu interpretieren. Das
Listenelement, daß auf diese Weise gefunden wurde, muß dann zu al addiert werden.
Damit ist die Korrektur abgeschlossen. Der nach der Korrektur noch vorhandene Fehler
ist von der Größe der Korrekturliste abhängig.Bei 16 Listenelementen beträgt der
maximale Restfehler etwa 1,5 ,~. Eine Verdoppelung der Korrekturlisten halbiert
jeweils den maximalen Restfehler. Die Korrekturwerte K der Korrekturliste ergibt
sich, wie nachfolgend mathematisch nachgewiesen wird, aus der Gleichung LK p ld
(1 +aE) - A E.
-
Dabei isth E der Wert, der sich ergibt, wenn man bei al alle Stellen
links vom Dualpunkt zu 0 setzt.
-
Das beschriebene Korrekturverfahren soll nun auf das angeführte Rechenbeispiel
angewendet werden. Der korrigierte logarithmierte Wert wird mit alk bezeichnet.
-
ag - 0101.1010 al ~ 0010.1010 k = 0000.0001 alk S 0010.1011 Eine
Berechnung des auftretenden Fehlers ergibt: ag s 6,5 alk - 2,6875 2alk , 2 2,6875
, 6,4419 Der relative Fehler beträgt also:
Dieses Beispiel zeigt, daß sich der Fehler durch das einfache Korrekturverfahren
ganz erheblich verringert.
-
Im folgenden soll der Korrekturwert für die Delogarithmierung mathematisch
hergeleitet werden. Um die Korrekturoperation durch eine einfache Addition zu ermöglichen,
wird ein Korrekturwert DK gesucht, der sich in folgender Form darstellen läßt: y
(E) 5 y (E) - 2Ef x DK (t M) (14) Wenn man DK kennt, so kann man aufgrund von Gleichung
14 den Wert yg = y, den man durch die näherungsweise Delogarithmierung erhält, in
den exakten Wert y umrechnet.
-
Der exakte Wert von DK ergibt sich aus folgender Gleichung:
In der Praxis wird es also in vielen Fällen zweckmäßig sein,einige Stützwerte für
den Korrekturwert DK ( A 4) in einer Liste abzulegen. Dabei wird als Anzahl der
Listenelemente zweckmäßigerweise eine Potenz von 2, z.B.
-
2s gewählt. Als Stützwerte von #E wählt man alle gebrochenen Binärzahlen
mit s Stellen hinter dem Komma und erhält damit genau 2s Tabellenwerte. Die zu den
Stützwerten gehörenden Werte DK (AE) werden in einer Liste so abgelegt, daß die
Binärzahl, die durch die s Stellen vonAE gebildet wird, jeweils den Listenindex
angibt. Den zu einem gegebenen AE gehörenden Korrekturwert DK erhält man dann, indem
man die ersten s Stellen vont E als Listenindex interpretiert und damit auf die
Liste zugreift.
-
Den Korrekturwert für die Logarithmierung erhält man aus einer Betrachtung
von Fig. 3. Die Zahly soll logarithmiert werden. E2 ist der exakte Logarithmus,
E1 der angenäherte Logarithmus. Um E2 zu gewinnen, muß man zu dem (durch die N#erurigslogarithmierung
bekannten) Wert E1 den Wert LK = (AE2 -AE1) addieren. Die anschließende Betrachtung
soll diesen Wert liefern.
-
Es gilt: y = 2E#(1+#E1) +#E1) (16a) y = 2E# +AE2 (16b) Aus (16a) und
(16b) folgt durch Gleichsetzung 2Et (1 +#E1) = 2Ez +E E2 1 1 +#E1 = m 2#E2 2 2 =
1 +AE1 A E2 31 ld (1 +#E1 +#E1) A E AE1 = ld (1 +t E1) 1 LK - ld (1 +E E1) -#E1
(17) Die logarithmischen Funktionen können auch lediglich als Hilfsfunktionen angewandt
werden, um komplizierte Rechenoperationen auf einfache Rechenvorgänge zurückzuführen.
-
So kann in bekannter Weise die Multiplikation nach der Logarithmierung
der Multiplikanden auf eine Addition, die Wurzelbildung auf eine Division und die
Potenzfunktion auf eine Multiplikation zurückgeführt werden. Die beschriebenen Verfahren
zur Logarithmierung und Delogarithmierung ermöglichen es, z.B. in der Prozeßsteuerung
auf einfache Weise derartige Rechenoperationen in einem Schieberegister durchzuführen.
Dabei wird zunächst nach 7#1
operation, z.B. eine Addition ausgeführt
und dann nach dem beschriebenen Verfahren wieder näherungsweise delogarithmiert.
Auf diese Weise kann z.B. aus den Meßgrößen Spannung und Strom auf einfache Weise
die elektrische Leistung ermittelt werden. Dabei ist besonders vorteilhaft, daß
sowohl Eingabe als auch Ergebnis in Gleitkommadarstellung vorliegen.
-
In vielen Fällen ist es möglich, die drei genannten Schritte-Logarithmierung,
Zwischenoperation, Delogarithmierung- zur Bildung einer höheren Funktion auf einen
einzigen Schritt zurückzuführen. Dazu wird untersucht, wie jeder Speicherinhalt
nach Durchführung der drei genannten Schritte seine Lage verändert hat. Da sowohl
die näherungsweise Logarithmierung als auch die näherungsweise Dëlogarithmierung
reine Schiebeoperationen sind, kann insbesondere in den Fällen, wo sich auch die
Zwischenoperation als Schiebevorgang darstellen läßt, eine einfache Cesetzmäßigkeit
gefunden werden, die durch Verschiebung sowie gegebenenfalls Vertauschung von Speicherinhalten
bereits in einem einzigen Verfahrensschritt zum gewünschten Ergebnis führt. Wird
nur eine derartige spezielle Funktion gewünscht, so kann eine Schaltungsanordnung
bzw. ein Programm so ausgestaltet werden, daß eine Spezialisierung auf diese Funktion
vorliegt,'d.h. es wird nicht getrennt logarithmiert und delogarithmiert, sondern
lediglich ein mit Hilfe dieser Operation abgeleiteter Verfahrensschritt zur Bildung
einer Funktion, z.B. einer Wurzelfunktion durchgeführt.
-
Im folgenden werden beispielhaft zwei Schaltungsanordnungen zur Durchführung
der beschriebenen Verfahren erläutert. Bei der Schaltungsanordnung nach Fig. 4 werden
zwei Register R1 und R2 eingesetzt, wobei die Ausgänge Ao bis A7 des Registers R1
so mit den Eingängen Eo bis E7 des Registers R2 verbunden sind, daß sich bei
Ubernahme
des Inhalts von Register R1 in das Register R2 eine dem beschriebenen Logarithmierverfahren
entsprechende Verschiebung der Speicherinhalte ergibt. Dazu sind die Ausgänge Ao
bis A3 mit den entsprechenden Eingängen Eo bis E3 verbunden. Die Ausgänge A5 und
A6 sind mit den Eingängen E4 bzw. E5 verbunden und der Ausgang A7 ist mit den Eingängen
E6 und E7 verbunden. Bei einem Signal am Setzeingang S des Registers R2 werden die
an den Eingängen Eo bis E7 anstehenden Signale in die Speicherplätze R20 bis R27
übernommen. Man erkennt, daß sich dadurch genau die dem angenäherten Logarithmierverfahren
entsprechende Verschiebung der Speicherinhalte ergibt.
-
Wenn die beschriebenen Verfahren in Zusammenhang mit einer Rechenanlage
durchgeführt werden sollen, ist es in vielen Fällen a«ckmäßig, für die Schiebeoperationen
einen in Rechenanlagen stets vorhandenen Datenbus auszunutzen. In diesem Fall ist
lediglich ein Register R notwendig. Fig. 5 zeigt eine entsprechende Anordnung für
die Logarithmierung. Während des Schreilimpulses auf den Schrei eingang WR des Registers
R werden die auf dem Datenbus D z.B. von einem Mikroprozessor ausgegebenen Bits
einer Gleitkommazahl in das Register R geschrieben.
-
Dabei sind jedoch die einzelnen Bits des Datenbusses D den Eingängen
Eo bis E7 so zugeordnet, daß im Register R der angenäherte Logarithmus der Gleitkommazahl
abgespeichert wird.
-
Das wird ermöglicht, indem man - analog zur Schaltung nach Fig. 4
die Bits Do bis D3 des Datenbusses D den Eingängen Eo bis E3 zugeordnet, die Bits
D5 bzw. D6 den Eingängen E4 bzw. E5 und das Bit D7 den Eingängen E6 und E7. Durch
diese Zuordnung der einzelnen Bits des Datenbusses D zu den Eingängen Eo bis E7
des Registers R wird also erreicht, daß im Register R unmittelbar der angenäherte
Logarithmus der eingegebenen Gleitkommazahl
ansteht. Durch einen
anschließenden Leseimpuls auf den Leseeingang RD werden die Ausgänge Ao bis A7 des
Registers R auf die entsprechenden Bits D0 bis D7 des Datenbusses D geschaltet,
sodaß die näherungsweise logarithmierte Gleitkommazahl jetzt vom Datenbus D z.B.
von einem Mikroprozessor abgelesen werden kann.
-
Analoge Realisierungsmöglichkeiten können auch zur näherungsweisen
Delogarithmierung eingesetzt werden.
-
Fig. 6 zeigt eine Realisierungsmöglichkeit, bei der entsprechend Fig.
4 zwei Register R1 und R2 eingesetzt werden, wobei lediglich die Verbindung der
Ausgänge Ao bis A7 des Registers R1 mit den Eingängen Eo bis E7 des Registers R2
entsprechend dem angegebenen Verfahren zur näherungsweisen Delogarithmierung vorgesehen
sind.
-
Dabei sind die Ausgänge Ao bis A3 des Registers R1 mit den entsprechenden
Eingängen Eo bis E3 verbunden. Der Eingang E4 ist mit einer festen "1" beaufschlagt.
Die Ausgänge A4 bis A6 sind mit den Eingängen E5 bis E,iverbunden und der Ausgang
A7 bleibt frei. Auch bei dieser Anordnung wird der Delogarithmiervorgang durch einen
Setzimpuls auf den Eingang S des Registers 2 ausgelöst.
-
Fig. 7 zeigt eine Anordnung mit einem Datenbus D analog zu Fig. 5.
Dabei sind die Bits Ao bis A3 des Datenbusses D den Eingängen Eo bis E3 des Registers
R zugeordnet, am Eingang E4 des Registers R steht eine feste "1" an und die Bits
A4 bis A6 des Datenbusses D sind den Eingängen E5 bis E7 zugeordnet. Dadurch wird
analog zur Anordnung nach Fig. 4 erreicht, daß in das Register R unmittelbar eine
Festpunktzahl in delogarithmierter Form eingeschrieben wird. Die Ausgänge Ao bis
A7 sind wieder den Bits D0 bis D7 zugeordnet, sodaß die näherungsweise delogarithmierte
Festpunktzahl vom Datenbus D z.B. durch einen Mikroprozessor gelesen werden kann.
-
Fig. 8 zeigt eine Anordnung zur Bildung des korrigierten Näherungslogarithmus
mit einem Datenbus D. Die Korrekturwerte sind in einem Speicher Sp abgelegt, der
zweckmäßigerweise als ROM-Speicher ausgelegt ist. Der Speicher Sp besitzt im Beispiel
16 Speicherzellen mit je 4 Bit Länge. Der Speicher Sp wird durch den aus den Bit
Do bis D3 gebildeten gebrochenen Anteil A M der Mantisse adressiert. Im Addierer
A wird die Summe aus dem Korrekturwert und AM gebildet. Die an den Ausgängen A',
B', C', D' anstehende Summe wird mit einem Schreibimpul.< am Eingang WR des Registers
R als gebrochener Anteil des Exponenten in das Register R geschrieben. Die Bits
D5 bis D7 werden direkt aus dem Datenbus in das Register R geschrieben, wobei die
Zuordnung zwischen den Bits des Datenbusses D und den Registereingängen wie in Zusammenhang
mit Fig. 4 beschrieben erfolgt. Das Ergebnis kann schließlich durch einen Leseimpuls
auf den Eingang RD auf den Datenbus D geschaltet werden.
-
Die beschriebenen Verfahren können in äquivalenter Form auch ganz
oder teilweise in Software durchgeführt werden. So kann es z.B. vorteilhaft sein,
die Schiebeoperationen hardwaremäßig durchzuführen, während~ein eventuelles Korrekturverfahren
softwaremäßig ausgeführt wird.