DE102019207230B3 - Digital oscillator - Google Patents

Digital oscillator Download PDF

Info

Publication number
DE102019207230B3
DE102019207230B3 DE102019207230.5A DE102019207230A DE102019207230B3 DE 102019207230 B3 DE102019207230 B3 DE 102019207230B3 DE 102019207230 A DE102019207230 A DE 102019207230A DE 102019207230 B3 DE102019207230 B3 DE 102019207230B3
Authority
DE
Germany
Prior art keywords
digital oscillator
recursive
processing
phase angle
oscillator according
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.)
Active
Application number
DE102019207230.5A
Other languages
German (de)
Inventor
Smeets Hugues
Pedro Jose Marron
Ceriotti Matteo
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.)
Universitaet Duisburg Essen
Original Assignee
Universitaet Duisburg Essen
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 Universitaet Duisburg Essen filed Critical Universitaet Duisburg Essen
Priority to DE102019207230.5A priority Critical patent/DE102019207230B3/en
Application granted granted Critical
Publication of DE102019207230B3 publication Critical patent/DE102019207230B3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/548Trigonometric functions; Co-ordinate transformations

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

Digitaler Oszillator, wobei der digitale Oszillator mit Integer-Werten operiert, wobei eine rekursive Verarbeitung verwendet wird, wobei als Eingangsgröße eine Repräsentanz eines Phasenwinkels verwendet wird, wobei zur Verminderung von Rundungsfehlern und Fehlerfortpflanzung abhängig vom Phasenwinkel in einem ersten Phasenwinkelbereich eine Berechnung des Oszillatorwertes anhand einer rekursiven Sinus-Verarbeitung ermittelt wird, und in einem zweiten Phasenwinkelbereich, der verschieden ist vom ersten Phasenwinkelbereich, eine Berechnung des Oszillatorwertes anhand einer rekursiven Cosinus-Verarbeitung ermittelt wird.Digital oscillator, where the digital oscillator operates with integer values, with recursive processing being used, with a representation of a phase angle being used as the input variable, with a calculation of the oscillator value based on a first phase angle range to reduce rounding errors and error propagation depending on the phase angle in a first phase angle range recursive sine processing is determined, and in a second phase angle range, which is different from the first phase angle range, a calculation of the oscillator value is determined on the basis of recursive cosine processing.

Description

Die Erfindung betrifft einen digitalen Oszillator.The invention relates to a digital oscillator.

Hintergrundbackground

Die zunehmende Digitalsierung geht einher mit der Bereitstellung von Recheneinheiten auf verschiedenen Ebenen. Dabei ist jedoch festzustellen, dass aus Kostengründen / Bauraumgründen die Ressourcen dieser Recheneinheiten klein und kostengünstig sind. Dies geht einher mit geringen Leistungen und in aller Regel stark eingeschränkten Ressourcen. Ein weiterer Grund für Ressourcen-limitierte Geräte ist insbesondere bei tragbaren, häufig batteriebetriebenen Geräten, dass der Energieverbrauch niedrig sein soll, um zum einen wenig Abwärme zu erzeugen aber auch um möglichst lange Laufzeiten bereitstellen zu können.The increasing digitalization goes hand in hand with the provision of processing units on different levels. It should be noted, however, that for reasons of cost / installation space, the resources of these computing units are small and inexpensive. This goes hand in hand with low performance and, as a rule, very limited resources. Another reason for resource-limited devices, especially in the case of portable, often battery-operated devices, is that the energy consumption should be low in order to generate little waste heat on the one hand, but also to be able to provide the longest possible running times.

Dies führt im Ergebnis dazu, dass komplexere Rechenaufgaben, die unter Umständen auch speicherintensiver sind, und/oder spezielle mathematische Operationen bedürfen, in aller Regel nicht durch diese Ressourcen-beschränkten Recheneinheiten bereitgestellt werden.The result of this is that more complex arithmetic tasks, which may also be more memory-intensive and / or require special mathematical operations, are generally not provided by these resource-limited arithmetic units.

Beispiele hierfür sind z.B. bestimmte Transformationen, wie z.B. Fourier-Transformationen, Wavelet-Transformationen, kryptographische Operationen.Examples are e.g. certain transformations, e.g. Fourier transforms, wavelet transforms, cryptographic operations.

Wird jedoch eine solche Verarbeitung gewünscht, so wird das Ergebnis auch zeitnah benötigt. D.h. eine Weiterleitung an eine aus Sensorsicht externe Recheneinheit, z.B. mittels Datenfernübertragung, ist im Hinblick auf Latenz unattraktiv oder im Sinne einer Realtime-Verarbeitung ausgeschlossen. Dies ist z.B. auch dann gegeben, wenn zunächst große Datenmengen, wie z.B. kontinuierliche Signaldaten, an eine externe Verarbeitung gesendet werden müssen, um daraus bestimmte Frequenzanteile (z.B. mittels Fourier-Transformation) zu ermitteln. D.h. die Latenz durch die Bereitstellung der Rohdaten allein könnte bereits eine sinnvolle Verarbeitung zunichtemachen.However, if such processing is required, the result is required promptly. I.e. forwarding to a computing unit that is external from the sensor point of view, e.g. by means of remote data transmission, is unattractive in terms of latency or excluded in terms of real-time processing. This is e.g. even if initially large amounts of data, such as continuous signal data must be sent to external processing in order to determine certain frequency components (e.g. using Fourier transformation). I.e. the latency caused by the provision of the raw data alone could destroy meaningful processing.

So ist die sogenannte Schnelle-Fourier-Transformation (engl. Fast Fourier Transformation, abgekürzt FFT) ein Vertreter einer solchen komplexeren Rechenaufgabe, die als speicherhungrig bekannt ist. Selbst sogenannte Smartphones die über eine nicht zu vernachlässigende Rechenleistung und Speicher verfügen, stoßen bei Aufgaben, die eine FFT benötigen, an Grenzen. Dabei spielen zwei Faktoren eine wesentliche Rolle.The so-called Fast Fourier Transformation (FFT for short) is a representative of such a more complex computing task, which is known to be memory-hungry. Even so-called smartphones, which have significant computing power and memory, reach their limits when it comes to tasks that require an FFT. Two factors play an important role here.

Zum einen werden Sinus (Cosinus) förmige Wellen benötigt, die erzeugt werden müssen. Zum anderen müssen die so erzeugten Werte auf ein zufälliges, kontinuierliches Eingangssignal im Rahmen einer FFT angewendet werden.On the one hand, sine (cosine) shaped waves are required that have to be generated. On the other hand, the values generated in this way must be applied to a random, continuous input signal as part of an FFT.

Insbesondere die FFT ist rechenintensiv und benötigt speziellere mathematische Operationen, die nicht auf allen Plattformen verfügbar sind. Typischerweise verfügen Microkontroller nicht über die gewünschten / benötigten mathematischen Operationen. Beispiel solcher mathematischen Operationen sind Floating Point Operationen bzw. die zugehörigen Softwarebibliotheken.FFT, in particular, is computationally intensive and requires more specialized mathematical operations that are not available on all platforms. Typically, microcontrollers do not have the desired / required mathematical operations. Examples of such mathematical operations are floating point operations or the associated software libraries.

