DE10163350A1 - Verfahren und Vorrichtung zum Erzeugen eines Ausgangssignals als mathematische Funktion eines Eingangssignals - Google Patents

Verfahren und Vorrichtung zum Erzeugen eines Ausgangssignals als mathematische Funktion eines Eingangssignals

Info

Publication number
DE10163350A1
DE10163350A1 DE10163350A DE10163350A DE10163350A1 DE 10163350 A1 DE10163350 A1 DE 10163350A1 DE 10163350 A DE10163350 A DE 10163350A DE 10163350 A DE10163350 A DE 10163350A DE 10163350 A1 DE10163350 A1 DE 10163350A1
Authority
DE
Germany
Prior art keywords
signal
log
const
function
shift
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
DE10163350A
Other languages
English (en)
Inventor
Markus Freidhof
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.)
Rohde and Schwarz GmbH and Co KG
Original Assignee
Rohde and Schwarz GmbH and Co KG
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 Rohde and Schwarz GmbH and Co KG filed Critical Rohde and Schwarz GmbH and Co KG
Priority to DE10163350A priority Critical patent/DE10163350A1/de
Priority to US10/321,829 priority patent/US7233966B2/en
Priority to JP2002370530A priority patent/JP4330874B2/ja
Publication of DE10163350A1 publication Critical patent/DE10163350A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions

Abstract

