-
Technisches Gebiet
-
Die vorliegende Beschreibung betrifft allgemein das technische Gebiet der Datenübertragung und der Fehlererkennung und Fehlerkorrektur in übertragenen Daten auf Seiten eines Empfängers. Insbesondere betrifft die Beschreibung eine Empfangseinheit für die Verwendung in einer Datenverbindung und ein Verfahren zur Fehlerkorrektur an einem Empfangswort.
-
Technischer Hintergrund
-
Sog. Low-Density-Parity-Check-Codes, LDPC-Codes, sind lineare Blockcodes zur Fehlerkorrektur. LDPC-Codes beschreiben mit Hilfe einer Matrix mehrere zusammenhängende Paritätsprüfungen.
-
Die Grundlagen der LDPC-Codes finden sich in Robert G. Gallager: Low-Density Parity-Check Codes. M.I.T. Press Classic Series, Cambridge MA, USA, 1963.
-
LDPC-Dekodierer nutzen in der Regel fein quantisierte Eingangswerte, z.B. von einem AD-Umsetzer mit einer Auflösung von 4 bis 6 Bit, eignen sich gut zur Fehlerkorrektur, benötigen allerdings eine hohe Rechenleistung.
-
Beschreibung
-
Es kann als Aufgabe betrachtet werden, einen LDPC-Dekodierer mit reduzierter Komplexität und reduziertem Bedarf von Rechenleistung anzugeben.
-
Diese Aufgabe wird gelöst durch den Gegenstand des unabhängigen Anspruchs. Weitere Ausführungsformen ergeben sich aus den abhängigen Ansprüchen sowie aus der folgenden Beschreibung.
-
Gemäß einem ersten Aspekt ist eine Empfangseinheit für die Verwendung in einer Datenverbindung angegeben. Die Empfangseinheit weist eine Vorverarbeitungseinheit und einen Dekodierer auf. Die Vorverarbeitungseinheit ist ausgestaltet, einen von einem Übertragungskanal empfangenen Analogwert in ein dreistufiges Signal Q zu quantisieren, wobei das dreistufige Signal einen ersten Wert, einen zweiten Wert, oder einen dritten Wert einnehmen kann, wobei der erste Wert einem ersten logischen Zustand, der dritte Wert einem zweiten logischen Zustand, und der zweite Werte einem unbestimmten logischen Zustand entspricht. Der Dekodierer umfasst eine Mehrzahl von Bitknoten und eine Mehrzahl von Prüfknoten, wobei jeweils eine Anzahl von Bitknoten mit einem Prüfknoten verbunden ist. Der Dekodierer ist ausgeführt, Bitknotennachrichten iterativ zu aktualisieren gemäß der Vorgabe:
-
Hierbei gilt:
- β(k) ist die n-te Iteration einer Nachricht des Bitknotens n an den mit dem Bitknoten n verbundenen Prüfknoten ist.
ist die n-te Iteration einer Nachricht des Prüfknotens n an den Bitknoten k;
und
γ(k) ist ein Satz von Indizes der mit dem Bitknoten k verbundenen Prüfknoten.
-
Der Dekodierer ist ausgeführt, Prüfknotennachrichten an die Bitknoten iterativ zu aktualisieren gemäß der Vorgabe:
-
Hierbei gilt:
- β(k) ist ein Satz von Indizes der mit dem Prüfknoten k verbundenen Bitknoten;
-
Der Dekodierer ist ausgeführt, das dreistufige Signal Q(x) wie folgt zu bestimmen:
-
Über den Übertragungskanal werden Informationen beispielsweise als analoge Spannungspegel übertragen. Auf der Empfängerseite wird der Spannungspegel erfasst und diesem Spannungspegel ein Wert zugewiesen. Der Übertragungskanal wird durch die Verknüpfung mit der Vorverarbeitungseinheit funktional zu einem sog. Auslöschungskanal (Engl.: erasure channel). Ein Auslöschungskanal bezeichnet einen informationstheoretischen Kanal, der ein Informationsbit (in der Regel mit zwei Zuständen, logisch 0 oder logisch 1) an seinem Eingang empfängt und an seinem Ausgang ein Informationsbit (in der Regel mit zwei Zuständen, logisch 0 oder logisch 1) oder einen Übertragungsfehler E ausgibt. Der Auslöschungskanal verfügt also über drei mögliche Ausgangswerte.
-
Das dreistufige Signal Q kann drei Werte annehmen. Ein erster Wert kann einer logischen 0 entsprechen, ein dritter Wert kann einer logischen 1 entsprechen. Somit sind die zwei Werte, welche ein einzelnes Informationsbit bilden, dargestellt. Der zweite Wert wird dann verwendet, wenn es nicht möglich ist, den empfangenen Analogwert eindeutig dem ersten oder dritten Wert zuzuweisen.
-
Die Vorverarbeitungseinheit und der Dekodierer können strukturell in einer gemeinsamen Baueinheit untergebracht sein. Sie können jedoch auch räumlich und strukturell voneinander getrennt sein. Die Vorverarbeitungseinheit kann sich z.B. unmittelbar an einen Ausgang einer Verbindung anschließen und das quantisierte dreistufige Signal als Kanalausgang an den Dekodierer übergeben. Unabhängig von der strukturellen Anordnung und Zuordnung liefert die Vorverarbeitungseinheit das Signal Q an den Dekodierer.
-
Es ist vorgesehen, dass die Nachrichten der Prüfknoten an die Bitknoten ebenfalls dreistufig quantisiert werden. Dies hat den Vorteil, dass das Verarbeiten der Prüfknotennachrichten, welche an die Bitknoten übermittelt werden, mit digital arbeitenden Bausteinen sehr schnell ausgeführt werden kann, weil auf einfache Operationen zurückgegriffen kann. Dies ergibt sich als Folge davon, dass das dreistufig quantisierte Signal Q die Werte +1 (z.B. logisch 1), 0 (unbestimmter logischer Zustand), und -1 (z.B. logisch 0) verwendet. Die Prüfknotennachricht wird als Produkt mehrerer solcher dreistufig quantisierter Werte ermittelt. Befindet sich in einer Multiplikation mit mehreren Faktoren ein Faktor mit dem Wert 0, so ist das Ergebnis der Multiplikation ebenfalls 0. Dies zeigt an, dass das Ergebnis der Multiplikation mit Unsicherheit behaftet ist, was schon dann passiert, wenn der Wert eines einzelnen Faktors mit Unsicher behaftet ist. Die Multiplikation mit -1 ändert lediglich das Vorzeichen.
-
Herkömmliche Dekodierer, die mit Bitknoten und Prüfknoten arbeiten, verwenden für die Prüfknotennachrichten eine feinere Quantisierung mit teilweise deutlich mehr als drei Quantisierungsstufen. Z.B. kann hierfür eine Auflösungstiefe von 32 Stufen für den positiven Wert und 32 Stufen für den negativen Wert (entspricht 6 Bit) verwendet werden. Dann muss jedoch die Prüfknotennachricht sehr aufwändig und rechenleistungsintensiv ermittelt werden. Im Gegensatz dazu wird vorliegend eine dreistufige Quantisierung verwendet, was eine rasche Erzeugung der Prüfknotennachricht ermöglicht, weil mit Operationen gearbeitet werden kann, die in digital arbeitenden (und z.B. das Binärsystem nutzenden) Systemen in sehr kurzer Zeit ausgeführt werden können.
-
Gemäß einer Ausführungsform ist der Dekodierer ein Low-Density-Parity-Check-Code, LDPC-Code.
-
Ein Low-Density-Parity-Check-Code, LDPC-Code, ist ein linearer Blockcode zur Fehlerkorrektur und beschreibt mit Hilfe einer Matrix mehrere zusammenhängende Paritätsprüfungen, die auf eine Empfangsfolge angewandt werden.
-
Bei einem LDPC-Code werden aus einer Mehrzahl von Bitknoten mehrere Untermengen von Bitknoten ausgewählt und in wechselnder Zusammensetzung zu Gruppen gruppiert. Eine solche Gruppe wird mit einem Prüfknoten verbunden. So können beispielsweise jeweils vier Bitknoten in wechselnder Zusammensetzung mit einem Prüfknoten verbunden werden. Ein Prüfknoten bestimmt dann einen Prüfwert für die Nachrichten (den logischen Zustand eines Bitknotens), die er von den mit ihm verbundenen Bitknoten erhält.
-
Beispielsweise kann der Prüfwert bestimmt werden, indem die Nachrichten einer Gruppe von Bitknoten mit einer vorgegebenen mathematischen oder logischen Operation miteinander verknüpft werden. Eine solche mathematische oder logische Operation ist herkömmlicherweise die modulo-2-Addition. Der Prüfwert wird anschließend verwendet, um eine Prüfknotennachricht für die Bitknoten zu ermitteln, wie weiter unten beschrieben.
-
Zu Beginn werden die Bitknoten mit den Werten der empfangenen Bits des Empfangswortes r(k) initialisiert. Diese können die genannten drei Werte einnehmen: -1, 0 oder +1. Jeder Prüfknoten ermittelt sodann einen Prüfwert basierend auf den Werten, die der Prüfknoten von denjenigen Bitknoten erhält, die mit dem aktuellen Prüfknoten verbunden sind.
-
Bei einem LDPC-Code geht man typischerweise dann von einer fehlerfreien Übertragung aus, wenn der Prüfwert in einem Prüfknoten den Wert 0 hat. Im Falle eines Übertragungsfehlers wird der Prüfwert in einem Prüfknoten 1:
-
Diese Gleichung besagt, dass die Bitknoten 0 bis 3 in einer Gruppe zusammengefasst sind und deren Werte verwendet werden, um den Prüfwert in einem Prüfknoten zu berechnen. Vorliegend hat der Prüfwert den Wert 1.
-
Sodann kann ausgehend von dem Prüfwert und einer Untermenge (alle Bitknoten bis auf einen) der mit dem Prüfknoten verbundenen Bitknoten ermittelt werden,
wie der Wert des verbliebenen Bitknotens sein müsste, damit sich in dem aktuellen Prüfknoten der (im fehlerfreien Fall sich ergebende) Prüfwert 0 einstellt.
Die folgende Gleichung drückt aus, welchen Wert der Bitknoten 0 haben muss,
damit sich an dem Prüfknoten 0 den für den fehlerfreien Fall korrekte Prüfwert ergibt:
-
Ebenso drückt die nun folgende Gleichung aus, welchen Wert der Bitknoten 1 haben muss, damit sich an dem Prüfknoten 0 der für den fehlerfreien Fall korrekte Prüfwert ergibt:
-
Jeder Prüfknoten berechnet einen solchen Soll-Wert für jeden Bitknoten, der mit ihm verbunden ist, indem alle anderen mit dem Prüfknoten verbundenen Bitknoten dafür herangezogen werden. Jeder Bitknoten ist mit mehreren Prüfknoten verbunden und erhält von jedem Prüfknoten eine Information, wie sein Wert sein müsste, damit die Prüfwertberechnung in dem einzelnen Prüfknoten eine fehlerfreie Übertragung anzeigt. Sodann kann jeder Bitknoten mit dieser Information von allen mit ihm verbundenen Prüfknoten und dem über den Übertragungskanal erhaltenen Wert Rückschlüsse ziehen, z.B. durch einen Mehrheitsentscheid, wie sein Wert sein müsste, damit der Wert in den wenigsten Prüfknoten einen Übertragungsfehler anzeigt. Dies wird für alle Bitknoten ausgeführt, die Bitknoten erhalten in einem nächsten Schritt einen neuen Wert, und mit den neuen Werten der Bitknoten wird das Verfahren erneut durchgeführt, bis sich die Werte der Bitknoten einem konfliktfreien Empfangswort (=Empfangsfolge, Menge aller Bits an allen Bitknoten), bei dem alle Prüfknoten eine fehlerfreie Übertragung mit passenden Prüfwerten melden, nähern.
-
Gemäß einer weiteren Ausführungsform weist die Vorverarbeitungseinheit einen ersten Komparator und einen zweiten Komparator auf, wobei der erste Komparator ausgeführt ist, zu überprüfen, ob der empfangene Analogwert oberhalb eines ersten Schwellwertes ist, wobei der zweite Komparator ausgeführt ist, zu überprüfen, ob der empfangene Analogwert unterhalb eines zweiten Schwellwertes ist, und wobei die Vorverarbeitungseinheit ausgeführt ist, den ersten Wert des dreistufigen Signals auszugeben, wenn der empfangene Analogwert oberhalb des ersten Schwellwertes ist, den dritten Wert des dreistufigen Signals auszugeben, wenn der empfangene Analogwert unterhalb des zweiten Schwellwertes ist, und andernfalls den zweiten Wert des dreistufigen Signals auszugeben.
-
Dies beschreibt, wie die Initialwerte der Bitknoten basierend auf einer Empfangsfolge gesetzt werden. Ausgehend von diesen Initialwerten werden dann die anschließenden iterativen Schritte ausgeführt, um sich der fehlerfreien Empfangsfolge (das ist die Empfangsfolge, bei der die Bitknotenwerte zu keinen fehlerhaften Prüfwerten in den Prüfknoten führen) zu nähern.
-
Gemäß einer weiteren Ausführungsform ist die Vorverarbeitungseinheit ausgeführt, für eine Empfangsfolge mit mehreren Informationsbits jeweils einen Wert pro Informationsbit gemäß dem dreistufigen Signal Q zu ermitteln und jeweils einen Wert an jeden Bitknoten des Dekodierers zu übergeben.
-
Dies beschreibt, wie eine Empfangsfolge oder ein Wort von mehreren Bits auf die Bitknoten aufgeteilt wird. Ein Wort, das von der Empfangseinheit empfangen wird, besteht aus mehreren Informationsbits, deren Anzahl der Anzahl der Bitknoten im Dekodierer entspricht.
-
Gemäß einer weiteren Ausführungsform sind alle Prüfknoten mit einer gleichen Anzahl von Bitknoten in wechselnder Gruppierung der Bitknoten verbunden.
-
Beispielsweise ist jeder Prüfknoten mit vier Bitknoten verbunden. Dabei ist kein Prüfknoten mit denselben vier Bitknoten verbunden, d.h. die Prüfknoten sind mit unterschiedlich bzw. wechselnd zusammengesetzten Gruppen von Bitknoten verbunden. Dies ermöglicht es, einem Bitknoten Nachrichten von unterschiedlichen Prüfknoten in der Zusammenschau mit anderen Bitknotenwerten zukommen zu lassen, um somit die Wahrscheinlichkeit der Fehlererkennung und -korrektur zu erhöhen.
-
Gemäß einem weiteren Aspekt ist eine Datenverbindung angegeben. Die Datenverbindung weist auf: einen Kodierer, einen mit dem Kodierer verbundenen Modulator, einen mit dem Modulator verbundenen Übertragungskanal, und eine Empfangseinheit wie hierin beschrieben. Die Empfangseinheit ist mit dem Übertragungskanal verbunden, so dass Daten von dem Kodierer zu der Empfangseinheit übertragen werden können.
-
Die Datenverbindung verbindet eine Datenquelle mit einer Datensenke und ist insbesondere als binärer Auslöschungskanal ausgestaltet. Mit Hilfe der Empfangseinheit und des auf die hierin beschriebene Weise ausgestalteten Dekodierers kann die Fehlerkorrektur mit geringem Rechenaufwand und in kurzer Zeit ausgeführt werden.
-
Gemäß einer Ausführungsform ist der Modulator ausgeführt, eine binäre Phasenumtastung auszuführen und ein somit erzeugtes Signal auf den Übertragungskanal zu geben.
-
Wenn der Modulator gemäß den Prinzipien der binären Phasenumtastung arbeitet, gibt es zwei unterschiedliche Werte auf den Übertragungskanal. Es handelt sich also um einen binären Kanal. Eine Mehrzahl von nacheinander gesendeten Werten wird auf der Empfängerseite als Empfangswort ausgelesen und der oben beschriebenen Fehlerüberprüfung und Korrektur zugeführt.
-
Gemäß einem weiteren Aspekt ist ein Verfahren zur Fehlerkorrektur an einem Empfangswort einer Datenverbindung angegeben. Das Verfahren weist die folgenden Schritte auf:
- Quantisieren eines Analogwertes in ein dreistufiges Signal Q, wobei das dreistufige Signal einen ersten Wert, einen zweiten Wert, oder einen dritten Wert einnehmen kann, wobei der erste Wert einem ersten logischen Zustand, der dritte Wert einem zweiten logischen Zustand, und der zweite Werte einem unbestimmten logischen Zustand entspricht;
- Zuweisen einer Mehrzahl von quantisierten Analogwerten an eine Mehrzahl von Bitknoten;
- Bestimmen von Prüfwerten in einer Mehrzahl von Prüfknoten, wobei jeder Prüfknoten mit einer vorgegebenen Gruppe von Bitknoten verbunden ist; iteratives Aktualisieren von Bitknotennachrichten an die Prüfknoten gemäß der Vorgabe:
wobei:
- B(n)(k) die n-te Iteration einer Nachricht des Bitknotens n an den mit dem Bitknoten n verbundenen Prüfknoten ist;
- die n-te Iteration einer Nachricht des Prüfknotens n an den Bitknoten k ist; und
- γ(k) ein Satz von Indizes der mit dem Bitknoten k verbundenen Prüfknoten ist;
- iteratives Aktualisieren von Prüfknotennachrichten an die Bitknoten gemäß der Vorgabe:
wobei β(k) ein Satz von Indizes der mit dem Prüfknoten k verbundenen Bitknoten ist; und
- wobei das dreistufige Signal Q(x) wie folgt bestimmt wird:
-
Die Schritte des Verfahrens entsprechen im Wesentlichen den Funktionen der Empfangseinheit und insbesondere des Dekodierers. Daher gilt für das Verfahren die detaillierte Beschreibung und Erläuterung, wie sie betreffend die Empfangseinheit wiedergegeben wurden. Auf eine Wiederholung wird an dieser Stelle verzichtet.
-
Das Verfahren kann beispielsweise als Befehlssequenz auf einem Prozessor oder Controller implementiert werden. In dem Fall ist der Prozessor bzw. Controller die Empfangseinheit oder ein Teil davon, z.B. der Dekodierer. Es ist auch denkbar, dass ein programmierbares Logikgatter (wie beispielsweise ein FPGA, field programmable gate array) so konfiguriert wird, dass es das Verfahren ausführt, was die Ausführungsgeschwindigkeit vorteilhaft erhöhen kann. Andere Prozessoren oder Controller können verwendet werden, wie z.B. ein ASIC (application specific integrated circuit)
-
Figurenliste
-
Nachfolgend wird anhand der beigefügten Zeichnungen näher auf Ausführungsbeispiele eingegangen. Die Darstellungen sind schematisch und nicht maßstabsgetreu. Gleiche Bezugszeichen beziehen sich auf gleiche oder ähnliche Elemente. Es zeigen:
- 1 eine schematische Darstellung eines Tanner-Graphen, dessen Prinzipien der Arbeitsweise eines LDPC-Codes zu Grunde liegt.
- 2 eine schematische Darstellung einer Datenverbindung.
- 3 eine schematische Darstellung einer Empfangseinheit.
- 4 eine schematische Darstellung einer Vorverarbeitungseinheit.
-
Detaillierte Beschreibung von Ausführungsbeispielen
-
1 zeigt eine schematische Darstellung eines Tanner-Graphen, um die prinzipielle Arbeitsweise eines LDPC-Codes sowie die Arbeitsweise der hier vorgestellten Empfangseinheit samt Dekodierer zu erläutern.
-
Eine Empfangsfolge 1, in diesem Fall eine binäre Empfangsfolge, wird auf die Bitknoten 2 gegeben. Die Anzahl der Bits der Empfangsfolge, welche der Anzahl der Bitknoten entspricht, wird als Empfangswort bezeichnet. Im vorliegenden Fall weist der Tanner-Graph 20 Bitknoten (0 ... 19) auf, so dass ein Empfangswort aus 20 Bits besteht. Daneben weist der Tanner-Graph 15 Prüfknoten 3 (0 ... 14) auf.
-
Jeweils vier Bitknoten sind mit einem Prüfknoten verbunden. Beispielsweise sind die Bitknoten 0 ... 3 mit dem Prüfknoten 0 verbunden, die Bitknoten 4 ... 7 mit dem Bitknoten 1, etc. Es gibt auch andere Gruppierungen von Bitknoten als Gruppen mit aufeinanderfolgenden Bitknoten. Z.B. sind die Bitknoten 0, 4, 8, 12 mit dem Prüfknoten 5 verbunden. Jedenfalls ist jeder Bitknoten mit einer genau einmal vorhandenen Kombination von Bitknoten verbunden.
-
Um eine fehlerfreie Übertragung anzuzeigen, muss für jedes Empfangswort an den Bitknoten die Bedingung erfüllt sein, dass jeder Prüfknoten die Paritäts- bzw. Prüfbedingung erfüllt. Diese Prüfbedingung sieht vor, dass der Prüfwert den Wert 0 hat. Der Prüfwert wird herkömmlicherweise wie folgt berechnet (hier beispielhaft angegeben für den Prüfknoten 0, wobei dieselbe Operation für alle Prüfknoten durchgeführt wird):
wobei ⊕ eine modulo-2-Addition bedeutet. Ersetzt man c(k) durch BPSKmodulierte Werte (binary phase shift keying, BPSK, binär-Phasenumtast-Werte), kann die Paritätsbedingung für den Prüfknoten 0 wie folgt ausgedrückt werden:
-
Das Dekodieren ist ein iterativer Vorgang. Zunächst werden die Werte der Bitknoten auf die Bits des empfangenen Empfangswortes gesetzt und der Prüfwert wird in den Prüfknoten berechnet, hier erneut beispielhaft für den Prüfknoten 0 gezeigt:
-
Aus den an dem Prüfknoten 0 anliegenden Bitknotenwerten kann nun rückwärts gerechnet werden und ein notwendiger Wert für einen Bitknoten bestimmt werden, indem die anderen Bitknotenwerte dieses Prüfknotens herangezogen werden. Im dem Prüfknoten 0 kann nun der notwendige Wert für den Bitknoten 0 berechnet werden, indem die Werte der anderen Bitknoten aus dieser Gruppe herangezogen werden, also die Bitknoten
1 bis
3:
-
Dasselbe passiert für den rückwärts berechneten Wert für die anderen drei Bitknoten
1 bis
3, beispielhaft für den Bitknoten
1 gezeigt:
-
Hier werden also die Werte der Bitknoten 0, 2 und 3 verwendet, um den Wert des Bitknotens 1 so zu bestimmen, dass der Prüfwert korrekt ist.
-
Wie sich aus 1 ergibt, ist der Bitknoten 0 mit den Prüfknoten 0, 5, 10 verbunden. In diesen drei Prüfknoten wird jeweils ein notwendiger Wert des Bitknotens 0 berechnet (basierend auf den jeweils übrigen Bitknoten in den jeweiligen Gruppen). Mit diesen berechneten Werten und dem ursprünglich empfangenen Bit an dem Bitknoten 0 kann dann iterativ ein Wert für den Bitknoten 0 ermittelt werden, wie er sein müsste, damit die Paritätsbedingungen an allen Prüfknoten erfüllt ist. Der Wert des Bitknotens wird dann geändert und das Verfahren wird erneut durchlaufen.
-
In herkömmlichen LDPC-Dekodierern werden für das Bestimmen der Werte der Bitknoten hoch aufgelöste Werte verwendet, beispielsweise zwischen 4 und 6 Bits. Um basierend auf den Werten der Prüfknoten auf die vermuteten Werte der Bitknoten rückwärts zu rechnen, wird auf Techniken der Wahrscheinlichkeitsrechnung zurückgegriffen.
-
Im Gegensatz dazu wird vorliegend vorgeschlagen, dass die Werte der Bits des Empfangswortes und die Werte der Prüfknoten quantisiert werden und ausschließlich einen der Werte -1, 0 und +1 annehmen.
-
In einem ersten Schritt werden die solchermaßen quantisierten Werte des Empfangswortes den Bitknoten zugewiesen und die Bitknoten mit diesen Werten initialisiert. Die anfänglichen Werte werden hier als r(k) angegeben, wobei k die Nummer des Bitknotens anzeigt. Sodann werden die Prüfwerte in den Prüfknoten berechnet und im jedem Knoten wird für jeden angeschlossenen Bitknoten rückwärts gerechnet, wie der Wert des betreffenden Bitknotens sein muss, damit die Paritätsbedingung erfüllt ist (siehe oben). Die Bitknoten erhalten eine Rückmeldung von mehreren Prüfknoten und ändern so bei Bedarf ihren Wert für den nächsten Iterationsschritt, z.B. gemäß Mehrheitsentscheid über die von den Prüfknoten erhaltenen rückwärts gerechneten Werte und unter Berücksichtigung des anfänglichen Wertes aus dem Empfangswort. Im n-ten Iterationsschritt wird der (neue) Wert eines Bitknotens (hier beispielhaft der Bitknoten 0) auf die Summe gesetzt, die dem Wert des zugehörigen Bits aus dem Empfangswort (r(0)) und den Antworten der Prüfknoten (C, hier die Antworten der Prüfknoten 0, 5 und 10 für den Bitknoten 0 aus dem vorangegangenen Iterationsschritt n-1) entspricht:
-
Mit der folgenden Quantisierungsfunktion, wobei x eine beliebige Ganzzahl ist,
kann dann für die Berechnung der Antwort an einem Bitknoten durch einen Prüfknoten festgehalten werden:
-
Die Antwort von dem Prüfknoten 0 an den Bitknoten 0 für den Wert des Bitknotens 0 im Iterationsschritt n entspricht dem Produkt der quantisierten Werte der Bitknoten
1,
2 und
3, wobei gilt:
-
Dies bedeutet, dass zum Aktualisieren des Wertes eines Prüfknotens nur Bitknoten-Information verwendet werden darf, die der verwendete Bitknoten in vorangegangenen Iterationsschritten ausschließlich von anderen Prüfknoten erhalten hat. Dies wird erreicht, indem die Information, die der zu aktualisierende Prüfknoten im vorangegangenen Iterationsschritt an den zur Aktualisierung verwendeten Bitknoten gesendet hat, wieder subtrahiert wird.
-
2 zeigt eine schematische Darstellung einer Datenverbindung 10. Die Datenverbindung enthält einen Kodierer 12, welcher Werte kodiert und auf einen Modulator 14 gibt. Der Modulator gibt eine modulierte Bitfolge auf den Übertragungskanal 16. Am Ausgang des Übertragungskanals 16 wird eine Empfangsfolge an die Empfangseinheit 100 ausgegeben.
-
Die Empfangseinheit 100 führt das oben beschriebene Verfahren aus. Die Empfangseinheit kann mit einer Datensenke (nicht gezeigt) verbunden sein und gibt die empfangenen Daten an die Datensenke weiter.
-
Die Datenverbindung 10 kann für einen beliebigen Datenübertragungslink zwischen einer Datenquelle und einer Datensenke verwendet werden. Der Übertragungskanal kann eine leitungslose oder leitungsgebundene Übertragungsstrecke enthalten.
-
Der Übertragungskanal 16 kann ein sog. Auslöschungskanal sein und bereits an seinem Ausgang drei Werte (logisch 1, logisch 0, unbestimmt) ausgeben. Diese Unterscheidung zwischen den drei Werten kann aber auch durch eine dedizierte Einheit erfolgen, welche gesondert vorhanden ist, z.B. durch die Vorverarbeitungseinheit (siehe 3).
-
3 zeigt eine schematische Darstellung einer Empfangseinheit 100. Die Empfangseinheit 100 weist eine Vorverarbeitungseinheit 110 und einen Dekodierer 120 auf. Die Vorverarbeitungseinheit 110 kann räumlich und strukturell von dem Dekodierer getrennt sein. Beispielsweise kann die Vorverarbeitungseinheit 110 als ein funktionaler Bestandteil des Übertragungskanals 16 (siehe 2) angeordnet sein. Jedenfalls wird an den Dekodierer 120 ein Bit geliefert, welches drei Werte annehmen kann: logisch 0, logisch 1, unbestimmt. Dies ist die Funktionsvoraussetzung für den Dekodierer und es ist unerheblich, ob dieser Eingangswert auf den Dekodierer direkt aus dem Übertragungskanal oder aus einer gesonderten Funktionseinheit kommt.
-
4 zeigt einen beispielhaften Aufbau der Vorverarbeitungseinheit 110, um die drei Ausgangswerte logisch 0, logisch 1 und unbestimmt zu erhalten.
-
Die Vorverarbeitungseinheit 110 weist zwei Komparatoren 112, 114 auf. Ein Informationsbit wird auf die beiden Komparatoren geführt. Wenn ein Spannungspegel des Informationsbits größer als ein erster Schellenwert ist, dann gibt der erste Komparator 112 einen Wert aus, so dass die Vorverarbeitungseinheit einen ersten logischen Wert ausgibt, beispielsweise eine logische 1. Ist der Spannungspegel des Informationsbits hingegen kleiner als ein zweiter Schwellenwert, dann gibt der zweite Komparator 114 einen Wert aus, so dass die Vorverarbeitungseinheit einen zweiten logischen Wert ausgibt, beispielsweise eine logische 0. Befindet sich der Wert des Spannungspegels zwischen dem ersten und zweiten Spannungspegel (jeweils einschließlich dieser Grenze), dann gibt die Vorverarbeitungseinheit 110 als Ausgangswert „unbestimmt“ aus.
-
So kann die Vorverarbeitungseinheit 110 genutzt werden, um die Bitknoten anfänglich mit den zugehörigen dreistufigen Werten des Empfangswortes zu belegen.
-
Ergänzend ist darauf hinzuweisen, dass „umfassend“ oder „aufweisend“ keine anderen Elemente oder Schritte ausschließt und „eine“ oder „ein“ keine Vielzahl ausschließt. Ferner sei darauf hingewiesen, dass Merkmale oder Schritte, die mit Verweis auf eines der obigen Ausführungsbeispiele beschrieben worden sind, auch in Kombination mit anderen Merkmalen oder Schritten anderer oben beschriebener Ausführungsbeispiele verwendet werden können. Bezugszeichen in den Ansprüchen sind nicht als Einschränkung anzusehen.
-
Bezugszeichenliste
-
- 1
- Empfangsfolge
- 2
- Bitknoten
- 3
- Prüfknoten
- 10
- Datenverbindung
- 12
- Kodierer
- 14
- Modulator
- 16
- Übertragungskanal
- 100
- Empfangseinheit
- 110
- Vorverarbeitungseinheit
- 112
- erster Komparator
- 114
- zweiter Komparator
- 120
- Dekodierer, LDPC-Dekodierer
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- Die Grundlagen der LDPC-Codes finden sich in Robert G. Gallager: Low-Density Parity-Check Codes. M.I.T. Press Classic Series, Cambridge MA, USA, 1963 [0003]