Im Stand der Technik ist es bekannt sinusförmige Signale bzw. deren Werte in digitalen Systemen derartig zu erzeugen, dass zunächst die Phasenlage zu einem gegebenen (Zeit-) Wert erzeugt wird und anschließend auf eine gewünschte Amplitude skaliert wird. Dieses Verfahren benötigt keinerlei Rekursion, da es nicht auf einem vorherigen Wert basiert. Rekursive Schemata erzeugen den gewünschten Wert des sinusförmigen Signales direkt, allerdings basiert auf einem oder mehrerer Vorgängerwerten. Ein Beispiel hierfür ist bekannt dem Artikel „Improving performance of digital sinusoidal oscillators by means of error feedback circuits“, veröffentlicht in. IEEE transactions on circuits and systems 33, 4 (1986), 373-380.In the prior art, it is known to generate sinusoidal signals or their values in digital systems in such a way that first the phase position is generated for a given (time) value and is then scaled to a desired amplitude. This method does not require any recursion as it is not based on a previous value. Recursive schemes generate the desired value of the sinusoidal signal directly, but based on one or more previous values. An example of this is known from the article “Improving performance of digital sinusoidal oscillators by means of error feedback circuits”, published in. IEEE transactions on circuits and systems 33, 4 (1986), 373-380.

Weiterhin ist aus dem Artikel „Recursive Discrete-Time Sinusoidal Oscillators“ veröffentlicht in: IEEE Signal Processing Magazine, May 2003. Seiten 103 - 111 ein digitaler Oszillator bekannt, der eine rekursive Cosinus-Verarbeitung verwendet. Zur Korrektur von Fehlern wird eine Automatic Gain Control eingesetzt.Furthermore, from the article “Recursive Discrete-Time Sinusoidal Oscillators” published in: IEEE Signal Processing Magazine, May 2003. Pages 103-111, a digital oscillator is known which uses recursive cosine processing. Automatic gain control is used to correct errors.

Im nicht-rekursiven Fall kann der Berechnungsaufwand durch Lookup-Tabellen und/oder Funktionsapproximationen (Chebychev-, Taylor-Reihen ...) verringert werden kann, die jedoch speicherintensiv sind. Die rekursiven Verfahren sind zwar weniger leistungs- und speicherhungrig, führen jedoch in aller Regel zu anwachsenden Fehlern und eingeschränkten Wellenformen. Als Beispiel hierfür sei auf „A simple recursive digital sinusoidal oscillator with uniform frequency spacing“ des Autors MM AI-Ibrahim veröffentlicht in Circuits and Systems, 2001. ISCAS 2001. The 2001 IEEE International Symposium on, Vol. 2 verwiesen.In the non-recursive case, the computational effort can be reduced by lookup tables and / or function approximations (Chebychev, Taylor series ...), which, however, are memory-intensive. The recursive methods are less power and memory-hungry, but usually lead to increasing errors and restricted waveforms. An example of this is “A simple recursive digital sinusoidal oscillator with uniform frequency spacing” by the author MM AI-Ibrahim published in Circuits and Systems, 2001. ISCAS 2001. The 2001 IEEE International Symposium on, Vol.

Für die Verarbeitung einer FFT ist es notwendig Sinus-Werte zu erzeugen und zu speichern. Dabei sind für viele Hardware-Plattformen spezialisierte Softwarelösungen entwickelt worden, die auf der Verwendung von Floating-Point-Bibliotheken basieren. To process an FFT, it is necessary to generate and save sine values. Specialized software solutions based on the use of floating point libraries have been developed for many hardware platforms.

Eine Lösung, die eine allgemeiner Verwendung, z.B. auf Ressourcen-limitierten Plattformen, ermöglichen könnte, ist jedoch nicht bekannt.A solution that has general use, e.g. on resource-limited platforms, but is not known.

Aufgabetask

Es wäre jedoch wünschenswert digitale Oszillatoren auch auf Ressourcen-limitierten Plattformen unter den gegebenen Randbedingungen zur Verfügung stellen zu können.However, it would be desirable to be able to make digital oscillators available on resource-limited platforms under the given boundary conditions.

Kurzdarstellung der ErfindungSummary of the invention

Die Aufgabe wird gelöst durch einen digitalen Oszillator gemäß Anspruch 1. Weitere vorteilhafte Ausgestaltungen sind insbesondere Gegenstand der abhängigen Ansprüche, der Figuren und der Beschreibung.The object is achieved by a digital oscillator according to claim 1. Further advantageous configurations are, in particular, the subject matter of the dependent claims, the figures and the description.

FigurenlisteFigure list

Nachfolgend wird die Erfindung näher unter Bezug auf die Figuren erläutert. In diesen zeigt:

  • 1 eine Darstellung einer Sinus-Schwingung mit möglichen Unterteilungen gemäß Ausführungsformen der Erfindung,
  • 2 eine Darstellung einer Cosinus-Schwingung mit möglichen Unterteilungen gemäß Ausführungsformen der Erfindung, und
  • 3 eine Darstellung von Blöcken entsprechend einer möglichen Unterteilungen gemäß Ausführungsformen der Erfindung gemäß 1 und/oder 2.
The invention is explained in more detail below with reference to the figures. In this shows:
  • 1 a representation of a sinusoidal oscillation with possible subdivisions according to embodiments of the invention,
  • 2 a representation of a cosine oscillation with possible subdivisions according to embodiments of the invention, and
  • 3 a representation of blocks according to a possible subdivision according to embodiments of the invention 1 and / or 2.

Ausführliche Darstellung der ErfindungDetailed description of the invention

Nachfolgend wird die Erfindung eingehender unter Bezugnahme auf die Figuren dargestellt. Dabei ist anzumerken, dass unterschiedliche Aspekte beschrieben werden, die jeweils einzeln oder in Kombination zum Einsatz kommen können. D.h. jeglicher Aspekt kann mit unterschiedlichen Ausführungsformen der Erfindung verwendet werden, soweit nicht explizit als reine Alternative dargestellt.The invention is illustrated in more detail below with reference to the figures. It should be noted that different aspects are described, which can be used individually or in combination. I.e. any aspect can be used with different embodiments of the invention unless explicitly shown as a pure alternative.

Weiterhin wird nachfolgend der Einfachheit halber in aller Regel immer nur auf eine Entität Bezug genommen werden. Soweit nicht explizit vermerkt, kann die Erfindung aber auch jeweils mehrere der betroffenen Entitäten aufweisen. Insofern ist die Verwendung der Wörter „ein“, „eine“ und „eines“ nur als Hinweis darauf zu verstehen, dass in einer einfachen Ausführungsform zumindest eine Entität verwendet wird.Furthermore, for the sake of simplicity, reference will generally only be made to one entity in the following. Unless explicitly noted, the invention can also have several of the entities concerned. In this respect, the use of the words “a”, “an” and “an” is only to be understood as an indication that at least one entity is used in a simple embodiment.