Eine Vorrichtung (1) zum Erzeugen eines digitalen Ausgangssignals (y¶LOG¶(k)/K) als mathematische Funktion eines digitalen Eingangssignals (x¶LOG¶(k)) umfaßt eine Pegelveränderungs-Einrichtung (6), die durch Verstärken oder Abschwächen des Eingangssignals (x¶LOG¶(k)) ein erstes Zwischensignal (A), das in einen eingeengten Argument-Bereich der mathematischen Funktion fällt, und ein von der Verstärkung bzw. Abschwächung des Eingangssignals (x¶LOG¶(k)) abhängiges Korrektursignal (Shift¶LOG¶) erzeugt. In einer Speichereinrichtung (119 sind an oder zwischen Stützstellen tabellierte Funktionswerte der mathematischen Funktion gespeichert. Die tabellierten Funktionswerte (B1) werden aus der Speichereinrichtung (11) in Abhängigkeit von dem ersten Zwischensignal (A) ausgelesen und ein zweites Zwischensignal (B) wird in Abhängigkeit von den ausgelesenen tabellierten Funktionswerten (B1) erzeugt. Durch Subtrahieren des Korrektursignals (Shift¶LOG¶) von dem zweiten Zwischensignal (B) in einem Subtrahierer (12) wird das digitale Ausgangssignal (y¶LOG¶(k)/K) erzeugt.

Description

  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Erzeugen eines digitalen Ausgangssignals als mathematische Funktion eines digitalen Eingangssignals sowie ein Computerprogramm zur Durchführung des Verfahrens.
  • Beispielsweise gibt es Anwendungen, bei welchen der Logarithmus des Betrags eines komplexen, aus einer realen Komponenten I und einer imaginären Komponente Q bestehenden digitalen Eingangssignals beispielsweise zur Gewinnung einer logarithmisch skalierten Regelgröße bestimmt werden muß. Bisher war es üblich, entweder den Funktionswert beispielsweise durch iterative Verfahren zu berechnen, oder die Funktionswerte in umfangreichen Tabellen vorzuhalten und in Abhängigkeit von dem Wert des Eingangssignals abzurufen. Die Berechnung der Funktionswerte in Echtzeit erfordert einen in der Regel nicht realisierbaren Hardwareaufwand. Wird eine Tabelle für alle möglichen Werte des Eingangssignals vorgehalten, so erfordert dies entweder einen hohen Speicherbedarf oder die Stützstellen der Tabelle sind soweit voneinander entfernt, daß entweder nur eine geringe Genauigkeit erreicht wird oder ein erheblich hoher Aufwand bei der Interpolation zwischen den Stützstellen durch die Interpolationsverfahren betrieben werden muß.
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Vorrichtung zum Erzeugen eines digitalen Ausgangssignals als mathematische Funktion eines digitalen Eingangssignals sowie ein Computerprogramm zur Durchführung des Verfahrens zu schaffen, welches mit einem geringen Speicherbedarf für die Funktionstabelle auskommt und eine Bestimmung der dem Ausgangssignal zugrundeliegenden Funktionswerte dennoch mit hoher Genauigkeit ermöglicht.
  • Die Aufgabe wird bezüglich des Verfahrens durch die Merkmale des Anspruchs 1, bezüglich der Vorrichtung durch die Merkmale des Anspruchs 12 und bezüglich des Computerprogramms durch die Merkmale eines der Ansprüche 19 bis 21 gelöst.
  • Erfindungsgemäß wird nur ein eingeengter Argument-Bereich der mathematischen Funktion verwendet, d. h., der Bereich der Argument-Werte für welche die Funktion tabelliert ist, ist gegenüber dem zulässigen Wertebereich des Eingangssignals stark eingeschränkt. In diesem eingeengten Argument-Bereich können die Funktionswerte auch mit begrenztem Speicheraufwand relativ eng benachbart tabelliert werden. Das Eingangssignal wird durch entsprechendes Verstärken oder Abschwächen in seinem Pegel so verändert, daß ein der Tabelle zugeführtes Signal in dem eingeengten Argument-Bereich, in welchem die mathematische Funktion tabelliert ist, liegt. Aus dem Verstärkungs- bzw. Abschwächungsfaktor wird ein Korrektursignal erzeugt, mit welchem das Ausgangssignal, das aus den tabellierten und gegebenenfalls interpolierten Funktionswerten besteht, korrigiert wird.
  • Die Unteransprüche ermöglichen vorteilhafte Weiterbildungen der Erfindung.
  • Vorzugsweise wird eine lineare Interpolation zwischen den tabellieren Funktionswerten verwendet. Eine erhebliche Vereinfachung kann dadurch erreicht werden, daß entweder in dem gesamten eingeengten Argument-Bereich eine einheitliche, konstante Steigung für die lineare Interpolation verwendet wird oder indem der eingeengte Argument-Bereich in einige wenige Abschnitte untergliedert wird, in welchen jeweils eine konstante Steigung für die lineare Interpolation verwendet wird. Im Gegensatz zu einer linearen Interpolation, bei welcher an jeder Stützstelle die Steigung separat aus dem Differenzquotienten ermittelt wird, ergibt sich eine erhebliche Vereinfachung bei der Implementierung der linearen Interpolation. Da der zulässige Argument- Bereich der tabellieren mathematischen Funktion gegenüber dem zulässigen Wertebereich des Eingangssignals erheblich eingeschränkt ist, ist diese Vereinfachung der linearen Interpolation mit nur geringen Genauigkeitsverlusten behaftet.
  • Wenn zunächst das Betragsquadrat eines komplexen Eingangssignals berechnet werden soll ist es vorteilhaft, eine Grob-Verstärkung bzw. Grob-Abschwächung des Eingangssignals zumindest teilweise noch vor der Betragsquadratsbildung vorzunehmen und gegebenenfalls nach der Betragsquadratsbildung noch eine Fein-Verstärkung bzw. Fein-Abschwächung vorzunehmen und das Korrektursignal entsprechend anzupassen.
  • Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnung näher beschrieben. In der Zeichnung zeigen:
  • Fig. 1 ein Blockschaltbild eines ersten Ausführungsbeispiels der erfindungsgemäßen Vorrichtung;
  • Fig. 2 ein Blockschaltbild eines zweiten Ausführungsbeispiels der erfindungsgemäßen Vorrichtung;
  • Fig. 3 zwei Diagramme zur Erläuterung der Tabellierung der mathematischen Funktion;
  • Fig. 4 eine bevorzugte detaillierte Ausführung eines Ausschnitts der in den Fig. 1 und 2 dargestellten Ausführungsbeispiele der erfindungsgemäßen Vorrichtung;
  • Fig. 5 der Berechnungsfehler als Funktion des der Tabelle zugeführten Signals bei einer linearen Interpolation mit einer einheitlichen, konstanten Steigung;
  • Fig. 6 der Berechungsfehler als Funktion des der Tabelle zugeführten Signals bei Verwendung von drei jeweils konstanten Steigungen in unterschiedlichen Abschnitten bei der linearen Interpolation; und
  • Fig. 7 ein Diagramm zur Erläuterung der Vorgehensweise bei der linearen Interpolation.
  • Fig. 1 zeigt ein erstes Ausführungsbeispiel der erfindungsgemäßen Vorrichtung 1 zur Durchführung des erfindungsgemäßen Verfahrens. Im dargestellten Ausführungsbeispiel dient die Vorrichtung 1 dazu, aus einem digitalen Eingangssignal xLOG(k), das aus einer Abtastfolge besteht, ein ebenfalls aus einer Abtastfolge bestehendes digitales Ausgangssignal yLOG(k)/K zu erzeugen, wobei die Abtastwerte des Ausgangssignals yLOG(k)/K der Logarithmus zur Basis 2 der Abtastwerte des Eingangssignals xLOG(k) sind. Der Logarithmus zur Basis 2 unterscheidet sich nur durch die Konstante K vom Logarithmus zur Basis 10, so daß die Abtastfolge yLOG(k) den Logarithmus zur Basis 10 der Abtastfolge des Eingangssignals xLOG(k) darstellt. Die Erfindung eignet sich für beliebige mathematische Funktionen, insbesondere monotone Funktionen, und ist nicht auf den Anwendungsfall des Logarithmus beschränkt.
  • Bei dem in Fig. 1 dargestellten Ausführungsbeispiel wird in einer Betragsquadratsbildungs-Einrichtung 2 zunächst das Betragsquadrat des Eingangssignals xLOG(k) gebildet. Für Anwendungsfälle, bei welchen der Logarithmus unmittelbar des Eingangssignals xLOG(k) bestimmt werden soll, ist die Betragsquadratsbildungs-Einrichtung 2 wegzulassen. Die Betragsquadratsbildungs-Einrichtung 2 besteht aus einem ersten Multiplizierer 3, welcher die reale Komponente I des komplexen Eingangssignals xLOG(k) quadriert, und einem zweiten Multiplizierer 4, welcher die imaginäre Komponente Q des komplexen Eingangssignals xLOG(k) quadriert. In einem Addierer 5 werden die quadrierten Komponenten addiert, so daß am Ausgang der Betragsquadratsbildungs-Einrichtung 2 das Betragsquadrat |xLoG(k)|2 des Eingangssignals xLOG(k) zur Verfügung steht. Dieses wird einer Pegelveränderungs- Einrichtung 6 zugeführt.
  • Die Pegelveränderungs-Einrichtung 6 verstärkt das Eingangssignal xLOG(k) bzw. im Ausführungsbeispiel das Betragsquadrat des Eingangssignals xLOG(k) so, daß ein dadurch entstehendes erstes Zwischensignal A in einen vorgegebenen eingeengten Argument-Bereich der mathematischen Funktion, im Ausführungsbeispiel des Logarithmus zur Basis 2, fällt. Im bevorzugten Ausführungsbeispiel ist der eingeengte Argument-Bereich des Logarithmus zur Basis 2 das Intervall [0,5, 1). Im dargestellten bevorzugten Ausführungsbeispiel erfolgt die Verstärkung durch Verschieben der Wertigkeit der Bits des Betragsquadrats des Eingangssignals. Dabei wird zunächst in einer Bestimmungseinrichtung 7 mit einem weiter unten angegebenen Verfahren die Anzahl ShiftLOG der Bits bestimmt, um welche die Wertigkeit des Betragsquadrats des Eingangssignals angehoben werden muß, um in den eingeengten Argument-Bereich [0,5, 1) zu fallen. Die Anzahl dieser Verschiebungsbits ShiftLOG stellt dabei ein Korrektursignal dar, um welche die Funktionswerte später korrigiert werden müssen. Im allgemeinen Fall kann der Verstärkungsfaktor auch eine ungerade Potenz der Basis 2 sein, dann ist jedoch die Verstärkung nicht durch Bitverschiebung und die spätere Korrektur nicht durch eine einfache Subtraktion möglich. Erfolgt die Verstärkung, wie im dargestellten Ausführungsbeispiel, durch eine Bitverschiebung, so kann statt eines echten Multiplizierers ein Bitverschieber (Bitshifter) 8 verwendet werden. Der Bitverschieber 8 ist durch den Potenzierer 9 und den Multiplizierer 10 veranschaulicht. Auch eine negative Verstärkung (Abschwächung) ist möglich.
  • Das erste Zwischensignal A wird einer Funktionswertermittlungseinrichtung 11 zugeführt, welche die zu den Abtastwerten des ersten Zwischensignals A gehörenden Funktionswerte der mathematischen Funktion als zweites Zwischensignal B ausgibt. Im dargestellten Ausführungsbeispiel erzeugt die Funktionswertermittlungs- Einrichtung 11 als zweites Zwischensignal B jeweils den Logarithmus zur Basis 2 des ersten Zwischensignals A.
  • Das zweite Zwischensignal B wird durch das Korrektursignal ShiftLOG korrigiert. Dabei muß das Korrektursignal mit der gleichen mathematischen Funktion, hier dem Logarithmus zur Basis 2, behandelt werden. Wenn jedoch der Verstärkungsfaktor, wie im dargestellten Ausführungsbeispiel, eine ganzzahlige Potenz der Basis 2 ist, so stellt der Wert ShiftLOG die entsprechende Potenz zur Basis 2 dar und die Korrektur kann in einfacher Weise dadurch erfolgen, daß von dem zweiten Zwischensignal B das Korrektursignal ShiftLOG in einem Subtrahierer 12 subtrahiert wird. Dadurch entsteht das Ausgangssignal yLOG(k)/K. Wird eine andere mathematische Funktion als der Logarithmus verwendet, so ist statt des Subtrahierers ein entsprechendes anderes Korrekturglied 12 zu verwenden.
  • Da nur der Betrag benötigt wird und nachfolgend der Logarithmus bestimmt wird, wird nicht der Betrag, sondern das Betragsquadrat bestimmt. Durch den Logarithmus ergibt sich dann nur ein konstanter Faktor:

    20.log10|xLOG(k)| = 10.log10|xLOG|(k)2. (1)
  • Das Betragsquadrat von xLOG(k) kann einfach durch Multiplikation bestimmt werden:

    |xLOG(k)|2 = Re{xLOG(k)}2 + Im{xLOG(k)}2. (2)
  • Der Logarithmus soll durch ein Tabellen-Verfahren realisiert werden. Mit Hilfe der Tabelle wird aber nur ein Näherungswert für yLOG(k) bestimmt. Der durch die Näherung entstehende Fehler soll z. B. kleiner 0,001 dB sein. Um über den gesamten Wertebereich des Logarithmus eine solche hohe Genauigkeit zu erreichen, müßte bei einem reinen Tabellenverfahren eine sehr große Tabelle (ca. 120-k-Worte) realisiert werden. Durch erfindungsgemäße Vereinfachungen kann die Größe der Tabelle deutlich reduziert werden. Eine wichtige Vereinfachung ist die Verwendung des Bitverschiebers 8 am Tabellen-Eingang. Die Eingangswerte der Tabelle (Ergebnis der Betragsquadrat-Rechnung) werden solange mit dem Faktor 2 multipliziert, bis der Eingangswert (erstes Zwischensignal A) im Wertebereich


    liegt. Die Multiplikation am Eingang des Logarithmierers kann durch eine Subtraktion am Ausgang wieder rückgängig gemacht werden:


  • Somit muß die Tabelle nur über den Eingangswertebereich [0,5, 1) ausgelegt werden. Beim Logarithmus mit der Basis 10 müßte eine Tabelle mit den Logarithmen der Zweierpotenzen


    realisiert werden. Dies kann vermieden werden, wenn der Logarithmus zur Basis 2 verwendet wird. Es gilt:


  • Für die Zweierpotenz ist nun keine Tabelle mehr notwendig, der Shiftfaktor ShiftLOG kann direkt subtrahiert werden. Der Faktor


    kann im Ausgangssignal yLOG(k) berücksichtigt werden.
  • Bei dem in Fig. 1 gezeigten Blockschaltbild sind zwei Multiplizierer 3 und 4 mit hoher Wortbreite zur Berechnung des Betragsquadrats notwendig. Nach der Berechnung des Betragsquadrats wird durch einen Shift das Ergebnis solange verstärkt, bis es im Definitionsbereich (eingeschränkter Argument-Bereich) der Tabelle für den Logarithmus liegt. Wenn diese Verstärkung schon vor der Berechnung des Betragsquadrats durchgeführt wird, müssen die Multiplizierer 3, 4 nicht mehr die große Wortbreite haben. Es gilt:


  • Wenn der |xLOG(k)|2 sehr groß ist, ist es nicht notwendig, zur Berechnung des Betragsquadrats so breite Multiplizierer zu verwenden. Kleinere Fehler in der Berechung sind akzeptabel, wenn der Logarithmus nur auf z. B. 0,001 dB genau bestimmt werden soll. Wird aber das Betragsquadrat klein (Eingangswerte sind auch klein), würde eine Reduzierung der Wortbreite der Multiplizierer zu relevanten Fehlern führen. Dies kann umgangen werden, wenn die nachfolgende Verstärkung vor die Multiplizierer verschoben wird. Nun ist vor der Betragsquadratberechung jedoch noch nicht bekannt, welcher Shift-Faktor ShiftLOG sich ergibt. Zu seiner Bestimmung muß ja schon das Betragsquadrat berechnet worden sein. Aber schon an den Eingangswerten kann ein sehr guter Schätzwert für den Shiftfaktor berechnet werden. Am Eingang der Betragsquadratberechung werden mit dem Shift-Faktor ShiftIQ die Eingangswerte verstärkt:


  • Der Shift-Faktor ShiftIQ wird so gewählt, daß die Eingangswerte ihren Wertebereich möglichst optimal ausnutzen. Dies ist der Fall, wenn entweder der Real- oder der Imaginärteil eine der folgenden Ungleichungen erfüllen:


  • Es darf nicht soweit verstärkt werden, daß einer der beiden Teile seinen Wertebereich verläßt. Deshalb muß weiterhin gelten:


  • Diese zunächst kompliziert erscheinenden Regeln können einfach realisiert werden. Die Bitverschiebung (Shift) wird z. B. in 5 Schritten durchgeführt. Die Shift-Faktoren dieser Schritte sind 16, 8, 4, 2 und 1. Gestartet wird mit dem Shift um den Faktor 16. Bei jedem Schritt muß nur überprüft werden, ob alle führenden Bits (MSB), die durch diesen Shift herausgeschoben werden, identisch sind.
  • Wenn die Regel aus den Ungleichungen (9) und (10) eingehalten werden, ergibt sich als Wertebereich für das Betragsquadrat:


  • Nach Ungleichung (3) soll der Eingangswert der Tabelle im Intervall [0,5, 1) liegen. Aus diesem Grund muß nun noch ein Bitverschieber (Shifter) mit drei Stufen vorgesehen werden:


  • Fig. 2 zeigt ein zweites Ausführungsbeispiel der erfindungsgemäßen Vorrichtung zur Durchführung des erfindungsgemäßen Verfahrens mit der vorstehend beschriebenen zweistufigen Verstärkung. Mit Fig. 1 übereinstimmende Elemente sind mit den gleichen Bezugszeichen versehen und werden nicht nochmals beschrieben. Bei dem in Fig. 2 dargestellten Ausführungsbeispiel umfaßt die Pegelveränderungs-Einrichtung eine vor dem Eingang der Betragsbildungs-Einrichtung 2 angeordnete erste Pegelveränderungs-Teileinrichtung 6a und eine hinter dem Ausgang der Betragsquadratsbildungs- Einrichtung 2 angeordnete zweite Pegelveränderungs- Teileinrichtung 6b. Das Korrektursignal ShiftLOG ist aus einem von der ersten Pegelveränderungs-Teileinrichtung 6a erzeugten ersten Korrektur-Teilsignal ShiftIQ und einem von der zweiten Pegelveränderungs-Teileinrichtung 6b erzeugten zweiten Korrektur-Teilsignal ShiftKorr zusammengesetzt. Dazu wird das erste Korrektur-Teilsignal ShiftIQ in einem als Multiplizierer dargestellten Bitverschieber 13, wie in der Ungleichung (12) angegeben, mit dem Faktor 2 multipliziert, und das Ergebnis wird in einem Addierer 14 zu dem zweiten Korrektur-Teilsignal ShiftKorr addiert, um das resultierende Korrektursignal ShiftLOG zu erzeugen.
  • Fig. 4 zeigt eine detailliertere Darstellung der bei den Ausführungsbeispielen der Fig. 1 und 2 verwendeten Funktionswertermittlungs-Einrichtung 11. Einem Eingang der Funktionsermittlungs-Einrichtung 11 wird das Zwischensignal A zugeführt. Einige der signifikantesten Bits MSB (most significant bits), beispielsweise die acht signifikantesten Bits, bilden das Adreß-Wort ADR, das einer Speichereinrichtung 20, beispielsweise einem ROM (read only memory) zugeführt wird. In der Speichereinrichtung 20 sind an Stützstellen oder vorzugsweise zwischen Stützstellen Funktionswerte der darzustellenden mathematischen Funktion, im Ausführungsbeispiel des Logarithmus zur Basis 2, gespeichert. Durch die Verstärkung bzw. Abschwächung des Eingangssignals bei der Erzeugung des ersten Zwischensignals A wird, wie oben beschrieben, sichergestellt, daß das erste Zwischensignal A in einem eingeengten Argument-Bereich der mathematischen Funktion, im Ausführungsbeispiel in dem Intervall [0,5, 1), liegt. Aufgrund dieses eingeengten Argument-Bereichs können die Stützstellen bei einer vorgegebenen Speicherkapazität der Speichereinrichtung 20 relativ eng gesetzt werden, so daß sich bereits durch die Einengung des Argument-Bereichs eine relativ hohe Genauigkeit der an bzw. zwischen den Stützstellen tabellierten Funktionswerte B1 ergibt.
  • Im dargestellten Ausführungsbeispiel wird die Genauigkeit noch dadurch gesteigert, daß zwischen den tabellierten Funktionswerten B1 eine lineare Interpolation, also eine Interpolation erster Ordnung, vorgenommen wird. Die bei der linearen Interpolation verwendete Geradensteigung wird erfindungsgemäß jedoch nicht für jede Stützstelle der Tabelle beispielsweise durch Differenzquotientenbildung individuell berücksichtigt, sondern es wird entweder für den gesamten Argument-Bereich von einer einheitlichen Geradensteigung ausgegangen oder es wird der Argument- Bereich in mehrere Abschnitte untergliedert und die Geradensteigung ist jeweils in diesen Abschnitten konstant.
  • Fig. 7 verdeutlicht diese Vorgehensweise. Dargestellt ist der Logarithmus zur Basis 2 als Funktion des ersten Zwischensignals A. Zwischen den Stützstellen xi, xi+1, bzw. xj, xj+1 ist jeweils ein Funktionswert B1 in der Speichereinrichtung 20 tabelliert. Zwischen diesen tabellierten Funktionswerten wird linear interpoliert. Die bei der Interpolation verwendeten Geraden sind in Fig. 7 veranschaulicht. Dabei ist erkennbar, daß die Geradensteigung unabhängig von der Position der Stützstellen stets die gleiche ist. In Fig. 3 ist veranschaulicht, daß es in Bezug auf den Tabellenfehler εTAB(i)/K günstiger ist, die Funktionswerte in der Speichereinrichtung 20 nicht an den Stützstellen xi bzw. xi+1 abzuspeichern, sondern an den dazwischenliegenden Positionen, also beispielsweise an der Position (xi + xi+1)/2. Dadurch kann der Tabellenfehler εTAB(i)/K halbiert werden.
  • Wenn in dem gesamten eingeengten Argument-Bereich eine einheitliche, konstante Steigung mkonst für die lineare Interpolation verwendet wird, so läßt sich für den Fall, daß es sich bei der mathematischen Funktion um den Logarithmus zur Basis 2 handelt und der eingeengte Argument-Bereich zwischen 0,5 und 1 liegt, zeigen, daß für diejenige konstante Steigung mkonst bei welcher der geringste maximale Interpolationsfehler auftritt, gilt:

    mkonst = 3/(2.ln 2) ≍ 2,164 (13)
  • Besser implementieren läßt sich jedoch die gerundete, konstante Steigung mkonst = 2. Der für mkonst = 2 auftretende Fehler des Ausgangssignals yLOG(x) ist in Abhängigkeit des ersten Zwischensignals A in Fig. 5 veranschaulicht.
  • Wie bereits erwähnt, läßt sich der Interpolationsfehler noch weiter dadurch verringern, daß der Argument-Bereich in mehrere Abschnitte I1, I2, I3 untergliedert wird, wobei die Steigung in den Abschnitten jeweils konstant, von Abschnitt zu Abschnitt jedoch unterschiedlich ist. Beispielsweise kann der eingeengte Argument-Bereich [0,5, 1) in die Abschnitte


    unterteilt werden. Für diese in Fig. 6 dargestellten Bereichsgrenzen A1 = 5/8, A2 = 3/4 läßt sich zeigen, daß für die jeweils optimale Steigung der linearen Interpolation in den drei unterschiedlichen Abschnitten I1, I2, und I3 folgendes gilt:


  • Die gerundeten Werte lassen sich als Kombination von ganzzahligen Zweierpotenzen darstellen, so daß die Multiplikationen bei der linearen Interpolation durch Bitverschiebungen ohne größeren Hardwareaufwand realisierbar sind.
  • Obwohl bei dem Beispiel in Fig. 6 im Vergleich zu dem Beispiel der Fig. 5 die vierfache Stützstellenweite Δx verwendet wurde, hat sich der Fehler nicht wesentlich erhöht.
  • Die Realisierung für das vorstehend genannte Beispiel ist in Fig. 4 veranschaulicht. Die weniger signifikanten Bits, die nicht in das Adresswort ADR eingehen, bilden das Datenwort A-ADR und werden einem Interpolator 30 zugeführt. Ein Subtrahierer 21 des Interpolators subtrahiert von dem Datenwort A-ADR jeweils den Wert Δx/2, wobei Δx den Abstand zwischen zwei Stützstellen bedeutet. Dadurch wird dem anhand von Fig. 3 erläuterten Umstand Rechnung getragen, daß die Funktionswerte B1 jeweils zwischen den Stützstellen tabelliert sind, wodurch diese Korrektur erforderlich wird.
  • Der Ausgang des Subtrahierers 21 ist einerseits direkt und andererseits über einen Bitverschieber 22, der die Wertigkeit der Ausgangswerte des Subtrahierers 21 jeweils um eine Stelle erhöht, mit einem ersten Multiplexer 23 verbunden. Andererseits ist der Ausgang des Subtrahierers 21 über einen zweiten Bitverschieber 24, der die Wertigkeit der Bits des Ausgangs des Subtrahierers 21 um eine Stelle vermindert, mit einem zweiten Multiplexer 25 verbunden, dessen anderen Eingang stetig der Datenwert "0" zugeführt wird. Über einen dritten Bitverschieber 26, der die Bits der Ausgangswerte des Subtrahierers 21 um drei Stellen vermindert, ist ein erster Eingang eines ersten Addierers 27 mit dem Ausgang des Subtrahierers 21 verbunden. Der andere Eingang des ersten Addierers 27 steht mit dem Ausgang des zweiten Multiplexers 25 in Verbindung. Ein erster Eingang eines zweiten Addierers 28 ist mit dem Ausgang des ersten Addierers 27 verbunden, während ein zweiter Eingang des zweiten Addierers 28 mit dem Ausgang des ersten Multiplexers 23 in Verbindung steht. An dem Ausgang des zweiten Addierers 28 stehen die Interpolationswerte B2 zur Verfügung. Die aus der Speichereinrichtung 20 ausgelesenen Funktionswert B1 und die Interpolationswerte B2 werden den Eingängen eines dritten Addierers 29 zugeführt. An dem Ausgang des dritten Addierers 29 steht dann das zweite Zwischensignal B zur Verfügung.
  • Die Multiplexer 23 und 25 dienen zum Umschalten zwischen den in den unterschiedlichen Abschnitten jeweils konstanten aber unterschiedlichen Steigungen mkonst,3, mkonst,2 und mkonst,3 entsprechen dem oben angegebenen Wertebeispiel. Dazu verbindet der Multiplexer 23 den mit "1" gekennzeichneten Eingang mit seinem Ausgang, wenn das achte Bit ADR(8) des Adreßworts ADR nicht gesetzt ist. Ansonsten ist der mit "0" gekennzeichnete Eingang des ersten Multiplexers 23 mit seinem Ausgang verbunden. Der zweite Multiplexer 25 verbindet seine mit "1" gekennzeichneten Eingang mit seinem Ausgang, wenn das achte Bit ADR(8) des Adreßworts ADR nicht gesetzt ist oder das siebte Bit ADR(7) des Adreßworts ADR gesetzt ist. Wie sich durch einfache logische Kombination ergibt, werden auf diese Weise die in den Gleichungen (15) angegebenen Beispielswerte für die unterschiedlichen Steigungen in den unterschiedlichen Abschnitten I1, I2, I3 des eingeengten Argument-Bereichs implementiert. Die Bitverschieber 22, 24, 26, die Multiplizierer 23, 25 und die Addierer 27, 28 bilden somit eine umschaltbare Multipliziereinrichtung 31.
  • Die Erfindung ist nicht auf das dargestellte Ausführungsbeispiel beschränkt und eignet sich für beliebige mathematische Funktionen. Die Erfindung kann sowohl als Hardware in Form einer elektronischen Schaltung, insbesondere eines FPGA (free programmable gatter array), als auch als Software, beispielsweise in einem digitalen Signalprozessor, implementiert werden.

Claims (21)

1. Verfahren zum Erzeugen eines digitalen Ausgangssignals (yLOG(k)/K) als mathematische Funktion eines digitalen Eingangssignals (xLOG(k)) unter Verwendung eines Computers, eines digitalen Signalprozessors oder einer elektronischen Schaltung mit folgenden Verfahrensschritten:
- Verstärken oder Abschwächen des Eingangssignals (xLOG(k)) zum Erzeugen eines ersten Zwischensignals (A), das in einen eingeengten Argument-Bereich der mathematischen Funktion fällt, und eines von der Verstärkung bzw. Abschwächung des Eingangssignals (xLOG(k)) abhängigen Korrektursignals (ShiftLOG),
- Auslesen von an oder zwischen Stützstellen (xi, xi+1, yi, yi+1) tabellierten Funktionswerten (B1) aus einer Tabelle in Abhängigkeit von dem ersten Zwischensignal (A) und Erzeugen eines zweiten Zwischensignals (B) in Abhängigkeit von den ausgelesenen tabellierten Funktionswerten (B1) und
- Erzeugen des digitalen Ausgangssignals (yLOG(k)/K) durch Korrigieren des zweiten Zwischensignal (B) mit dem Korrektursignal (ShiftLOG).
2. Verfahren nach Anspruch 1, gekennzeichnet durch,
Erzeugen von Interpolationswerten (B2) in Abhängigkeit von der Abweichung des ersten Zwischensignals (A) von den Stützstellen (xi, xi+1, yi, yi+1) und
Erzeugen des zweiten Zwischensignals (B) durch Addieren der ausgelesenen tabellierten Funktionswerte (B1) und der Interpolationswerte (B2).
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß eine lineare Interpolation mit einer in dem eingeengten Argument-Bereich konstanten Steigung mkonst erfolgt.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß die konstante Steigung mkonst so gewählt ist, daß der bei der Interpolation entstehende Interpolationsfehler möglichst klein ist.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß die mathematische Funktion der Logarithmus zur Basis 2 ist, der eingeengte Argument-Bereich zwischen 0,5 und 1 liegt und die konstante Steigung mkonst = 2 beträgt.
6. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß eine lineare Interpolation mit in dem eingeengten Argument-Bereich zwischen Bereichsgrenzen (A1, A2) abschnittsweise konstanten Steigungen mkonst,1, mkonst,2 und mkonst,3 erfolgt.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß die konstanten Steigungen mkonst,1, mkonst,2, mkonst,3 so gewählt sind, daß der bei der Interpolation entstehende Interpolationsfehler möglichst klein ist.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß die mathematische Funktion der Logarithmus zur Basis 2 ist, der eingeengte Argument-Bereich zwischen 0,5 und 1 liegt und die konstanten Steigungen mkonst,1 = 2 + 2-1 + 2-3, mkonst,2 = 2 + 2-3 und mkonst,3 = 1 + 2-3 betragen.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß das digitale Eingangssignal (xLOG(k)) aus einer realen Komponente (I) und einer imaginären Komponente (Q) besteht, die vor der Beaufschlagung mit der mathematischen Funktion quadriert und addiert werden.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß die Verstärkung bzw. Abschwächung des digitalen Eingangssignals (xLOG(k)) zumindest teilweise vor der Quadrierung der Komponenten (I, Q) des digitalen Eingangssignals (xLOG(k)) erfolgt.
11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet,
daß die mathematische Funktion der Logarithmus zur einer bestimmten Basis ist und das Korrektursignal (ShiftLOG) den Exponenten (x) der gleichen Basis eines bei der Verstärkung verwendeten Verstärkungsfaktors (2x) darstellt und
daß die Korrektur durch Subtrahieren des Korrektursignals (ShiftLOG) von dem zweiten Zwischensignal (B) erfolgt.
12. Vorrichtung (1) zum Erzeugen eines digitalen Ausgangssignals (YLOG(k)/K) als mathematische Funktion eines digitalen Eingangssignals (xLOG(k)) mit
einer Pegelveränderungs-Einrichtung (6), die durch Verstärken oder Abschwächen des Eingangssignals (xLOG(k)) ein erstes Zwischensignals (A), das in einen eingeengten Argument-Bereich der mathematischen Funktion fällt, und ein von der Verstärkung bzw. Abschwächung des Eingangssignals (xLOG(k)) abhängiges Korrektursignal (ShiftLOG) erzeugt,
einer Speichereinrichtung (20), in welcher an oder zwischen Stützstellen (xi, xi+1, yi, yi+1) tabellierte Funktionswerte der mathematischen Funktion gespeichert sind, wobei die tabellierten Funktionswerte (B1) aus der Speichereinrichtung (20) in Abhängigkeit von dem ersten Zwischensignal (A) ausgelesen werden und ein zweites Zwischensignal (B) in Abhängigkeit von den ausgelesenen tabellierten Funktionswerten (B1) erzeugt wird, und
einem Korrekturglied (12), welches das digitale Ausgangssignal (yLOG(k)/K) durch Korrigieren des zweiten Zwischensignals (B) mit dem Korrektursignal (ShiftLOG) erzeugt.
13. Vorrichtung nach Anspruch 12, gekennzeichnet durch einen Interpolator (30), der Interpolationswerte (B2) in Abhängigkeit von der Abweichung des ersten Zwischensignals (A) von den Stützstellen (xi, xi+1, yi, yi+1) erzeugt, und einen Addierer (29), der die tabellierten Funktionswerte (B1) und die Interpolationswerte (B2) addiert.
14. Vorrichtung nach Anspruch 13, dadurch gekennzeichnet,
daß in dem Interpolator (30) eine lineare Interpolation mit Steigungen (mkonst,1, mkonst,2, mkonst,3) erfolgt, die in Abschnitten (I1, I2, I3) des eingeengten Argument-Bereichs jeweils konstant sind, und
daß eine umschaltbare Multipliziereinrichtung (31) vorgesehen ist, die einen Multiplikator (A-ADR-Δx/2), der der Abweichung des ersten Zwischensignals (A) von durch die Stützstellen (xi, xi+1, yi, yi+1) festgelegten Bezugspositionen ((xi + xi+1)/2, (yi, yi+1/2)) entspricht, in Abhängigkeit von dem Abschnitt (I1, I2, I3), in welchem sich das Zwischensignal (A) befindet, mit der zu dem jeweiligen Abschnitt (I1, I2, I3) gehörigen konstanten Steigung (mkonst,1, mkonst,2, mkonst,3) multipliziert.
15. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, daß die umschaltbare Multipliziereinrichtung (31) Bitverschieber (22, 24, 26), die die Bits des Multiplikators (A-ADR-Δx/2) in der Wertigkeit verschieben, Multiplexer (23, 25) und Addierer (27, 28) aufweist.
16. Vorrichtung nach einem der Ansprüche 12 bis 15, dadurch gekennzeichnet, daß eine Betragsquadratsbildungs-Einrichtung (2) vorgesehen ist, die eine reale Komponente (I) und eine imaginäre Komponente (Q) des digitalen Eingangssignals (xLOG(k)) quadriert und die quadrierten Komponenten addiert.
17. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, daß die Pegelveränderungs-Einrichtung (6) eine vor dem Eingang der Betragsquadratsbildungs-Einrichtung (2) angeordnete erste Pegelveränderungs-Teileinrichtung (6a) und eine hinter dem Ausgang der Betragsquadratsbildungs- Einrichtung (2) angeordnete zweite Pegelveränderungs- Teileinrichtung (6b) aufweist und das Korrektursignal (ShiftLOG) aus einem von der ersten Pegelveränderungs- Teileinrichtung (6a) erzeugten ersten Korrektur-Teilsignal (ShiftIQ) und einem von der zweiten Pegelveränderungs- Teileinrichtung (6b) erzeugten zweiten Korrektur-Teilsignal (ShiftKorr) zusammengesetzt ist.
18. Vorrichtung nach einem der Ansprüche 12 bis 17, dadurch gekennzeichnet, daß die mathematische Funktion der Logarithmus zur einer bestimmten Basis ist und das Korrektursignal (ShiftLOG) den Exponenten (x) der gleichen Basis eines in der Pegelveränderungs-Einrichtung verwendeten Verstärkungsfaktors (2X) darstellt und daß das Korrekturglied ein Subtrahierer (12) ist, der das Korrektursignals (ShiftLOG) von dem zweiten Zwischensignal (B) subtrahiert.
19. Computerprogramm mit Programmcode-Mitteln, um alle Schritte gemäß einem der Ansprüche 1 bis 11 durchführen zu können, wenn das Programm auf einem Computer oder einem digitalen Signalprozessor ausgeführt wird.
20. Computerprogramm mit Programmcode-Mitteln, um alle Schritte gemäß einem der Ansprüche 1 bis 11 durchführen zu können, wenn das Programm auf einem maschinenlesbaren Datenträger gespeichert ist.
21. Computerprogramm-Produkt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode-Mitteln, um alle Schritte gemäß einem der Ansprüche 1 bis 11 durchführen zu können, wenn das Programm auf einem Computer oder einem digitalen Signalprozessor ausgeführt wird.
DE10163350A 2001-12-21 2001-12-21 Verfahren und Vorrichtung zum Erzeugen eines Ausgangssignals als mathematische Funktion eines Eingangssignals Withdrawn DE10163350A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10163350A DE10163350A1 (de) 2001-12-21 2001-12-21 Verfahren und Vorrichtung zum Erzeugen eines Ausgangssignals als mathematische Funktion eines Eingangssignals
US10/321,829 US7233966B2 (en) 2001-12-21 2002-12-16 Method and device for generating an output signal as a mathematical function of an input signal
JP2002370530A JP4330874B2 (ja) 2001-12-21 2002-12-20 入力信号の数学的関数として出力信号を生成するための方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10163350A DE10163350A1 (de) 2001-12-21 2001-12-21 Verfahren und Vorrichtung zum Erzeugen eines Ausgangssignals als mathematische Funktion eines Eingangssignals

Publications (1)

Publication Number Publication Date
DE10163350A1 true DE10163350A1 (de) 2003-07-17

Family

ID=7710429

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10163350A Withdrawn DE10163350A1 (de) 2001-12-21 2001-12-21 Verfahren und Vorrichtung zum Erzeugen eines Ausgangssignals als mathematische Funktion eines Eingangssignals

Country Status (3)

Country Link
US (1) US7233966B2 (de)
JP (1) JP4330874B2 (de)
DE (1) DE10163350A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007006577B4 (de) * 2006-02-09 2020-08-13 Realtek Semiconductor Corp. Signalverarbeitungssystem, das Signalpegel ändern kann

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100402734B1 (ko) * 2001-12-21 2003-10-22 한국전자통신연구원 부호화된 피승수를 사용하는 고정 소수점 곱셈 장치 및 그방법
DE102004060185B3 (de) * 2004-12-14 2006-05-18 Infineon Technologies Ag Verfahren und Vorrichtung zur Durchführung einer Multiplikations- oder Divisionsoperation in einer elektronischen Schaltung

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359551A (en) * 1989-06-14 1994-10-25 Log Point Technologies, Inc. High speed logarithmic function generating apparatus
WO1996024094A1 (en) * 1995-01-31 1996-08-08 Motorola Inc. Logarithm/inverse-logarithm converter utilizing second-order term and method of using same
US5600581A (en) * 1995-02-22 1997-02-04 Motorola, Inc. Logarithm/inverse-logarithm converter utilizing linear interpolation and method of using same
US5604691A (en) * 1995-01-31 1997-02-18 Motorola, Inc. Logarithm/inverse-logarithm converter utilizing a truncated Taylor series and method of use thereof
US5831878A (en) * 1995-07-21 1998-11-03 Nec Corporation Exponential and logarithmic conversion circuit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4078250A (en) * 1974-08-21 1978-03-07 The Singer Company Log-antilog conversion for a digital radar system
JP2861687B2 (ja) * 1992-12-04 1999-02-24 日本電気株式会社 対数演算回路
US5642305A (en) * 1995-01-31 1997-06-24 Motorola, Inc. Logarithm/inverse-logarithm converter and method of using same
US5951629A (en) * 1997-09-15 1999-09-14 Motorola, Inc. Method and apparatus for log conversion with scaling
US6289367B1 (en) * 1998-11-16 2001-09-11 Texas Instruments Incorporated Digital signal processing circuits, systems, and method implementing approximations for logarithm and inverse logarithm

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359551A (en) * 1989-06-14 1994-10-25 Log Point Technologies, Inc. High speed logarithmic function generating apparatus
WO1996024094A1 (en) * 1995-01-31 1996-08-08 Motorola Inc. Logarithm/inverse-logarithm converter utilizing second-order term and method of using same
US5604691A (en) * 1995-01-31 1997-02-18 Motorola, Inc. Logarithm/inverse-logarithm converter utilizing a truncated Taylor series and method of use thereof
US5600581A (en) * 1995-02-22 1997-02-04 Motorola, Inc. Logarithm/inverse-logarithm converter utilizing linear interpolation and method of using same
US5831878A (en) * 1995-07-21 1998-11-03 Nec Corporation Exponential and logarithmic conversion circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007006577B4 (de) * 2006-02-09 2020-08-13 Realtek Semiconductor Corp. Signalverarbeitungssystem, das Signalpegel ändern kann

Also Published As

Publication number Publication date
US7233966B2 (en) 2007-06-19
JP4330874B2 (ja) 2009-09-16
JP2003263423A (ja) 2003-09-19
US20030131037A1 (en) 2003-07-10

Similar Documents

Publication Publication Date Title
DE2246968A1 (de) Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen
DE2628473B2 (de) Digitales Faltungsfilter
DE69934956T2 (de) Logarithmus- / Antilogarithmusrechner
DE19538996C2 (de) Vorrichtung und Verfahren zum Schätzen von Filterkoeffizienten
DE2611906A1 (de) Verfahren und schaltungsanordnungen zur blockquantisierung eines elektrischen signals
DE3026230A1 (de) Analog/digital-wandlervorrichtung mit ausgangsstabilisierschaltung
DE102007006577B4 (de) Signalverarbeitungssystem, das Signalpegel ändern kann
DE102005018858B4 (de) Digitales Filter und Verfahren zur Bestimmung seiner Koeffizienten
DE10013068A1 (de) Potenzierungsoperationsvorrichtung
DE10163350A1 (de) Verfahren und Vorrichtung zum Erzeugen eines Ausgangssignals als mathematische Funktion eines Eingangssignals
DE2163621A1 (de) Schaltungsanordnung zur Durchführung der Fourier-Analyse
EP1672480B1 (de) Verfahren und Vorrichtung zur Durchführung einer Multiplikations- oder Divisionsoperation in einer elektronischen Schaltung
DE10200133B4 (de) Verfahren und Vorrichtung zur Berechnung von Modulo-Operationen
DE3416536C2 (de)
DE4022381C2 (de) Verwendung langer Digitalfilter bei Vorkommnis von Abrundungsfehlern
DE102012010229B4 (de) Digitales Filter
DE19925464C2 (de) Verfahren und Schaltungsanordnung zur Abtastratenanpassung digitaler Signale
EP1586914A2 (de) Digitale Filter für NMR- und MRI-Anwendungen
DE10302234A1 (de) Flexibler Dezimator
DE102006009533A1 (de) Verfahren und Schaltungsanordnung zum Berechnen eines Betrags eines komplexen Signals
DE102007045309A1 (de) Schaltungsanordnung und Verfahren zur Leistungsregelung und Verstärkeranordnung
DE19738357B4 (de) Verfahren zum Betrieb eines digitalen Sinus-Generators
DE102005005022B4 (de) Verfahren zum digitalen Filtern und ein digitales Filter mit einer Integratorstufe und einer Differenziatorstufe
DE10105256A1 (de) Vorrichtung und Verfahren zur Abtastratenumsetzung
DE19844139C2 (de) Vorrichtung und Verfahren zum Durchführen einer komplexen Multiplikation für spezielle Wertemengen

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee