-
Querverweis auf die zugehörige Anwendung
-
Diese Offenbarung beansprucht den Vorrang der
U.S. Nonprovisional Patentanmeldung Nr. 15/783,314 , eingereicht am 13. Oktober 2017, die ihrerseits den Vorrang der
U.S. Provisional Patentanmeldung Nr. 62/408,408 beansprucht, eingereicht am 14. Oktober 2016, die hiermit durch Verweis hierin in ihrer Gesamtheit aufgenommen werden.
-
Anwendungsbereich
-
Diese Offenbarung bezieht sich auf Verwaltung der Decoderressourcen in einem LDPC-Decoder („low-density parity-check“) und insbesondere auf ein auf Log-Likelihood-Ratio (LLR) basierendes dynamisches Vorverarbeitungsverfahren in einem LDPC-Decoder.
-
Hintergrund der Offenbarung
-
Die hierin enthaltene Hintergrundbeschreibung dient dazu, den Kontext der Offenbarung allgemein darzustellen. Werke der Erfinder, soweit das Werk in diesem Hintergrundabschnitt beschrieben ist, sowie Aspekte der Beschreibung, die zum Zeitpunkt der Anmeldung nicht als Stand der Technik gelten, werden weder ausdrücklich noch stillschweigend als Stand der Technik gegen die vorliegende Offenbarung anerkannt.
-
In bestehenden Kommunikationssystemen ist die Festkomma-LDPC-Codierung weit verbreitet. Der LDPC-Code umfasst einen linearen Fehlerkorrektur-Code, der einen Satz von Datenbits codiert und über einen verrauschten Übertragungskanal überträgt. Ein LDPC-Decoder wird normalerweise am Empfänger verwendet, um empfangene Datenbits zu decodieren, der ein iteratives Decodierungsschema implementiert, das auf dem Log-Likelihood-Ratio (LLR) der Decodierung variabler Knoten eines Codeblocks basiert. Allerdings können die LLR-Werte manchmal stark von den Kanalbedingungen beeinflusst werden. So ist beispielsweise bei einem Fading-Kanal ohne Kanalzustandsinformationen am Empfänger die Bitfehlerraten-(BER)-Leistung mit dem LDPC-Decoder basierend auf LLR-Werten in der Regel unbefriedigend.
-
Zusammenfassung
-
Die hierin beschriebenen Ausführungsformen bieten ein Verfahren zum dynamischen Auswählen eines Vorverarbeitungsschemas für einen LDPC-Decoder (Low-Density Parity-Check). Die Übertragung eines ersten Datenpakets wird an einem Empfänger erkannt. Ein erster Satz von Datenbits, der einem ersten Abschnitt des ersten Datenpakets entspricht, wird empfangen. Es werden Log-Likelihood-Ratios für jedes Datenbit aus dem ersten Satz von Datenbits berechnet. Es wird ein Histogramm basierend auf den berechneten Log-Likelihood-Ratios erzeugt. Ein zweiter Satz von Datenbits, der einem zweiten Abschnitt des ersten Datenpakets entspricht, wird weiterhin empfangen. Ein Log-Likelihood-Ratio-Vorverarbeitungsschema wird auf dem empfangenen zweiten Satz von Datenbits basierend auf den Eigenschaften des Histogramms aktiviert oder deaktiviert.
-
In einigen Ausführungsformen, wenn das Vorverarbeitungsschema des Log-Likelihood-Ratioss auf dem empfangenen zweiten Satz von Datenbits basierend auf den Eigenschaften des Histogramms aktiviert oder inaktiviert wird, wird eine erste vordefinierte Merkmalsanforderung identifiziert, die einem ersten Bin auf dem Histogramm entspricht. Anschließend wird bestimmt, ob eine erste Zählung der Log-Likelihood-Ratios, die zum ersten Lagerplatz gehört, die erste vordefinierte Merkmalsanforderung erfüllt. Ein erstes Ausgabebit wird basierend auf dem Bestimmen erzeugt, ob die erste Zählung der logischen Wahrscheinlichkeitsverhältnisse, die zum ersten Bin gehört, die erste vordefinierte Merkmalsanforderung erfüllt.
-
In einigen Ausführungsformen wird eine zweite vordefinierte Merkmalsanforderung identifiziert, die einem zweiten Bin im Histogramm entspricht. Es wird bestimmt, ob eine zweite Anzahl von Log-Likelihood-Ratios, die zum zweiten Lagerplatz gehört, die zweite vordefinierte Merkmalsanforderung erfüllt. Ein zweites Ausgabebit wird basierend auf dem Bestimmen erzeugt, ob die zweite Anzahl der logischen Wahrscheinlichkeitsverhältnisse, die zum zweiten Bin gehört, die zweite vordefinierte Merkmalsanforderung erfüllt.
-
In einigen Ausführungsformen wird das Vorverarbeitungsschema für das Log-Likelihood-Ratio auf dem empfangenen zweiten Satz von Datenbits aktiviert, wenn sowohl das erste Ausgabebit als auch das zweite Ausgabebit gleich Eins sind. Das Vorverarbeitungsschema für das Log-Likelihood-Ratio wird auf dem empfangenen zweiten Satz von Datenbits deaktiviert, wenn eines der ersten Ausgabebits und das zweite Ausgabebit gleich Null ist.
-
In einigen Ausführungsformen werden die erste vordefinierte Merkmalsanforderung und die zweite vordefinierte Merkmalsanforderung basierend auf Kanaleigenschaften konfiguriert, die einen Sichtlinienkanal andeuten.
-
In einigen Ausführungsformen wird eine dritte Anzahl von Log-Likelihood-Ratios erzeugt, die zu einem dritten Bin im Histogramm gehört. Ein drittes Ausgabebit von einem, das dem dritten Platz entspricht, wird erzeugt, wenn für die dritte Zählung keine Merkmalsanforderung vordefiniert ist. Das dritte Ausgangsbit wird gesendet, um mit dem ersten Ausgangsbit und dem zweiten Ausgangsbit an einem UND-Gatter kombiniert zu werden.
-
In einigen Ausführungsformen wird für jedes Datenbit eine erste Wahrscheinlichkeit berechnet, dass das Datenbit gleich Null ist. Eine zweite Wahrscheinlichkeit, dass das Datenbit gleich Eins ist, wird berechnet. Ein Logarithmus eines Verhältnisses zwischen der ersten Wahrscheinlichkeit und der zweiten Wahrscheinlichkeit wird berechnet.
-
In einigen Ausführungsformen, wenn das Histogramm basierend auf den berechneten Log-Likelihood-Ratios erzeugt wird, wird eine Vielzahl von Bins für die berechneten Log-Likelihood-Ratios bestimmt. Für jedes berechnete Log-Likelihood-Ratio wird das berechnete Log-Likelihood-Ratio gegenüber einem ersten Bereich eines ersten Bins aus der Vielzahl der Bin über einen ersten Vergleicher verglichen. Aus dem Vergleich wird ein erstes Ausgabebit erzeugt. Eine erste Zählung wird dann um eins erhöht, wenn das erste Ausgangsbit gleich Eins ist.
-
In einigen Ausführungsformen wird für jedes berechnete Log-Likelihood-Ratio das erste Ausgabebit negiert. Das negierte erste Ausgangsbit wird einem zweiten Vergleicher als Steuersignal zugeführt. Wenn das negierte erste Ausgabebit gleich Eins ist, wird das berechnete Log-Likelihood-Ratio über den zweiten Vergleicher mit einem zweiten Bereich eines zweiten Bins aus der Vielzahl der Bins verglichen. Aus dem Vergleich wird ein zweites Ausgabebit erzeugt. Eine zweite Zählung wird um eins erhöht, wenn das zweite Ausgangsbit gleich Eins ist.
-
In einigen Ausführungsformen wird die Übertragung eines zweiten Datenpakets am Empfänger erkannt. Die Log-Likelihood-Ratios werden für Datenbits aus dem zweiten Datenpaket neu berechnet. Das Histogramm wird basierend auf den neu berechneten Log-Likelihood-Ratios neu generiert. Das Vorverarbeitungsschema des Log-Likelihood-Ratio-Ratioss wird basierend auf eingehenden Datenbits basierend auf den Eigenschaften des neu generierten Histogramms aktiviert oder deaktiviert, wenn das zweite Datenpaket übertragen wird.
-
Die hierin beschriebenen Ausführungsformen bieten ein System zur dynamischen Auswahl eines Vorverarbeitungsschemas für einen LDPC-Decoder. Das System umfasst einen Empfänger, der konfiguriert ist, um die Übertragung eines ersten Datenpakets zu erfassen und einen ersten Satz von Datenbits zu empfangen, der einem ersten Abschnitt des ersten Datenpakets entspricht. Das System umfasst des Weiteren einen Histogramm-Erzeuger, der konfiguriert ist, um aus dem ersten Satz von Datenbits Log-Likelihood-Ratios für jedes Datenbit zu berechnen und ein Histogramm basierend auf den berechneten Log-Likelihood-Ratios zu erzeugen. Der Empfänger ist konfiguriert, um weiterhin einen zweiten Satz von Datenbits zu empfangen, der einem zweiten Abschnitt des ersten Datenpakets entspricht. Das System umfasst des Weiteren einen Selektor, der konfiguriert ist, um ein Log-Likelihood-Ratio-Vorverarbeitungsschema auf dem empfangenen zweiten Satz von Datenbits basierend auf den Eigenschaften des Histogramms zu aktivieren oder zu deaktivieren.
-
In einigen Ausführungsformen umfasst der Selektor des Weiteren einen ersten Bedingungsblock, der mit einer ersten vordefinierten Merkmalsanforderung konfiguriert ist, die einem ersten Bin im Histogramm entspricht. Der erste Bedingungsblock ist konfiguriert, um zu bestimmen, ob eine erste Anzahl von Log-Likelihood-Ratios, die zum ersten Bin gehören, die erste vordefinierte Merkmalsanforderung erfüllt, und ein erstes Ausgabebit zu erzeugen, das auf der Bestimmung basiert, ob die erste Anzahl von Log-Likelihood-Ratios, die zum ersten Bin gehören, die erste vordefinierte Merkmalsanforderung erfüllt.
-
In einigen Ausführungsformen umfasst der Selektor des Weiteren einen zweiten Bedingungsblock, der mit einer zweiten vordefinierten Merkmalsanforderung konfiguriert ist, die einem zweiten Bin im Histogramm entspricht. Der zweite Bedingungsblock ist konfiguriert, um zu bestimmen, ob eine zweite Anzahl von Log-Likelihood-Ratios, die zum zweiten Bin gehören, die zweite vordefinierte Merkmalsanforderung erfüllt, und ein zweites Ausgabebit zu erzeugen, basierend auf der Bestimmung, ob die zweite Anzahl von Log-Likelihood-Ratios, die zum zweiten Bin gehören, die zweite vordefinierte Merkmalsanforderung erfüllt.
-
In einigen Ausführungsformen umfasst der Selektor weiterhin ein UND-Gatter, das mit dem ersten und dem zweiten Bedingungsblock gekoppelt ist. Das UND-Gatter ist konfiguriert, um ein Auswahlbit zu erzeugen, um das Log-Likelihood-Ratio-Vorverarbeitungsschema auf dem empfangenen zweiten Satz von Datenbits zu aktivieren, wenn sowohl das erste Ausgabebit als auch das zweite Ausgabebit gleich Eins sind. Oder das UND-Gatter ist konfiguriert, um ein Auswahlbit zu erzeugen, um das Log-Likelihood-Ratio-Vorverarbeitungsschema auf dem empfangenen zweiten Satz von Datenbits zu deaktivieren, wenn eines der ersten Ausgangsbits und das zweite Ausgangsbit gleich Null ist.
-
In einigen Ausführungsformen ist der Wahlschalter des Weiteren konfiguriert, um den ersten Bedingungsblock mit der ersten vordefinierten Merkmalsanforderung und den zweiten Bedingungsblock mit der zweiten vordefinierten Merkmalsanforderung basierend auf Kanaleigenschaften zu konfigurieren, die einen Sichtlinienkanal andeuten.
-
In einigen Ausführungsformen umfasst der Selektor weiterhin einen dritten Bedingungsblock, der mit dem UND-Gatter gekoppelt ist. Der dritte Bedingungsblock entspricht einer dritten Anzahl von Log-Likelihood-Ratios, die zu einem dritten Bin im Histogramm gehören, und ist konfiguriert, um ein drittes Ausgabebit von einem, das dem dritten Bin entspricht, auszugeben, wenn für die dritte Anzahl keine Merkmalsanforderung vorgegeben ist.
-
In einigen Ausführungsformen ist der Histogramm-Erzeuger konfiguriert, um für jedes Datenbit eine erste Wahrscheinlichkeit zu berechnen, dass das Datenbit gleich Null ist, und eine zweite Wahrscheinlichkeit, dass das Datenbit gleich Eins ist. Der Histogramm-Erzeuger wird dann konfiguriert, um einen Logarithmus aus einem Verhältnis zwischen der ersten Wahrscheinlichkeit und der zweiten Wahrscheinlichkeit zu berechnen.
-
In einigen Ausführungsformen ist der Histogramm-Erzeuger konfiguriert, um eine Vielzahl von Bins für die berechneten Log-Likelihood-Ratios zu bestimmen. Der Histogramm-Erzeuger umfasst des Weiteren einen ersten Vergleicher, der konfiguriert ist, um jedes berechnete Log-Likelihood-Ratio mit einem ersten Bereich eines ersten Bins aus der Vielzahl von Bins zu vergleichen und ein erstes Ausgabebit basierend auf dem Vergleich zu erzeugen. Der Histogramm-Erzeuger umfasst weiterhin einen ersten Zähler, der mit dem ersten Vergleicher gekoppelt ist. Der erste Zähler ist konfiguriert, um einen ersten Zähler um eins zu erhöhen, wenn das erste Ausgangsbit gleich Eins ist.
-
In einigen Ausführungsformen umfasst der Selektor weiterhin ein NOT-Gate, das mit dem ersten Vergleicher gekoppelt und konfiguriert ist, um das erste Ausgabebit zu negieren. Der Wahlschalter umfasst weiterhin einen zweiten Vergleicher, der mit dem NOT-Gate gekoppelt ist. Der zweite Vergleicher ist konfiguriert, um das negierte erste Ausgangsbit als Steuersignal zu empfangen. Wenn das negierte erste Ausgabebit gleich Eins ist, ist der zweite Vergleicher konfiguriert, um das berechnete Log-Likelihood-Ratio mit einem zweiten Bereich eines zweiten Bins aus der Vielzahl von Bins zu vergleichen und ein zweites Ausgabebit basierend auf dem Vergleich zu erzeugen. Der Wahlschalter umfasst weiterhin einen zweiten Zähler, der mit dem zweiten Vergleicher gekoppelt ist. Der zweite Zähler ist konfiguriert, um eine zweite Zählung um eins zu erhöhen, wenn das zweite Ausgangsbit gleich Eins ist.
-
In einigen Ausführungsformen ist der Empfänger konfiguriert, um die Übertragung eines zweiten Datenpakets zu erkennen. Der Histogramm-Erzeuger ist konfiguriert, um Log-Likelihood-Ratios für Datenbits aus dem zweiten Datenpaket neu zu berechnen und das Histogramm basierend auf den neu berechneten Log-Likelihood-Ratios neu zu generieren. Der Selektor ist konfiguriert, um das Log-Likelihood-Ratio-Vorverarbeitungsschema für eingehende Datenbits zu aktivieren oder zu deaktivieren, basierend auf den Eigenschaften des neu generierten Histogramms, wenn das zweite Datenpaket übertragen wird.
-
Figurenliste
-
Weitere Merkmale der Offenbarung, ihre Art und verschiedene Vorteile werden sich unter Berücksichtigung der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen zeigen, in denen sich gleichartige Bezugszeichen durchgängig auf gleichartige Teile beziehen und in denen:
- 1 ist ein Blockdiagramm, das eine beispielhafte Schaltungsstruktur eines drahtlosen Empfängers mit einem LLR-basierten Vorverarbeitungswahlschalter gemäß einigen hierin beschriebenen Ausführungsformen darstellt.
- 2 ist ein logisches Flussdiagramm, das einen beispielhaften Prozess der dynamischen Auswahl eines LLR-Vorverarbeitungsschemas basierend auf den LLR-Werten der empfangenen Datenbits veranschaulicht, der über die in 1 dargestellte Schaltungsstruktur gemäß einigen hierin beschriebenen Ausführungsformen implementiert wird.
- 3 ist ein beispielhaftes Datendiagramm, das ein beispielhaftes LLR-Histogramm von empfangenen Datenbits veranschaulicht, das am LLR-Histogramm-Erzeuger in 1 gemäß einigen hierin beschriebenen Ausführungsformen erzeugt wird; und
- 4-5 sind Blockdiagramme, die jeweils eine Beispielschaltung des LLR-Vorverarbeitungswahlschalters in 1 gemäß einigen hierin beschriebenen Ausführungsformen darstellen.
-
Detaillierte Beschreibung
-
Diese Offenbarung beschreibt Verfahren und Systeme zur dynamischen Auswahl eines LLR-Vorverarbeitungsschemas in LDPC-Decodern.
-
Ein LDPC-Decoder (oder ein anderer binärer kombinatorischer Decoder) ist konfiguriert, um einen Codeblock basierend auf einem iterativen Prozess zu decodieren. So ist beispielsweise ein Festkomma-LDPC-Decoder an einem Empfänger konfiguriert, um einen empfangenen Codeblock in Blockspalten, so genannte Prüfknoten und variable Knoten, zu verarbeiten. Bei jeder Iteration werden die Bits jedes Prüfknotens oder variablen Knotens aktualisiert (beispielsweise von 0 auf 1 umgeschaltet oder umgekehrt), basierend auf den LLRs der Datenbits anderer variabler Knoten oder Prüfknoten und basierend auf einem Paritätsbit (beispielsweise einer Summe, die normalerweise zwischen den Blockspalten berechnet wird). Da der LDPC-Decoder im Allgemeinen nicht in unendlich viele Iterationen eingreifen kann, begrenzt die tatsächliche Anzahl der Iterationen die Genauigkeit des LDPC-Decoders. Wenn eine signifikante Anzahl von Iterationen durch den LDPC-Decoder implementiert wird, kann die Decodier-Genauigkeit verbessert werden, jedoch auf Kosten des höheren Verbrauchs von Decodier-Ressourcen, beispielsweise Hardware und Speicher.
-
Andererseits, da der Kanaleingang zum LDPC-Decoder, beispielsweise das Empfangssignal vom Kanal, in der Regel in eine Anzahl von Datenbits quantisiert wird, wirkt sich die Anzahl der Datenbits auch auf den Verbrauch von Decodier-Ressourcen aus, beispielsweise je mehr Datenbits verwendet werden, desto mehr Decodier-Ressourcen sind bei jeder Wiederholung zu verbrauchen. So können beispielsweise in einem drahtlosen lokalen Netzwerk (WLAN), in dem ein verrauschter Kanal erwartet wird, die LLR-Werte von Decodierungsvariablen so hoch sein, dass eine Anzahl von 15-20 Bit benötigt wird. So kann ein iterativer Decodierungsprozess, der eine gewünschte Anzahl von Iterationen umfasst, um die Decodier-Genauigkeit zu gewährleisten, am Ende erhebliche Decodier-Ressourcen am LDPC-Dekoder verbrauchen, wenn jede Iteration eine Anzahl von 15-20 Bit aktualisieren muss. Die LLR-Vorverarbeitung, die eine lineare oder nichtlineare Skalierung der LLR-Werte von Decodierungsvariablen vor der Übergabe der Decodierungsvariablen an einen LDPC-Dekoder umfasst, wird manchmal implementiert, um die hohen LLR-Werte auf kleinere Werte zu komprimieren, so dass weniger Bits pro Iteration aktualisiert werden müssen, oder alternativ niedrige LLR-Werte auf höhere LLR-Werte zu skalieren, um die Decodierungsgenauigkeit zu verbessern.
-
Die LLR-Vorverarbeitung kann jedoch manchmal die LDPC-Decodierungsleistung für bestimmte Modulations- und Kodierungsschemata (MCS) und Kanaltypen beeinträchtigen. So verbessert beispielsweise die LLR-Vorverarbeitung bei einem hohen MCS (beispielsweise 1024 QAM) die Decodier-Leistung für Sichtlinienkanäle (LOS-Kanäle) (beispielsweise ein drahtloser Kanal, bei dem elektromagnetische Signale auf direktem Weg vom Sender zum Empfänger übertragen werden), verschlechtert aber die Decodier-Leistung für Nicht-Sichtlinienkanäle (NLOS-Kanäle) und Streukanäle (beispielsweise wenn die Signalübertragung entlang des Weges teilweise behindert wird). Um eine bessere Decodier-Leistung zu erreichen, muss der Kanaltyp beim Empfangen jedes Pakets dynamisch identifiziert werden, so dass der Empfänger bestimmt, ob die LLR-Vorverarbeitung ein- oder ausgeschaltet werden soll. Die Kanalklassifizierung pro empfangenem Paket ist jedoch schwierig und unpraktisch.
-
Die hierin beschriebenen Ausführungsformen stellen ein dynamisches Vorverarbeitungs-Auswahlschema basierend auf LLR-Statistiken bereit, das Kanaleigenschaften unter Verwendung eines Histogramms von LLRs erfasst. Der LDPC-Decoder wird dann konfiguriert, um anhand der LLR-Statistik zu bestimmen, ob vor der Decodierung der empfangenen Datenbits eine LLR-Vorverarbeitung implementiert werden soll. Auf diese Weise wird die LLR-Vorverarbeitung nur dann gestartet, wenn die LLR-Statistik anzeigt, dass der Kanal höchstwahrscheinlich von einem bestimmten Typ ist, der für die LLR-Vorverarbeitung geeignet ist, beispielsweise einem LOS-Kanal. Die LLR-Statistik wird ständig und dynamisch überwacht und aktualisiert, basierend auf empfangenen Datenbits, und die LLR-Vorverarbeitung wird dann dynamisch aktiviert oder deaktiviert, basierend auf einem Satz vordefinierter Regeln, die verlangen, dass die LLR-Statistik bestimmte Anforderungen erfüllt, die auf die Kanalmerkmale des jeweiligen Kanaltyps hinweisen. Die LLR-Vorverarbeitung ist somit effizienter im Ressourcenverbrauch und die gesamte Decodier-Leistung wird verbessert.
-
1 ist ein Blockdiagramm, das eine beispielhafte Schaltungsstruktur eines drahtlosen Empfängers 100 mit einem LLR-basierten Vorverarbeitungswahlschalter gemäß einigen hierin beschriebenen Ausführungsformen veranschaulicht. Der drahtlose Empfänger 100 ist konfiguriert, um unter einer Vielzahl von drahtlosen Protokollen, wie beispielsweise 802.11-Standards und/oder dergleichen, betrieben zu werden. Der drahtlose Empfänger 100 umfasst eine oder mehrere Empfangsantennen 101, die konfiguriert sind, um ein drahtloses Signal 111 vom Übertragungskanal zu empfangen. Ein AnaLog-Digital-Wandler (ADC) 102 ist kommunikativ mit den Empfangsantennen 101 gekoppelt und konfiguriert, um das Empfangssignal 111 in digitale Datenabtastungen, beispielsweise eine Anzahl von Datenbits 112, umzuwandeln.
-
Ein LLR-Histogramm-Erzeuger 103 ist kommunikativ mit dem ADC 102 gekoppelt. Der LLR-Histogramm-Erzeuger 103 ist konfiguriert, um die Datenbits 112 vom ADC 102 zu empfangen und eine Anzahl von LLR-Werten für jedes Datenbit zu berechnen. Der LLR-Histogramm-Erzeuger 103 wird dann konfiguriert, um ein Histogramm der berechneten LLR-Werte zu erzeugen. Weitere Details zur LLR-Histogramm-Erzeugung bei 103 werden in Bezug auf 3 diskutiert.
-
Ein Vorverarbeitungswahlschalter 104 ist kommunikativ mit dem LLR-Histogramm-Erzeuger 103 gekoppelt und konfiguriert, um auszuwählen, ob die berechneten LLR-Werte der Datenbits 112 am LLR-Vorprozessor 105 vorverarbeitet werden müssen. So ist beispielsweise der Vorverarbeitungswahlschalter 104 kommunikativ mit einem Schalter gekoppelt, der konfiguriert ist, um eine Verbindung zu einem der LLR-Vorverarbeiter 105 und dem LDPC-Decoder 106 herzustellen. Weitere Einzelheiten zum Vorverarbeitungswahlschalter 104 sind in Bezug auf die 4-5 beschrieben.
-
Wenn der Vorverarbeitungswahlschalter 104 mit dem LLR-Vorprozessor 105 verbunden ist, werden die LLR-Werte 113 der Datenbits 112 am LLR-Vorprozessor 105 vorverarbeitet, beispielsweise durch Skalieren höherer LLR-Werte auf kleinere Werte, um die Anzahl der Iterationen am Decoder zu reduzieren, oder Skalieren niedrigerer LLR-Werte auf höhere LLR-Werte, um die Decodier-Leistung zu verbessern. Der Ausgang des LLR-Präprozessors 105, d.h. skalierte LLR-Werte 114, wird dann an den LDPC-Decoder gesendet.
-
Wenn der Vorverarbeitungswahlschalter 104 an den LDPC-Decoder 106 angeschlossen ist, werden die LLR-Werte 113 der Datenbits 112 direkt ohne Vorverarbeitung an den LDPC-Decoder 106 gesendet.
-
Der LDPC-Decoder 106 ist konfiguriert, um LLR-Werte zu empfangen, beispielsweise die ursprünglichen LLR-Werte 113 oder die skalierten LLR-Werte 114, basierend auf denen der LDPC-Decoder 106 konfiguriert ist, um decodierte Datenbits 115 zu decodieren und zu erzeugen.
-
2 ist ein logisches Flussdiagramm, das einen beispielhaften Prozess 200 zur dynamischen Auswahl eines LLR-Vorverarbeitungsschemas basierend auf den LLR-Werten der empfangenen Datenbits veranschaulicht, das über die in 1 dargestellte Schaltungsstruktur gemäß einigen hierin beschriebenen Ausführungsformen implementiert wird. Bei 201 wird die Übertragung eines Datenpakets an einem Empfänger erkannt, beispielsweise am drahtlosen Empfänger 100 in 1. Bei 202 wird ein erster Satz von Datenbits empfangen, der einem ersten Abschnitt des Datenpakets entspricht. So ist beispielsweise der drahtlose Empfänger (beispielsweise 100 in 1) konfiguriert, um LLR-Werte von empfangenen Datenbits zu verarbeiten, während das Datenpaket empfangen wird, beispielsweise während der Übertragung der Präambel des Datenpakets oder der ersten Datenbits, und konfiguriert, um ein LLR-Histogramm zu erzeugen.
-
Bei
203 wird für jedes Datenbit aus dem ersten Satz von Datenbits eine
LLR berechnet, beispielsweise am LLR-Histogramm-Erzeuger
103 in
1. So wird beispielsweise für jedes empfangene Datenbit (beispielsweise Datenbits
112 in
1) die LLR berechnet als:
-
Ein positiver LLR zeigt eine größere Wahrscheinlichkeit, dass das Datenbit gleich 0 ist, und ein negativer LLR zeigt eine größere Wahrscheinlichkeit, dass das Datenbit gleich Eins ist. Die Größe des LLR bietet eine Zuverlässigkeit der Schätzung, beispielsweise zeigt |LLR|=0 an, dass die Schätzung unzuverlässig ist, da das Datenbit die gleiche Chance hat, Null oder Eins zu sein; und |LLR|, das ein höherer Wert ist, zeigt an, dass der Datenbitwert Null oder Eins ist.
-
Bei 204 wird ein LLR-Histogramm basierend auf den berechneten LLR-Werten erzeugt, die bei 204 erzeugt werden, beispielsweise am LLR-Histogramm-Erzeuger 103 in 1. Wie beispielsweise in 3 dargestellt, werden LLR-Werte in Werte-Bins gruppiert, die linear (oder logarithmisch) beabstandet sind, beispielsweise bei 8, 16, etc. Die Anzahl der LLRs, die in jeden Bin fallen, wird dann gezählt, beispielsweise ein LLR-Wert von 5 fällt in den Bin von [0,8), und ein LLR-Wert von 8 fällt in den Bin von [8, 16), etc. Ein LLR-Histogramm wird erzeugt, um die Anzahl der LLR-Werte in jedem Werte-Bin anzuzeigen, wie in 3 dargestellt.
-
Bei 205 ist der drahtlose Empfänger (beispielsweise 100 in 1) konfiguriert, um weiterhin einen zweiten Satz von Datenbits zu empfangen, der einem zweiten Abschnitt des Datenpakets entspricht, beispielsweise die Nutzlastdatenbits des zu übertragenden Datenpakets. Bei 206 wird ein LLR-Vorverarbeitungsschema (beispielsweise der LLR-Vorprozessor 105 in 1) für den empfangenen zweiten Satz von Datenbits basierend auf Bin-Werten des Histogramms aktiviert oder deaktiviert, wie in Bezug auf 4-5 weiter erläutert. In einigen Ausführungsformen, wenn das LLR-Vorverarbeitungsschema bei 206 aktiviert ist, können sowohl der erste Satz von Datenbits als auch der zweite Satz von Datenbits vorverarbeitet werden. In diesem Fall werden die berechneten LLR-Werte, die dem ersten Datenbitsatz entsprechen, der bei 203 berechnet wird, in einer Speichereinheit gespeichert und an die LLR-Vorverarbeitungseinheit weitergeleitet, bevor sie an den LDPC-Decoder gesendet werden.
-
Der Prozess 200 (einschließlich 201-205) ist so konfiguriert, dass er sich für jedes empfangene Datenpaket oder für alle paar Datenpakete wiederholt. Auf diese Weise wird das LLR-Histogramm ständig aktualisiert und die LLR-Vorverarbeitung basierend auf der LLR-Statistik für jedes zu übertragende Instantpaket aktiviert oder deaktiviert.
-
3 ist ein beispielhaftes Datendiagramm, das ein beispielhaftes LLR-Histogramm der empfangenen Datenbits veranschaulicht, das am LLR-Histogramm-Erzeuger in 1 gemäß einigen hierin beschriebenen Ausführungsformen erzeugt wird. Die horizontale Achse 301 des Diagramms 300 stellt die LLR-Werte-Bins dar. Wenn beispielsweise die Bin-Werte linear um acht beabstandet sind, umfassen die Wert-Bins: ... [-16, -8), [-8,0), [0,8), [8, 16) ... Die vertikale Achse 302 stellt die Anzahl der LLR-Werte (jeweils entsprechend einem empfangenen Datenbit) dar, die in jeden entsprechenden LLR-Wert-Bin auf der horizontalen Achse 301 fallen.
-
In Diagramm 300 werden die Histogramme 303-304 für Datenbits dargestellt, die mit der gleichen Bandbreite (beispielsweise 80 MHz), der gleichen Anzahl von räumlichen Zeichenketten (NSS) (beispielsweise ein 4x4 Multi-Eingang-Multi-Ausgangskanal), aber unterschiedlichen Kanaltypen empfangen werden. Das Histogramm 303 wird basierend auf Datenbits erzeugt, die auf einem LOS-Kanal empfangen wurden, und das Histogramm 304 wird basierend auf Datenbits erzeugt, die auf einem NLOS-Kanal empfangen wurden. Wie bei 303 dargestellt, konzentriert sich eine große Anzahl von LLR-Werten auf einen LLR-Wert-Bin von Null, was die Zuverlässigkeit der Erkennung angibt, ob das entsprechende Datenbit Null ist oder ob einer der Werte auf dem LOS-Kanal eher niedrig ist. Der Vorverarbeitungswahlschalter (beispielsweise siehe 104 in 1) ist konfiguriert, um die Eigenschaften des LLR-Histogramms zu analysieren, um einen LOS-Kanal zu identifizieren, so dass eine LLR-Vorverarbeitung implementiert werden soll, wie in Bezug auf die 4-5 weiter erläutert.
-
4-5 sind Blockdiagramme, die jeweils eine Beispielschaltung des LLR-Vorverarbeitungswahlschalters in 1 gemäß einigen hierin beschriebenen Ausführungsformen darstellen. In 4 werden linear verteilte Histogramm-Bin-Werte verwendet, beispielsweise stellt das delta, wie bei 402 dargestellt, einen Bin-Wertebereich dar. Die Schaltung 400 (ähnlich einem Teil des LLR-Histogramm-Erzeugers 103 in 1) umfasst eine Reihe von parallelen Vergleichern (beispielsweise 402, 408, etc.) und Zählern (beispielsweise 405, 410, etc.), und jeder Satz eines Vergleichers und eines Zählers ist konfiguriert, um zu bestimmen, ob ein Eingangs-LLR-Wert 401 zu einem bestimmten LLR-Werte-Bin gehört. Insbesondere ist die Schaltung 400 konfiguriert, um einen Eingang mit einem berechneten LLR-Wert 401 zu empfangen, der einem empfangenen Datenbit entspricht, das beispielsweise am LLR-Histogramm-Erzeuger 103 in 1 berechnet wird. Der LLR-Wert 401 wird an einen Vergleicher 402 übergeben, der konfiguriert ist, um die Größe (beispielsweise Absolutwert) des LLR-Wertes 401 mit einem ersten Bin-Wert delta zu vergleichen, beispielsweise ob der LLR-Wert 401 innerhalb des Bins [0, delta] liegt. Der Vergleicher 402 ist konfiguriert, um ein Ausgabebit 403 von eins zu erzeugen, wenn |LLR|<delta (d.h. innerhalb des Bins von [0, delta)), oder ein Ausgabebit 403 von Null, wenn |LLR|>delta (d.h. außerhalb des Bins von[0, delta)). Wenn also das Ausgangsbit 403 gleich Eins ist, ist der Zähler 405, der mit dem Vergleicher 402 gekoppelt ist, konfiguriert, um einen zum aktuellen Zählwert hinzuzufügen. Auf diese Weise, wenn eine Anzahl von LLR-Werten seriell an die Schaltung 400 übertragen wird, zeichnet der Zähler 405 die Anzahl der LLR-Werte auf, die zum Bin [0, delta) gehören.
-
Das Ausgangsbit 403 des Vergleichers wird ebenfalls durch ein NOT-Gate 407 geleitet, und das negierte Bit 404 wird einem zweiten Vergleicher 408 als Steuersignal zugeführt. Wenn also das Ausgangsbit 403 gleich Eins ist und die Größe des LLR-Wertes 401 innerhalb des Bins [0, delta] anzeigt, ist das negierte Bit 404 gleich Null, was keine weitere Verarbeitung am Vergleicher 408 und allen anderen Vergleichern auslöst, die weiter in der Schaltung 400 gekoppelt sind. Wenn das Ausgangsbit 403 gleich Null ist, was anzeigt, dass die Größe des LLR-Wertes 401 außerhalb des Bins [0, delta] liegt, ist das negierte Bit 404 gleich eins, was den Vergleicher 408 veranlasst, die Größe des LLR-Wertes 401 mit einem zweiten Bin-Wertebereich zu vergleichen, beispielsweise ob die Größe des LLR-Wertes 401 innerhalb des Bins [delta, 2-delta) liegt. Ähnlich wie das Ausgabebit 403 zeigt das Ausgabebit 409 des Vergleichers 408 an, ob die Größe des LLR-Wertes 401 innerhalb des Bins [delta, 2-delta) liegt, so dass der Zähler 410 konfiguriert ist, um die Anzahl der LLR-Werte zu zählen, die zum Bin [delta, 2-delta) gehören. Das Ausgangsbit 409 wird dann mit einem anderen NOT-Gate gekoppelt, um als Steuersignal an den Vergleicher für den nächsten Bin zu dienen, und eine Anzahl N (beispielsweise 100, 200, 300, etc.) von Vergleichern und Zählern ist so konfiguriert, dass sie in ähnlicher Weise wie vorstehend beschrieben in Bezug auf die Vergleicher 402 und 408 angeschlossen werden. Auf diese Weise ist die Schaltung 400 konfiguriert, um die Anzahl der LLR-Werte zu zählen, die zu jedem nachfolgenden Bin gehören.
-
Innerhalb der Schaltung 400 ist jeder Zähler mit einem Bedingungsblock gekoppelt, der konfiguriert ist, um eine vordefinierte Regel zu spezifizieren, die auf die Anzahl der LLR-Werte aus dem jeweiligen Zähler anzuwenden ist. Wenn beispielsweise eine große Anzahl von LLR-Werten nahe Null vorliegt, die Merkmale eines LOS-Kanals aufweisen (beispielsweise siehe Histogramm 304 in 3), wird der Ausgang des Zählers 405 wahrscheinlich zum Bestimmen verwendet, ob die LLR-Vorverarbeitung ausgewählt werden soll. Der Bedingungsblock 406 wiederum ist konfiguriert, um zu bestimmen, ob der Ausgang von Zähler 405 größer als ein Schwellenwert ist. Wenn der Ausgang des Zählers 405 größer als der Schwellenwert ist, ist der Bedingungsblock 406 konfiguriert, um ein Ausgangsbit von eins an das UND-Gatter 420 zu erzeugen. Andernfalls, wenn der Ausgang des Zählers 405 nicht größer als der Schwellenwert ist, ist der Bedingungsblock 406 konfiguriert, um ein Ausgangsbit von 0 an das UND-Gatter 420 zu erzeugen.
-
In einigen Ausführungsformen sind die Zustandsblöcke 406, 411 usw. in der Schaltung 400 so konfiguriert, dass sie dynamisch angepasst, aktiviert oder deaktiviert werden. So kann beispielsweise der von jedem Bedingungsblock verwendete Schwellenwert dynamisch angepasst werden, basierend auf der Leistung der Bitfehlerrate (BER) von zuvor empfangenen Datenpaketen. Ein oder mehrere Bedingungsblöcke können deaktiviert werden, beispielsweise wenn die Anzahl der LLR-Werte in den jeweiligen Bins für die Bestimmung der Kanaleigenschaften nicht wesentlich ist. Ein Bedingungsblock ist konfiguriert, um ein konstantes Bit von Eins an das UND-Gatter 420 auszugeben, wenn der Bedingungsblock nicht verwendet wird.
-
Das UND-Gatter 420 ist konfiguriert, um alle Ausgangsbits von allen parallelen Bedingungsblöcken zu empfangen und ein Ausgangsbit 421 von eins nur dann zu erzeugen, wenn alle Bedingungsblöcke ein Bit von Eins ausgeben. Wenn das Ausgangsbit 421 gleich Eins ist, ist der Vorverarbeitungswahlschalter 104 konfiguriert, um eine Verbindung mit dem LLR-Vorprozessor 105 in 1 herzustellen. Andernfalls, wenn das Ausgangsbit 421 gleich Null ist, ist der Vorverarbeitungswahlschalter 104 konfiguriert, um eine Verbindung mit dem LDPC-Decoder 106 in 1 herzustellen.
-
Wenn beispielsweise delta = 16 ist, ist die Schaltung 400 konfiguriert, um LLR-Werte innerhalb einer Anzahl von linear beabstandeten Bins zu zählen (für einen n-Bit-LDPC, wobei ein Bit das Vorzeichen des LLR-Wertes darstellt): [0, 16),[16, 32),[32, 48),.... und [2n-1-16, 2n-1). Der Bedingungsblock entsprechend Bin [0:16) ist konfiguriert, um ein Bit von Eins auszugeben, wenn das Histogramm von Bin [0:16) kleiner als 400 ist. Der Bedingungsblock entsprechend Bin [80:96) ist konfiguriert, um ein Bit von Eins auszugeben, wenn das Histogramm von Bin [80:96] größer als 800 ist. Alle anderen Bedingungsblöcke sind so konfiguriert, dass sie ein konstantes Bit von Eins ausgeben.
-
In 5 wird die Schaltung 500 ähnlich wie die Schaltung 400 in 4 für logarithmisch beabstandete Bins wie [0, 23),[23, 24),[23, 24), .... [2n-1, 2n) betrieben. In diesem Fall werden für einen n-Bit-LDPC mit einer Codewortlänge von 2n die logarithmisch getrennten Bins verwendet: [0, 2), [2, 22), [23, 24), ... [2n-2, 2n-1). Der dem Bin [22, 23) entsprechende Bedingungsblock ist konfiguriert, um ein Bit von Eins auszugeben, wenn das Histogramm des Bins [22, 23] größer als 300 ist. Alle anderen Bedingungsblöcke sind so konfiguriert, dass sie ein konstantes Bit von Eins ausgeben.
-
Verschiedene Ausführungsformen, die in Verbindung mit den 1-5 diskutiert werden, werden von verschiedenen elektronischen Komponenten einer oder mehrerer elektronischer Schaltungen ausgeführt, wie beispielsweise, aber nicht beschränkt auf eine integrierte Schaltung und/oder dergleichen. Verschiedene Komponenten, die in dieser Offenbarung besprochen werden, wie beispielsweise ein drahtloser Empfänger (beispielsweise 100 in 1), ein LLR-Histogramm-Erzeuger (beispielsweise 103 in 1), ein Vorverarbeitungswahlschalter (beispielsweise 104 in 1), ein LLR-Präprozessor (beispielsweise 105 in 1), ein LDPC-Decoder (beispielsweise 106 in 1), Vergleicher (z.B, 402, 408 usw. in 4), Zähler (beispielsweise 405, 410 usw. in 4), Zustandsblöcke (beispielsweise 406, 411 usw. in 4), ein UND-Gatter (beispielsweise 420 in 4) und/oder dergleichen sind konfiguriert, um einen Satz von elektronischen Schaltungskomponenten aufzunehmen und kommunikativ auf einer oder mehreren elektronischen Schaltungen zu arbeiten. Jede elektronische Schaltung ist konfiguriert, um eines von, aber nicht beschränkt auf Logikgatter, Speicherzellen, Verstärker, Filter und/oder dergleichen zu umfassen. Verschiedene Ausführungsformen und Komponenten, die hierin offenbart werden, sind konfiguriert, um wenigstens teilweise durch prozessorausführbare Anweisungen betrieben und/oder implementiert zu werden, die auf einem oder mehreren vorübergehenden oder nicht vorübergehenden prozessorlesbaren Medien gespeichert sind.
-
Obwohl verschiedene Ausführungsformen der vorliegenden Offenbarung hierin dargestellt und beschrieben wurden, sind solche Ausführungsformen nur als Beispiel aufgeführt. Zahlreiche Variationen, Änderungen und Substitutionen im Zusammenhang mit den hierin beschriebenen Ausführungsformen sind ohne Ausnahme von der Offenbarung anwendbar. Es wird darauf hingewiesen, dass für die Durchführung der Offenbarung verschiedene Alternativen zu den Ausführungsformen der hierin beschriebenen Offenbarung herangezogen werden können. Es ist beabsichtigt, dass die folgenden Ansprüche den Umfang der Offenlegung definieren und dass Methoden und Strukturen im Rahmen dieser Ansprüche und ihrer Äquivalente dadurch abgedeckt werden.
-
Während Operationen in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, ist dies nicht so auszulegen, dass diese Operationen in der angegebenen Reihenfolge oder in sequentieller Reihenfolge durchgeführt werden müssen oder dass alle veranschaulichten Operationen ausgeführt werden müssen, um die gewünschten Ergebnisse zu erzielen.
-
Der Gegenstand dieser Spezifikation wurde in Bezug auf bestimmte Aspekte beschrieben, aber andere Aspekte können umgesetzt werden und liegen im Rahmen der folgenden Ansprüche. So können beispielsweise die in den Schadensfällen rezitierten Aktionen in einer anderen Reihenfolge durchgeführt werden und dennoch wünschenswerte Ergebnisse erzielen. Als Beispiel erfordert der in 10 dargestellte Prozess nicht unbedingt die jeweilige Reihenfolge oder die sequentielle Reihenfolge, um wünschenswerte Ergebnisse zu erzielen. In bestimmten Implementierungen können Multitasking und Parallelverarbeitung von Vorteil sein. Weitere Abweichungen ergeben sich im Rahmen der folgenden Ansprüche.
-
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 Patentliteratur
-
- US 15783314 [0001]
- US 62/408408 [0001]