Soweit nachfolgend Verfahren beschrieben werden, sind die einzelnen Schritte eines Verfahrens in beliebiger Reihenfolge anordbar und/oder kombinierbar, soweit sich durch den Zusammenhang nicht explizit etwas Abweichendes ergibt. Weiterhin sind die Verfahren - soweit nicht ausdrücklich anderweitig gekennzeichnet - untereinander kombinierbar.As far as methods are described below, the individual steps of a method can be arranged and / or combined in any order, unless the context explicitly results in something different. Unless expressly stated otherwise, the processes can also be combined with one another.

Angaben mit Zahlenwerten sind in aller Regel nicht als exakte Werte zu verstehen, sondern beinhalten auch eine Toleranz von +/- 1 % bis zu +/- 10 %.Figures with numerical values are generally not to be understood as exact values, but also include a tolerance of +/- 1% to +/- 10%.

Bezugnahme auf Standards oder Spezifikationen oder Normen sind als Bezugnahme auf Standards bzw. Spezifikationen bzw. Normen, die zum Zeitpunkt der Anmeldung und/oder - soweit eine Priorität beansprucht wird - zum Zeitpunkt der Prioritätsanmeldung gelten / galten zu verstehen. Hiermit ist jedoch kein genereller Ausschluss der Anwendbarkeit auf nachfolgende oder ersetzende Standards oder Spezifikationen oder Normen zu verstehen.References to standards or specifications or norms are to be understood as a reference to standards or specifications or norms that apply at the time of filing and / or - if a priority is claimed - at the time of filing for priority. However, this is not to be understood as a general exclusion of applicability to the following or replacing standards or specifications or norms.

Die Erfindung bietet unter anderem den Vorteil, dass mit ihrer Hilfe auch komplexe mathematische Berechnungen, wie z.B. FFT Berechnungen, auf Ressourcen-beschränkten Plattformen bereitzustellen. Dabei stellt sie eine Verbesserung in Bezug auf Energieverbrauch und Systemkomplexität zur Verfügung. Hierdurch wird z.B. Signalbearbeitung, z.B. Signale von einem oder mehreren Sensoren, auf hardwarenahen / sensornahen Plattformen ermöglich. Zudem bietet die Möglichkeit einer verbesserten Berechnungsgeschwindigkeit auch den Vorteil, dass größere Datenvolumina in schneller Geschwindigkeit bearbeitet werden können, sodass z.B. die Extraktion von Frequenzanteilen in Echtzeit ermöglicht werden kann. Auch Transformation von Signalen werden hierdurch ermöglicht, ebenso wir die Multiplikation mit großen Zahlen und Polynomen. Daher wird nunmehr auch eine Video- und/oder Audiosignalanalyse auf solchen Plattformen ermöglicht.The invention offers, inter alia, the advantage that, with its help, complex mathematical calculations, such as, for example, FFT calculations, can also be made available on resource-limited platforms. It provides an improvement in terms of energy consumption and system complexity. This enables, for example, signal processing, for example signals from one or more sensors, on platforms close to the hardware / sensors. In addition, the possibility of an improved calculation speed also offers the advantage that larger data volumes can be processed at a faster rate, so that, for example, the extraction of frequency components can be made possible in real time. This also enables transformation of signals, as well as multiplication with large numbers and polynomials. Therefore, video and / or audio signal analysis is now also made possible on such platforms.

Die Erfindung ermöglicht es selbst für 8-bit Mikrokontroller ohne Floating-Point Berechnungsmöglichkeit Sinus und/oder Kosinus-Funktionswerte zu berechnen und einer weiteren Verarbeitung zur Verfügung zu stellen.The invention makes it possible to calculate sine and / or cosine function values even for 8-bit microcontrollers without a floating point calculation option and to make them available for further processing.

Dabei baut die Erfindung auf den Erkenntnissen zu rekursiven Schemata auf.The invention is based on the knowledge of recursive schemes.

Insbesondere werden nachfolgend rekursive Verfahren beschrieben, bei denen das Argument linear ansteigt. Diese erlauben trotz einer möglichen Anhäufung von Rundungsfehlern eine einfache Realsierung.In particular, recursive methods are described below in which the argument increases linearly. These allow simple implementation despite a possible accumulation of rounding errors.

Weiterhin wird nachfolgend davon ausgegangen, dass das Inkrement ϑ des Argumentes (im Winkelbereich) konstant ist.Furthermore, it is assumed below that the increment ϑ of the argument (in the angular range) is constant.

Für solche Werte soll nachfolgend ein Algorithmus angenommen sein, bei dem in einfacher Weise für aufeinanderfolgende Inkremente, d.h. A*cos ( γ 0 ) A*cos ( γ 0 + ϑ ) ,, A*cos ( γ 0 + 2 ϑ ) ,....

Figure DE102019207230B3_0001
die Werte eines Sinus bzw. Kosinus bestimmt werden können.For such values, an algorithm should be assumed in the following, in which in a simple manner for successive increments, ie A * cos ( γ 0 ) A * cos ( γ 0 + ϑ ) ,, A * cos ( γ 0 + 2 ϑ ) , ....
Figure DE102019207230B3_0001
the values of a sine or cosine can be determined.

Dies soll auch auf Hardware-Plattformen mit einem beschränkten Speicherraum (z.B. wenige hundert Byte) und mit einer geringen Registeranzahl und geringer Taktrate (z.B. wenige Megahertz) lauffähig sein. Daher ist es Ziel sowohl die Größe des benötigten Programmiercodes, als auch die Größe des verwendeten Datenspeichers gering zu halten während zugleich es Ziel ist die Genauigkeit hoch zu halten.This should also be able to run on hardware platforms with a limited memory space (e.g. a few hundred bytes) and with a small number of registers and a low clock rate (e.g. a few megahertz). Therefore, the goal is to keep both the size of the programming code required and the size of the data memory used low, while at the same time the goal is to keep the accuracy high.

Dabei greift die Erfindung auf den mathematischen Zusammenhang des Produktes zweier Kosinus-Werte zurück: cos ( ω ) * cos ( ϑ ) = cos ( ω−ϑ ) + cos ( ω−ϑ ) 2

Figure DE102019207230B3_0002
Diese Gleichung kann umgestellt werden: cos ( ω−ϑ ) = 2 cos ( ω ) * cos ( ϑ ) cos ( ω−ϑ )
Figure DE102019207230B3_0003
The invention makes use of the mathematical relationship between the product of two cosine values: cos ( ω ) * cos ( ϑ ) = cos ( ω − ϑ ) + cos ( ω − ϑ ) 2
Figure DE102019207230B3_0002
This equation can be rearranged: cos ( ω − ϑ ) = 2 cos ( ω ) * cos ( ϑ ) - cos ( ω − ϑ )
Figure DE102019207230B3_0003

