-
Die
vorliegende Erfindung bezieht sich auf Datenübertragung und insbesondere
auf Datenübertragung,
bei der eine Mehrpegel-Darstellung
eines digitalen Signals gesendet wird.
-
Digitale
Daten stellen ein Signal dar, das sowohl in der Zeit als auch in
der Amplitude quantisiert wurde. Die digitalen Daten nähern folglich
den tatsächlichen
Wert eines Analogsignals an. Wenn ein Analogsignal digitalisiert
wird, wird der Bereich des Analogsignals in eine Anzahl von Pegeln,
z. B. 16, aufgeteilt, wobei das Analogsignal in festgelegten Intervallen
abgetastet und der angemessene Pegel in diesem Augenblick bestimmt
wird. Da nur 16 Pegel verwendet werden, wird der Pegel, der dem
tatsächlichen
Pegel am nächsten
ist, ausgewählt.
Ein Signal, das aus diesen digitalen Daten rekonstruiert wird, ähnelt, ist
aber nicht exakt gleich dem ursprünglichen Analogsignal. Bei
binären
Digitaldaten wird ein Signal durch 0 oder 1 dargestellt, wobei z.
B. eine 0 ein 0 V-Puls und eine 1 ein 5 V-Puls ist. Wenn ein Abtastwert
eines Eingangssignals eine Amplitude hat, die größer als die Hälfte des
maximalen Bereichs ist, wird der Abtastwert des Signals durch eine
1 dargestellt. Eine 0 ergibt sich aus Abtastwerten, die eine Amplitude
von weniger als die Hälfte
haben. Folglich wird eine Folge von Einsen und Nullen erzeugt.
-
Um
das ursprüngliche
Signal zu wiederherzustellen, muss ein Empfänger die Schwelle zwischen
den zwei Pegel kennen. Dies wird üblicherweise ausgeführt, indem
der Sender dem Empfänger den
maximalen Bereich des Signals, die Anzahl der Pegel, und den Abstand
der Pegel zueinander, z. B. ob sie linear gestuft sind usw., signalisiert.
Der Empfänger
bestimmt dann die Schwelle(n) und dekodiert das ankommende Signal.
In der Praxis gibt es in einem Mehrpegel-System Verzerrungen in dem Signal wegen
der Reaktion des Netzwerks, nämlich Überschwingen
und Nachschwingen. Der augenblick liche Pegel jedes empfangenen Abtastwerts
hängt nicht nur
von dem gesendeten Abtastwert ab, sondern auch von den kürzlich zuvor
gesendeten Abtastwerten und möglicherweise
von dem nachfolgend gesendeten Abtastwert oder den Abtastwerten.
-
US-Patent
5.287.540 beschreibt einen digitalen Detektor mit einem Komparator
zum Vergleichen von Eingangssignalen mit vier Pegeln mit Entscheidungspegeln,
um die gesendeten Symbole wiederherzustellen, und weist eine Aktualisierungslogik auf,
um die Entscheidungspegel auf Basis einer „Präambel" zu Beginn jedes empfangenen Signals
zu aktualisieren.
-
Nach
der vorliegenden Erfindung wird ein Datenübertragungssystem geschaffen,
das folgendes umfasst:
einen Sender mit einer Einrichtung zum
Kodieren eines Eingangssignals, um kodierte Daten zu erzeugen, wobei
jedes Element der kodierten Daten einen von wenigstens zwei diskreten
Pegeln der Signalgröße aufweist,
wobei die Kodierungseinrichtung eine Einrichtung enthält, um eine
vorher festgelegte Trainingssequenz von Daten zu erzeugen, die Elemente haben,
die die diskreten Pegel annehmen;
und einen Empfänger mit
einer Dekodierungseinrichtung, um die kodierten Daten zu empfangen
und sie mit einer Schwelle oder Schwellen zu vergleichen, um zu
ermöglichen,
dass die diskreten Pegel voneinander unterschieden werden können, wobei
der Empfänger
weiter eine Einrichtung zur Schwellenanpassung hat, die auf Basis
der empfangenen Trainingssequenz betrieben werden kann, um die Schwellen
anzupassen, wobei die Einrichtung zur Schwellenanpassung eine Einrichtung
enthält,
um die Auswirkungen von wenigstens einem der Elemente der Trainingssequenz
auf ein anderes der Ele mente der Trainingssequenz zu überwachen
und die Schwelle(n) entsprechend anzupassen.
-
Ein
solches System ermöglicht
dem Empfänger,
die Schwelle(n) kontinuierlich in Abhängigkeit der dynamischen Bedingungen
der Übertragungsverbindung
zwischen Sender und Empfänger
anzupassen, und die Effekte der Übertragungsverbindung auf
Gruppen von Elementen werden eliminiert.
-
Die
Erfindung bezieht sich auch auf den Sender und einen Empfänger, die
in den Ansprüchen
7 und 11 definiert sind.
-
Die
Erfindung wird nun nur als Beispiel mit Bezug auf die Zeichnungen
im Anhang beschrieben, in denen:
-
1 ein Datenübertragungssystem
nach der Erfindung zeigt;
-
2 ein Beispiel des Zeilenformats
von kodierten Videodaten zeigt, die von dem Datenübertragungssystem
in 1 übertragen
werden;
-
3 einen Sender nach der
Erfindung zeigt;
-
4 einen Empfänger nach
der Erfindung zeigt;
-
5 ein Beispiel des Inhalts
eines Puffers zeigt, nachdem elf Zeilen der Trainingssequenz empfangen
wurden;
-
6 ein Beispiel eines Satzes
von Schwellen zeigt, die aus den Inhalten des Puffers, wie in 5 gezeigt, erzeugt wurden;
und
-
7 ein Beispiel einer Nachschlagetabelle zeigt,
die aus den Schwellen in 6 erzeugt
wurde.
-
Wie
in 1 gezeigt ist, umfasst
das digitale Datenübertragungssystem
einen Sender 20, einen Empfänger 30 und eine Kommunikationsverbindung 40.
Daten werden von dem Sender 20 an den Empfänger 30 über die
Kommunikationsverbindung 40 gesendet, die jede geeignete
Form annehmen kann. Zum Beispiel kann die Kommunikationsverbindung 40 ein
Teil eines öffentlichen
vermittelten Telefonnetzwerks (PSTN, Public Switched Telephone Network)
sein, eine dedizierte Leitung, wie etwa von einem digitalen Netzwerk
mit integrierten Diensten (ISDN, Integrated Services Digital Network),
eine Funkverbindung, ein Koaxialkabel, eine optische Faser usw.
sein.
-
Zum
Zwecke der Darstellung bezieht sich das zu beschreibende Datenübertragungssystem
auf die Übertragung
von Daten, die ein Videobild darstellen. Die Erfindung kann jedoch
auf jedes System angewendet werden, das digitale Mehrpegeldaten überträgt, insbesondere
für die Übertragung über eine
analoge Übertragungsverbindung,
z. B. Kabelmodems, Teletextdienste mit höherer Bitrate.
-
Das
zu beschreibende Datenübertragungssystem
ist für
die Verteilung von digitalen Fernsehsignals an Kunden über einen
analoges hybrides Faser-Koax-Netzwerk geeignet. Um die bestehende analoge
Netzwerkinfrastruktur zu nutzen, müssen Digitalsignale über das
bestehende Netzwerk auf gleiche Weise wie ein gewöhnlicher
Fernsehkanal übertragen
werden können.
-
Das
Digitalsignal muss deshalb eine ähnliche
Bandbreite belegen, wie der gewöhnliche
Fernsehkanal (6–7
MHz). Es muss bezüglich
der Amplitude auch so „aussehen" wie ein Fernsehsignal
und regelmäßi ge „Zeilen"-Synchronisationspulse
mit 15,625 kHz aufweisen, da ein Teil der Schwarzsteuerung in dem
Netzwerk darauf beruht. Der Signal-Rausch-Abstand liegt um 50 dB
und es gibt keine Nichtlinearitäten
wie etwa Differenzverstärkungsfehler
und verstümmelte
Synchronisationspulse zu bewältigen.
-
Um
vernünftige
Verbesserungen der Kapazität
gegenüber
analoger Betriebsweise zu erhalten, besteht der Wunsch nach ausreichender
digitaler Kapazität,
um vier multiplexierte MPEG-Videodatenströme mit akzeptabler Qualität zu übertragen.
-
Die
Erfindung setzt Mehrpegelkodierung ein, wodurch serielle digitale
Daten in Symbole von n Bit aufgeteilt werden. Jedes Symbol wird
dann als einer von 2n diskreten Pegeln in
dem aktiven Videobereich kodiert.
-
Indem
die Symbolrate zu 6,75 MHz gewählt wird,
ist die minimale Pulsbreite, die vorkommt, 1/6,75 × 106, d. h. 148 ns. Dies sollte in durch Bandbreite
des Systems ohne zu viel Verschlechterung hindurchlaufen. Unter
der Voraussetzung des Signal-Rausch-Abstands des Systems ist es
vernünftig, zu
erwarten, acht scharf begrenzte Pegel wiederzugewinnen, was drei
Bit pro Symbol (d. h. n = 3) ergibt.
-
Experimente
haben gezeigt, dass es nicht wirklich erforderlich ist, irgendeine
zeitliche Steuerung der Frames aufrechtzuerhalten, da alle Netzsynchronisierungen
und Schwarzsteuerungen in dem System nur die Zeilensynchronisation
und die Schwarzpegel benutzen. Dies bedeutet, dass die zeitliche
Steuerung der Frames weggelassen und ein kontinuierlicher Strom
von aktiven „Zeilen" verwendet werden
kann. Dies erhöht
den Datendurchsatz und vereinfacht den Aufbau von Sender und Empfänger.
-
Indem
eine Master-Taktrate von 27 MHz gewählt wird, können leicht verfügbare Chips
zur Wiederherstellung des Fernsehabtasttakts verwendet werden, um
dem Empfänger
einen zeilenverrasteten Takt mit vernünftig geringem Jitter bereitzustellen. Das
Signal kann mit dieser Frequenz überabgetastet werden,
um die beste Abtastposition zu bestimmen. Leicht verfügbare Video-Analog-Digital-Wandler (ADCs,
analog-to-digital converters) sowie Logik mit vernünftiger
Geschwindigkeit können
verwendet werden.
-
Ein
Diagramm des zu sendenden Signalverlaufs ist in 2 gezeigt. Er besteht aus einem Synchronisations(Sync.)puls 2 mit
einer genormten Breite und Amplitude, der sich mit 15,625 kHz wiederholt. Dieser
ist von einer vorangehenden vorderen und einer nachfolgenden hinteren
Schwarzschulter umgeben, um die Verwendung leicht verfügbarer Separatoren
für Fernsehsynchronisationspulse
und Analog-Digital-Wandler zu ermöglichen.
-
Nach
der hinteren Schwarzschulter 6 folgt ein Startpuls (S),
der von dem Empfänger
verwendet wird, um die beste Abtastposition zu bestimmen. Dort folgen
dann acht Symbole, von denen fünf
eine Trainingssequenz (T) bilden, die eine festgelegte Abfolge über eine
Anzahl von Zeilen durchlaufen. Das erste dieser Symbole (M) ist
eine Marke, um die Feststellung des Starts der Trainingssequenz
zu ermöglichen.
Die genaue Beschaffenheit und die Funktion der Trainingssequenz
wird später
beschrieben.
-
Dann
folgt eine Anzahl von gültigen
Datensymbolen D. Jedes ist nominal 148 ns breit und wird von einem
der scharfen Pegel dargestellt, die nominell einen Abstand von 0,1
V voneinander haben. Die gültigen
Daten können
in Blocks aufgeteilt werden, um das Hinzufügen eines blockbasierten Vorwärtsfehlerkorrektors
(FEC, Forward Error Correc tor) zu ermöglichen. Ein Verwaltungsaufwand
in Systemen, die blockbasierte FECs verwenden, ist das Erfordernis,
Bits zur Rahmenbildung hinzuzufügen,
um die Blockgrenzen zu definieren, und die Hardware am Empfänger, um
nach den Rahmen zu suchen und sich damit zu verrasten. Dies ist
in dieser Anordnung nicht erforderlich, da die Daten schon in „Zeilen" aufgeteilt sind,
die weiter in Blocks unterteilt werden können.
-
Die
Wahl der Blockgröße für den Fehlerkorrektor
und die Gesamtanzahl von Symbolen pro Zeile hängt von der geforderten Bitrate
und der Korrekturleistung des FEC ab.
-
Das
vorgeschlagene System verwendet einen CH(Bose-Chaudhuri Hocquenghem)-Vorwärtsfehlerkorrektor
und teilt die Zeilen in 17 Blocks von 63 Bit auf. Jeder 63-Bit-Block
enthält
21 3-Bit-Symbole, die aus 19 Datensymbolen (57 Bit) und zwei Symbolen
mit Prüfbits
(6 Bit) bestehen, eine Bitrate der Nutzlast von 57 × 17 × 15625
= 15,140625 Mbit/s ergibt.
-
Um
eine „runde" Bitrate zu haben,
hat der letzte Block drei Symbole, die nicht mit Daten gefüllt sind,
was ((57 × 17) – 9) × 15.625
= 15,00 MHz ergibt. Intuitiv ist klar, dass dies eine vernünftige Rate
ist, in die vier MPEG-kodierte Fernsehkanäle multiplexiert werden können. und
die die erforderliche Qualität
pro Kanal liefert.
-
Der
FEC kann ein fehlerhaftes Bit in jedem Block korrigieren. Um die
Wahrscheinlichkeit von Fehlern in mehreren Bits zu verringern, sind
die Symbole Gray-kodiert sodass nebeneinanderliegenden Pegel Bitmuster
mit nur einem Bit Unterschied repräsentieren.
-
Ein
Beispiel des Senders 20 ist in 3 gezeigt. Der Sender 20 kann
entweder Slave zu dem Takt des MPEG-Multiplexers oder ein Master-Taktgeber
sein. Der Phasenregelkreis (PLL, Phase Locked Loop) und der Takterzeuger 201 erzeugen
den Symboltakt mit 6,75 MHz, der mit dem 15 MHz-Datenbittakt verrastet
ist.
-
Die
ankommenden binären
Digitaldaten werden durch ein Seriell-Ein-Parallel-Aus(SIPO, serial-in-parallel-out)-Schieberegister 202 in
3-Bit Symbole aufgeteilt und in einem Erstes-Ein-Erstes-Aus(FIFO,
first in, first out)-Puffer 204 gespeichert. Der FIFO 204 puffert
die Symbole zwischen der kontinuierlichen Eingangsdatenrate und
der „schubweisen" Zeilen- und Blockstruktur.
Die Symbole werden aus dem FIFO 204 ausgelesen, und von dem
FEC-Kodierer 206 werden BCH-FEC-Prüfbits hinzuaddiert. Zu Beginn
jeder Zeile werden der Synchronisationspuls, der Schwarzpegel (d.
h. vordere Schwarzschulter und hintere Schwarzschulter), der Startpuls
(S) und die Trainingssequenz von einer Einheit 207 unter
der Steuerung eines Steuerblocks 208 hinzugefügt. Dann
werden die Daten Gray-kodiert und in eine 8-Bit Darstellung 210 konvertiert,
bevor sie dem Digital-Analog-Wandler 212 zur
Verfügung gestellt
werden. Ein gewisser Umfang an Vorkompensation kann in dieser Stufe
hinzugefügt
werden, um das Überschwingen
im Netzwerk reduzieren zu helfen. Dies verringert effektiv die Anstiegszeiten
der Flanken im Signal. Das analoge Ausgangssignal des DAC 212 kann
dann über
das Netzwerk auf die gleiche Weise wie ein normaler Fernsehkanal
gesendet werden. Ein analoger Nachfilter kann angeschlossen werden,
wenn er erforderlich ist, um die Bandbreite des Signals für die Eignung
für das
Netzwerk zu begrenzen.
-
Ein
Blockdiagramm des Empfängers 30 ist
in 4 gezeigt. Ein Synchronisationsseparator 301 extrahiert
Synchronisations- und Schwarzpegelpulse aus dem ankommenden Signal.
Ein PLL und ein spannungsgesteuerter Kristalloszillator (VCXO, voltage
controlled crystal oscillator) 302 erzeugt einen zeilenverrasteten
27 MHz-Takt.
-
Ein
8-Bit-ADC 303 digitalisiert das ankommende Signal in ein
8-Bit-Signal. Der
ADC 303 hat eine Steuerung für die Netzsynchronisierung
und die automatische Verstärkung
(AGC, automatic gain control), die die Synchronisations- und Schwarzpegelpulse
verwendet. Die Wirkung der AGC ist, dass das digitale Ausgangssignal
an der Basis des Synchronisationspulses 2 auf 0 gesetzt
wird, und der Schwarzpegel (d. h. der Pegel der vorderen und der hinteren
Schwarzschulter 4 und 6) auf 63 gesetzt wird.
Einem Videoeingangssignal mit nominalem Maximalpegel von etwa 0,7
V wird dann ein Pegel von 213 gegeben. Da die Verstärkung des
AGC mit der Höhe
des Synchronisationspulses berechnet wird, ändert jegliches Kappen des
Synchronisationspulses durch das Übertragungsnetzwerk diese nominelle Maximalhöhe. Der
ADC ist mit 27 MHz getaktet.
-
Die
Logik 304, die dem ADC nachgeschaltet ist, enthält eine
Zustandsmaschine, die nach dem Startpuls (S) nach jedem Zeilensynchronisationspuls sucht.
Der Startpuls S ist verwundet, nachdem er durch das Netzwerk gelaufen
ist, und als beste Abtastposition wird die genommen, bei der der
Abtastwert seinem Maximum am nächsten
ist. Eine invertierte Version des Takts kann verwendet werden, wenn
dies eine bessere Abtastposition ergibt.
-
Nun
wird die Trainingssequenz beschrieben. Die Trainingssequenz ist
1024 Zeilen lang, und belegt fünf
Symbole zu Beginn jeder Zeile zwischen dem Startpuls S und den gültigen Datensymbolen
D. Das erste Symbol (M) in der Sequenz zeigt den Start der Trainingssequenz
an; es ist Eins (Pegel 7) in der ersten Zeile der Sequenz,
und Null (Pegel 0) in allen anderen Zeilen. Die nächsten drei
Symbole T1, T2 und
T3 durchlaufen Zeile für Zeile eine Folge aller möglichen
Kombinationen von acht Pegeln für
die drei Symbole (83 Kombinationen), wobei das letzte Symbol
T4 Null (Pegel 0) oder Eins (7)
ist, was 2 × 83 d.
h. 1024 Kombinationen ergibt, die 1024 Zeilen belegen (ungefähr 65 ms).
-
Am
Empfänger
wird der Pegel des vierten Symbols T3 in
der Trainingssequenz jeder Zeile abgetastet und in einem FIFO 306 gespeichert.
Folglich enthält
das FIFO 306 nach 1024 Zeilen Beispiele aller Pegel des
vierten Symbols mit allen Kombinationen der zwei vorangehenden Symbole
T1 und T2, und das
nachfolgende Symbol T4 ist Eins oder Null. 5 zeigt ein Beispiel des
Inhalts des FIFO 306 nach 11 Datenzeilen. Ein Mikroprozessor 308 berechnet
einen Satz von sieben Entscheidungsschwellen für jede der Kombinationen von
vorangehenden und nachfolgenden Pegeln und erzeugt eine Nachschlagetabelle
(LUT, look-up-table), die in dem SRAM 312 gespeichert wird.
Zum Beispiel stellen die Abtastwerte 1–8 in dem FIFO 306 den
Pegel des vierten Symbols der Trainingsdaten T3 dar,
wenn beide der vorangehenden Symbole T1 und
T2 und das nachfolgende Symbol T4 den Pegel 0 haben. Der Mikroprozessor 308 berechnet
folglich die sieben Entscheidungsschwellen, die angewendet werden
sollen, wenn die vorangehenden zwei Symbole Null sind und das nachfolgende
Symbol Null ist. Dies wird typischerweise erreicht, indem jede Schwelle
für T3 bei der Hälfte zwischen zwei empfangenen
Trainingspegeln festgelegt wird, d. h. Schwelle = L1 +
[(L2 – L1)/2], wobei L1 und
L2 die empfangenen Pegel für nachfolgende Symbole
T3 sind. 6 zeigt
ein Beispiel der Schwellen für
diesen Beispielfall, wie sie im RAM des Mikroprozessors 310 gespeichert
sind. Der Mikroprozessor verwendet dann diesen Satz von Schwellen,
um eine LUT zu berechnen, wie in 7 gezeigt
ist, und speichert sie im SRAM 312.
-
Die
LUT wird dann verwendet, um den Schwellwertvergleich mit den gültigen Daten
D in Echtzeit durchzuführen.
Die 8-Bit-Eingangsdaten werden
an die LUT 312 über
den Eingang a angelegt. Die vorangehenden zwei Abtastwerte der Eingangsdaten
werden in die Eingänge
b bzw. c eingegeben. Der Pegel des nachfolgenden Abtastwerts der
Eingangsdaten wird über
den Eingang d eingegeben. Dieser Eingang d ist eine einfache Eins/Null-Angabe, die
aus dem Abtastwert vor dem abgeleitet wird, der dem Eingang des
Komparators 312 bereitgestellt wird. Für gültige Daten kann der nachfolgende
Abtastwert jeden Wert zwischen dem Maximum und dem Minimum (213
beziehungsweise 0 in dieser Ausführung)
haben. Eine fiktive Schwelle wird auf die Hälfte zwischen dem Maximum und
dem Minimum festgelegt. Wenn der Wert des nachfolgenden Abtastwerts
oberhalb dieser Schwelle liegt, wird der Wert des nachfolgenden
Abtastwerts als Eins angesehen; wenn der Wert darunter liegt, wird
er als Null betrachtet. Die Eingänge
b und c können
als Ausgänge
von der LUT mit D-Flipflop angesehen werden, da sie quantisiert
wurden und sie jeder nur drei Bit haben, was die erforderliche Größe der LUT
verringert.
-
In
der Praxis umfasst die LUT zwei SRAM-Bänke. Wenn der Mikroprozessor
einmal eine LUT berechnet und in das SRAM geschrieben hat, sendet
er diese LUT in den Echtzeitdatenpfad. Er führt dann den gesamten Zyklus
erneut aus, erfasst einen neues FIFO voll Trainingsdaten und berechnet erneut
den Satz von Schwellen. Mit diesen kann mit dem vorhergehenden Satz
von Schwellen der Mittelwert gebildet werden, um die Effekte von
zufälligem Rauschen
zu verringern, und es wird eine neue LUT berechnet. Diese wird dann
statt der vorangehenden LUT gesendet. Der Prozess wiederholt sich
genauso, so schnell der Prozessor diese Aufgaben ausführen kann.
Folglich passt sich das System an die Antwort der Telekommunikationsverbindung 40 an
und folgt allen Langzeitänderungen
der Antwort.
-
Als
weitere Verbesserung kann der Mikroprozessor die Abtastwerte verwenden,
in dem FIFO 306 gespeichert sind, um die Impulsantwort
der Verbindung zu messen. Die Impulsantwort kann anzeigen, dass
der Pegel irgendeines Abtastwerts mehr von dem nachfolgenden Abtastwert
abhängt,
als von dem vorvorhergehenden, was passieren kann, wenn die Bandbreite
der Kommunikationsverbindung gering ist. Die Trainingssequenz kann
dann an ihrem dritten Symbol statt an ihrem vierten abgetastet werden,
und der Eingang in die LUTs kann verändert werden, sodass mehr Bits
der nachfolgenden Abtastwerte statt der vorvorhergehenden Abtastwerte
eingegeben werden. Der Prozessor hat dann Abtastwerte aller Kombinationen
von vorangehenden und nachfolgenden Abtastwerten und kann LUTs auf ähnliche
Weise erzeugen.
-
Die
mit der Schwelle verglichenen 3-Bit-Symbole werden dann invers Gray-kodiert,
und durch den BCH-FEC-Detektor/Korrektor 314 geleitet, der
alle einzelnen Bit-Fehler in jedem 64-Bit-Block korrigiert. Die
Daten laufen dann durch ein FIFO zur Ratenkonvertierung 316 und
werden durch die Steuerung 318 mit kontinuierlichen 15,0
MHz am Ausgang neu getaktet. Diese werden zu einen MPEG-Demultiplexer/Decoder
zur Dekodierung auf herkömmlicherweise
weitergegeben.