09. Veröffentlichung des
®
Entwicklernetzwerkes
Bitte wählen Sie in der Kopfzeile eine Sprachversion, eine der nachfolgenden
Internet-Verknüpfungen oder Überschriften aus dem Inhaltsverzeichnis aus!
(«) Erste Veröffentlichung
(<) Vorhergehende Veröffentlichung
(>) Nachfolgende Veröffentlichung
(») Letzte Veröffentlichung
(^) Autor
(=) Redaktion
($) Bestellung des ausführlichen Textes
(&) Liste der Veröffentlichungen
(§) Liste der Firmenschriften
Art der Veröffentlichung:
Offenlegungsschrift OS 198 45 813 von 30.09.1998 (Textfassung)
Thema:
Verfahren zum Codieren zeitlicher oder räumlicher Verläufe physikalischer Schwingungen
und Wellen in die Zahlendarstellung (Width of Step Coder/Decoder)
Erfinder und Anmelder:
Christian E. Jacob
Inhaltsverzeichnis:
(0) Zusammenfassung
(1) Technischer Stand
(2) Vereinbarung zum Funktionsraum
(3) Auflösung der Haupteinheiten
(4) Codierung
(5) Decodierung
(6) Anwendungen
(0) Zusammenfassung
Die Erfindung beschreibt ein Verfahren zum Codieren zeitlicher oder räumlicher Verläufe in die Zahlendarstellung
und Decodieren aus der Zahlendarstellung. Zielstellung der Codierung und Decodierung ist die effiziente Weiterverarbeitung
der unverfälschten Verläufe durch Mikrocontroller, Digitale Signalprozessoren, jede andere geeignete Hardware in Abhängigkeit
von Informationsgehalt, sowie die audiovisuelle Darstellung. Maßnahmen der Signalvorverarbeitung und Datenkomprimierung entfallen.
Der Anteil der analogen Verarbeitung wird minimal. U. a. werden dadurch systematische Fehler bei der Kodierung vermieden. Das
beschriebene Verfahren wird einerseits in Algorithmen überführt (Programmbibliothek), die in Software- oder Firmware-Lösungen u.a.
zum Komprimieren von Daten, dem Ermitteln von Kennwerten, der Analyse und audiovisuellen Darstellung verwendet werden. Andererseits
wird aus der Verfahrensbeschreibung direkt das Layout von Hardware-Lösungen (Baugruppen, Schaltkreise, IP-Cores) generiert,
die u.a. für die automatische Sprach- und Bildverarbeitung, die Subanalyse oder Merkmalsbildung verwendet werden.
(1) Technischer Stand
Nachteile der herkömmlichen Analog-Digital-Umsetzung sind hinlänglich bekannt: Mit
Quantisierungsfehlern muss gerechnet werden. In Abhängigkeit von der Qualität des Antialysing-Filters enthält die digitale Darstellung mehr oder
weniger übertastete Anteile. Eine etwaige Abtast-Halte-Schaltung verursacht zusätzliche Fehler. Eine Weiterverarbeitung
der digitalen Darstellung mit einer Diskreten Fourier-Transformation z. B. der FFT ist hin und wieder
problematisch. Auch
Produkt- (Auto- und Kreuzkorrelationen) oder Phasendarstellungen entsprechen oft nicht der notwendigen Genauigkeit. Sollen
die Fehler, die durch ein Abtasten entstehen, verringert werden, erhöht sich der technische Aufwand für das Abtastverfahren
beträchtlich.
Anstelle der herkömmlichen Abtastung wird das erfindungsgemäße Verfahren zum Codieren der zeitlichen oder
räumlichen Verläufe physikalischer Größen in die Zahlendarstellung vorgeschlagen, bei der die erreichbare Genauigkeit und
der technische Aufwand in vernünftiger Relation zueinander stehen.
Zur Beurteilung der Patentwürdigkeit des erfindungsgemäßen Verfahrens wurden die
Schriften DE 36 06 893, DE 36 28 532, DE 37 20 062, DE 42 08 702, DE 42 13 248, DE 43 06 646, DE 44 09 999,
DE 44 12 961, DE 196 45 724, und DE 196 49 525 herangezogen. Verschiedene hochgenaue, hochauflösende oder schnelle
Analog-Digital-Wandler werden dort beschrieben. Die Umwandlung erfolgt seriell, parallel oder in einer gemischten
Anordnung. Die parallele Umsetzung ist schneller, im Gegensatz dazu ist die serielle Umsetzung technisch einfacher.
Ausführungsformen gibt es nach dem sukzessiven Approximierungs- (DE 37 20 062), dem Blitz-Wandler- und Teilbereichs-
bzw. Subrankingtyp (DE 36 06 893). In DE 43 06 646 wird die elektronische Schaltung eines Analog-Digital-Nachlauf-Umsetzers
mit einstellbarer Bit-Auflösung beschrieben. Ein spezielles Verfahren zur Aufbereitung von Ultraschallsignalen
enthält DE 44 09 999. In DE 44 12 961 wird ein Verfahren zu räumliche Abtastung einer Oberfläche
beschrieben. Neben dem
Begriff der Abtastung, wird in DE 37 20 062 von der "Umsetzung einer analogen Größe in eine
Bitfolge", in DE 36 06 893 und DE 196 45 724 auch von einer "Codierung der Eingangsgröße" sowie in DE 196 49 525 von
der "datenreduzierenden Signalabtastung" gesprochen. Bei einem zeitlich konstanten Abtastintervall werden dort
lauflängencodierte Reduktionscodes zur Datenreduktion verwendet. Eine Ereignissteuerung für nachfolgende
Auswertungen gelingt mit der Lösung nach DE 42 13 248.
Alle dort beschrieben Schaltungsanordnungen und Verfahren haben ein zeitlich oder räumlich konstantes
Abtastintervall während der Abtastung. Bei dem erfindungsgemäßen Verfahren ist das Abtastintervall von der
Informationsdichte, d.h. von dem zu codierenden zeitlichen oder räumlichen Verlauf selbst, abhängig.
(2) Vereinbarung zum Funktionsraum
Für die mathematische Beschreibung des erfindungsgemäßen Verfahrens wird ein
Funktionsraum vereinbart.
Er hat (m + 1) Dimensionen, die wiederum durch eine Anzahl von (m + 1) Einheitsvektoren vu0, vu1, ..., vuµ, ..., vum
vorgeben werden. Die Bezeichner der Dimensionen
µ, m Î N (Gl. 2.1)
sind Elemente der Natürlichen Zahlen.
Der Einheitsvektor vu0 wird als Basisvektor bezeichnet. Seine Richtung stimmt mit einer (nebenläufigen) Zeitachse,
der Bewegungsrichtung einer (sich kreisförmig) ausbreitenden Welle oder der Scann-Richtung eines Bildes überein. Alle
anderen Einheitsvektoren vu1, vu2, ..., vuµ, ..., vum stehen orthogonal zum Basisvektor vu0. Die Länge aller Einheitsvektoren
ist definitonsgemäß
|vu0| = |vu1| = , ..., = |vuµ| = , ..., = |vum| = 1 (Gl. 2.2)
und wird in der Schreibweise u0, u1, ..., uµ, ..., um als Haupteinheit der jeweiligen Dimension verwendet.
Der µ-te Einheitsvektor vuµ repräsentiert also die µ-te Dimension im Funktionsraum mit der Haupteinheit uµ.
Die der die µ-te Dimension zugeordnete Einheitsfläche auµ ergibt sich zu
auµ = uµ*u0 (Gl. 2.3)
Die Position eines Punktes An im Funktionsraum wird durch einen Vektor van charakterisiert. Er entsteht durch
die Addition der jeweils mit der skalaren Größe aµ bzw. a0 verlängerten Einheitsvektoren
vuµ und vu0:
van = aµ*vuµ +a0*vu0 (Gl. 2.4)
Die Länge des Vektors va beträgt:
Der zeitliche oder räumliche Verlauf einer physikalischen Größe kann durch eine ausgewählte Punktefolge An im
Funktionsraum wiedergeben werden. Die Punktefolge An wird dann bezogen auf Gl. 2.4 durch ausgewählte Wertepaare des
Verlaufes An(aµ, a0) mathematisch beschrieben.
Die Position eines weiteren Punktes B in der Ebene, die von den Einheitsvektoren vuµ und vu0 aufgespannt wird, wird durch den Vektor
vb = bµ*vuµ + b0*vu0 (Gl. 2.6)
charakterisiert. Die Länge des Vektors vb beträgt:
Der zeitliche oder räumliche Verlauf einer physikalischen Größe kann auch durch eine
kontinuierliche Punktefolge B, die eine unendlich dichte Anordnung von Punkten enthält, im
Funktionsraum dargestellt werden. Die
Punktefolge B wird dann bezogen auf Gl. 2.6 durch den kontinuierlichen Verlauf bµ(b0) beschrieben.
Der Abstand zwischen den Punkten An und B wird durch den Vektor vc, der vom Punkt An nach Punkt B gerichtet ist,
beschrieben:
vc = vb - van = cµ*vuµ + c0*vu0 (Gl. 2.8)
Weil die Einheitsvektoren vu0 und vuµ orthogonal zu einander stehen und die Punkte An und B in einer Ebene liegen,
können die Größen cµ bzw. c0 aus den skalaren Größen, die in den Gl.n 2.4 und 2.6 eingeführt wurden, gewonnen werden:
c0 = b0 - a0 (Gl. 2.9)
cµ = bµ - aµ (Gl. 2.10)
Die Größen cµ und c0 entsprechen kontinuierlichen Katheten eines rechtwinkligen Dreiecks mit der kontinuierlichen Fläche:
acµ = cµ*c0/2 (Gl. 2.11)
Die Hypotenuse dieses Dreiecks stellt den Anstieg bzw. das Gefälle des kontinuierlichen
Verlaufs bµ(b0) dar. Sie
wird hier als Gradient des kontinuierlichen Verlaufs bµ(b0) bezeichnet.
(3) Auflösung der Haupteinheiten
Der kontinuierliche Verlauf bµ(b0) soll als Folge von Codewörtern wiedergegeben werden.
Jedes Codewort entspricht
genau einem Schritt nichtkonstanter Länge in Richtung des Vektors vu0. Das Codewort besteht aus 2 Teilen, einem Vorzeichencode
und einem Schrittcode. Die Zahlendarstellung und deren Anordnung innerhalb des Codewortes wird durch diese
Verfahrensbeschreibung nicht vorgeben.
Der Zahlenvorrat kann für jede Dimension µ gesondert festgelegt werden. Die Länge des
Codewortes xµ der
Codefolge der µ-ten Dimension wird hier für die duale Zahlendarstellung definiert. Alle anderen Zahlendarstellungen
können darauf zurückgeführt werden. Unter Berücksichtigung einer Stelle für das Vorzeichen
xvµ = 1 (Gl. 3.1)
bleiben
xwµ = xµ - xvµ = xµ - 1 (Gl. 3.2)
Stellen für die Darstellung des Schrittcodes. Insgesamt können
yµ = 2xwµ = 2(xµ - 1) (Gl. 3.3)
unterschiedliche Schrittcodes dargestellt werden. yµ ist also der Zahlenvorrat des Schrittcodes. Der technische
Aufwand, aber auch die erreichbare Genauigkeit der Kodierung werden primär von der Darstellungsbreite xµ des Codes und
dem Zahlenvorrat yµ festgelegt.
Der Vorzeichencode zvµ hat zur Vereinfachung dieser Verfahrensbeschreibung den
Zahlenvorrat -1 und 1:
zvµ = -1, für fallende Gradienten (Gl. 3.4)
zvµ = 1, für steigende Gradienten (Gl. 3.5)
Der Schrittcode zwµ hat den natürlichen Zahlenvorrat:
zwµ = (0, 1, ..., (yµ - 1)) (Gl. 3.6)
Die Hauteinheiten u0, u1, ..., uµ, ..., um werden in jeweils zugeordnete
Untereinheiten su0, su1, ..., suµ, ..., sum aufgelöst. Die Auflösung der Untereinheiten suµ und su0 wird
nachfolgend beispielhaft für die Haupteinheiten uµ und u0 beschrieben:
Die genannte Auflösung richtet sich für elektronische Lösungen vorzugsweise nach der in den Gl.n 3.2 und 3.3
definierten Codebreite xµ und dem Zahlenvorrat yµ. Der Wert
zµ = yµ - 1 (Gl. 3.7)
wird als gemeinsamer Teiler der Hauteinheiten uµ und u0 in Untereinheiten verwendet. Es wird ein gemeinsamer
Teiler für beide Dimensionen verwendet, weil der Winkel des Gradienten in Bezug zur u0-Achse unabhängig von der
Codebreite xµ bleiben soll.
uµ = zµ*suµ (Gl. 3.8)
u0 = zµ*su0 (Gl. 3.9)
Die von den Untereinheiten suµ und su0 aufgespannte Einheitsfläche asuµ ist unter
Beachtung von Gl.n 2.3, 3.8 und 3.9
asuµ = suµ*su0 = zµ-2*uµ*u0 = zµ-2*auµ (Gl. 3.10).
Die kontinuierlichen Katheten cµ und c0 nach Gl.n 2.9 und 2.10 mit den Haupteinheiten uµ und u0 werden quasi auf
diskrete Katheten dµ und d0 mit Untereinheiten suµ und su0 abgebildet. Nach Gl. 3.7 gilt für die Diskretisierung der Katheten:
dµ = zµ*cµ (Gl. 3.11)
d0 = zµ*c0 (Gl. 3.12)
Die maximale Länge der diskreten Katheten dµ und d0 wird praktisch vom Zahlenvorrat yµ bzw. dem gemeinsamen
Teiler zµ vorgeben. Sie beträgt für die diskrete Kathete
d0 = zµ (Gl. 3.13).
Die diskrete Dreiecksfläche ist vergleichbar mit Gl. 2.11 und unter Berücksichtigung der Gl. 3.10:
adµ = dµ*d0/2 = zµ2*acµ = zµ2*cµ*c0/2 (Gl. 3.14)
Die diskrete Fläche adµ erfordert eine digitale Verarbeitung. Demgegenüber erfordert die
kontinuierliche Fläche acµ eine analoge Verarbeitung.
(4) Codierung
Während der Codierung wird der Gradienten des kontinuierlichen Verlaufs bµ(b0) in Bezug zur vu0-Richtung
beobachtet. Es wird davon ausgegangen, das ein Verlauf mit einem hohen Gradienten
viele Informationen enthält und im
Vergleich dazu ein Verlauf mit einem flachen Gradienten weniger. Dies gilt sowohl für Anstiege als auch Gefälle im
kontinuierlichen Verlauf bµ(b0). Die Informationsdichte und die Dichte der erzeugten Codes haben eine Entsprechung:
Hohe Gradienten führen zu vielen Codewörtern, niedrige Gradienten dagegen zu wenigen
Codewörtern. Erreicht wird diese
schrittweitenabhängige Codierung, indem die kontinuierliche Dreiecksfläche acµ unter dem Gradienten konstant gehalten wird.
Die zugehörige diskrete Dreiecksfläche adµ bleibt auch konstant. Sind der Gradient des kontinuierlichen Verlaufs bµ(b0) und
die Dreiecksfläche bekannt, liegen die diskreten Katheten dµ und d0 fest und können ausgewertet werden.
Die Größe der konstanten Dreiecksfläche adµC wird von der kleinsten Kathete dµ = 1 suµ und der größten
Kathete d0 = zµ gemäß Gl. 3.13 festgelegt:
adµC = dµ*d0/2 = zµ/2 = konst. (Gl. 4.1)
Die konstante Dreiecksfläche acµC, die aus den kontinuierlichen Katheten cµ und c0 besteht, wird aus Gl. 4.1 mit Hilfe von Gl. 3.14 skaliert:
acµC = adµC/zµ2 = 2/zµ = konst. (Gl. 4.2)
Um nichtcodierbare Anteile im kontinuierlichen Verlaufs bµ(b0) auszuschließen und den
Gradienten zu gewinnen, wird
die kontinuierliche Fläche acµ unter dem kontinuierlichen Verlauf bµ(b0) mit Hilfe eines geeignetes Integrationsverfahren
ermittelt. Sie wird während der Integration mit der konstanten Fläche acµC verglichen.
Das Codewort der Codefolge der µ-ten Dimension besteht aus dem Vorzeichencode zvµ und dem Schrittcode zwµ. Der
Vorzeichencode zvµ kann definitionsgemäß nach Gl.n 3.4 und 3.5 hier nur die Werte -1 und 1 annehmen:
zvµ = -1, für fallende Gradienten (Gl. 4.3)
zvµ = 1, für steigende Gradienten (Gl. 4.4)
Der Schrittcode zwµ hat einen Zahlenvorrat nach Gl. 3.6 und wird aus der diskreten Kathete d0 unter Weglassung der
Untereinheit su0 gebildet:
zwµ = d0/su0 (Gl. 4.5)
Zur Veranschaulichung soll beispielhaft die Zahlendarstellungen des 4-Bit Codes an zwei
charakteristischen Gradienten gewonnen werden:
xµ = 4 (Gl. 4.6)
in die Gl.n 3.2 bis 3.4 eingesetzt ergibt:
xwµ = 3 (Gl. 4.7)
yµ = 23 = 8 (Gl. 4.8)
zµ = 7 (Gl. 4.9)
Die konstanten Dreiecksflächen adµC und acµC sind mit der Codebreite xµ = 3, den
Zahlenvorrat yµ = 8 und dem
gemeinsamen Teiler zµ = 7 festgelegt: In die Gleichungen Gl.n 4.1 und 4.2 eingesetzt, gilt gleichermaßen sowohl für die
Codierung als auch für die Decodierung die Vorgabe
adµC = dµ*d0/2 = 3,5 suµ*su0 (Gl. 4.10)
acµC = cµ*c0/2 = 0,071 uµ*u0 (Gl. 4.11).
In Fig. 1 sind zwei Gradienten als Geraden (a) und (b) irgendeines Verlaufes bµ(b0)
dargestellt. Weiterhin
sind in dieser Abbildung die kontinuierlichen Katheten cµ über c0 bezogen auf die Haupteinheiten uµ und u0 und die
zugehörigen diskreten Katheten dµ über d0 bezogen auf die Untereinheiten suµ und su0 eingezeichnet. Gut erkennbar ist
die Auflösung der Haupteinheiten uµ und u0 in Untereinheiten suµ und su0 mit jeweils zµ Schritten.
Gerade (a):
Gerade (a) charakterisiert den flachsten Gradienten der kodierbar ist. Die diskreten Katheten sind
d0 = 7 su0 (Gl. 4.12)
dµ = 1 suµ (Gl. 4.13)
Das Codewort lautet:
zvµ = 1 (Gl. 4.14)
zwµ = d0/su0 = 7 (Gl. 4.15)
Das Vorzeichen wird in xvµ mit dem Wert 1 codiert. Er weist auf einen ansteigenden
Gradienten hin. Der Schritt
wird in zwµ mit dem Wert 7 codiert. Dies ist bei der gegeben Codebreite xµ = 4 der größte codierbare Schritt in Richtung
des Vektors vu0.
Gerade (b):
Gerade (b) charakterisiert den steilsten Gradienten der kodierbar ist. Die diskreten Katheten sind
d0 = 1 su0 (Gl. 4.16)
dµ = 7 suµ (Gl. 4.17)
Das Codewort lautet:
zvµ = 1 (Gl. 4.18)
zwµ = d0/su0 = 1 (Gl. 4.19)
Das Vorzeichen wird wieder in xvµ mit dem Wert 1 codiert, um auf den ansteigenden
Gradienten hinzuweisen. Der
Schritt wird in zwµ auch mit dem Wert 1 codiert. Dies ist der kleinste codierbare Schritt in Richtung des Vektors vu0.
Die charakteristischen Gradienten (a) und (b) in Fig. 1 begrenzen drei dort dargestellten
Bereiche. Allgemein
für alle Zahlendarstellungen verschiedener Länge xµ, die in diesen Bereichen erzeugt werden, gelten folgende Codierungen:
Bereich I:
Der Bereich I befindet sich zwischen Abszisse und der Geraden (a). Liegt der Gradient in
diesem Bereich, wird
wie folgt codiert:
d0 = zµ (Gl. 4.20)
dµ = 0 (Gl. 4.21)
Das Codewort lautet:
zvµ = -1 oder 1 (Gl. 4.22)
zwµ = d0 = zµ (Gl. 4.23)
Der Schritt wird in zwµ mit dem Wert zµ codiert. In diesem Bereich wird der Decoder
angewiesen, einen großen
Schritt in Richtung des Vektors vu0 zu tun ohne den decodierten Verlauf aµ(a0) zu verändern.
Es ist nicht notwendig, einen Wert für das Vorzeichen in xvµ zu kodieren, weil der Gradient Null ist. Der freie
Platz in der Codefolge wird anders geartet verwendet: Mit folgender Belegung von zvµ wird der Decoder angewiesen, eine weiter
unten beschriebene Dynamisierung anzuwenden.
zvµ = -1, der Decoder verwendet keine Dynamisierung (Gl. 4.24)
zvµ = 1, der Decoder verwendet eine Dynamisierung (Gl. 4.25)
Auf entsprechende Ausführungsformen des Decoders wird weiter unten eingegangen.
Bereich II:
Der Bereich II befindet sich zwischen der Geraden (b) und der Ordinate. Liegt der Gradient in diesem Bereich, wird
wie folgt codiert:
d0 = 0 (Gl. 4.26)
dµ = zµ (Gl. 4.27)
Das Codewort lautet:
zvµ = 1 (Gl. 4.28)
zwµ = d0 = 0 (Gl. 4.29)
Der Schritt wird in zwµ mit dem Wert 0 codiert. In diesem Bereich wird der Decoder
angewiesen, den decodierte
Verlauf aµ(a0) nachzuführen ohne einen Schritt in Richtung des Vektors vu0 zu tun.
Bereich III:
Der Bereich III befindet sich zwischen den beiden Geraden (a) und (b). Liegt der Gradient in diesem Bereich, wird das
Codewort aus
zvµ = 1 (Gl. 4.30)
zwµ = d0/su0 (Gl. 4.31)
gebildet. In zwµ wird der Wert der diskreten Kathete d0 ohne Einheit festgehalten, der gerade bei dem Ereignis
acµ > acµC bzw. (Gl. 4.32)
acµ > 2/zµ (Gl. 4.33)
ausgezählt wurde.
Die kontinuierliche Dreiecksfläche acµ ergibt sich aus dem Integral von cµ nach b0
Während der Integration bleibt die obere Grenze des Integrals b0 variabel.
(5) Decodierung
Die Decodierung einer Codefolge wird beispielhaft am Verlauf bµ(b0) einer
Kosinus-Funktion gemäß Fig. 2 erklärt.
Er folgt der analytischen Beschreibung:
bµ(b0) = sqrt(2)*sin(b0) (Gl. 5.1)
Als Amplitude wird der Wert sqrt(2) = 1,414 vorgeben.
Die Gewinnung des 4-Bit-Codes wurde oben ausführlich erläutert. Die Folge des 4-Bit-Codes, die sich aus dem Verlauf in
Fig. 2 ergibt, wird in Fig. 3 dargestellt.
Die Codefolge besteht aus 17 Codewörtern. Jedes Codewort besteht aus einem Vorzeichenbit zvµ und einem 3 Bit langen
Schrittcode zwµ. Insgesamt werden
17*4 Bit = 68 Bit = 8,5 Byte (Gl. 5.2)
zur Codierung des Verlaufes benötigt.
Der decodierte Verlauf wird in den meisten Anwendung für eine Weiterverarbeitung durch
Mikrocontroller, Digitale
Signalprozessoren sowie spezielle Mikroprozessoren benötigt. Sie verarbeiten den decodierten Verlauf als ausgewählte Punktefolge:
aµ(a0) = A1(aµ, a0), A2(aµ, a0), ... , An(aµ, a0), ... , AdCounter (aµ, a0) (Gl. 5.3)
Jeder Gradient wird durch ein Geradenstück, dass durch einen Anfangspunkt An - 1(aµ, a0) und eine Endpunkt An(aµ, a0)
bestimmt ist, festgelegt. Der Endpunkt An(aµ, a0) ist gleichzeitig der Anfangspunkt für das nachfolgende Geradenstück.
Zwischen den Punkten ist der decodierte Verlauf aµ(a0) linear. Jedes Codewort kann vorteilhaft für sich decodiert werden.
Insgesamt besteht der decodierte Verlauf aµ(a0) aus einer Anzahl von dCounter Geradenstücken. Er ist kontinuierlich, aber nur
stückweise stetig differenzierbar. Diese Darstellungsform eignet sich sehr gut zur vektororientierten grafischen Ausgabe auf
einem Display.
Bevor die in Gl. 5.3 beschriebene Punktefolge entsteht, wird während der Decodierung ein
weiteres rechtwinkliges
Dreieck bestehend aus den decodierten Katheten eµ und e0 gewonnen:
Die Fläche dieses Dreiecks aeµ wird für die Decodierung der konstanten Fläche acµC nach Gl. 4.2 gleichgesetzt:
aeµ = eµ*e0/2 = acµC (Gl. 5.4)
Die erste Kathete e0 entspricht exakt dem mit dem gemeinsamen Teiler zµ (siehe Gl. 3.7) skalierten Schrittcode zwµ
e0 = zwµ/zµ (Gl. 5.5)
Die zweite Kathete eµ ergibt sich aus den Gl.n 5.4 und 5.5 mit
eµ = 2*acµC/e0 = 2*acµC*zµ/zwµ (Gl. 5.6).
Sie wird aus dem Quotienten der Ausdrücke 2*acµC*zµ und zwµ gebildet. Die Art und
Weise der Decodierung wird aus
diesem Grund Q-Ausführung genannt.
Die decodierte Punktefolge An(aµ, a0) nach Gl. 5.3 entsteht nunmehr, durch die vorzeichen-richtige Summation der
decodierten Katheten eµ und e0
aµ := aµ + zvµ*eµ = aµ + 2*zvµ*acµC*zµ/zwµ (Gl. 5.7)
a0 := a0 + e0 = a0 + zwµ/zµ (Gl. 5.8)
Fig. 4 zeigt den decodierten Verlauf aµ(a0), der aus der Codefolge in Fig. 3 gebildet wurde. Der Verlauf entspricht
der voreingestellten Codebreite xµ = 4 Bit und der Q-Ausführung des Decoders. Er wird in der weiteren Verfahrensbeschreibung
noch verbessert.
(6) Anwendungen
Um die kontinuierlichen Katheten cµ und c0 während der Codierung nach den Gl.n 2.9 und 2.10 zu bestimmen, wird
der decodierte Verlauf aµ(a0) benötigt. Jeder Codierer besitzt also einen Decodierer, über den die ausgewählte Punktefolge
An(aµ, a0) nach Gl. 5.3 in den Codierer zurückgekoppelt wird.
Um Aussagen zur Abbildungsgenauigkeit zu gewinnen, wurde die Eignung des erfindungsgemäßen
Verfahrens in
verschiedenen Ausführungsformen untersucht:
Wird die genannte Rückkopplung modifiziert, indem anstelle von Gl. 5.6 eine einfache Subtraktion des Wertes des
Schrittcodes zwµ vom gemeinsamen Teiler zµ
eµ = (zµ - zwµ)/zµ = 1 - zwµ/zµ (Gl. 6.1)
verwendet wird, entstehen zwar modifizierte Codes, aber an der Abbildungsgenauigkeit werden keine Abstriche
gemacht. Im Gegensatz zur oben beschriebenen Q-Ausführung, wird die Art und Weise der Decodierung nach Gl. 6.1 S-Ausführung
genannt. Die S-Ausführung hat den Vorteil, dass sich der Decoder weitgehend vereinfacht: In allen drei in Fig. 1 definierten
Bereichen gelten für die Decodierung in der S-Ausführung die gleichen Verfahrensschritte. Die
Codewörter müssen nicht
während der Decodierung in Abhängigkeit von der Zugehörigkeit zu den genannten Bereichen vorsortiert werden.
Die Untersuchungen haben gezeigt, dass durch die Anwendung der S-Ausführung keine systematischen Fehler bei der
Codierung und Decodierung durch den sogenannten S-Code entstehen. Allerdings sei besonders darauf hingewiesen,
dass der S-Code
nicht als Q-Code oder umgekehrt decodiert werden darf. Codes beider Ausführungen dürfen nicht vertauscht werden.
Die beschriebene Codierung und Decodierung kann in verschiedenen Ausführungsformen
angewendet werden. Die verschiedenen
Ausführungsformen unterscheiden sich im Wesentlichen durch die technischen Aufwendungen für den Decoder.
In der Verifizierungsphase des erfindungsgemäßen Verfahrens, in der die Eignung für
deterministische und
stochastische Signale mit Erfolg untersucht wurde, zeigte sich, dass das erfindungsgemäße
Verfahren in den Bereichen I
und II nach Fig. 1 weiter verbessert werden kann. In diesen Bereichen wird dem Decoder nur signalisiert, ob (im Bereich I)
der größte Schritt ohne Änderung im decodierten Verlauf aµ(a0) oder (im Bereich II) der kleinste Schritt mit
maximaler Änderung im decodierten Verlauf aµ(a0) ausgeführt wird.
In zwei weiteren Ausführungsformen, die dQ- und dS-Ausführung genannt werden, wird in den Bereichen I und II eine
Dynamisierung durchgeführt:
Die Ausführungsformen dQ und dS vergrößern im Bereich I automatisch die Länge der
decodierten Kathete e0 um den
Faktor 2, wenn mehrere Codes aus dem Bereich I hintereinander ausgegeben werden. Der Decoder erkennt, wenn die Codes nach
den Gl.n 4.20 bis 4.23 gebildet werden, ob eine Dynamisierung vorgenommen wurde.
Die automatische Dynamisierung im Bereich I kann von außen ein- oder ausgeschaltet
werden. Dazu werden dem
Speicherplatz qAµ folgende Werte zugewiesen
qA1 = 0, ohne Dynamisierung im Bereich I (Gl. 6.2)
qA1 = 1, mit Dynamisierung im Bereich I (Gl. 6.3),
die ohne Verzögerung an das Vorzeichenbit gemäß Gl.n 4.24 und 4.25 übergeben werden.
Im Gegensatz dazu kann die Dynamisierung im Bereich II nicht von außen ein- oder
ausgeschaltet werden:
Die decodierte Kathete eµ, die entweder nach Gl. 5.6 (dQ-Code) oder Gl. 6.1
(dS-Code) gebildet wird, wird jeweils
um den Faktor 2 vergrößert. Die Dynamisierung wird, nur dann verwendet, wenn der dQ-Code oder der dS-Code erzeugt wird und
mehrere Codes aus dem Bereich II hintereinander ausgegeben werden.
Die Anwendung der automatischen Dynamisierung ermöglicht eine Vorgabe für den ersten Wert der decodierten Kathete eµ
im Bereich II. Er wird jeweils zu Beginn der Dynamisierung der decodierten Kathete eµ zugewiesen. Dieser Wert kann von außen
vorgeben und im Speicherplatz für Codierer und Decodierer
qA2 = 0,25 (Gl. 6.4),
bereitgehalten werden. Untersuchungen an typischen Verläufen haben gezeigt,
dass mit der Einstellung gemäß Gl. 6.4 der
decodierte Verlauf aµ(a0) verbessert werden kann. Die Verbesserung wird in Fig. 5 verdeutlicht. Dort wurde für die Codierung
und Decodierung der Kosinus-Funktion gemäß Fig. 2 der dQ-Code verwendet. Der decodierte Verlauf in Fig. 5 wird durch 17
nichtäquidistante Punkte beschrieben. Die Schwingneigung, die durch den Q-Code im
decodierten Verlauf aµ(a0) entstanden ist,
wurde beim dQ-Code vermieden.
Während Schwingungen gewöhnlich zweidimensional in der Form bµ(b0) dargestellt werden, haben Wellen einen
mehrdimensionalen Charakter. Gelingt es, den Verlauf von Wellen, in den eingangs beschriebenen (m + 1)-dimensionalen
Funktionsraum zu beschreiben, kann eine mehrdimensionale Codierung und Decodierung mit dem erfindungsgemäßen Verfahren
durchgeführt werden. Er wird prinzipiell zwischen einer seriellen und einer parallelen Verarbeitung unterschieden:
Die parallele Verarbeitung setzt voraus, dass für die Codierung und Decodierung von m
Dimensionen (siehe Gl. 2.1)
auch m Codierer nebeneinander verwendet werden. Der Datenstrom vom m Codefolgen wird (quasi-) nebeneinander zu m Decodern
geführt. Die parallele Verarbeitung wird vorzugsweise zum Codieren und Decodieren von
online erzeugten zeitlichen oder
räumlichen Verläufen verwendet.
Die serielle Verarbeitung ist vorzugsweise anwendbar wenn die genannten Verläufe über m Dimensionen "off line"
vorliegen. Er reicht aus, wenn nur ein Codierer verwendet wird. Die einzelnen Dimensionen können nacheinander codiert bzw.
decodiert werden. Der Datenstrom vom m Codefolgen wird abschnittsweise nacheinander geführt. Der Decoder wird dazu zu Beginn
eines jeden Abschnittes neu initialisiert. Die Initialisierung wird ausgelöst, indem der Codierer ein Reset-Signal
bReset = true (Gl. 6.5)
erhält. Zusätzlich zur Codefolge werden auch Initialisierungsdaten, insbesondere die Nummer der aktuellen Dimension µ,
an den Decoder übergeben.
Auch eine gemischte serielle und parallele Verarbeitung ist denkbar. Sie soll aber an dieser Stelle nicht weiter
betrachtet werden.
Die Weiterverarbeitung der mehrdimensionalen Codefolgen nach der Decodierung erfordert ein Verfahren,
dass die
bezüglich der 0-ten Dimension freilaufenden Codewörter wieder synchronisiert. Dabei werden ausschließlich die für die
Weiterverarbeitung notwendigen Dimensionen herangezogen, und der kleinste gemeinsame Abschnitt als MicroStep des
Decoders hd durch eine Fensterung der decodierten Katheten e0 der einzelnen Dimensionen gewonnen. Der
nebenläufige Charakter der Codefolgen wird dadurch wieder aufgehoben. Die Weiterverarbeitung sollte auch schrittweitengesteuert sein.
Ein entsprechendes Verfahren wurde in [OS 195 20 836] vorgestellt.
Anwendungen werden beim Erfassen, Übertragen und Auswerten physikalischer Größen in den Bereichen
Multimedia, Mess-, Diagnose-, Automatisierungstechnik und Strukturanalyse gesehen. Das erfindungsgemäße Verfahren gewährleistet
- eine hohe Abbildungsgenauigkeit bei vertretbaren Kosten,
- eine störsichere Datenübertragung mit geringem technischen Aufwand,
- eine hohe Übertragungsdichte und geringes Datenvolumen pro Übertragungskanal,
- die gemischte Verarbeitung von on- und off-line-Datenbeständen in Vorhersagemodellen
und
- eine große Anwendungsbreite durch universelle Anwendbarkeit.
Aus der Darstellung des erfindungsgemäßen Verfahrens in den Fig. 6 bis 9 wird nach [Unified Modeling Language (UML)
Version 1.0 vom 13.01.1997] direkt das Layout von Hardware-Lösungen (Baugruppen, Schaltkreise, IP-Cores) generiert.
In Fig. 6 wird das erfindungsgemäße Verfahren in der Q-Ausführung ohne Dynamisierung für die Dimension µ = 1 dargestellt.
In Fig. 7 wird das erfindungsgemäße Verfahren in der S-Ausführung ohne Dynamisierung für die Dimension µ = 1 dargestellt.
In Fig. 8 wird das erfindungsgemäße Verfahren in der dQ-Ausführung mit Dynamisierung für die Dimension µ = 1 dargestellt.
In Fig. 9 wird das erfindungsgemäße Verfahren in der dS-Ausführung mit Dynamisierung für die Dimension µ = 1 dargestellt.
Hierzu gehören Fig. 1 bis 9