Hieraus kann aber ein Verfahren abgeleitet werden, wie aus den zwei Vorgängerwerten (cos (ω) und cos (ω - ϑ)) bei gleichem Inkrement ϑ der Nachfolgewert (cos (ω + ϑ)) bestimmt werden kann:

  • • Y0 = A
  • • Y1 = Acos (ϑ)
  • • Yn = 2 cos (ϑ) Yn-1 - Yn-2
From this, however, a procedure can be derived how the subsequent value (cos (ω + ϑ)) can be determined from the two previous values (cos (ω) and cos (ω - ϑ)) with the same increment ϑ:
  • • Y 0 = A
  • • Y 1 = Acos (ϑ)
  • • Y n = 2 cos (ϑ) Y n-1 - Y n-2

Hieraus kann ein einfaches Verfahren zur Berechnung entwickelt werden:

  • // Verfahren 1
  • //Data: step angle ϑ, required samples number N, amplitude A
  • //Result: N samples
  • Y-2 ← A;
  • Y ← Acos (ϑ);
while less than N samples generated do Y tmp 2 cos ( ϑ ) Y Y 2 ;
Figure DE102019207230B3_0004
Y 2 Y ;
Figure DE102019207230B3_0005
Y Y tmp ;
Figure DE102019207230B3_0006
endA simple calculation method can be developed from this:
  • // Procedure 1
  • // Data: step angle ϑ, required samples number N, amplitude A
  • // Result: N samples
  • Y- 2 ← A;
  • Y ← Acos (ϑ);
while less than N samples generated do Y tmp 2 cos ( ϑ ) Y - Y - 2 ;
Figure DE102019207230B3_0004
Y - 2 Y ;
Figure DE102019207230B3_0005
Y Y tmp ;
Figure DE102019207230B3_0006
end

Unter der Annahme, dass es keine Rundungsfehler gäbe würde dieses Verfahren richtige Werte ergeben. Jedoch würde die Nutzung einer Floating-Point Bibliothek hier zu einer starken Programmiercodevegrößerung führen.Assuming that there were no rounding errors, this procedure would produce correct values. However, the use of a floating point library here would lead to a large increase in the programming code.

Ein harmonischer Oszillator kann aber auch mittels Eulerscher Integrationstechnik im nachfolgenden Differentialgleichungssystem dargestellt werden. X ( t ) = K 1 dY ( t ) / dt , K 1 > 0

Figure DE102019207230B3_0007
Y ( t ) = K 2 dX ( t ) / dt , K 2 < 0
Figure DE102019207230B3_0008
A harmonic oscillator can also be represented in the following differential equation system using Euler's integration technique. X ( t ) = K 1 dY ( t ) / German , K 1 > 0
Figure DE102019207230B3_0007
Y ( t ) = K 2 dX ( t ) / German , K 2 < 0
Figure DE102019207230B3_0008

Die Lösung hierzu lautet: X ( t ) = A sin  ( Kt ) , Y ( t ) = B cos  ( Kt )

Figure DE102019207230B3_0009

  • , wobei A, B und K Konstanten sind, die die Amplitude (A, B) der jeweiligen Schwingung bzw. deren Frequenz (K) bestimmen.
The solution to this is: X ( t ) = A sin ( Kt ) , Y ( t ) = B cos ( Kt )
Figure DE102019207230B3_0009
  • , where A, B and K are constants that determine the amplitude (A, B) of the respective oscillation or its frequency (K).

Die Diskretisierung wird hier über die Variable t kontinuierlich (anders als im oben angegeben Verfahren) bereitgestellt werden. Hieraus kann der sogenannte Forward Euler entwickelt werden:

  • • Y0 = A
  • • X0 = 0
  • • Xn = Xn -1 + kYn-1
  • • Yn = Yn-1 - kXn-1
The discretization is provided here continuously via the variable t (unlike in the method given above). The so-called Forward Euler can be developed from this:
  • • Y 0 = A
  • • X 0 = 0
  • • X n = X n - 1 + kY n-1
  • • Y n = Y n-1 - kX n-1

Der Parameter k kann als Funktion des Inkrementes ϑ verstanden werden. Hieraus kann wiederum ein Verfahren entwickelt werden:

  • // Verfahren 2
  • // Data: k = f(step angle θ), required samples number N, amplitude A
  • // Result: N samples
  • Y ← A;
  • X <— 0;
while less than N samples generated do X tmp X ;
Figure DE102019207230B3_0010
X X + kY ;
Figure DE102019207230B3_0011
Y Y kX tmp ;
Figure DE102019207230B3_0012
endThe parameter k can be understood as a function of the increment ϑ. From this a procedure can in turn be developed:
  • // Procedure 2
  • // Data: k = f (step angle θ), required samples number N, amplitude A
  • // Result: N samples
  • Y ← A;
  • X <- 0;
while less than N samples generated do X tmp X ;
Figure DE102019207230B3_0010
X X + kY ;
Figure DE102019207230B3_0011
Y Y - kX tmp ;
Figure DE102019207230B3_0012
end

Durch geeignete Wahl von k als Zweierpotenz können die oben aufgezeigten Multiplikationen auch als Schiebeoperation implementiert werden.By a suitable choice of k as a power of two, the multiplications shown above can also be implemented as a shift operation.

Da dieser Ansatz jedoch im der Praxis dazu neigt einen Amplitudenzuwachs zu generieren, wurde bereits in der Vergangenheit vorgeschlagen statt Yn = Yn-1 - kXn-1 den Wert Yn = Yn-1 - kXn zu benutzen. Dieser sogenannte Zwischen-Euler kann in der praktischen Implementierung dazu verwendet werden, dass das Verfahren 2 anstatt dreier Variablen nur zwei Variablen benötigt. Dies führt zu einer Reduktion der Anforderungen an die Hardwareplattform.However, since this approach tends to generate an increase in amplitude in practice, it has already been proposed in the past to use the value Y n = Y n-1 - kX n instead of Y n = Y n-1 - kX n-1 . This so-called intermediate Euler can be used in the practical implementation to ensure that method 2 only needs two variables instead of three variables. This leads to a reduction in the requirements for the hardware platform.

Somit kann aber auch umgestellt werden und Yn durch Yn-1 und Yn-2 ersetzt werden: X n = X n 1 + kY n 1

Figure DE102019207230B3_0013
X n 1 = ( Y n 2 Y n 1 ) / k
Figure DE102019207230B3_0014

  • // Verfahren 3
  • //Data: k = f(step angle ϑ), required samples number N, amplitude A
  • //Result: N samples
  • Y ← A;
  • X ← 0;
