DE102019207230B3 - Digital oscillator - Google Patents
Digital oscillator Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/548—Trigonometric 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.
-
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 invention1 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.
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:
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
- • 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 (ϑ);
- // Procedure 1
- // Data: step angle ϑ, required samples number N, amplitude A
- // Result: N samples
- Y- 2 ← A;
- Y ← Acos (ϑ);
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.
Die Lösung hierzu lautet:
- , wobei A, B und K Konstanten sind, die die Amplitude (A, B) der jeweiligen Schwingung bzw. deren Frequenz (K) bestimmen.
- , 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
- • 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;
- // Procedure 2
- // Data: k = f (step angle θ), required samples number N, amplitude A
- // Result: N samples
- Y ← A;
- X <- 0;
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:
- // Verfahren 3
- //Data: k = f(step angle ϑ), required samples number N, amplitude A
- //Result: N samples
- Y ← A;
- X ← 0;
- // Procedure 3
- // Data: k = f (step angle ϑ), required samples number N, amplitude A
- // Result: N samples
- Y ← A;
- X ← 0;
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
- • 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
- •
- •
- • Y0 = A
- • Y 0 = A
- • Y 1 = Acos (ϑ)
- • Y n = 2 cos (ϑ) Y n-1 - Y n-2
- •
- •
- • Y 0 = A
Damit kann aber auch wie folgt umgestellt werden:
- •
- •
- •
- •
- •
- •
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
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äß
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äß
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
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.
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)
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)
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 |
-
2019
- 2019-05-17 DE DE102019207230.5A patent/DE102019207230B3/en active Active
Patent Citations (1)
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)
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 |