while less than N samples generated do X X + kY ;
Figure DE102019207230B3_0015
Y Y kY ;
Figure DE102019207230B3_0016
endHowever, this can also be changed and Y n be replaced by Y n-1 and Y n-2 : X n = X n - 1 + kY n - 1
Figure DE102019207230B3_0013
X n - 1 = ( Y n - 2 - Y n - 1 ) / k
Figure DE102019207230B3_0014
  • // Procedure 3
  • // Data: k = f (step angle ϑ), required samples number N, amplitude A
  • // Result: N samples
  • Y ← A;
  • X ← 0;
while less than N samples generated do X X + kY ;
Figure DE102019207230B3_0015
Y Y - kY ;
Figure DE102019207230B3_0016
end

Aus der Umstellung kann dann aber Yn ← (2 - k2)Yn-1 - Yn-2 gefolgert werden. D.h.

  • • Y0 = A
  • • X0 = 0
  • • Xn = Xn -1 + kYn-1
  • • Yn = (2 - k2)Yn - 1 - Yn-2
From the conversion, however, Y n ← (2 - k 2 ) Y n-1 - Y n-2 can be deduced. Ie
  • • Y 0 = A
  • • X 0 = 0
  • • X n = X n -1 + kY n-1
  • • Y n = (2 - k 2 ) Y n - 1 - Y n-2

Durch Vergleich mit

  • • Y0 = A
  • • Y1 = Acos (ϑ)
  • • Yn = 2 cos (ϑ) Yn-1 - Yn-2
kann folgender Verglich gezogen werden:
  • k = 2 2 c o s ϑ
    Figure DE102019207230B3_0017
  • X 0 = A 2 2 1 c o s ϑ = A s i n ( ϑ 2 )
    Figure DE102019207230B3_0018
  • • Y0 = A
By comparison with
  • • Y 0 = A
  • • Y 1 = Acos (ϑ)
  • • Y n = 2 cos (ϑ) Y n-1 - Y n-2
the following comparison can be drawn:
  • k = 2 - 2 c O s ϑ
    Figure DE102019207230B3_0017
  • X 0 = - A 2 2 1 - c O s ϑ = - A s i n ( ϑ 2 )
    Figure DE102019207230B3_0018
  • • Y 0 = A

Damit kann aber auch wie folgt umgestellt werden:

  • X 0 = A sin  ( ϑ 2 )
    Figure DE102019207230B3_0019
  • X 1 = A sin  ( ϑ 2 )
    Figure DE102019207230B3_0020
  • X n = A sin ( ϑ 2 + n ϑ )
    Figure DE102019207230B3_0021
However, this can also be changed as follows:
  • X 0 = A sin ( - ϑ 2 )
    Figure DE102019207230B3_0019
  • X 1 = A sin ( ϑ 2 )
    Figure DE102019207230B3_0020
  • X n = A sin ( - ϑ 2 + n ϑ )
    Figure DE102019207230B3_0021

D.h. mit den obigen Überlegungen ist es möglich eine Folge von exakten Kosinus-Werten bzw. exakten Kosinus-Werten uns Sinuswerten bereitzustellen, wobei ein Phasenshift der halben Schrittweite ϑ zugrundeliegt.I.e. With the above considerations, it is possible to provide a sequence of exact cosine values or exact cosine values and sine values, based on a phase shift of half the step size el.

Die tatsächliche Implementierung muss jedoch Rundungsfehler und Feherlfortpflanzung berücksichtigen, da mit zunehmender Anzahl von Iterationen das erhaltene Signal / die erhaltenen Werte von der eigentlich zu erzeugenden Zielgröße abweichen. D.h. es kommt zu einer Zunahme von Amplitudenfehler und/oder Offset der erzeigten Signalkurve von der Zielkurve.The actual implementation must, however, take into account rounding errors and error propagation, since with an increasing number of iterations the signal / values obtained deviate from the target variable actually to be generated. I.e. there is an increase in amplitude errors and / or offset of the signal curve produced from the target curve.

Im Rahmen der Erfindung wird daher vorgeschlagen sich die Symmetrieeigenschaften der Sinus- / Kosinus-Funktion bzw. die Phasenabhängigkeiten der Sinus-Funktion zur Kosinus-Funktion (und umgekehrt) zu Nutze zu machen.In the context of the invention, it is therefore proposed to make use of the symmetry properties of the sine / cosine function or the phase dependencies of the sine function on the cosine function (and vice versa).

Dies ist in den 1 bis 3 beispielhaft dargestellt. Während in 1 eine Sinusfunktion dargestellt ist, ist in 2 eine Kosinus-Funktion dargestellt. In den 1 und 2 sind einzelne Unterteilungen dargestellt. Die dort gezeigten Unterteilungen können in die Anteile gemäß 3 zusammengefasst werden, wobei die Symmetrien klarer ersichtlich sind.This is in the 1 to 3 shown as an example. While in 1 a sine function is shown in 2 a cosine function is shown. In the 1 and 2 individual subdivisions are shown. The subdivisions shown there can be broken down into the proportions according to 3 can be summarized, the symmetries being more clearly visible.

Ein erfindungsgemäßer Oszillator, der in Software aber auch in einem anwendungsspezifischen Hardwarelayout (FGA, ASIC, etc.) implementiert sein kann, kann dann (rein) in Integer-Logik zur Verfügung gestellt werden. Der Oszillator verwendet dabei weiterhin eine rekursive Verarbeitung. Allerdings ist die rekursive Verarbeitung auf bestimmte Teilbereiche limitiert. Als Eingangsgröße x des Oszillators wird eine Repräsentanz eines Phasenwinkels verwendet, wobei abhängig vom Phasenwinkel in einem ersten Phasenwinkelbereich eine Berechnung des Oszillatorwertes anhand einer rekursiven Sinus-Verarbeitung ermittelt wird, und in einem zweiten Phasenwinkelbereich, der verschieden ist vom ersten Phasenwinkelbereich, eine Berechnung des Oszillatorwertes anhand einer rekursiven Cosinus-Verarbeitung ermittelt wird.An oscillator according to the invention, which can be implemented in software but also in an application-specific hardware layout (FGA, ASIC, etc.), can then be made available (purely) in integer logic. The oscillator continues to use recursive processing. However, the recursive processing is limited to certain sub-areas. A representation of a phase angle is used as the input variable x of the oscillator, a calculation of the oscillator value based on recursive sine processing being determined depending on the phase angle in a first phase angle range, and a calculation of the oscillator value in a second phase angle range, which is different from the first phase angle range is determined using recursive cosine processing.

D.h. wir nehmen an, dass der Oszillator eine Sinusschwingung bzw. Werte einer Sinusschwingung gemäß 1 erzeugen soll. In einem Eingangsgrößenbereich, der einem Wert von 0 bis π/4 entspricht, wird X mittels eines rekursiven Sinus-Verarbeitung (z.B. gemäß Verfahren 3 in Vorwärtsrichtung) berechnet. In einem Eingangsgrößenbereich, der einem Wert von π/4 bis π/2 entspricht, wird X mittels eines rekursiven Cosinus-Verarbeitung (z.B. gemäß Verfahren 3 in Rückwärtsrichtung) berechnet. In einem Eingangsgrößenbereich, der einem Wert von π/2 bis 3π/4 entspricht, wird X mittels eines rekursiven Cosinus-Verarbeitung (z.B. gemäß Verfahren 3 in Vorwärtsrichtung) berechnet. In einem Eingangsgrößenbereich, der einem Wert von 3π/4 bis π entspricht, wird X mittels eines rekursiven Sinus-Verarbeitung (z.B. gemäß Verfahren 3 in Rückwärtsrichtung) berechnet. Somit wäre eine (positive) Halbwelle einer Sinusschwingung mit kleinen Eingangsgrößen für die jeweilige rekursive Ausgestaltung darstellbar. Hierdurch können Rundungsfehler und Fortpflanzungsfehler vermindert werden, wobei die Code-Größe und Daten-Größe klein bleibt.In other words, we assume that the oscillator has a sinusoidal oscillation or values of a sinusoidal oscillation according to 1 should produce. In an input variable range that corresponds to a value from 0 to π / 4, X is calculated by means of recursive sine processing (for example according to method 3 in the forward direction). In an input variable range that corresponds to a value from π / 4 to π / 2, X is calculated by means of recursive cosine processing (for example according to method 3 in the backward direction). In an input variable range that corresponds to a value from π / 2 to 3π / 4, X is calculated by means of recursive cosine processing (for example according to method 3 in the forward direction). In an input variable range that corresponds to a value from 3π / 4 to π, X is calculated by means of recursive sine processing (for example according to method 3 in the reverse direction). A (positive) half-wave of a sinusoidal oscillation with small input variables could thus be represented for the respective recursive configuration. This allows rounding errors and propagation errors to be reduced, with the code size and data size remaining small.

Offensichtlich kann diese positive Halbwelle auch als Grundlage für die Berechnung der negative Halbwelle dienen, da sin(α+π)=-sin(α) ist.Obviously, this positive half-wave can also serve as the basis for the calculation of the negative half-wave, since sin (α + π) = - sin (α).

In gleicher Weise kann man aber annehmen, dass der Oszillator eine Kosinus-Schwingung bzw. Werte einer Kosinus-Schwingung gemäß 2 erzeugen soll. In einem Eingangsgrößenbereich, der einem Wert von 0 bis π/4 entspricht, wird X mittels eines rekursiven Cosinus-Verarbeitung (z.B. gemäß Verfahren 3 in Vorwärtsrichtung) berechnet. In einem Eingangsgrößenbereich, der einem Wert von π/4 bis π/2 entspricht, wird X mittels eines rekursiven Sinus-Verarbeitung (z.B. gemäß Verfahren 3 in Rückwärtsrichtung) berechnet. In einem Eingangsgrößenbereich, der einem Wert von π/2 bis 3π/4 entspricht, wird X mittels eines rekursiven Sinus-Verarbeitung (z.B. gemäß Verfahren 3 in Vorwärtsrichtung) versehen mit einem negativen Vorzeichen berechnet. In einem Eingangsgrößenbereich, der einem Wert von 3π/4 bis π entspricht, wird X mittels eines rekursiven Cosinus-Verarbeitung (z.B. gemäß Verfahren 3 in Rückwärtsrichtung) versehen mit einem negativen Vorzeichen berechnet. Somit wäre eine erste Teilwelle einer Kosinus-Schwingung mit kleinen Eingangsgrößen für die jeweilige rekursive Ausgestaltung darstellbar. Hierdurch können Rundungsfehler und Fortpflanzungsfehler vermindert werden, wobei die Code-Größe und Daten-Größe klein bleibt.In the same way, however, one can assume that the oscillator has a cosine oscillation or values according to a cosine oscillation 2 should produce. In an input variable range that corresponds to a value from 0 to π / 4, X is determined using a recursive cosine processing (eg according to method 3 in the forward direction). In an input variable range that corresponds to a value from π / 4 to π / 2, X is calculated by means of recursive sine processing (for example according to method 3 in the backward direction). In an input variable range that corresponds to a value from π / 2 to 3π / 4, X is calculated with a negative sign by means of recursive sine processing (eg according to method 3 in the forward direction). In an input variable range which corresponds to a value from 3π / 4 to π, X is calculated with a negative sign by means of recursive cosine processing (for example according to method 3 in the backward direction). A first partial wave of a cosine oscillation with small input variables could thus be represented for the respective recursive configuration. This allows rounding errors and propagation errors to be reduced, with the code size and data size remaining small.

Offensichtlich kann diese erste Teilwelle auch als Grundlage für die Berechnung der zweiten Teilwelle dienen, da cos(α)=cos(-α)=cos(2π-α) ist.Obviously, this first partial wave can also serve as a basis for the calculation of the second partial wave, since cos (α) = cos (-α) = cos (2π-α).

Dabei kann sich die Erfindung zu Nutze machen, dass das oben gezeigte Verfahren 3 reversibel ist.The invention can make use of the fact that the method 3 shown above is reversible.

D.h., im ersten Quadranten der 1 kann X zunächst in Vorwärtsrichtung mittels der Sinusberechnung ermittelt werden, während Y zunächst in Vorwärtsrichtung mittels der Kosninus-Berechnung ermittelt wird. Sobald der Wert der X-Berechnung größer oder gleich dem Wert der Y-Berechnung wird (d.h. sin(X)=cos(X)) wird der Oszillator nicht mehr in einer Vorwärtsrichtung betrieben, sondern in einer Rückwärtsrichtung. Jedoch wird dann die Ausgabe jeweils umgelenkt. D.h. der bisherige Sinus wird auf den Cosinus und umgekehrt geordnet. Da der Oszillator quasi auf seinen vorherigen Vorwärtsschritten wieder zurückgeht, werden die Rundungsfehler rückwärts wieder eingeholt.That is, in the first quadrant of 1 X can initially be determined in the forward direction by means of the sine calculation, while Y is initially determined in the forward direction by means of the cosine calculation. As soon as the value of the X calculation is greater than or equal to the value of the Y calculation (ie sin (X) = cos (X)), the oscillator is no longer operated in a forward direction, but in a reverse direction. However, the output is then redirected. This means that the previous sine is ordered to the cosine and vice versa. Since the oscillator goes back to its previous forward steps, the rounding errors are caught up again backwards.

Dabei macht sich die Erfindung zweierlei Erkenntnis zu Nutze. Zum einen steigt mit zunehmender Anzahl der Samples der Fehler. Zum anderen ist der Fehler bei kleinen Werten gravierender.The invention makes use of two types of knowledge. On the one hand, the error increases with the number of samples. On the other hand, the error is more serious with small values.

Die Zuordnung kann auch wie folgt dargestellt werden, wobei HQ für Halbquadrant steht, beginnend bei 0 entsprechend dem 1. HQ, und wobei fwd. Für Vorwärtsrichtung und rev. Für Rückwärtsrichtung steht. HQ 1 2 3 4 5 6 7 8 Oszillatorrichtung Fwd Rev. Fwd Rev. Fwd Rev. Fwd Rev. Sinus X Y Y X -X -Y -Y -X Kosinus Y X -X -Y -Y -X X Y The assignment can also be represented as follows, where HQ stands for half quadrant, starting with 0 corresponding to the 1st HQ, and where fwd. For forward direction and rev. Stands for reverse direction. HQ 1 2 3 4th 5 6 7th 8th Oscillator direction Fwd Rev. Fwd Rev. Fwd Rev. Fwd Rev. Sine X Y Y X -X -Y -Y -X cosine Y X -X -Y -Y -X X Y

Diese Verarbeitung kann mit Integer-Werten jeglichen Formates realisiert werden, d.h. es können sowohl 8-bit als auch 16-bit als auch 32-bit als auch 64-bit bis hin zu sogenannten biginteger verwendet werden.This processing can be implemented with integer values of any format, i.e. 8-bit as well as 16-bit as well as 32-bit and 64-bit up to so-called bigintegers can be used.

Der besondere Wert der Erfindung zeigt sich jedoch auf ressourcenbeschränkten Plattformen, die keine Floating-Point Units für die Bereitstellung der gewünschten Werte aufweisen, oder diese aber für andere Berechnungen benötigt werden.The particular value of the invention is shown, however, on resource-limited platforms which have no floating point units for providing the desired values, or which are required for other calculations.

Ohne Beschränkung der Allgemeinheit kann der digitale Oszillator auf verschiedensten Plattformen ausgebildet sein. Aufgrund der Einfachheit und Robustheit gepaart mit geringen Ansprüchen an Speicher und Verarbeitungsgeschwindigkeit kann der Oszillator mit einer Taktrate entsprechend von Frequenzen 32 MHz oder kleiner, z.B. 16 MHz, 12 MHz, 10 MHz oder weniger, implementiert sein. Natürlich steht einer Verwendung auf höher-performanten Plattformen nichts im Wege.Without loss of generality, the digital oscillator can be configured on a wide variety of platforms. Due to the simplicity and robustness paired with low demands on memory and processing speed, the oscillator can be operated with a clock rate corresponding to frequencies 32 MHz or less, e.g. 16 MHz, 12 MHz, 10 MHz or less can be implemented. Of course, nothing stands in the way of using it on higher-performance platforms.

Auch wenn im vorbeschriebenen Beispiel eine Unterteilung bei π/4 vorgenommen wurde, und diese bezogen auf die Verarbeitung gemäß Verfahren 3 sich als vorteilhaft zeigt, ist hierdurch weder die Benutzung eines anderen Verfahrens noch die exakte Stelle einer Unterteilung zwingend vorgegeben. Vielmehr zeigt die Erfindung an diesem Beispiel auf, dass durch geschickte Ausnutzung von Rekursionseigenschaften und Symmetrieeigenschaften der Sinus/Cosinus Funktionen es Möglichkeiten gibt, Fehler, Fehlerfortpflanzungen, etc. zu umgehen.Even if a subdivision at π / 4 was carried out in the example described above and this proves to be advantageous in relation to the processing according to method 3, neither the use of another method nor the exact location of a subdivision is mandatory. Rather, using this example, the invention shows that there are possibilities of avoiding errors, error propagation, etc. through the clever use of recursion properties and symmetry properties of the sine / cosine functions.

Weiterhin kann die Leistungsfähigkeit des digitalen Oszillators auch auf Hardware-Plattformen zur Verfügung gestellt werden, die über keine oder langsam funktionierende Divisionsfunktionen verfügen. Dies kann z.B. dadurch realisiert werden, dass durch geschickte Wahl eine Division durch 2n, mit n, n>1 als eine Schiebeoperation umgesetzt werden kann. Es versteht sich von selbst, dass dies auch bei einer Multiplikation in gleicher Weise möglich wäre. D.h., auch auf Hardwareplattformen, wie z.B. PIC-Controllern, kann die Erfindung implementiert werden.Furthermore, the performance of the digital oscillator can also be made available on hardware platforms that have no or slowly functioning division functions. This can be implemented, for example, by cleverly choosing a division by 2 n , with n, n> 1, as a shift operation. It goes without saying that this would also be possible in the same way with a multiplication. In other words, the invention can also be implemented on hardware platforms, such as PIC controllers.

Insbesondere kann der erfindungsgemäße digitale Oszillator in Software auf einem 8-bit oder 16-bit Mikrokontroller implementiert sein. Solche Mikrokontroller finden sich z.B. auch auf Chipkarten.In particular, the digital oscillator according to the invention can be implemented in software on an 8-bit or 16-bit microcontroller. Such microcontrollers can be found e.g. also on chip cards.

Die digitale Implementierung als auch die Harware-Implementierung erlauben die Verwendung eines digitalen Oszillators bei Verschlüsselungs- und/oder Entschlüsselungsoperationen.The digital implementation as well as the hardware implementation allow the use of a digital oscillator in encryption and / or decryption operations.

Ohne Beschränkung der Allgemeinheit kann sowohl die digitale Implementierung als auch die Harware-Implementierung bei einer Wegeberechnung, oder in einen Frequenzsynthesizer, bei der Bereitstellung von FFT und/oder inversen FFT-Operationen oder bei Wavelet-Operationen Verwendung finden.Without loss of generality, both the digital implementation and the hardware implementation can be used in a route calculation, or in a frequency synthesizer, in the provision of FFT and / or inverse FFT operations or in wavelet operations.

Claims (13)

Digitaler Oszillator, wobei der digitale Oszillator mit Integer-Werten operiert, wobei eine rekursive Verarbeitung verwendet wird, wobei als Eingangsgröße eine Repräsentanz eines Phasenwinkels verwendet wird, wobei zur Verminderung von Rundungsfehlern und Fehlerfortpflanzung abhängig vom Phasenwinkel in einem ersten Phasenwinkelbereich eine Berechnung des Oszillatorwertes anhand einer rekursiven Sinus-Verarbeitung ermittelt wird, und in einem zweiten Phasenwinkelbereich, der verschieden ist vom ersten Phasenwinkelbereich, eine Berechnung des Oszillatorwertes anhand einer rekursiven Cosinus-Verarbeitung ermittelt wird.Digital oscillator, where the digital oscillator operates with integer values, with recursive processing being used, with a representation of a phase angle being used as the input variable, with a calculation of the oscillator value based on a first phase angle range to reduce rounding errors and error propagation depending on the phase angle in a first phase angle range recursive sine processing is determined, and in a second phase angle range, which is different from the first phase angle range, a calculation of the oscillator value is determined on the basis of recursive cosine processing. Digital Oszillator gemäß Anspruch 1, dadurch gekennzeichnet, dass Integer-Werte 16 bit oder 8 bit aufweisen.Digital oscillator according to Claim 1 , characterized in that integer values have 16 bits or 8 bits. Digital Oszillator gemäß Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Taktrate, mit der der Oszillator getaktet ist, kleiner oder gleich 32 MHz ist.Digital oscillator according to Claim 1 or 2 , characterized in that the clock rate at which the oscillator is clocked is less than or equal to 32 MHz. Digitaler Oszillator gemäß einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Wechsel von Sinus-Verarbeitung zu Kosinus-Verarbeitung bei einer Repräsentanz eines Phasenwinkels von etwa pi/4 stattfindet.Digital oscillator according to one of the preceding claims, characterized in that a change from sine processing to cosine processing takes place with a representation of a phase angle of approximately pi / 4. Digitaler Oszillator gemäß einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Eingangsgröße zur rekursiven Sinus-Verarbeitung und/oder rekursiven Cosinus-Verarbeitung in einem Phasenwinkelbereich von 0 bis pi/4 entstammt.Digital oscillator according to one of the preceding claims, characterized in that the input variable for recursive sine processing and / or recursive cosine processing originates in a phase angle range from 0 to pi / 4. Digitaler Oszillator gemäß einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Ausgangsgröße der rekursiven Sinus-Verarbeitung und/oder rekursiven Cosinus-Verarbeitung als positive oder negative Ausgangsgröße des digitalen Oszillators in Abhängigkeit der Eingangsgröße des digitalen Oszillators zur Verfügung steht.Digital oscillator according to one of the preceding claims, characterized in that the output variable of the recursive sine processing and / or recursive cosine processing is available as a positive or negative output variable of the digital oscillator depending on the input variable of the digital oscillator. Digitaler Oszillator gemäß einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die rekursive Sinus-Verarbeitung bzw. die rekursive Kosinus-Verarbeitung Shiftoperationen aufweisen, sodass der digitale Oszillator auf Mikrokontroller ohne Divisionsoperation implementiert werden kann.Digital oscillator according to one of the preceding claims, characterized in that the recursive sine processing or the recursive cosine processing have shift operations, so that the digital oscillator can be implemented on microcontrollers without a division operation. Digitaler Oszillator gemäß einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der digitale Oszillator in Software auf einem 8-bit oder 16-bit Mikrokontroller implementiert ist.Digital oscillator according to one of the preceding claims, characterized in that the digital oscillator is implemented in software on an 8-bit or 16-bit microcontroller. Verwendung eines digitalen Oszillators gemäß einem der vorhergehenden Ansprüche bei Verschlüsselungs- und/oder Entschlüsselungsoperationen.Use of a digital oscillator according to one of the preceding claims in encryption and / or decryption operations. Verwendung eines digitalen Oszillators gemäß einem der vorhergehenden Ansprüche bei Wegeberechnungen.Use of a digital oscillator according to one of the preceding claims for route calculations. Verwendung eines digitalen Oszillators gemäß einem der vorhergehenden Ansprüche als Frequenzsynthesizer.Use of a digital oscillator according to one of the preceding claims as a frequency synthesizer. Verwendung eines digitalen Oszillators gemäß einem der vorhergehenden Ansprüche bei FFT und/oder inversen FFT-Operationen.Use of a digital oscillator according to one of the preceding claims for FFT and / or inverse FFT operations. Verwendung eines digitalen Oszillators gemäß einem der vorhergehenden Ansprüche bei Wavelet-OperationenUse of a digital oscillator according to one of the preceding claims in wavelet operations
DE102019207230.5A 2019-05-17 2019-05-17 Digital oscillator Active DE102019207230B3 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019207230.5A DE102019207230B3 (en) 2019-05-17 2019-05-17 Digital oscillator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019207230.5A DE102019207230B3 (en) 2019-05-17 2019-05-17 Digital oscillator

Publications (1)

Publication Number Publication Date
DE102019207230B3 true DE102019207230B3 (en) 2020-08-13

Family

ID=71739515

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019207230.5A Active DE102019207230B3 (en) 2019-05-17 2019-05-17 Digital oscillator

Country Status (1)

Country Link
DE (1) DE102019207230B3 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517535A (en) * 1994-10-13 1996-05-14 Westinghouse Electric Corp. Numerically controlled oscillator with complex exponential outputs using recursion technique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517535A (en) * 1994-10-13 1996-05-14 Westinghouse Electric Corp. Numerically controlled oscillator with complex exponential outputs using recursion technique

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Turner, C. S.: Recursive Discrete-Time Sinusoidal Oscillators. In: IEEE Signal Processing Magazine, May 2003. pp. 103 - 111 *

Similar Documents

Publication Publication Date Title
DE2417932A1 (en) METHOD AND DEVICE FOR OBTAINING THE CYCLICAL CODE GROUP OF A BINARY MESSAGE
EP1843246A2 (en) Method for creating a representation of a calculation result depending linearly on the square a value
EP1499954B1 (en) Device and method for calculating a result of a modular multiplication
DE102014210009A1 (en) Signal processing method using variable coefficients
DE102019207230B3 (en) Digital oscillator
EP0099142A2 (en) Method and device for the demodulation of a frequency-modulated input signal
EP1999571B1 (en) Method and device for reducing a polynomial in a binary finite field, in particular for a cryptographic application
DE2612665A1 (en) CONVOLUTIONAL FUNCTION GENERATOR AND ITS APPLICATION IN DIGITAL FILTERS
EP0628183A1 (en) Circuit arrangement for the digital multiplying of integer numbers
DE2039228A1 (en) Method and device for converting and shifting the value of number signals of different codes in a data processing system
DE4010735A1 (en) DIGITAL WORLD SERIAL MULTIPLIER CIRCUIT
DE10219161A1 (en) Device and method for converting a term
DE2214053A1 (en) Method and device for controlling a numerically controlled machine tool along a circular path
DE102014118905A1 (en) Method for pre- and post-processing of a fast arctangent calculation
DE102013208836A1 (en) Method and apparatus for generating a hash value
EP3442124B1 (en) Method for protecting data in a data storage medium to prevent an unrecognised change and corresponding data processing system
EP1924931B1 (en) Method for carrying out an inverse burrows-wheeler transform with efficient memory use
DE10200133A1 (en) Calculation of a modulo value, especially for use with a UMTS communication system, by use of a whole number hypothesis that enables faster implementation of the modulo operation
DE2312128A1 (en) CIRCUIT ARRANGEMENT FOR DETERMINING THE DUAL LOGARITHM OF A BINARY NUMBER
DE102014200493A1 (en) Method and device for calculating a result value of a division from a dividend and a divisor
DE2220416A1 (en) ARRANGEMENT FOR DIGITAL CONTROL OF A VIBRATION TEST DEVICE
DE102019004367A1 (en) ROBOT SYSTEM SETUP TO PERFORM A LEARNING CONTROL
EP0176821A1 (en) DPCM coder with reduced internal computing time
DE102013208299A1 (en) Method for searching a look-up table
DE69534097T2 (en) Booth multiplier for trigonometric functions

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R018 Grant decision by examination section/examining division
R020 Patent grant now final