DE202017007614U1 - Kommunikationsvorrichtung, Computerspeichermedium, Computerprogrammprodukt und Kommunikationssystem - Google Patents

Kommunikationsvorrichtung, Computerspeichermedium, Computerprogrammprodukt und Kommunikationssystem Download PDF

Info

Publication number
DE202017007614U1
DE202017007614U1 DE202017007614.4U DE202017007614U DE202017007614U1 DE 202017007614 U1 DE202017007614 U1 DE 202017007614U1 DE 202017007614 U DE202017007614 U DE 202017007614U DE 202017007614 U1 DE202017007614 U1 DE 202017007614U1
Authority
DE
Germany
Prior art keywords
matrix
basis
column
row
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202017007614.4U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/CN2017/086227 external-priority patent/WO2018201540A1/zh
Priority claimed from PCT/CN2017/087073 external-priority patent/WO2018201547A1/zh
Priority claimed from PCT/CN2017/087943 external-priority patent/WO2018201554A1/zh
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of DE202017007614U1 publication Critical patent/DE202017007614U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • H03M13/036Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • H03M13/6393Rate compatible low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Kommunikationsvorrichtung, umfassend:
eine Bestimmungseinheit, die konfiguriert ist, um einen Hubfaktor Z zu bestimmen; und
eine Verarbeitungseinheit, die konfiguriert ist, um eine Eingangssequenz basierend auf einer Low-Density-Parity-Check (LDPC)-Matrix H zu codieren, um eine codierte Sequenz zu erhalten, wobei die Eingangssequenz K Bits umfasst;
wobei die LDPC-Matrix H gemäß einer Basismatrix und dem Hubfaktor Z erhalten wird;
wobei die Basismatrix m Zeilen und n Spalten umfasst, m und n ganze Zahlen sind, 5 ≤ m ≤ 46, 27 ≤ n ≤ 68, und die Basismatrix Nicht-Null-Elemente in den folgenden Zeilen und Spalten umfasst, i einen Zeilenindex darstellt, j einen Spaltenindex darstellt, 0 ≤ i < m, 0 ≤ j < n, und andere Elemente in den folgenden Zeilen Null-Elemente sind:
i = 0, j = 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22 oder 23;
i = 1, j = 0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23 oder 24;
i = 2, j = 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24 oder 25;
i = 3, j = 0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22 oder 25;
i = 4,j = 0, 1, 26.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen der vorliegenden Anmeldung beziehen sich auf das Gebiet der Kommunikation und insbesondere auf eine Kommunikationsvorrichtung, ein Computerspeichermedium, ein Computerprogrammprodukt und ein Kommunikationssystem.
  • HINTERGRUND
  • Low-Density-Parity-Check (Low-Density-Parity-Check, LDPC)-Code ist eine Art von linearem Blockcode mit einer spärlichen Prüfmatrix und zeichnet sich durch eine flexible Struktur und eine geringe Decodierkomplexität aus. Da das Decodieren des LDPC-Codes einen teilweise parallelen iterativen Decodieralgorithmus verwendet, hat der LDPC-Code einen höheren Durchsatz als ein herkömmlicher Turbocode. Der LDPC-Code kann als Fehlerkorrekturcode in einem Kommunikationssystem verwendet werden, um die Kanalübertragungszuverlässigkeit und die Leistungsnutzung zu erhöhen. LDPC-Codes können ferner in Weltraumkommunikationen, faseroptischen Kommunikationen, persönlichen Kommunikationssystemen, ADSL, magnetischen Aufzeichnungsvorrichtungen und dergleichen weit verbreitet verwendet werden. Der LDPC-Code wurde derzeit als einer der Kanalcodierungsmodi in der Mobilkommunikation der fünften Generation betrachtet.
  • In tatsächlichen Anwendungen können LDPC-Matrizen, die durch verschiedene spezielle Strukturen gekennzeichnet sind, verwendet werden. Eine LDPC-Matrix H, die durch eine spezielle Struktur gekennzeichnet ist, kann durch Erweitern einer LDPC-Basismatrix mit einer quasizyklischen (quasi cycle, QC)-Struktur erhalten werden. QC-LDPC ist für Hardware mit hoher Parallelität geeignet und stellt einen höheren Durchsatz bereit. Es ist möglich, eine LDPC-Matrix zu entwerfen, die für die Kanalcodierung geeignet ist.
  • ZUSAMMENFASSUNG
  • Ausführungsformen der vorliegenden Anmeldung stellen eine Kommunikationsvorrichtung, ein Computerspeichermedium, ein Computerprogrammprodukt und ein Kommunikationssystem bereit, um das Codieren und Decodieren von Informationsbitsequenzen mehrerer Längen zu unterstützen und flexible Codelängen- und Coderatenanforderungen eines Systems zu erfüllen. Aspekte der Erfindung stellen eine Kommunikationsvorrichtung nach einem der Ansprüche 1 bis 13, eine Kommunikationsvorrichtung nach einem der Ansprüche 14 bis 22, ein Kommunikationssystem nach Anspruch 23, ein Computerspeichermedium nach Anspruch 24 und ein Computerprogrammprodukt nach Anspruch 25 bereit.
  • Gemäß einem ersten Aspekt werden ein Codierverfahren und ein Codierer bereitgestellt, und der Codierer codiert eine Eingangssequenz unter Verwendung einer Low-Density-Parity-Check(LDPC)-Matrix.
  • Gemäß einem zweiten Aspekt werden ein Decodierverfahren und ein Decodierer bereitgestellt, und der Decodierer decodiert eine Eingangssequenz unter Verwendung einer Low-Density-Parity-Check (LDPC)-Matrix.
  • In einer ersten Implementierung des ersten Aspekts oder des zweiten Aspekts wird ein Basisgraph der LDPC-Matrix durch eine Matrix von m Zeilen und n Spalten dargestellt, wobei m eine ganze Zahl größer oder gleich 5 ist und n eine ganze Zahl größer oder gleich 27 ist. Der Basisgraph umfasst mindestens eine Untermatrix A und eine Untermatrix B. Die Untermatrix A ist eine Matrix von fünf Zeilen und 22 Spalten. Die Untermatrix B ist eine Matrix von fünf Zeilen und fünf Spalten, und die Untermatrix B umfasst eine Spalte, deren Gewicht 3 ist, und eine Untermatrix B' mit einer bidiagonalen Struktur.
  • Optional weist in der Untermatrix A eine Spalte ein Gewicht von 5 auf, eine Spalte weist ein Gewicht von 4 auf und andere 20 Spalten weisen ein Gewicht von 3 auf.
  • Optional weist in der Untermatrix B eine Spalte ein Gewicht von 3 auf und drei Spalten weisen ein Gewicht von 2 auf.
  • Basierend auf der vorstehenden Implementierung umfasst die Untermatrix B ferner eine Spalte, deren Gewicht 1 ist.
  • In einer zweiten Implementierung des ersten Aspekts oder des zweiten Aspekts wird ein Basisgraph der LDPC-Matrix durch eine Matrix von m Zeilen und n Spalten dargestellt, wobei m eine ganze Zahl größer oder gleich 5 ist und n eine ganze Zahl größer oder gleich 27 ist. Der Basisgraph umfasst mindestens eine Untermatrix A und eine Untermatrix B. Die Untermatrix A ist eine Matrix von fünf Zeilen und 22 Spalten; und die Untermatrix B ist eine Matrix von fünf Zeilen und fünf Spalten. In einer Matrix, die die Untermatrix A und die Untermatrix B umfasst, weist eine Spalte ein Gewicht von 5 auf, eine Spalte weist ein Gewicht von 4 auf, 21 Spalten weisen ein Gewicht von 3 auf, drei Spalten weisen ein Gewicht von 2 auf und eine Spalte weist ein Gewicht von 1 auf.
  • Optional weist in der Matrix, die die Untermatrix A und die Untermatrix B umfasst, eine Zeile ein Gewicht größer oder gleich 1 und kleiner oder gleich 5 auf und andere vier Zeilen weisen Gewichte größer oder gleich 17 und kleiner oder gleich 21 auf.
  • Beispielsweise weist in der Matrix, die die Untermatrix A und die Untermatrix B umfasst, eine Zeile ein Gewicht von 3 auf, andere vier Zeilen weisen ein Gewicht von 19 auf. In diesem Fall kann die Matrix, die die Untermatrix A und die Untermatrix B umfasst, Zeilen oder Spalten in einem Matrixblock von fünf Zeilen umfassen, der Zeile 0 bis Zeile 4 und Spalte 0 bis Spalte 26 in einem in 3a gezeigten Basisgraphen 30a umfasst. Die Zeilen können miteinander geschaltet werden und die Spalten können auch miteinander geschaltet werden. Beispielsweise können in dem Matrixblock, der die Untermatrix A und die Untermatrix B in dem Basisgraphen 30a umfasst, Zeile 3 und Zeile 0 miteinander geschaltet werden, Zeile 2 und Zeile 1 können miteinander geschaltet werden und Spalte 23 und Spalte 25 können miteinander geschaltet werden, um eine Kernmatrix in einem in 8a gezeigten Basisgraphen 80a zu erhalten.
  • Basierend auf den vorstehenden Implementierungen kann ein Teil, der sich in einer Basismatrix der LDPC-Matrix befindet und der der Untermatrix A und der Untermatrix B entspricht, beispielsweise durch eine beliebige der in 3b-1 gezeigten Basismatrizen 30b-1, 30b-2, 30b-3, 30b-4 und 30b-5 und in 3b-2 gezeigten 30b-6, 30b-7, 30b-8, 30b-9 und 30b-10 dargestellt werden.
  • Ein Teil, der sich in einer Basismatrix der LDPC-Matrix befindet und der der Untermatrix A und der Untermatrix B entspricht, kann durch eine Matrix dargestellt werden, die durch Durchführen von Spaltenpermutation, Zeilenpermutation oder Zeilenpermutation und Spaltenpermutation an einer beliebigen der Basismatrizen 30b-1, 30b-2, 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 oder 30b-10 erhalten wird. Beispielsweise kann der Teil, der sich in der Basismatrix der LDPC-Matrix befindet und der der Untermatrix A und der Untermatrix B entspricht, Zeilen oder Spalten in einer beliebigen der Basismatrizen 30b-1, 30b-2, 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 oder 30b-10 beinhalten.
  • Basierend auf den vorstehenden Implementierungen kann ein Teil, der sich in einer Basismatrix der LDPC-Matrix befindet und der der Untermatrix A und der Untermatrix B entspricht, durch eine beliebige der in 8b-1 gezeigten Basismatrizen 80b-1, 80b-2, 80b-3, 80b-4, 80b-5 oder in 8b-2 gezeigten 80b-6 dargestellt werden. 80b-4 ist eine Matrix, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an 30b-3 erhalten wird, 80b-5 ist eine Matrix, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an 30b-4 erhalten wird, und 80b-6 ist eine Matrix, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an 30b-5 erhalten wird.
  • Um unterschiedliche Blocklängen zu unterstützen, benötigt ein LDPC-Code unterschiedliche Hubfaktoren Z. Basierend auf den vorstehenden Implementierungen werden in einer möglichen Implementierung Basismatrizen, die unterschiedlichen Hubfaktoren Z entsprechen, basierend auf den unterschiedlichen Hubfaktoren Z verwendet.
  • Beispielsweise
    • wenn der Hubfaktor Z einer von {16, 18, 20, 22, 24, 26, 28, 30} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 3b-1 gezeigte Basismatrix 30b-1 sein; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44, 48, 52, 56, 60} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 3b-1 gezeigte Basismatrix 30b-2 sein; oder
    • wenn der Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 3b-1 gezeigte Basismatrix 30b-3 sein; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 3b-1 gezeigte Basismatrix 30b-4 sein; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 3b-1 gezeigte Basismatrix 30b-5 sein.
  • In einer anderen möglichen Implementierung
    • wenn der Hubfaktor Z einer von {24, 26, 28, 30} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 8b-1 gezeigte Basismatrix 80b-1 sein; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 8b-1 gezeigte Basismatrix 80b-2 sein; oder
    • wenn der Hubfaktor Z einer von {48, 52, 56, 60} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 8b-1 gezeigte Basismatrix 80b-3 sein; oder
    • wenn der Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 8b-1 gezeigte Basismatrix 80b-4 sein; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 8b-1 gezeigte Basismatrix 80b-5 sein; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, die in 8b-2 gezeigte Basismatrix 80b-6 sein.
  • In einer anderen möglichen Implementierung kann die Untermatrix A ferner zwei Spalten von eingebauten Punktierungsbits umfassen.
  • Um eine flexible Coderate zu erhalten, können ferner eine Untermatrix C, eine Untermatrix D und eine Untermatrix E mit entsprechenden Größen basierend auf einer Kernmatrix hinzugefügt werden, um unterschiedliche Coderaten zu erhalten.
  • Die Untermatrix C ist eine Nullmatrix von fünf Zeilen und mD Spalten;
    • die Untermatrix D ist eine Matrix von mD Zeilen und 27 Spalten;
    • die Untermatrix E ist eine Identitätsmatrix von mD Zeilen und mD Spalten; und mD ist eine ganze Zahl und 0 ≤ mD ≤ 41.
  • Die Untermatrix D umfasst mD Zeilen in einer Matrix F, die Matrix F weist 41 Zeilen und 27 Spalten auf, und Gewichte der Zeilen in der Matrix F sind jeweils 7, 7, 9, 8, 7, 7, 8, 6, 6, 5, 6, 5, 5, 6, 5, 5, 5, 5, 5, 4, 4, 4, 5, 4, 5, 4, 4, 4, 4, 3, 4, 4, 4, 3, 3, 4, 4, 3, 3 und 4.
  • In einer möglichen Implementierung ist die Matrix F eine Matrix, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 im Basisgraphen 30a umfasst.
  • In einer möglichen Implementierung kann eine Verschiebungsmatrix der Matrix F durch eine der Basismatrizen 30c-1, die in 3c-2 gezeigt sind, 30c-2, die in 3c-3 gezeigt sind, 30c-3, die in 3c-4 gezeigt sind, 30c-4, die in 3c-5 gezeigt sind, oder 30c-5, die in 3c-6 gezeigt sind, dargestellt werden.
  • In einer anderen möglichen Implementierung können Zeile 17 und Zeile 19 im Basisgraphen 30a miteinander geschaltet werden und Spalte 39 und Spalte 41 können miteinander geschaltet werden, um die in 8a gezeigte Basisgraphmatrix 80a zu erhalten. Für ein anderes Beispiel umfasst die Untermatrix D mD Zeilen in einer Matrix F, eine Zeilenpermutation kann nicht zwischen den mD Zeilen durchgeführt werden oder eine Zeilenpermutation kann zwischen einer oder mehreren der mD Zeilen durchgeführt werden, und die Untermatrix E weist immer noch eine diagonale Struktur auf. Zum Beispiel umfasst die Untermatrix D mD Zeilen in der Matrix F, Zeile 12 und Zeile 14 in der Matrix F sind miteinander geschaltet und die Untermatrix E weist immer noch eine diagonale Struktur auf, um den Basisgraphen 80a zu erhalten.
  • Um unterschiedliche Blocklängen zu unterstützen, benötigt ein LDPC-Code unterschiedliche Hubfaktoren Z. Basierend auf den vorstehenden Implementierungen werden in einer möglichen Implementierung Basismatrizen, die unterschiedlichen Hubfaktoren Z entsprechen, basierend auf den unterschiedlichen Hubfaktoren Z verwendet. Zum Beispiel
    • in einer möglichen Implementierung
    • wenn der Hubfaktor Z einer von {16, 18, 20, 22, 24, 26, 28, 30} ist, kann die Untermatrix D in der Basismatrix mD Zeilen in einer Verschiebungsmatrix 30c-1 umfassen, die in 3c-2 gezeigt ist; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44, 48, 52, 56, 60} ist, kann die Untermatrix D in der Basismatrix mD Zeilen in einer Verschiebungsmatrix 30c-2 umfassen, die in 3c-3 gezeigt ist; oder
    • wenn der Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann die Untermatrix D in der Basismatrix mD Zeilen in einer Verschiebungsmatrix 30c-3 umfassen, die in 3c-4 gezeigt ist; oder
    • wenn der Hubfaktor Z einer von { 128, 144, 160, 176, 192, 208, 224, 240} ist, kann die Untermatrix D in der Basismatrix mD Zeilen in einer Verschiebungsmatrix 30c-4 umfassen, die in 3c-5 gezeigt ist; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann die Untermatrix D in der Basismatrix mD Zeilen in einer Verschiebungsmatrix 30c-5 umfassen, die in 3c-6 gezeigt ist.
  • In einer anderen möglichen Implementierung kann ein Hubfaktorsatz {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384} sein.
  • Wenn der Hubfaktor Z einer von {24, 26, 28, 30} ist, kann die Verschiebungsmatrix der Matrix F 80c-1 sein, die in 8c-2 gezeigt ist; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44} ist, kann die Verschiebungsmatrix der Matrix F 80c-2 sein, die in 8c-3 gezeigt ist; oder
    • wenn der Hubfaktor Z einer von {48, 52, 56, 60} ist, kann die Verschiebungsmatrix der Matrix F 80c-3 sein, die in 8c-4 gezeigt ist; oder
    • wenn der Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann die Verschiebungsmatrix der Matrix F 80c-4 sein, die in 8c-5 gezeigt ist; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann die Verschiebungsmatrix der Matrix F 80c-5 sein, die in 8c-6 gezeigt ist; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann die Verschiebungsmatrix der Matrix F 80c-6 sein, die in 8c-7 gezeigt ist.
  • Der Basisgraph und die Basismatrix der LDPC-Matrix in der ersten Implementierung können Leistungsanforderungen von Codeblöcken erfüllen, deren Blocklängen 352 bis 8448 Bits betragen.
  • Basierend auf einem der vorstehenden Aspekte oder den möglichen Implementierungen der Aspekte umfasst das Verfahren in einer anderen möglichen Implementierung ferner: Bestimmen eines Hubfaktors Z. Zum Beispiel wird ein Wert des Hubfaktors Z basierend auf einer Länge K der Eingangssequenz bestimmt. Wenn zum Beispiel die Länge der Eingangssequenz K ist, kann ein Minimalwert in Hubfaktoren, die 22 Z ≥ K erfüllen, aus mehreren Hubfaktoren bestimmt werden, die in einem System definiert sind.
  • Für eine Kommunikationsvorrichtung an einer Sendeseite umfasst das Codieren einer Eingangssequenz unter Verwendung einer LDPC-Matrix:
    • Codieren der Eingangssequenz unter Verwendung einer LDPC-Matrix, die dem Hubfaktor Z entspricht.
  • Für eine Kommunikationsvorrichtung an einer Empfangsseite umfasst das Decodieren einer Eingangssequenz unter Verwendung einer LDPC-Matrix:
    • Decodieren der Eingangssequenz unter Verwendung einer LDPC-Matrix, die dem Hubfaktor Z entspricht.
  • Basierend auf einem der vorstehenden Aspekte oder den möglichen Implementierungen der Aspekte kann in einer anderen möglichen Implementierung die Basismatrix der LDPC-Matrix in einem Speicher gespeichert werden.
  • Basierend auf einem der vorstehenden Aspekte oder den möglichen Implementierungen der Aspekte wird in einer anderen möglichen Implementierung der Basisgraph der LDPC-Matrix im Speicher gespeichert, und Verschiebungswerte von Nicht-Null-Elementen in der Basismatrix der LDPC-Matrix können im Speicher gespeichert werden.
  • Basierend auf den vorstehenden möglichen Implementierungen wird in einer möglichen Ausgestaltung ein Basisgraph und/oder eine Basismatrix für LDPC-Codierung oder -Decodierung durch Durchführen von Zeilenpermutation oder Spaltenpermutation oder Zeilenpermutation und Spaltenpermutation an dem Basisgraphen und/oder der Basismatrix der LDPC-Matrix erhalten.
  • Gemäß einem dritten Aspekt wird eine Kommunikationsvorrichtung bereitgestellt, und die Vorrichtung kann Softwaremodule und/oder Hardwarekomponenten umfassen, die konfiguriert sind, um eine der möglichen Implementierungen des ersten Aspekts in der vorstehenden Verfahrensausgestaltung durchzuführen.
  • In einer möglichen Ausgestaltung umfasst die im dritten Aspekt bereitgestellte Kommunikationsvorrichtung den im ersten Aspekt beschriebenen Codierer, eine Bestimmungseinheit und eine Verarbeitungseinheit. Die Bestimmungseinheit ist konfiguriert, um einen Hubfaktor Z zu bestimmen, der zum Codieren einer Eingangssequenz erforderlich ist. Die Verarbeitungseinheit ist konfiguriert, um die Eingangssequenz unter Verwendung einer LDPC-Matrix zu codieren, die dem Hubfaktor Z entspricht.
  • Optional umfasst die Kommunikationsvorrichtung ferner einen Sendeempfänger, und der Sendeempfänger ist konfiguriert, um ein Signal zu senden, das codierten Informationsdaten entspricht.
  • Gemäß einem vierten Aspekt wird eine Kommunikationsvorrichtung bereitgestellt, und die Vorrichtung kann ein Modul umfassen, das konfiguriert ist, um eine der möglichen Implementierungen des zweiten Aspekts in der vorstehenden Verfahrensausgestaltung durchzuführen. Das Modul kann Software und/oder Hardware sein.
  • In einer möglichen Ausgestaltung umfasst die im vierten Aspekt bereitgestellte Kommunikationsvorrichtung den im zweiten Aspekt beschriebenen Decodierer, eine Erhaltungseinheit und eine Verarbeitungseinheit. Die Erhaltungseinheit ist konfiguriert, um weiche Werte eines LDPC-Codes und eines Hubfaktors Z zu erhalten. Die Verarbeitungseinheit ist konfiguriert, um die weichen Werte des LDPC-Codes basierend auf einer Basismatrix HB zu decodieren, die dem Hubfaktor Z entspricht, um eine Informationsbitsequenz zu erhalten.
  • Die Kommunikationsvorrichtung umfasst ferner einen Sendeempfänger, und der Sendeempfänger ist konfiguriert, um ein Signal zu empfangen, das einen LDPC-Code umfasst.
  • Gemäß einem fünften Aspekt wird eine Kommunikationsvorrichtung bereitgestellt, die einen oder mehrere Prozessoren umfasst.
  • In einer möglichen Ausgestaltung kann/können der eine oder die mehreren Prozessoren Funktionen des Codierers im ersten Aspekt implementieren. In einer anderen möglichen Ausgestaltung kann der Codierer im ersten Aspekt ein Teil des Prozessors sein, und der Prozessor kann zusätzlich zu Funktionen des Codierers im ersten Aspekt andere Funktionen implementieren.
  • In einer möglichen Ausgestaltung kann/können der eine oder die mehreren Prozessoren Funktionen des Decodierers im zweiten Aspekt implementieren. In einer anderen möglichen Ausgestaltung kann der Decodierer im zweiten Aspekt ein Teil des Prozessors sein.
  • Optional kann die Kommunikationsvorrichtung ferner einen Sendeempfänger und eine Antenne umfassen.
  • Optional kann die Kommunikationsvorrichtung ferner eine Komponente umfassen, die konfiguriert ist, um eine zyklische Transportblockredundanzprüfung (CRC) zu erzeugen, eine Komponente, die zur Codeblocksegmentierung und CRC-Prüfung verwendet wird, einen Verschachteler, der zum Verschachteln verwendet wird, einen Modulator, der zur Modulationsverarbeitung verwendet wird, oder dergleichen.
  • Optional kann die Kommunikationsvorrichtung ferner einen Demodulator umfassen, der zur Demodulation verwendet wird, einen Entschachteler, der zum Entschachteln verwendet wird, eine Komponente, die zur De-Ratenanpassung verwendet wird, oder dergleichen. Funktionen dieser Komponenten können durch den einen oder die mehreren Prozessoren implementiert werden.
  • In einer möglichen Ausgestaltung können Funktionen dieser Komponenten durch den einen oder die mehreren Prozessoren implementiert werden.
  • Gemäß einem sechsten Aspekt stellt eine Ausführungsform der vorliegenden Anmeldung ein Kommunikationssystem bereit, und das System umfasst die im dritten Aspekt beschriebene Kommunikationsvorrichtung und die im vierten Aspekt beschriebene Kommunikationsvorrichtung.
  • Gemäß einem siebten Aspekt stellt eine Ausführungsform der vorliegenden Anmeldung ein Kommunikationssystem bereit, und das System umfasst eine oder mehrere Kommunikationsvorrichtungen, die im fünften Aspekt beschrieben sind.
  • Gemäß einem weiteren Aspekt stellt eine Ausführungsform der vorliegenden Anmeldung ein Computerspeichermedium bereit, wobei das Computerspeichermedium ein Programm speichert, und wenn das Programm ausgeführt wird, wird ein Computer veranlasst, die in den vorstehenden Aspekten beschriebenen Verfahren durchzuführen.
  • Gemäß einem weiteren Aspekt dieser Anmeldung wird ein Computerprogrammprodukt bereitgestellt, das eine Anweisung umfasst. Wenn die Anweisung auf einem Computer ausgeführt wird, wird der Computer veranlasst, die Verfahren in den vorstehenden Aspekten durchzuführen.
  • Gemäß dem Informationsverarbeitungsverfahren, der Vorrichtung, der Kommunikationsvorrichtung und dem Kommunikationssystem in den Ausführungsformen der vorliegenden Anmeldung können flexible Codelängen- und Coderatenanforderungen eines Systems hinsichtlich der Codierungsleistung und einer Fehleruntergrenze erfüllt werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
    • 1 zeigt schematische Darstellungen eines Basisgraphen, einer Basismatrix und von Kreispermutationsmatrizen eines LDPC-Codes;
    • 2 ist eine schematische Strukturdarstellung eines Basisgraphen eines LDPC-Codes;
    • 3a ist eine schematische Darstellung eines Basisgraphen eines LDPC-Codes gemäß einer Ausführungsform der vorliegenden Anmeldung;
    • 3b-1 und 3b-2 zeigen schematische Darstellungen von Basismatrizen eines LDPC-Codes gemäß einer Ausführungsform der vorliegenden Anmeldung;
    • 3c-1 bis 3c-11 zeigen schematische Darstellungen von Basismatrizen eines LDPC-Codes gemäß einer weiteren Ausführungsform der vorliegenden Anmeldung;
    • 4 ist eine schematische Leistungsdarstellung, die durch eine Ausführungsform der vorliegenden Anmeldung bereitgestellt wird;
    • 5 ist eine schematische Leistungsdarstellung, die durch eine weitere Ausführungsform der vorliegenden Anmeldung bereitgestellt wird;
    • 6 ist eine schematische Blockdarstellung einer Informationsverarbeitungsvorrichtung gemäß einer Ausführungsform der vorliegenden Anmeldung;
    • 7 ist eine schematische Blockdarstellung eines Kommunikationssystems gemäß einer Ausführungsform der vorliegenden Anmeldung;
    • 8a ist eine schematische Darstellung eines Basisgraphen eines LDPC-Codes gemäß einer weiteren Ausführungsform der vorliegenden Anmeldung;
    • 8b-1 und 8b-2 zeigen schematische Darstellungen von Basismatrizen eines LDPC-Codes gemäß noch einer weiteren Ausführungsform der vorliegenden Anmeldung;
    • 8c-1 bis 8c-10 zeigen schematische Darstellungen von Basismatrizen eines LDPC-Codes gemäß noch einer weiteren Ausführungsform der vorliegenden Anmeldung;
    • 9 ist eine schematische Leistungsdarstellung eines LDPC-Codes gemäß einer Ausführungsform der vorliegenden Anmeldung;
    • 10 ist eine schematische Leistungsdarstellung eines LDPC-Codes gemäß einer weiteren Ausführungsform der vorliegenden Anmeldung;
    • 11a ist eine schematische Darstellung eines Basisgraphen eines LDPC-Codes gemäß noch einer weiteren Ausführungsform der vorliegenden Anmeldung;
    • 11b ist eine schematische Darstellung einer Basismatrix basierend auf dem Basisgraphen des in 11a bereitgestellten LDPC-Codes; und
    • 12 ist eine schematische Darstellung eines Basisgraphen gemäß noch einer weiteren Ausführungsform der vorliegenden Anmeldung.
  • DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • Zum einfacheren Verständnis werden nachstehend einige Begriffe beschrieben, die in dieser Anmeldung verwendet werden.
  • In dieser Anmeldung werden die Begriffe „Netzwerk“ und „System“ häufig austauschbar verwendet, und „Vorrichtung“ und „Vorrichtung“ werden ebenfalls häufig Eine „Kommunikationsvorrichtung“ kann sich auf einen Chip (wie z. B. einen Basisbandchip, einen digitalen Signalverarbeitungschip oder einen Universalchip usw.), ein Endgerät, eine Basisstation oder eine beliebige andere Netzwerkvorrichtung beziehen.
  • Ein Endgerät ist eine Vorrichtung, die eine Kommunikationsfunktion aufweist. Es kann eine tragbare Vorrichtung, eine fahrzeuginterne Vorrichtung, eine tragbare Vorrichtung, eine Rechenvorrichtung oder eine beliebige andere Verarbeitungsvorrichtung sein, die mit einem drahtlosen Modem verbunden ist und drahtlose Kommunikationsfunktionen aufweist. Das Endgerät kann durch verschiedene Namen in verschiedenen Netzwerken aufgerufen werden, wie z. B. Benutzerausrüstung, Mobilstation, Teilnehmereinheit, Station, Mobiltelefon, persönlicher digitaler Assistent, drahtloses Modem, drahtlose Kommunikationsvorrichtung, tragbare Vorrichtung, Laptop-Computer, schnurloses Telefon und drahtlose Teilnehmerstation. Zur einfacheren Beschreibung werden diese Vorrichtungen in dieser Anmeldung einfach als ein Endgerät bezeichnet.
  • Eine Basisstation (base station, BS) kann auch als eine Basisstationsvorrichtung bezeichnet werden und ist eine Vorrichtung, die in einem Funkzugangsnetzwerk eingesetzt wird, um drahtlose Kommunikationsfunktionen bereitzustellen. Die Basisstation kann durch verschiedene Namen in verschiedenen drahtlosen Zugangssystemen aufgerufen werden. Zum Beispiel wird eine Basisstation in einem Universal Mobile Telecommunications System (UMTS)-Netzwerk als ein NodeB (NodeB) bezeichnet, eine Basisstation in einem LTE-Netzwerk wird als ein entwickelter NodeB (entwickelter NodeB, eNB oder eNodeB) bezeichnet, eine Basisstation in einem New Radio (New Radio, NR)-Netzwerk wird als ein Übertragungsempfangspunkt (Transmission Reception Point, TRP) oder ein NodeB der nächsten Generation (Generation NodeB, gNB) bezeichnet. Basisstationen in anderen Netzwerken können durch andere Namen aufgerufen werden. Dies ist in der vorliegenden Anmeldung nicht beschränkt.
  • Im Folgenden werden die technischen Lösungen in den Ausführungsformen der vorliegenden Anmeldung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • Ein LDPC-Code kann durch eine Paritätsprüfmatrix H dargestellt werden. Der Code der Paritätsprüfmatrix H kann unter Verwendung eines Basisgraphen (base graph) und eines Verschiebungswerts (Shift-Werts) erhalten werden. Der Basisgraph ist eine Matrix von m Zeilen und n Spalten und umfasst m.n Matrixelemente (auch Einträge genannt). Der Wert jedes Matrixelements ist entweder 0 oder 1. Ein Element, dessen Wert 0 ist, wird als ein Nullelement bezeichnet, das durch eine Matrix mit allen Nullen von Z Zeilen·Z Spalten (Nullmatrix) ersetzt werden kann. Ein Element, dessen Wert 1 ist, wird als ein Nicht-Nullelement bezeichnet, das durch eine Kreispermutationsmatrix mit Z Zeilen ·Z Spalten (Kreispermutationsmatrix) ersetzt werden kann. Das heißt, jedes Element des Basisgraphen stellt eine Nullmatrix oder eine Kreispermutationsmatrix dar. 10a in 1 zeigt Elemente in einem beispielhaften Basisgraphen eines LDPC-Codes mit einer QC-Struktur, wobei m = 4 und n = 20.
  • Es sei angemerkt, dass in dieser Beschreibung Zeilenindizes und Spaltenindizes von Basisgraphen und Matrizen beginnend bei 0 nummeriert sind, und dies dient lediglich der einfacheren Beschreibung. Beispielsweise gibt Spalte 0 eine erste Spalte in einem Basisgraphen oder einer Matrix an, und Spalte 1 gibt eine zweite Spalte in dem Basisgraphen und der Matrix an, Zeile 0 gibt eine erste Zeile in dem Basisgraphen und der Matrix an, Zeile 1 gibt eine zweite Zeile in dem Basisgraphen und der Matrix an, und so weiter.
  • Es versteht sich, dass Zeilenindizes und Spaltenindizes alternativ von 1 nummeriert sein können, und in diesem Fall werden in dieser Beschreibung gezeigte Zeilenindizes und Spaltenindizes um 1 erhöht, um entsprechende Zeilenindizes und Spaltenindizes zu erhalten. Wenn beispielsweise Zeilenindizes oder Spaltenindizes von 1 nummeriert sind, gibt Spalte 1 eine erste Spalte in dem Basisgraphen und der Matrix an, Spalte 2 gibt eine zweite Spalte in dem Basisgraphen und der Matrix an, Zeile 1 gibt eine erste Zeile in dem Basisgraphen und der Matrix an, Zeile 2 gibt eine zweite Zeile in dem Basisgraphen und der Matrix an, und so weiter.
  • Wenn ein Wert eines Elements in Zeile i und Spalte j in dem Basisgraphen 1 ist, wird ihm ein Verschiebungswert Pi,j zugewiesen, und Pi,j ist eine ganze Zahl größer oder gleich 0, dann wird das Element, dessen Wert 1 ist, in der Zeile i und der Spalte j des Basisgraphen durch eine Kreispermutationsmatrix mit Z*Z ersetzt, die Pi,j entspricht. Die Kreispermutationsmatrix, die Pi,j entspricht, ist gleich einer Matrix, die durch kreisförmiges Verschieben einer Identitätsmatrix der Größe Z*Z auf das richtige Pi,j-fache erhalten wird. Jedes Element in dem Basisgraphen, dessen Wert 0 ist, wird durch eine Nullmatrix der Größe Z*Z ersetzt, und jedes Element, dessen Wert 1 ist, wird durch eine Kreispermutationsmatrix der Größe Z*Z ersetzt, die einem Verschiebungswert des Elements entspricht, um die Paritätsprüfmatrix des LDPC-Codes zu erhalten. Positionen von Verschiebungswerten können in dem Basisgraphen angegeben werden, und ein Nicht-Null-Element in dem Basisgraphen entspricht dem Verschiebungswert.
  • Z ist eine positive ganze Zahl, welche ein Hubfaktor oder wird manchmal als eine Hubgröße bezeichnet wird. Z kann basierend auf Codeblockgrößen, die durch ein System unterstützt werden, und einer Größe von Informationsdaten bestimmt werden. Es ist ersichtlich, dass für einen Basisgraphen von m Zeilen ·n Spalten die Paritätsprüfmatrix H die Größe von (m·Z)·(n·Z) aufweist. Wenn zum Beispiel der Hubfaktor Z 4 ist, wird jedes Nullelement in dem Basisgraphen 10a durch eine Nullmatrix 11a der Größe 4·4 ersetzt. Wenn P2,3 2 ist, wird ein Nicht-Null-Element in Zeile 2 und Spalte 3 in dem Basisgraphen durch eine Kreispermutationsmatrix 11d der Größe 4·4 ersetzt, und die Matrix 11d wird durch zweimal kreisförmiges Verschieben einer Identitätsmatrix 11b der Größe 4·4 nach rechts erhalten. Wenn P2,4 0 ist, wird ein Nicht-Null-Element in Zeile 2 und Spalte 4 durch die Identitätsmatrix 11b ersetzt. Es ist anzumerken, dass hier nur Beispiele beschrieben sind und die Beispiele keine Beschränkung darstellen.
  • Der Wert von Pi,j kann vom Hubfaktor Z abhängen. Für ein Element des Basisgraphen, dessen Wert an derselben Position 1 ist, kann Pi,j für verschiedene Hubfaktoren Z verschieden sein. Zur einfacheren Implementierung kann eine m·n-Basismatrix definiert werden. Elemente in der Basismatrix stehen in einer Eins-zu-Eins-Entsprechung mit Elementen in dem Basisgraphen. Ein Nullelement in dem Basisgraphen hat eine gleiche Position in der Basismatrix, und das Element wird durch -1 angegeben. Ein Nicht-Null-Element in Zeile i und Spalte j, dessen Wert 1 ist, in dem Basisgraphen hat eine gleiche Position in der Basismatrix, das Element kann durch Pi,j angegeben werden, und Pi,j ist eine positive ganze Zahl größer oder gleich 0. In dieser Ausführungsform der Anmeldung wird die Basismatrix manchmal auch als eine Verschiebungsmatrix der Basisgraphmatrix bezeichnet.
  • 1 zeigt eine Basismatrix 10b, die dem Basisgraphen 10a entspricht.
  • Normalerweise kann der Basisgraph oder die Basismatrix des LDPC-Codes ferner p Spalten von eingebauten Punktierungsbits umfassen, wobei p eine ganze Zahl im Bereich von 0 bis 2 sein kann. Diese Spalten können bei der Codierung verwendet werden, aber Systembits, die den Spalten entsprechen, werden nicht gesendet. Eine Coderate der Basismatrix des LDPC-Codes erfüllt R = (n-m)/(n-p). Wenn eine Basismatrix von vier Zeilen und 20 Spalten (4*20) zwei Spalten von eingebauten Punktierungsbits umfasst, ist eine Coderate (20-4)/(20-2) = 8/9.
  • Ein LDPC-Code, der in einem drahtlosen Kommunikationssystem verwendet wird, ist ein QC-LDPC-Code, und ein Teil von Paritätsbits des QC-LDPC-Codes weist eine bidiagonale Struktur oder eine raptorartige Struktur auf, so dass die Codierung vereinfacht werden kann und eine hybride Wiederholung mit inkrementeller Redundanz unterstützt werden kann. In einem Decodierer für den QC-LDPC-Code wird üblicherweise ein QC-LDPC-Verschiebungsnetzwerk (QC-LDPC-Verschiebungsnetzwerk, QSN), ein Banyan-Netzwerk oder ein Benes-Netzwerk verwendet, um eine zyklische Verschiebung von Informationen zu implementieren.
  • Ein Basisgraph des QC-LDPC-Codes mit der raptorartigen Struktur ist eine Matrix, die m Zeilen und n Spalten aufweist, und der Basisgraph kann üblicherweise fünf Untermatrizen umfassen: A, B, C, D und E. Ein Matrixgewicht wird durch eine Menge von Nicht-Null-Elementen bestimmt. Ein Zeilengewicht (Zeilengewicht) ist eine Menge von Nicht-Null-Elementen in einer Zeile, und ein Spaltengewicht (Spaltengewicht) ist eine Menge von Nicht-Null-Elementen in einer Spalte. Das Folgende ist in 200 in 2 gezeigt.
  • Eine Untermatrix A ist eine Matrix von mA Zeilen und nA Spalten, und die Untermatrix A weist eine Größe von mA.nA auf. Jede Spalte entspricht Z Systembits in dem LDPC-Code, und ein Systembit wird manchmal als ein Informationsbit bezeichnet.
  • Eine Untermatrix B ist eine quadratische Matrix von mA Zeilen und mA Spalten, und die Untermatrix B weist eine Größe von mA·mA auf. Jede Spalte entspricht Z Paritätsbits in dem LDPC-Code. Die Untermatrix B umfasst eine Untermatrix B' mit einer bidiagonalen Struktur und eine Matrixspalte, deren Gewicht 3 ist (kurz Gewicht-3-Spalte), und die Gewicht-3-Spalte befindet sich auf der linken Seite der Untermatrix B', wie in 20a in 2 gezeigt. Die Untermatrix B kann ferner eine Matrixspalte umfassen, deren Gewicht 1 ist (kurz Gewicht-1-Matrixspalte), die Gewicht-1-Matrixspalte kann sich in einer ersten oder letzten Spalte in der Untermatrix B befinden, und ein Nicht-Null-Element in der Gewicht-1-Matrixspalte befindet sich in einer letzten Zeile in der Untermatrix B, so dass ein Gewicht der letzten Zeile in der Untermatrix B 1 ist, wie in 20b oder 20c in 2 gezeigt.
  • Im Allgemeinen ist eine Matrix, die basierend auf der Untermatrix A und der Untermatrix B erzeugt wird, eine Kernmatrix, die verwendet werden kann, um Codierung mit hoher Coderate zu unterstützen.
  • Eine Untermatrix C ist eine Nullmatrix, und die Untermatrix C weist eine Größe von mA×(n-(mA+nA)) auf.
  • Eine Untermatrix E ist eine Identitätsmatrix, und die Untermatrix E weist eine Größe von (m-mA)×(m-mA) auf.
  • Eine Untermatrix D weist eine Größe von (m-mA)×(nA+mA) auf, und die Untermatrix D kann verwendet werden, um Paritätsbits für niedrige Coderate zu erzeugen.
  • Es versteht sich, dass der Basisgraph mathematisch ausgedrückt wird, und da C eine Nullmatrix ist und E eine Identitätsmatrix ist, kann in einer möglichen Implementierung eine Matrix, die die Untermatrix A und die Untermatrix B beinhaltet, oder eine Matrix, die die Untermatrix A, die Untermatrix B und die Untermatrix D beinhaltet, verwendet werden, um einfach einen Basisgraphen einer Matrix zum Codieren oder Decodieren darzustellen.
  • Da Strukturen der Untermatrix B, der Untermatrix C und der Untermatrix E relativ spezifiziert sind, sind Strukturen der Untermatrix A und der Untermatrix D einer von Faktoren, die die Codierungs- und Decodierleistung des LDPC-Codes beeinflussen.
  • Wenn eine LDPC-Matrix mit der raptorartigen Struktur zum Codieren verwendet wird, kann in einer möglichen Implementierung der Teil der Matrix, der die Untermatrix A und die Untermatrix B beinhaltet, nämlich die Kernmatrix, zuerst codiert werden, um ein oder mehrere Paritätsbits zu erhalten, die der Untermatrix B entsprechen, und dann wird die gesamte Matrix codiert, um ein oder mehrere Paritätsbits zu erhalten, die der Untermatrix E entsprechen. Da die Untermatrix B die Untermatrix B' mit der bidiagonalen Struktur und der Gewichts-1-Matrixspalte beinhalten kann, können während des Codierens zuerst ein oder mehrere Paritätsbits erhalten werden, die der Untermatrix B' mit der bidiagonalen Struktur entsprechen, und dann können ein oder mehrere Paritätsbits erhalten werden, die der Gewichts-1-Matrixspalte entsprechen.
  • Das Folgende stellt eine beispielhafte Codierungsimplementierung bereit. Unter der Annahme, dass die Kernmatrix, die die Untermatrix A und die Untermatrix B beinhaltet, Hcore ist, werden eine Gewicht-1-Matrixspalte und eine Zeile, in der sich ein Nicht-Null-Element in der Spalte befindet, aus dem Hcore entfernt, um eine Matrix Hcore-dual zu erhalten. Der Teil im Hcore-dual für Paritätsbits wird durch He = [He1 He2] dargestellt, He1 ist eine Gewicht-3-Matrixspalte und He2 weist eine bidiagonale Struktur auf. Gemäß einer Definition einer LDPC-Codematrix ist Hcore-dual · [S Pe]T = 0, wobei S eine Eingangssequenz ist und ein Vektor ist, der Informationsbits beinhaltet, Pe ein Vektor ist, der Paritätsbits beinhaltet, und [S Pe]T eine transponierte Matrix angibt, die die Eingangssequenz S und Pe beinhaltet. Daher können die Paritätsbits, die Hcore-dual entsprechen, zuerst basierend auf der Eingangssequenz S und Hcore-dual berechnet werden, wobei die Eingangssequenz S alle Informationsbits beinhaltet. Dann werden Paritätsbits, die der Gewicht-1-Matrixspalte in der Untermatrix B entsprechen, basierend auf dem erhaltenen Paritätsbit, das Hcore-dual entspricht, und der Eingangssequenz S berechnet. In diesem Fall können alle Paritätsbits, die der Untermatrix B entsprechen, erhalten werden. Danach werden Paritätsbits, die der Untermatrix E entsprechen, durch Codieren unter Verwendung der Untermatrix D und basierend auf der Eingangssequenz S und den Paritätsbits, die der Untermatrix B entsprechen, erhalten, um alle Informationsbits und alle Paritätsbits zu erhalten. Eine Sequenz, die alle Informationsbits und alle Paritätsbits umfasst, die durch Durchführen einer Codierung erhalten werden, nämlich eine LDPC-Codesequenz.
  • Optional kann die LDPC-Codierung ferner eine Verkürzungs- (Verkürzungs-) Operation und eine Punktierungs- (Punktierungs-) Operation umfassen. Die verkürzten Bits und die punktierten Bits werden nicht gesendet.
  • Die Verkürzung wird üblicherweise beginnend mit der letzten Bit-Information ausgeführt und kann in verschiedenen Weisen ausgeführt werden. Beispielsweise ist so die Anzahl der kürzesten Bits, die letzten so in der Ausgabesequenz S können auf bekannte Bits gesetzt werden, beispielsweise auf 0 oder Null oder einen anderen Wert gesetzt werden, um eine Eingangssequenz S' zu erhalten, und dann wird die Eingangssequenz S' unter Verwendung der LDPC-Matrix codiert. In einem anderen Beispiel können die letzten (s0 mod Z) Bits in der Eingangssequenz S auf bekannte Bits gesetzt werden, zum Beispiel auf 0 oder Null oder einen anderen Wert gesetzt werden, um eine Eingangssequenz S' zu erhalten, und die letzten s 0 Z
    Figure DE202017007614U1_0001
    Spalten in der Untermatrix A werden gestrichen, um eine LDPC-Matrix H' zu erhalten, und die Eingangssequenz S' wird unter Verwendung der LDPC-Matrix H' codiert, oder die letzten s 0 Z
    Figure DE202017007614U1_0002
    Spalten in der Untermatrix A tragen zur Codierung der Eingangssequenz S' nichts bei. Nach der Codierung werden die kürzesten Bits nicht gesendet.
  • Die Punktierung kann an einem oder mehreren eingebauten Punktierungsbits oder einem oder mehreren Paritätsbits in einer Eingangssequenz durchgeführt werden. Üblicherweise stammt die Punktierung von Paritätsbits auch von dem letzten einen Bit in Paritätsbits. Alternativ kann die Punktierung basierend auf einem voreingestellten Punktierungsmuster in dem System durchgeführt werden. In einer möglichen Implementierung wird eine Eingangssequenz zuerst codiert und dann werden basierend auf einer Menge p von Bits, die punktiert werden müssen, das/die letzte(n) p Bit(s) in Paritätsbits ausgewählt oder p Bit(s) werden basierend auf dem voreingestellten Punktierungsmuster in dem System ausgewählt, wobei das/die p Bit(s) nicht gesendet werden. In einer anderen möglichen Implementierung können auch p Spalte(n) in einer Matrix, die punktierten Bits entsprechen, und p Zeile(n), in denen sich Nicht-Null-Elemente in diesen Spalten befinden, bestimmt werden, und die Zeilen und die Spalten werden nicht bei der Codierung verwendet, und daher werden keine entsprechenden Paritätsbits erzeugt.
  • Es sollte beachtet werden, dass die hierin beschriebene Codierungsimplementierung lediglich als ein Beispiel verwendet wird. Andere Codierungsimplementierungen, die dem Fachmann bekannt sind, können basierend auf dem Basisgraphen und/oder der Basismatrix, die in dieser Anmeldung bereitgestellt werden, verwendet werden, und die Codierungsimplementierungen sind in dieser Anmeldung nicht beschränkt. Das Decodieren in dieser Anmeldung kann in mehreren Decodierungsverfahren durchgeführt werden, zum Beispiel einem Min-Summen- (MS-) Decodierungsverfahren oder einem Glaubensausbreitungsdecodierungsverfahren. Das MS-Decodierungsverfahren wird manchmal als ein Flood-MS-Decodierungsverfahren bezeichnet. Zum Beispiel wird eine Eingangssequenz initialisiert und eine oder mehrere Iterationen werden durchgeführt. Eine harte Entscheidungsdetektion wird nach der (den) Iteration(en) durchgeführt, und ein hartes Entscheidungsergebnis wird geprüft. Wenn das Decodierungsergebnis eine Prüfgleichung erfüllt, ist die Decodierung erfolgreich, eine Iteration endet und ein Entscheidungsergebnis wird ausgegeben. Wenn ein Decodierungsergebnis eine Prüfgleichung nicht erfüllt, wird eine Iteration innerhalb einer maximalen Menge von Iterationszeiten erneut durchgeführt, und wenn die Prüfung immer noch fehlschlägt, wenn die maximale Menge von Iterationszeiten erreicht ist, schlägt die Decodierung fehl. Das Prinzip der MS-Decodierung wird vom Fachmann verstanden, und Einzelheiten werden hier nicht beschrieben.
  • Es sollte beachtet werden, dass das Decodierungsverfahren hier lediglich als ein Beispiel verwendet wird, andere Decodierungsverfahren, die dem Fachmann bekannt sind, können basierend auf dem Basisgraphen und/oder der Basismatrix, die in dieser Anmeldung bereitgestellt werden, verwendet werden, und das Decodierungsverfahren ist in dieser Anmeldung nicht beschränkt.
  • Ein LDPC-Code kann basierend auf einem Basisgraphen und einer Basismatrix erhalten werden, eine Leistungsobergrenze des LDPC-Codes kann durch Durchführen einer Dichteentwicklung an dem Basisgraphen oder der Basismatrix bestimmt werden. Eine Fehleruntergrenze des LDPC-Codes wird basierend auf einem Verschiebungswert in der Basismatrix bestimmt. Die Verbesserung der Codierungs- und Decodierungsleistung und die Verringerung der Fehleruntergrenze sind einige der Ziele der Ausgestaltung des Basisgraphen und der Basismatrix. Eine Codelänge ist im drahtlosen Kommunikationssystem flexibel. Ein Codeblock kann eine kurze Blocklänge aufweisen, wie etwa 40 Bits oder 1280 Bits, oder ein Codeblock kann eine lange Blocklänge aufweisen, wie etwa 5000 Bits oder 8448 Bits. 3a, 3b-1 und 3b-2 und 3c-1-11 sind Beispiele eines Basisgraphen und von Basismatrizen eines LDPC-Codes, und die Beispiele können eine Leistungsanforderung eines Codeblocks mit einer Blocklänge von bis zu 8448 Bits erfüllen. 8a, 8b-1 und 8b-2 und 8c-1 bis 8c-10 stellen Beispiele eines Basisgraphen und von Basismatrizen eines weiteren LDPC-Codes bereit. 11a und 11b stellen Beispiele eines Basisgraphen und einer Basismatrix eines weiteren LDPC-Codes bereit. Zur einfacheren Beschreibung und zum besseren Verständnis sind Zeilenindizes und Spaltenindizes in 3a, 3b-1 und 3b-2 und 3c-1 bis 3c-11 jeweils auf der obersten Seite und der linken Seite gezeigt. 4 und 5 stellen jeweils schematische Darstellungen der Leistung des in 3a und 3c-1 bis 3c-11 gezeigten LDPC-Codes bei zwei verschiedenen Coderaten bereit. 3a zeigt ein Beispiel eines Basisgraphen 30a eines LDPC-Codes. In der Figur geben 0 bis 67 in der obersten Zeile Spaltenindizes an, und 0 bis 45 in der linken Spalte geben Zeilenindizes an. Insbesondere weist der Basisgraph 46 Zeilen und 68 Spalten auf.
  • Eine Untermatrix A entspricht Systembits, weist fünf Zeilen und 22 Spalten auf und umfasst Elemente in Zeile 0 bis Zeile 4 und Spalte 0 bis Spalte 21 in dem Basisgraphen 30a.
  • Eine Untermatrix B entspricht Paritätsbits, weist fünf Zeilen und fünf Spalten auf und umfasst Elemente in Zeile 0 bis Zeile 4 und Spalte 22 bis Spalte 26 in dem Basisgraphen 30a.
  • Die Untermatrix A und die Untermatrix B bilden eine Kernmatrix in dem Basisgraphen des LDPC-Codes, und insbesondere bilden sie eine Matrix von fünf Zeilen und 27 Spalten und können für Codierung mit hoher Coderate verwendet werden. Zum Beispiel weist in der Kernmatrix, die die Untermatrix A und die Untermatrix B beinhaltet, eine Spalte ein Gewicht von 5 auf, eine Spalte weist ein Gewicht von 4 auf, 21 Spalten weisen ein Gewicht von 3 auf, drei Spalten weisen ein Gewicht von 2 auf und eine Spalte weist ein Gewicht von 1 auf.
  • Die Untermatrix A kann zwei Spalten von eingebauten Punktierungsbits umfassen und nach dem Punktieren ist eine Coderate, die durch die Kernmatrix unterstützt werden kann, 22/(27-2) = 0,88. In der Untermatrix A weist eine Spalte ein Gewicht von 5 auf, eine Spalte weist ein Gewicht von 4 auf und andere 20 Spalten weisen ein Gewicht von 3 auf. Zum Beispiel können Gewichte der zwei Spalten von eingebauten Punktierungsbits jeweils 5 und 4 sein.
  • Sowohl ein Gewicht einer letzten Zeile (Zeile 4) als auch ein Gewicht einer letzten Spalte (Spalte 4 in der Untermatrix B, das heißt Spalte 26 in der Kernmatrix) in der Untermatrix B sind 1. Die Untermatrix B umfasst eine Gewicht-3-Spalte und insbesondere ist ein Gewicht von Spalte 0 in der Untermatrix B (Spalte 22 in der Kernmatrix) 3. Spalte 1 bis Spalte 3 in der Untermatrix B (Spalte 23 bis Spalte 25 in der Kernmatrix) und Zeile 0 bis Zeile 3 in der Untermatrix B bilden eine bidiagonale Struktur.
  • Die Kernmatrix in dem Basisgraphen 30a umfasst vier Zeilen, deren Gewichte 19 sind, und eine Zeile, deren Gewicht 3 ist. Gewichte der Zeilen in der Kernmatrix einschließlich der Untermatrix A und der Untermatrix B sind 19, 19, 19, 19 und 3. Es sei angemerkt, dass die Zeilen in der Kernmatrix geschaltet werden können, beispielsweise Zeile 0 und Zeile 2 miteinander geschaltet werden und Zeile 1 und Zeile 3 miteinander geschaltet werden. Die Zeile, deren Gewicht 3 ist, kann Zeile 4 in Spalte 0 bis Spalte 26 in der Kernmatrix in dem Basisgraphen 30a sein und die Zeilen, deren Gewichte 19 sind, können jeweils Zeile 0 bis Zeile 3 in Spalte 0 bis Spalte 26 in der Kernmatrix in dem Basisgraphen 30a sein. Diese Zeilen können miteinander geschaltet werden und die Spalten können auch miteinander geschaltet werden. Beispielsweise können Spalte 8 und Spalte 25 in der Kernmatrix miteinander geschaltet werden und Spalte 10 und Spalte 26 können miteinander geschaltet werden. Beispielsweise können Zeile 3 und Zeile 0 in der Kernmatrix miteinander geschaltet werden und Zeile 2 und Zeile 1 können miteinander geschaltet werden. Um die bidiagonale Struktur in der Untermatrix B aufrechtzuerhalten, können auf dieser Basis Spalte 23 und Spalte 25 miteinander geschaltet werden, um eine Kernmatrix in einem in 8a gezeigten Basisgraphen 80a zu erhalten, das heißt eine Matrix, die Zeile 0 bis Zeile 5 und Spalte 0 bis Spalte 26 in 80a umfasst. Es sollte beachtet werden, dass hier nur Beispiele bereitgestellt werden. In einer tatsächlichen Anwendung können Zeilenpermutation und Spaltenpermutation basierend auf einer Systemanforderung flexibel ausgestaltet werden.
  • Tabelle 1 zeigt ein Beispiel für Spaltenpermutation für den Basisgraphen 80a. Zur einfacheren Beschreibung wird hier eine durch Spaltenpermutation erhaltene Sequenz von 27 Spalten in der Kernmatrix bereitgestellt. Spaltenindizes sind Spaltenindizes der Matrix nach der Permutation und sind von 0 nummeriert. Spaltenindizes vor der Permutation sind Spaltenindizes der Matrix vor der Permutation. Wie in Tabelle 1 gezeigt, werden Spalte 8 und Spalte 10 in der Matrix vor der Permutation zu Spalte 25 und Spalte 26 geschaltet, Spalte 9 in der Matrix vor der Permutation wird zu Spalte 8 geschaltet, Spalte 11 zu Spalte 21 in der Matrix vor der Permutation werden zu Spalte 9 zu Spalte 19 geschaltet und Spalte 25 und Spalte 26 in der Matrix vor der Permutation werden zu Spalte 20 und Spalte 21 geschaltet. Auf diese Weise kann die Leistung einer spezifischen Coderate und einer spezifischen Codelänge verbessert werden. Zum Beispiel ist 9 eine schematische Darstellung der Leistung basierend auf der in Tabelle 1 gezeigten Basismatrix. Die Leistung wird in einem Fall einer Coderate von 2/3, einer Blockfehlerrate (BLER) von 1E-2 und einer Codelänge im Bereich von 672 bis 960 verbessert. 10 ist eine schematische Darstellung der Leistung basierend auf der in Tabelle 1 gezeigten Basismatrix. Die Leistung wird in einem Fall einer Coderate von 2/3, einer BLER von 1E-2 und einer Codelänge im Bereich von 1952 bis 2624 verbessert.
    Figure DE202017007614U1_0003
  • Es versteht sich, dass, da in einer Matrix Zeilen miteinander geschaltet werden können, Spalten auch miteinander geschaltet werden können, die Zeilenpermutation Gewichte der Spalten in der Matrix nicht ändert, die Spaltenpermutation Gewichte der Zeilen in der Matrix nicht ändert und eine Menge von Nicht-Null-Elementen in der Matrix unverändert bleibt. Die Gewichte der Zeilen in dem Basisgraphen 80a nach Zeilenpermutation und Spaltenpermutation bleiben unverändert. Die Leistung wird für einen Basisgraphen, das durch Durchführen von Zeilenpermutation oder Spaltenpermutation oder Zeilenpermutation und Spaltenpermutation erhalten wird, nicht beeinträchtigt.
  • Es sei angemerkt, dass in dieser Anmeldung, dass die Leistung nicht beeinträchtigt wird, bedeutet, dass die Auswirkung akzeptabel ist und als Ganzes in einen tolerierbaren Bereich fällt. Beispielsweise wird die Leistung als Ganzes wenig beeinträchtigt, da sich die Leistung in einem zulässigen Bereich in einigen Szenarien oder in einigen Bereichen verschlechtert, aber die Leistung wird in einigen Szenarien oder in einigen Bereichen verbessert.
  • Die Kernmatrix in dem Basisgraphen 30a und diejenige in dem Basisgraphen 80a werden als Beispiele verwendet. Nachdem Zeilenpermutation an dem Basisgraphen 30a durchgeführt wurde, umfasst die Kernmatrix in dem Basisgraphen 80a immer noch die Spalten in der Kernmatrix in dem Basisgraphen 30a, eine Zeile weist ein Gewicht von 3 auf und andere vier Zeilen weisen ein Gewicht von 19 auf, außer dass sich die Reihenfolge der Zeilen ändert. Wenn Spaltenpermutation an dem Basisgraphen 30a durchgeführt wird, beispielsweise Spalte 5 und Spalte 7 miteinander geschaltet werden, kann festgestellt werden, dass eine Kernmatrix, die von dem Basisgraphen 30a ist und die durch Durchführen der Spaltenpermutation erhalten wird, immer noch die Spalten in der Kernmatrix in dem Basisgraphen 30a umfasst. Eine Spalte weist ein Gewicht von 5 auf, eine Spalte weist ein Gewicht von 4 auf, 21 Spalten weisen ein Gewicht von 3 auf, drei Spalten weisen ein Gewicht von 2 auf und eine Spalte weist ein Gewicht von 1 auf, außer dass sich die Reihenfolge der Spalten ändert. Es ist anzumerken, dass hier nur Beispiele bereitgestellt sind und die Beispiele keine Beschränkung darstellen.
  • Für einen gegebenen Basisgraphen oder eine gegebene Basismatrix eines LDPC-Codes ist die Auswirkung einiger Änderungen an Matrixelementen auf die Leistung üblicherweise akzeptabel. Zum Beispiel können in einer Implementierung einige Änderungen basierend auf der Kernmatrix in dem Basisgraphen 30a vorgenommen werden. Zum Beispiel weist eine Zeile ein Gewicht größer oder gleich 1 und kleiner oder gleich 5 auf und andere vier Zeilen weisen jeweils Gewichte größer oder gleich 17 und kleiner oder gleich 21 auf. Zum Beispiel weist eine Zeile ein Gewicht von 2 auf und andere vier Zeilen weisen ein Gewicht von 18 auf; oder eine Zeile weist ein Gewicht von 4 auf und andere vier Zeilen weisen jeweils Gewichte von 17, 18, 19 und 19 auf. Es versteht sich, dass Gewichte einiger Zeilen unter Bezugnahme auf die in dieser Anmeldung bereitgestellten Lösungen um 1 oder 2 erhöht oder verringert werden können, und dies ist in dieser Anmeldung nicht beschränkt.
  • Die Untermatrix A kann auch eine Zeile umfassen, in der andere Elemente als Elemente in den Spalten von eingebauten Punktierungsbits Nullelemente sind. Ferner ist, um ein Gewicht der Zeile in der Kernmatrix oder der Basisgraphmatrix zu minimieren, die Zeile üblicherweise dieselbe wie eine Zeile, deren Gewicht 1 ist, in der Untermatrix B. Zum Beispiel gibt es zwei Spalten von eingebauten Punktierungsbits, und insbesondere sind Spalte 0 und Spalte 1 Spalten von eingebauten Punktierungsbits, wie im Basisgraphen 30a oder 80a gezeigt. In Zeile 4 sind Elemente in Spalte 0 und Spalte 1 Nicht-Null-Elemente, Elemente in Spalte 2 bis Spalte 25 sind Null-Elemente, Elemente in Spalte 26 sind Nicht-Null-Elemente und ein Gewicht von Zeile 4 ist 3. Zeile 4 hat ein kleinstes Gewicht in der Kernmatrix und sogar in der gesamten Basisgraphmatrix. Eine solche Einstellung kann die Codierungs- und Decodierleistung verbessern.
  • Zur Unterstützung verschiedener Blocklängen benötigt der LDPC-Code verschiedene Hubfaktoren Z. Beispielsweise kann der Hubfaktor Z einer oder mehrere der folgenden Werte sein: 16, 18, 20, 22, 24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, oder 384. Um die Leistung des LDPC-Codes in Fällen von verschiedenen Blocklängen sicherzustellen, können Basismatrizen entsprechend den verschiedenen Hubfaktoren Z auf der Basis der verschiedenen Hubfaktoren Z verwendet werden. 3b-1 und 3b-2 zeigen Beispiele von mehreren Basismatrizen der Kernmatrix in dem Basisgraphen 30a. Basismatrizen werden aufgrund der Kernmatrix in dem Basisgraphen 30a und dem Hubfaktor Z erlangt. Ein Nicht-Null-Element in der Reihe i und der Spalte j in dem Basisgraphen 30a besitzt einen Verschiebungswert Pi,j in der Zeile i und der Spalte j in der Basismatrix und ein Nicht-Null-Element in dem Basisgraphen 30a ist durch -1 oder Null in der Basismatrix dargestellt.
  • In einer möglichen Implementierung
    • wenn der Hubfaktor Z einer von {16, 18, 20, 22, 24, 26, 28, 30} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, in 3b-1 in einer Basismatrix 30b-1 gezeigt werden; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44, 48, 52, 56, 60} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, in 3b-1 in einer Basismatrix 30b-2 gezeigt werden; oder
    • wenn der Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, in 3b-1 in einer Basismatrix 30b-3 gezeigt werden; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, in 3b-1 in einer Basismatrix 30b-4 gezeigt werden; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, in 3b-1 in einer Basismatrix 30b-5 gezeigt werden.
  • In einer anderen möglichen Implementierung kann ein Hubfaktorsatz {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384} sein.
  • Wenn der Hubfaktor Z einer von {24, 26, 28, 30} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-2 gezeigte Basismatrix 30b-6 sein; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-2 gezeigte Basismatrix 30b-7 sein; oder
    • wenn der Hubfaktor Z einer von {48, 52, 56, 60} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-2 gezeigte Basismatrix 30b-8 sein; oder
    • wenn der Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-1 gezeigte Basismatrix 30b-3 sein; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-1 in 30b-4 gezeigte Basismatrix sein; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-1 gezeigte Basismatrix 30b-5 sein.
  • Basierend auf den vorstehenden Implementierungen kann der Basisgraph in einer anderen möglichen Implementierung, um die Leistung weiter zu verbessern, mehr Basismatrizen entsprechen, und Teile, die sich in den Basismatrizen des Basisgraphen 30a befinden und die der Untermatrix A und der Untermatrix B entsprechen, können unterschiedlichen Basismatrizen entsprechen. Zum Beispiel
    • wenn der Hubfaktor Z einer von {24, 26, 28, 30} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-2 gezeigte Basismatrix 30b-6 sein; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-2 gezeigte Basismatrix 30b-7 sein; oder
    • wenn der Hubfaktor Z einer von {48, 52, 56, 60} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-2 gezeigte Basismatrix 30b-8 sein; oder
    • wenn der Hubfaktor Z einer von {64, 72, 80, 88} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-2 gezeigte Basismatrix 30b-9 oder 30b-10 sein; oder
    • wenn der Hubfaktor Z einer von {96, 104, 112, 120} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-1 gezeigte Basismatrix 30b-3 sein; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-1 gezeigte Basismatrix 30b-4 sein; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 30a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 3b-1 gezeigte Basismatrix 30b-5 sein.
  • 8b zeigt mehrere Basismatrixbeispiele der Kernmatrix in dem Basisgraphen 80a. Basismatrizen werden basierend auf der Kernmatrix in dem Basisgraphen 80a und dem Hubfaktor Z erhalten. Ein Nicht-Null-Element in Zeile i und Spalte j in dem Basisgraphen 80a hat einen Verschiebungswert Pi,j in Zeile i und Spalte j in der Basismatrix, und ein Nullelement in dem Basisgraphen 80a wird durch -1 oder Null in einer Verschiebungsmatrix dargestellt.
  • In einer anderen möglichen Implementierung kann ein Hubfaktorsatz {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384} sein.
    • wenn der Hubfaktor Z einer von {24, 26, 28, 30} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-1 sein; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-2 sein; oder
    • wenn der Hubfaktor Z einer von {48, 52, 56, 60} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-3 sein; oder
    • wenn der Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-4 sein; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-5 sein; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-2 gezeigte Basismatrix 80b-6 sein.
  • Basierend auf der vorstehenden Implementierung kann der Basisgraph in einer anderen möglichen Implementierung, um die Leistung weiter zu verbessern, mehr Basismatrizen entsprechen, und Teile, die sich in den Basismatrizen des Basisgraphen 80a befinden und die der Untermatrix A und der Untermatrix B entsprechen, können unterschiedlichen Basismatrizen entsprechen. Zum Beispiel
    • wenn der Hubfaktor Z einer von {24, 26, 28, 30} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-1 sein; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-2 sein; oder
    • wenn der Hubfaktor Z einer von {48, 52, 56, 60} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-3 sein; oder
    • wenn der Hubfaktor Z einer von {64, 72, 80, 88} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-2 gezeigte Basismatrix 80b-7 oder 80b-8 sein; oder
    • wenn der Hubfaktor Z einer von {96, 104, 112, 120} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-4 sein; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-1 gezeigte Basismatrix 80b-5 sein; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann ein Teil, der sich in der Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-2 gezeigte Basismatrix 80b-6 sein.
  • In einer weiteren möglichen Implementierung kann ein Teil, der sich in einer Basismatrix des Basisgraphen 80a befindet und der der Untermatrix A und der Untermatrix B entspricht, eine in 8b-2 gezeigte Basismatrix 80b-9 sein. Da Hubfaktoren Z auf mehrere Weisen klassifiziert werden können, kann eine Basismatrix, die für eine Gruppe von Hubfaktoren Z verwendet wird, im Hinblick auf die Leistung entsprechend berücksichtigt werden.
  • Zum Beispiel wird ein Wert des Hubfaktors Z basierend auf einer Länge K der Eingangssequenz bestimmt. Wenn zum Beispiel die Länge der Eingangssequenz K ist, kann ein Minimalwert in Hubfaktoren, die 22 Z ≥ K erfüllen, aus mehreren Hubfaktoren bestimmt werden, die in dem System definiert sind, und kann als der Wert des Hubfaktors der Matrix verwendet werden. Ferner kann eine entsprechende Basismatrix basierend auf dem bestimmten Hubfaktor ausgewählt werden. Tabelle 2 zeigt ein Beispiel für eine Entsprechung zwischen einer Basismatrix und einem Hubfaktor. Mehrere Hubfaktoren, die in dem System definiert sind, werden in acht Gruppen klassifiziert, das heißt acht Sätze, und Satzindizes sind 1 bis 8. Entsprechend gibt es acht Basismatrizen PCM (Paritätsprüfmatrix, PCM) 1 bis PCM 8. Tabelle 2
    Basismatrixindex Hubfaktor Z
    PCM 1 2 4 8 16 32 64 128 256
    PCM 2 3 6 12 24 48 96 192 384
    PCM 3 5 10 20 40 80 160 320
    PCM 4 7 14 28 56 112 224
    PCM 5 9 18 36 72 144 288
    PCM 6 11 22 44 88 176 352
    PCM 7 13 26 52 104 208
    PCM 8 15 30 60 120 240
  • Beispielsweise kann die Basismatrix 80b-9 als PCM 8 verwendet werden, und in diesem Fall, wenn der Hubfaktor Z einer von 15, 30, 60, 120 oder 240 ist, kann 80b-9 als Basismatrix verwendet werden, und entsprechend wird die Basismatrix unter Verwendung des Hubfaktors Z angehoben, um eine LDPC-Paritätsprüfmatrix zu erhalten. Ferner weist, wenn Z größer oder gleich 24 ist, die Basismatrix 80b-9 eine relativ hohe Leistung auf.
  • Ebenso können Zeilen miteinander geschaltet werden und Spalten können auch miteinander in einer Basismatrix geschaltet werden. Wenn Zeilenpermutation und/oder Spaltenpermutation an einem Basisgraphen durchgeführt wird, wird dieselbe Permutation auch an einer entsprechenden Basismatrix durchgeführt.
  • Es kann gelernt werden, dass in den vorstehenden Implementierungen 80b-1 eine Basismatrix ist, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an der Basismatrix 30b-6 erhalten wird, 80b-2 eine Basismatrix ist, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an der Basismatrix 30b-7 erhalten wird, 80b-3 eine Basismatrix ist, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an der Basismatrix 30b-8 erhalten wird, 80b-4 eine Basismatrix ist, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an der Basismatrix 30b-3 erhalten wird, 80b-5 eine Basismatrix ist, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an der Basismatrix 30b-4 erhalten wird, 80b-6 eine Basismatrix ist, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an der Basismatrix 30b-5 erhalten wird, 80b-7 eine Basismatrix ist, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an der Basismatrix 30b-9 erhalten wird, und 80b-8 eine Basismatrix ist, die durch Durchführen von Zeilenpermutation und Spaltenpermutation an der Basismatrix 30b-10 erhalten wird.
  • Es versteht sich, dass der Teil, der sich in der Basismatrix der LDPC-Matrix befindet und der der Untermatrix A und der Untermatrix B entspricht, Zeilen oder Spalten in einer beliebigen der Basismatrizen 30b-1, 30b-2, 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 oder 30b-10 beinhalten kann, das heißt, dass eine Matrix, die durch Durchführen einer Spaltenpermutation erhalten wird, oder eine Zeilenpermutation oder eine Zeilenpermutation und eine Spaltenpermutation auf einer beliebigen der Basismatrizen 30b-1, 30b-2, 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 oder 30b-10 durchgeführt werden.
  • Um eine flexible Coderate zu erhalten, können eine Untermatrix C, eine Untermatrix D und eine Untermatrix E mit entsprechenden Größen basierend auf einer Kernmatrix hinzugefügt werden, um unterschiedliche Coderaten zu erhalten. Da die Untermatrix C eine Nullmatrix ist und die Untermatrix E eine Identitätsmatrix ist, werden Größen der Untermatrix C und der Untermatrix E basierend auf Coderaten bestimmt, und Strukturen der Untermatrix C und der Untermatrix E sind relativ fest. Hauptsächlich beeinflussen die Kernmatrix und die Untermatrix D die Codierungs- und Decodierleistung. Zeilen und Spalten werden basierend auf der Kernmatrix hinzugefügt, um entsprechende C, D und E zu bilden, so dass unterschiedliche Coderaten erhalten werden können. Beispielsweise kann die Kernmatrix in dem Basisgraph 30a oder die Kernmatrix in dem Basisgraph 80a als die Kernmatrix verwendet werden, und die entsprechenden Untermatrizen C, D und E werden hinzugefügt, um Codierungs- oder Decodieranforderungen für unterschiedliche Coderaten zu erfüllen.
  • Ein Spaltenzählwert der Untermatrix D ist eine Summe von Spaltenzählwerten einer Untermatrix A und einer Untermatrix B, und ein Zeilenzählwert der Untermatrix D bezieht sich hauptsächlich auf eine Coderate. Der Basisgraph 30a wird als ein Beispiel verwendet. Ein Spaltenzählwert mD der entsprechenden Untermatrix D ist (nA + mA) = 27 Spalten. Wenn eine Coderate, die durch einen LDPC-Code unterstützt wird, Rm ist, sind Größen eines Basisgraphen oder einer Basismatrix des LDPC-Codes m*n, wobei n = nA/Rm + p und m = n-nA = nA/Rm + p-nA. Wenn die minimale Coderate Rm 1/3 ist und eine Menge p von Spalten von eingebauten Punktierungsbits 2 ist, kann in dem Beispiel des Basisgraphen 30a n = 68, m = 46, ein Zeilenzählwert mD der Untermatrix D bis zu m-mA = 46-5 = 41 und 0 ≤ mD ≤ 41 sein.
  • Zur einfacheren Beschreibung kann eine Matrix F von 41 Zeilen und 27 Spalten definiert werden. In diesem Fall kann die Untermatrix D mD Zeilen in der Matrix F umfassen, und die Untermatrix D, die Untermatrix A, die Untermatrix B und die Untermatrix C und die Untermatrix E von entsprechenden Größen bilden einen Basisgraphen, der von einem LDPC-Code ist, dessen Coderate 22/(25 + mD) ist. Im Basisgraphen 30a ist mD = 41, und die Untermatrix D hat 41 Zeilen und 27 Spalten entsprechend. Insbesondere ist die Untermatrix D die Matrix F, und eine entsprechende Coderate, die durch den LDPC-Code unterstützt wird, ist 22/66 = 1/3. Es kann gelernt werden, dass eine Matrix, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 in dem Basisgraphen 30a umfasst, die Matrix F ist.
  • Zeilengewichte der Matrix F, die in dem Basisgraphen 30a als ein Beispiel gezeigt sind, sind sequenziell 7, 7, 9, 8, 7, 8, 6, 6, 5, 6, 5, 5, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 5, 4, 5, 4, 4, 4, 4, 3, 4, 4, 4, 3, 3, 4, 4, 3, 3 und 4.
  • Da die Untermatrix E eine Identitätsmatrix ist, sind Gewichte von Zeilen in dem Basisgraphen 30a 8, 8, 10, 9, 8, 8, 9, 7, 7, 6, 7, 6, 6, 7, 6, 6, 6, 6, 5, 5, 6, 5, 6, 5, 5, 5, 5, 4, 5, 5, 5, 4, 4, 5, 5, 4, 4 und 5.
  • In der vorliegenden Anwendung, wenn es höchstens ein Nicht-Null-Element in zwei benachbarten Zeilen in einer gleichen Spalte in einem Basisgraphen gibt, sind die zwei Zeilen zueinander orthogonal.
  • In einer möglichen Implementierung kann die Matrix F eine Matrix mit einer quasiorthogonalen Struktur sein. In einem Matrixblock, der andere Spalten als Spalten von eingebauten Punktierungsbits in der Matrix F umfasst, gibt es höchstens nur ein Nicht-Null-Element in zwei beliebigen benachbarten Zeilen in einer gleichen Spalte, das heißt, der Matrixblock, der die anderen Spalten als die Spalten von eingebauten Punktierungsbits in der Matrix F umfasst, weist eine orthogonale Struktur auf. In dem Beispiel des Basisgraphen 30a ist die Matrix F eine Matrix, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 umfasst, und Spalte 0 und Spalte 1 sind Spalten von eingebauten Punktierungsbits. In einem Matrixblock, der Zeile 5 bis Zeile 45 und Spalte 2 bis Spalte 26 umfasst, sind Zeile 5 und Zeile 6 zueinander orthogonal, Zeile 6 und Zeile 7 sind zueinander orthogonal, Zeile 23 und Zeile 24 sind zueinander orthogonal, Zeile 32 und Zeile 33 sind zueinander orthogonal und so weiter. Wenn mD = 15, hat die Untermatrix D im Basisgraphen des LDPC-Codes 15 Zeilen und 27 Spalten. Die Untermatrix D kann eine Matrix sein, die Zeile 0 bis Zeile 14 in der Matrix F im Basisgraphen 30a umfasst, das heißt, Zeile 5 bis Zeile 19 im Basisgraphen 30a und Spalte 0 bis Spalte 26. Eine entsprechende Coderate, die durch den LDPC-Code unterstützt wird, ist 22/40 = 0,55. Bei dieser Coderate entspricht der Basisgraph des LDPC-Codes einer Matrix, die Zeile 0 bis Zeile 19 und Spalte 0 bis Spalte 41 im Basisgraphen 30a umfasst. Die Untermatrix E ist eine Identitätsmatrix von 15 Zeilen und 15 Spalten, und die Untermatrix C ist eine Nullmatrix von fünf Zeilen und 15 Spalten.
  • Wenn mD = 19, hat die Untermatrix D im Basisgraphen des LDPC-Codes 19 Zeilen und 27 Spalten. Die Untermatrix D kann eine Matrix sein, die Zeile 0 bis Zeile 18 in der Matrix F im Basisgraphen 30a umfasst, das heißt, Zeile 5 bis Zeile 23 im Basisgraphen 30a und Spalte 0 bis Spalte 26. Eine entsprechende Coderate, die durch den LDPC-Code unterstützt wird, ist 22/44 = 1/2. Bei dieser Coderate entspricht der Basisgraph des LDPC-Codes einer Matrix, die Zeile 0 bis Zeile 23 und Spalte 0 bis Spalte 41 im Basisgraphen 30a umfasst. Die Untermatrix E ist eine Identitätsmatrix von 19 Zeilen und 19 Spalten, und die Untermatrix C ist eine Nullmatrix von fünf Zeilen und 19 Spalten.
  • Das Gleiche gilt, wenn mD ein anderer Wert ist, und Details werden nicht beschrieben.
  • Es sollte angemerkt werden, dass Zeilen miteinander geschaltet werden können und Spalten können auch miteinander im Basisgraphen und der Basismatrix des LDPC-Codes geschaltet werden. Zum Beispiel können Zeile 17 und Zeile 19 im Basisgraphen 30a miteinander geschaltet werden und Spalte 39 und Spalte 41 können miteinander geschaltet werden, um die in 8a gezeigte Basisgraphmatrix 80a zu erhalten. Für ein anderes Beispiel umfasst die Untermatrix D mD Zeilen in der Matrix F, eine Zeilenpermutation kann nicht zwischen den mD Zeilen durchgeführt werden oder eine Zeilenpermutation kann zwischen einer oder mehreren der mD Zeilen durchgeführt werden; und die Untermatrix E weist immer noch eine diagonale Struktur auf, und es wird keine Zeilenpermutation oder Spaltenpermutation an der Untermatrix E durchgeführt. Zum Beispiel sind Zeile 12 und Zeile 14 in der Matrix F miteinander geschaltet, die Untermatrix D umfasst mD Zeilen in der Untermatrix F und die Untermatrix E weist immer noch eine diagonale Struktur auf, um den Basisgraphen 80a zu erhalten. Die Matrix F ist eine quasiorthogonale Matrix vor der Zeilenpermutation und die Matrix F ist immer noch eine quasiorthogonale Matrix nach der Permutation. Zum Beispiel ist in dem Basisgraphen 80a die Matrix F eine Matrix, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 umfasst, und Spalte 0 und Spalte 1 sind Spalten von eingebauten Punktierungsbits. In einem Matrixblock, der Zeile 5 bis Zeile 45 und Spalte 2 bis Spalte 26 umfasst, sind Zeile 5 und Zeile 6 zueinander orthogonal, Zeile 29 und Zeile 30 sind zueinander orthogonal und so weiter. Es versteht sich, dass, wenn der Basisgraph oder die Basismatrix die Untermatrix D umfasst, wenn Spalten in der Kernmatrix miteinander geschaltet werden, entsprechende Spalten in der Untermatrix D auch miteinander geschaltet werden müssen. Wenn beispielsweise Spalte 23 und Spalte 25 in der Kernmatrix miteinander geschaltet werden, müssen Spalte 23 und Spalte 25 in der Untermatrix D auch entsprechend miteinander geschaltet werden. Es sind hier nur Beispiele bereitgestellt und die Beispiele stellen keine Beschränkung dar.
  • In den Ausführungsformen der vorliegenden Anwendung weist die Untermatrix D eine quasiorthogonale Struktur auf und insbesondere sind zwei benachbarte Zeilen in jeder anderen Spalte als Spalten von eingebauten Punktierungsbits orthogonal. Beispielsweise sind in Untermatrizen D, die in dem Basisgraphen 30a, dem Basisgraphen 80a, einem Basisgraphen 170a, wie in 11a gezeigt, und dem Basisgraphen, wie in 12 gezeigt, gemäß den Ausführungsformen der vorliegenden Anmeldung bereitgestellt sind, Spalte 0 und Spalte 1 Spalten von eingebauten Punktierungsbits und zwei benachbarte Zeilen in jeder anderen Spalte sind orthogonal. Es sollte beachtet werden, dass die Spalten von eingebauten Punktierungsbits andere Spalten sein können. Dies ist hier nicht beschränkt.
  • In einer anderen möglichen Implementierung kann die Matrix F mit der quasiorthogonalen Struktur auch mindestens zwei orthogonale Zeilen umfassen und es gibt höchstens nur ein Nicht-Null-Element in jeder von Spalte 0 bis Spalte 26 in zwei benachbarten Zeilen unter den mindestens zwei orthogonalen Zeilen. Wenn beispielsweise mD > 30 ist, ist eine entsprechende Coderate, die durch den LDPC-Code unterstützt wird, kleiner als 2/5 und eine Untermatrix, die die letzten 11 Zeilen in der Matrix F umfasst, das heißt, Zeile 30 bis Zeile 40 in der Matrix F und Spalte 0 bis Spalte 26 können orthogonal sein. Insbesondere gibt es in der Matrix F höchstens nur ein Nicht-Null-Element in einer anderen Spalte als Spalten von eingebauten Punktierungsbits in zwei benachbarten Zeilen unter Zeile 0 bis Zeile 29 und es gibt höchstens nur ein Nicht-Null-Element in jeder von Spalte 0 bis Spalte 26 in zwei benachbarten Zeilen unter der Zeile 30 bis Zeile 40.
  • Als ein anderes Beispiel kann eine Untermatrix, die Zeile 26 bis Zeile 40 und Spalte 0 bis Spalte 26 in der Matrix F umfasst, orthogonal sein. Insbesondere gibt es in der Matrix F höchstens nur ein Nicht-Null-Element in einer anderen Spalte als Spalten von eingebauten Punktierungsbits in zwei benachbarten Zeilen unter Zeile 0 bis Zeile 25 und es gibt höchstens nur ein Nicht-Null-Element in jeder von Spalte 0 bis Spalte 26 in zwei benachbarten Zeilen unter Zeile 26 bis Zeile 40. Im Basisgraphen 170a, das in 11a gezeigt ist, ist die Matrix F eine Matrix, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 im Basisgraphen umfasst, die Matrix F weist eine quasiorthogonale Struktur auf, Zeile 26 bis Zeile 40 in der Matrix F sind orthogonal und es gibt höchstens nur ein Nicht-Null-Element in jeder Spalte in zwei benachbarten Zeilen unter Zeile 26 bis Zeile 40.
  • Eine Kernmatrix in dem Basisgraphen 170a ist die gleiche wie die Kernmatrix in dem Basisgraphen 80a. Für die Untermatrix D bei jeder Coderate können Änderungen an einem oder zwei Nicht-Null-Elementen oder einem oder zwei Null-Elementen in jeder Zeile vorgenommen werden, ohne die Leistung der Untermatrix D zu beeinflussen.
  • Als ein anderes Beispiel kann, wenn mD > 20, eine Untermatrix, die die letzten 21 Zeilen in der Matrix F umfasst, das heißt, Zeile 25 bis Zeile 45 in der Matrix F und Spalte 0 bis Spalte 26 orthogonal sein. Insbesondere gibt es in der Matrix F höchstens nur ein Nicht-Null-Element in einer anderen Spalte als Spalten von eingebauten Punktierungsbits in zwei benachbarten Zeilen unter Zeile 0 bis Zeile 19 und es gibt höchstens nur ein Nicht-Null-Element in jeder von Spalte 0 bis Spalte 26 in zwei benachbarten Zeilen unter Zeile 20 bis Zeile 40. Eine Kernmatrix in dem in 11a gezeigten Basisgraphen 170a ist die gleiche wie die Kernmatrix in dem Basisgraphen 80a. Zeile 5 bis Zeile 45 erfüllen eine quasiorthogonale Struktur oder Zeile 5 bis Zeile 25 erfüllen eine quasiorthogonale Struktur und Zeile 25 bis Zeile 45 erfüllen eine quasiorthogonale Struktur.
  • Eine Kernmatrix in einem in 12 gezeigten Basisgraphen ist die gleiche wie die Kernmatrix in dem Basisgraphen 80a und Zeile 5 bis Zeile 45 in der Kernmatrix weist eine quasiorthogonale Struktur auf.
  • Eine Basismatrix 30c, die in der 3c-1 gezeigt ist, ist ein Beispiel einer Basismatrix des Basisgraphen 30a, der in 3a gezeigt ist. Ein Nicht-Null-Element in Zeile i und Spalte j in dem Basisgraphen 30a besitzt die gleiche Position in der Basismatrix 30c, und ein Wert des Nicht-Null-Elements ist ein Verschiebungswert Pi,j . Die Untermatrix D umfasst mD Zeilen in der Verschiebungsmatrix der Matrix F. Für Basismatrix 30c, die in 3c-1 gezeigt ist, ist mD=41, und mD kann aus verschiedenen Coderaten ausgewählt werden. Eine Verschiebungsmatrix entsprechend der Untermatrix D ist die Verschiebungsmatrix der Matrix F. Dabei wird die Verschiebungsmatrix der Matrix F durch Ersetzen eines Nicht-Null-Elements in Zeile i und Spalte j in der Matrix F mit dem Verschiebungswert Pi,j erlangt, und ein Nicht-Null-Element wird durch -1 oder Null in der Verschiebematrix dargestellt. Es ist zu beachten, dass hier nur Beispiele bereitgestellt werden, die Basisgraphen können 80a, 180a, oder dgl. sein, und die Basisgraphen sind nicht Eins-zu-Eins hier beschrieben.
  • In einer möglichen Implementierung kann die Verschiebungsmatrix der Matrix F Zeilen oder Spalten in einer der Matrizen 30c-1 bis 30c-10 umfassen, die in 3c-2 bis 3c-11 gezeigt sind. Zum Beispiel
    • wenn ein Hubfaktor Z einer von {16, 18, 20, 22, 24, 26, 28, 30} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-2 gezeigte Matrix 30c-1 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-1 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {32, 36, 40, 44, 48, 52, 56, 60} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-3 gezeigte Matrix 30c-2 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-2 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-4 gezeigte Matrix 30c-3 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-3 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-5 gezeigte Matrix 30c-4 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-4 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-6 gezeigte Matrix 30c-5 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-5 erhalten wird.
  • Eine Untermatrix D in der Basismatrix 30c wird durch mD Zeilen in jeder Verschiebungsmatrix der Matrix F ersetzt, um Basismatrizen zu erhalten, die unterschiedliche Coderaten haben und dem Basisgraphen 30a entsprechen. Wenn mD = 41 ist, wird eine Matrix, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 in der Basismatrix 30c umfasst, durch jede Verschiebungsmatrix der Matrix F ersetzt, um jede Basismatrix von 46 Zeilen und 68 Spalten zu erhalten, die dem Basisgraphen 30a entspricht. In diesem Fall ist eine Coderate 1/3.
  • In einer anderen möglichen Implementierung kann ein Hubfaktorsatz {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384} sein.
  • Wenn ein Hubfaktor Z einer von {24, 26, 28, 30} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-7 gezeigte Matrix 30c-6 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 30c-6 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {32, 36, 40, 44} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-8 gezeigte Matrix 30c-7 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 30c-7 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {48, 52, 56, 60} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-9 gezeigte Matrix 30c-8 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 30c-8 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-4 gezeigte Matrix 30c-3 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-3 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-5 gezeigte Matrix 30c-4 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-4 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-6 gezeigte Matrix 30c-5 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-5 erhalten wird.
  • Basierend auf den vorstehenden Implementierungen gibt es in einer anderen möglichen Implementierung mehr Auswahlmöglichkeiten für die Verschiebungsmatrix der Matrix F, um die Leistung weiter zu verbessern. Zum Beispiel kann die Verschiebungsmatrix der Matrix F die in 3c-10 gezeigte Matrix 30c-9 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-9 erhalten wird, oder die in 3c-11 gezeigte Matrix 30c-10 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-10 erhalten wird. Zum Beispiel kann ein Hubfaktor wie folgt entworfen werden:
  • Wenn der Hubfaktor Z einer von {24, 26, 28, 30} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-7 gezeigte Matrix 30c-6 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 30c-6 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-8 gezeigte Matrix 30c-7 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix erhalten wird; oder
    • wenn der Hubfaktor Z einer von {48, 52, 56, 60} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-9 gezeigte Matrix 30c-8 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 30c-8 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {64, 72, 80, 88} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-10 gezeigte Matrix 30c-9 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 30c-9 erhalten wird, oder die in 3c-11 gezeigte Matrix 30c-10 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-10 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {96, 104, 112, 120} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-4 gezeigte Matrix 30c-3 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 30c-3 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-5 gezeigte Matrix 30c-4 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-4 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann die Verschiebungsmatrix der Matrix F die in 3c-6 gezeigte Matrix 30c-5 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 30c-5 erhalten wird.
  • In einer weiteren möglichen Implementierung kann die Verschiebungsmatrix der Matrix F Zeilen oder Spalten in einer beliebigen der in 8c-2 bis 8c-10 gezeigten Matrizen 80c-1 bis 80c-9 umfassen. Zum Beispiel kann ein Hubfaktorsatz {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384} sein.
  • Wenn ein Hubfaktor Z einer von {24, 26, 28, 30} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-2 gezeigte Matrix 80c-1 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 80c-1 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {32, 36, 40, 44} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-3 gezeigte Matrix 80c-2 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 80c-2 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {48, 52, 56, 60} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-4 gezeigte Matrix 80c-3 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 80c-3 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {60, 64, 72, 80, 88, 96, 104, 112, 120} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-5 gezeigte Matrix 80c-4 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 80c-4 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-6 gezeigte Matrix 80c-5 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 80c-5 erhalten wird; oder
    • wenn ein Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-7 gezeigte Matrix 80c-6 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 80c-6 erhalten wird.
  • Basierend auf den vorstehenden Implementierungen können in einer anderen möglichen Implementierung Hubfaktoren Z mit einer feineren Granularität entworfen werden, um die Leistung weiter zu verbessern, so dass es mehr Auswahlmöglichkeiten für die Verschiebungsmatrix der Matrix F gibt. Zum Beispiel kann die Verschiebungsmatrix der Matrix F die Matrix 80c-7 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix erhalten wird, oder die Matrix 80c-8 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix erhalten wird. Zum Beispiel kann ein Hubfaktor wie folgt entworfen werden:
  • Wenn der Hubfaktor Z einer von {24, 26, 28, 30} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-2 gezeigte Matrix 80c-1 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 80c-1 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {32, 36, 40, 44} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-3 gezeigte Matrix 80c-2 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 80c-2 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {48, 52, 56, 60} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-4 gezeigte Matrix 80c-3 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 80c-3 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {64, 72, 80, 88} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-8 gezeigte Matrix 80c-7 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 80c-7 erhalten wird, oder die in 8c-9 gezeigte Matrix 80c-8 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 80c-8 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {96, 104, 112, 120} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-5 gezeigte Matrix 80c-4 oder eine Matrix sein, die durch Durchführen einer Zeilen/SpaltenPermutation an der Matrix 80c-4 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {128, 144, 160, 176, 192, 208, 224, 240} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-6 gezeigte Matrix 80c-5 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 80c-5 erhalten wird; oder
    • wenn der Hubfaktor Z einer von {256, 288, 320, 352, 384} ist, kann die Verschiebungsmatrix der Matrix F die in 8c-7 gezeigte Matrix 80c-6 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 80c-6 erhalten wird.
  • In einer weiteren möglichen Implementierung kann, wenn der Hubfaktor Z einer von 15, 30, 60, 120 oder 240 ist, die Verschiebungsmatrix der Matrix F die in 8c-10 gezeigte Matrix 80c-9 oder eine Matrix sein, die durch Durchführen einer Zeilen/Spalten-Permutation an der Matrix 80c-9 erhalten wird. Ferner ist, wenn Z größer oder gleich 24 ist, die Leistung der Verschiebungsmatrix der Matrix F relativ hoch, wenn die Verschiebungsmatrix 80c-9 ist.
  • Ebenso können Zeilen miteinander geschaltet werden und Spalten können auch miteinander in einer Basismatrix geschaltet werden. Wenn Zeilenpermutation und/oder Spaltenpermutation an einem Basisgraphen durchgeführt wird, wird dieselbe Permutation auch an einer entsprechenden Basismatrix durchgeführt.
  • Es kann gelernt werden, dass in den vorstehenden Implementierungen 80c-1 eine Basismatrix ist, die durch Durchführen einer Zeilenpermutation an der Basismatrix 30c-6 erhalten wird, 80c-2 eine Basismatrix ist, die durch Durchführen einer Zeilenpermutation an der Basismatrix 30c-7 erhalten wird, 80c-3 eine Basismatrix ist, die durch Durchführen einer Zeilenpermutation an der Basismatrix 30c-8 erhalten wird, 80c-4 eine Basismatrix ist, die durch Durchführen einer Zeilenpermutation an der Basismatrix 30c-3 erhalten wird, 80c-5 eine Basismatrix ist, die durch Durchführen einer Zeilenpermutation an der Basismatrix 30c-4 erhalten wird, 80c-6 eine Basismatrix ist, die durch Durchführen einer Zeilenpermutation an der Basismatrix 30c-5 erhalten wird, 80c-7 eine Basismatrix ist, die durch Durchführen einer Zeilenpermutation an der Basismatrix 30c-9 erhalten wird, und 80c-8 eine Basismatrix ist, die durch Durchführen einer Zeilenpermutation an der Basismatrix 30c-10 erhalten wird.
  • Eine Untermatrix D in einer Basismatrix 80c wird durch mD Zeilen in jeder Verschiebungsmatrix der Matrix F ersetzt, um Basismatrizen zu erhalten, die unterschiedliche Coderaten haben und dem Basisgraphen 80a entsprechen. Wenn mD = 41 ist, wird eine Matrix, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 in der Basismatrix 80c umfasst, durch jede Verschiebungsmatrix der Matrix F ersetzt, um jede Basismatrix von 46 Zeilen und 68 Spalten zu erhalten, die dem Basisgraphen 80a entspricht. In diesem Fall ist eine Coderate 1/3.
  • Es sei angemerkt, dass, da Zeilen miteinander geschaltet werden können und Spalten miteinander in einem Basisgraphen und einer Basismatrix geschaltet werden können, in einer möglichen Implementierung die Kernmatrix in dem Basisgraphen 30a als eine Kernmatrix in dem Basisgraphen verwendet werden kann, das heißt, ein Teil, der eine Untermatrix A und eine Untermatrix B umfasst, und eine Untermatrix D in dem Basisgraphen kann mD Zeilen in einer Matrix umfassen, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 in dem Basisgraphen 30a umfasst. Entsprechend kann eine Kernmatrix in der Basismatrix eine von 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 oder 30b-10 sein, und eine entsprechende Untermatrix D kann mD Zeilen in einer beliebigen der folgenden Matrizen umfassen: 30c-3, 30c-4, 30c-5, 30c-6, 30c-7, 30c-8, 30c-9 oder 30c-10. Die Kernmatrix und die entsprechende Untermatrix D können basierend auf einem Hubfaktor ausgewählt werden.
  • In einer anderen möglichen Implementierung kann die Kernmatrix im Basisgraphen 80a als eine Kernmatrix in einem Basisgraphen verwendet werden, das heißt, ein Teil, der eine Untermatrix A und eine Untermatrix B umfasst, und eine Untermatrix D im Basisgraphen kann mD Zeilen in einer Matrix umfassen, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 im Basisgraphen 80a umfasst. Entsprechend kann eine Kernmatrix in einer Basismatrix eine von 80b-1, 80b-2, 80b-3, 80b-4, 80b-5, 80b-6, 80b-7, 80b-8 oder 80b-9 sein, und eine entsprechende Untermatrix D kann mD Zeilen in einer der folgenden Matrizen umfassen: 80c-1, 80c-2, 80c-3, 80c-4, 80c-5, 80c-6, 80c-7, 80c-8 oder 80c-9. Die Kernmatrix und die entsprechende Untermatrix D können basierend auf einem Hubfaktor ausgewählt werden.
  • In einer anderen möglichen Implementierung kann die Kernmatrix im Basisgraphen 80a als eine Kernmatrix in einem Basisgraphen verwendet werden, das heißt, ein Teil, der eine Untermatrix A und eine Untermatrix B umfasst, und eine Untermatrix D im Basisgraphen kann mD Zeilen in einer Matrix umfassen, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 im Basisgraphen 170a umfasst, wie im Basisgraphen 170a gezeigt. Entsprechend kann eine Basismatrix mD Zeilen in Zeile 5 bis Zeile 45 und Zeile 0 bis Zeile 4 in einer Basismatrix 170b umfassen, die in 11b gezeigt ist.
  • In einer anderen möglichen Implementierung kann die Kernmatrix im Basisgraphen 80a als eine Kernmatrix in einem Basisgraphen verwendet werden, und eine Untermatrix D im Basisgraphen kann mD Zeilen in einer Matrix umfassen, die Zeile 5 bis Zeile 45 und Spalte 0 bis Spalte 26 im Basisgraphen umfasst, der in 12 gezeigt ist.
  • Es versteht sich, dass in dieser Anwendung die quasiorthogonale Struktur nicht nur auf zwei benachbarte Zeilen beschränkt ist, eine Matrix, die die quasiorthogonale Struktur erfüllt, kann so ausgelegt sein, dass sie mehrere Gruppen umfasst, jede Gruppe umfasst mindestens zwei Zeilen, zum Beispiel drei Zeilen oder vier Zeilen, und Zeilen, die in jeder Gruppe enthalten sind, sind quasiorthogonal.
  • In Leistungskurvendarstellungen, die in 4 und 5 gezeigt sind, gibt LD Basisgraphen PC 1 an, dass der LDPC-Code durch Codieren basierend auf Basismatrizen erhalten wird, die dem Basisgraphen 30a entsprechen, und LDPC 2 gibt einen gemeinsamen LDPC-Code zum Vergleich an. Eine horizontale Koordinate gibt eine Länge einer Informationsbitsequenz an, und eine Einheit der Länge ist Bit. Eine vertikale Koordinate ist ein Symbolsignal-Rausch-Verhältnis (Es/N0). Leistungskurven geben die Leistung eines Symbolsignal-Rausch-Verhältnisses für LDPC 1 und LDPC 2 in Fällen unterschiedlicher Informationsbitsequenzlängen an, wenn BLERs jeweils 0,01 und 0,0001 sind. Eine Coderate R ist in 4 8/9, und eine Coderate R ist in 5 1/3. Es kann gelernt werden, dass bei einer gleichen BLER ein Symbolsignal-Rausch-Verhältnis von LDPC 1 geringer ist als das von LDPC 2 in Fällen unterschiedlicher Informationsbitsequenzlängen, das heißt, die Leistung von LDPC 1 ist besser als die von LDPC 2.
  • In einem Codierverfahren, das in einer Ausführungsform der vorliegenden Anmeldung bereitgestellt wird, codiert ein Codierer eine Eingangssequenz unter Verwendung einer LDPC-Matrix. Ein Basisgraph der LDPC-Matrix kann ein beliebiger Basisgraph in den vorstehenden Beispielen sein, und eine Basismatrix HB der LDPC-Matrix kann eine beliebige Basismatrix in den vorstehenden Beispielen sein. Die Eingangssequenz des Codierers kann eine Informationsbitsequenz sein oder kann eine Informationsbitsequenz sein, die nach mindestens einer der folgenden Verarbeitungen erhalten wird: CRC-Anbringung oder Füllbiteinfügung.
  • Das Verfahren umfasst ferner: Bestimmen eines Hubfaktors Z. Ein Wert des Hubfaktors Z kann basierend auf einer Länge K der Eingangssequenz bestimmt werden. Manchmal wird die Informationsbitsequenz auch als ein Codeblock (Codeblock) bezeichnet und kann durch Durchführen einer Codeblockteilung an einem Transportblock erhalten werden. Wenn eine Länge der Informationsbitsequenz Kc ist, kann ein Minimalwert in Hubfaktoren, die 22 Z ≥ Kc erfüllen, aus mehreren Hubfaktoren bestimmt werden, die in dem System definiert sind. Wenn zum Beispiel Kc = 3800 und die in dem System definierten Hubfaktoren 16, 18, 20, 22, 24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352 und 384 umfassen, kann bestimmt werden, dass Z 176 ist. Es ist anzumerken, dass hier nur Beispiele bereitgestellt sind und die Beispiele keine Beschränkung darstellen.
  • In einer möglichen Ausgestaltung kann das Füllen an der Informationsbitsequenz durchgeführt werden, um die Eingangssequenz zu erhalten, sodass die Länge der Eingangssequenz K = Kb - Z ist, das heißt Z = K/Kb. Zum Beispiel können Werte von Füllbits Null, 0 oder andere im System vereinbarte Werte sein. Nach der Codierung können diese Füllbits identifiziert werden und werden nicht gesendet, was in der vorliegenden Anmeldung keine Beschränkung darstellt.
  • Dass der Codierer die Eingangssequenz unter Verwendung der LDPC-Matrix H codiert, kann das Codieren der Eingangssequenz unter Verwendung der LDPC-Matrix sein, die dem Hubfaktor Z entspricht.
  • In einer möglichen Implementierung ist die Eingangssequenz c = {c0, c1, c2, ..., cK-1}, eine Länge der Eingangssequenz c ist K und eine Ausgangssequenz, die erhalten wird, nachdem der Codierer die Eingangssequenz c codiert, ist d = {d0, d1, d2, ..., dN-1}. K ist eine ganze Zahl größer als 0 und K kann ein ganzzahliges Vielfaches des Hubfaktors Z sein.
  • Die Ausgabesequenz d umfasst K0 Bits in der Eingangssequenz c und Paritätbits in einer Paritätssequenz w, K0 eine ganze Zahl größer 0 und kleiner oder gleich K, eine Länge der Paritätssequenz w ist N-K0, und w={w0, w1, w2, ..., wN-K0-1}.
  • Die Paritätssequenz w und die Eingangssequenz c erfüllen Formel (1): H × [ c T w T ] = 0 T
    Figure DE202017007614U1_0004
    wobei
    cT = [c0, c1, c2, ..., cK-1]T, cT ein transponierter Vektor eines Vektors ist, der Bits in der Eingangssequenz beinhaltet, wT = [w0, w1, w2, ..., wN-K0-1]T, wT ein transponierter Vektor eines Vektors ist, der Bits in der Paritätssequenz beinhaltet, 0T ein Spaltenvektor ist und Werte aller Elemente von 0T sind 0.
  • H ist eine LDPC-Matrix, die gemäß einem beliebigen in den vorstehenden Ausführungsformen beschriebenen Basisgraphen erhalten wird, und ein Basisgraph von H weist m Zeilen und n Spalten auf und kann ein beliebiger in den vorstehenden Ausführungsformen beschriebener Basisgraph sein, zum Beispiel 30a, 80a, 170a und der in 12 gezeigte Basisgraph.
  • In einer Ausgestaltung umfasst der Basisgraph von H p Spalten von eingebauten Punktierungsbits, p ist eine ganze Zahl größer oder gleich 0, Informationsbits, die den p Spalten von eingebauten Punktierungsbits entsprechen, werden nicht ausgegeben und die Ausgangssequenz umfasst nicht die Informationsbits, die den p Spalten von eingebauten Punktierungsbits entsprechen. In diesem Fall ist K0 = K - p·Z. Wenn zum Beispiel p = 2, ist K0 = K - 2·Z und die Länge der Paritätssequenz w ist N + 2·Z - K. Wenn die p Spalten von eingebauten Punktierungsbits an der Codierung teilnehmen, ist K0 = K und die Länge der Paritätssequenz w ist N - K.
  • Demzufolge kann H M Reihen und (N + p·Z) Spalten oder M Reihen und N Spalten aufweisen, und der Basisgraph von H weist M/Z Reihen und ( N + p Z ) Z
    Figure DE202017007614U1_0005
    Spalten auf.
  • Der Basisgraph der LDPC-Matrix H kann dargestellt werden durch [HBG HBG,EXT], H B G , E X T = [ 0 m c × n c I n c × n c ] ,  0 m c × n c
    Figure DE202017007614U1_0006
    stellt eine Nicht-Null-Matrix der Größe mc×nc, und Incc×nc stellt eine Identitätsmatrix der Größe nc×nc dar.
  • In einer möglichen Ausgestaltung, wenn 0mc×nc eine Untermatrix C in dem Basisgraphen der vorhergehenden Ausführungsformen ist, und Inc×nc eine Untermatrix E in den vorhergehenden Ausführungsformen ist, dann H B G = [ [ A   B ] D ] ,
    Figure DE202017007614U1_0007
    wobei A, B, und D jeweils die Untermatrix A, die Untermatrix B, und die Untermatrix D in dem Basisgraphen der vorhergehenden Ausführungsformen ist, mc=5, 0≤nc≤41, ein Reihenzähler von HBG kleiner oder gleich 46 und größer oder gleich 5 ist, und ein Spaltenzählwert von HBG gleich 27 ist.
  • In einer möglichen Ausgestaltung, da Spalte 26 eine Gewicht-1 Matrixspalte ist, und ein Nicht-Null-Element in Spalte 26 sich in der Reihe 5 befindet, kann 0mc×nc auch die ersten drei Reihen in Spalte 26 in dem Basisgraphen in den vorhergehenden Ausführungsformen und die ersten vier Reihen in der Untermatrix C in den vorhergehenden Ausführungsformen umfassen, und Inc×nc kann auch die Untermatrix E in dem Basisgraphen in den vorhergehenden Ausführungsformen, Reihe 5 bis Reihe 46 in Spalte 26, und wenigstens eine Reihe in der Untermatrix C umfassen, wobei mc=4, 0≤nc≤42, HBG eine Matrix ist, welche erhalten wird, nachdem eine letzte Spalte von einem Teil entfernt ist, welcher die Untermatrix A, die Untermatrix B, und die Untermatrix D in dem Basisgraphen in den vorhergehenden Ausführungsformen umfasst, ein Spaltenzählwert von HBG kleiner oder gleich 46 und größer oder gleich 5 ist, und ein Spaltenzählwert von HBG gleich 26 ist. Optional, wenn eine Coderate weiter erhöht werden muss, kann HBG vier Reihen aufweisen: Reihe 0 bis Reihe 3.
  • Entsprechend kann die LDPC-Matrix H durch H = [H1 H2] dargestellt werden.
  • H1 kann erhalten werden, nachdem jedes Nullelement in HBG durch eine Nullmatrix der Größe Z*Z ersetzt wird und jedes Nicht-Null-Element durch eine Kreispermutationsmatrix hi,j der Größe Z·Z ersetzt wird. Die Kreispermutationsmatrix hi,j wird durch kreisförmiges Verschieben der Identitätsmatrix der Größe Z*Z auf das richtige Pi,j-fache erhalten und wird manchmal durch I(Pi,j) dargestellt, wobei i ein Zeilenindex ist und j ein Spaltenindex ist. In einer möglichen Ausgestaltung ist Pi,j = mod(Vi,j, Z) und Vi,j ist ein Nicht-Null-Element in Zeile i und Spalte j in einer Basismatrix, die einem Hubfaktorsatzindex entspricht, der Z entspricht.
  • H2 kann erhalten werden, nachdem jedes Nullelement in HBG,EXT durch eine Nullmatrix von Z*Z ersetzt wird und jedes Nicht-Null-Element durch eine Identitätsmatrix von Z*Z ersetzt wird.
  • Der Codierer kann das Codieren und Ausgeben auf mehrere Weisen durchführen. Ein beliebiges des in 12 gezeigten Basisgraphen, des Basisgraphen 80a oder des Basisgraphen 170a, das in der vorstehenden Ausführungsform beschrieben wird, wird als Beispiel für die nachfolgende Beschreibung verwendet. Der Basisgraph weist höchstens 46 Zeilen und höchstens 68 Spalten auf und umfasst zwei Spalten von eingebauten Punktierungsbits. Zur einfacheren Beschreibung wird ein Basisgraph, das die meisten Zeilen und die meisten Spalten aufweist, manchmal in der vorliegenden Anmeldung als ein vollständiger Basisgraph bezeichnet.
  • Weise 1:
  • Das Codieren wird basierend auf dem vollständigen Basisgraphen durchgeführt, so dass so viele Paritätsbits wie möglich erhalten werden können. In diesem Fall ist m = 46 und n = 68, die Zeile 0 bis Zeile 45 und Spalte 0 bis Spalte 67 in einem beliebigen des vorstehenden Basisgraphen entsprechen.
  • Entsprechend ist M = 46-Z für die LDPC-Matrix H. Wenn die Ausgangssequenz die Informationsbits umfasst, die den Spalten von eingebauten Punktierungsbits entsprechen, ist N = 68-Z; oder wenn die Ausgangssequenz nicht die 2-Z Informationsbits umfasst, die den Spalten von eingebauten Punktierungsbits entsprechen, ist N = 66-Z.
  • Während der nachfolgenden Verarbeitung können ein oder mehrere Informationsbits und ein oder mehrere Paritätsbits, die gesendet werden müssen, aus der durch den Codierer erzeugten Ausgangssequenz bestimmt werden.
  • Weise 2:
  • Das Codieren wird basierend auf einigen Zeilen und einigen Spalten in dem vollständigen Basisgraphen durchgeführt. Eine Zeile und eine Spalte können basierend auf einer Coderate, die gesendet werden muss, oder einer Menge von Informationsbits und einer Menge von Paritätsbits oder dergleichen aus dem vollständigen Basisgraphen zum Codieren ausgewählt werden.
  • Zum Beispiel ist die Coderate 8/9, m = 5 und n = 27, das heißt, das Codieren wird basierend auf Zeile 0 bis Zeile 4 und Spalte 0 bis Spalte 26 in einem der vorstehenden Basisgraphen durchgeführt.
  • Entsprechend ist M = 5-Z für die LDPC-Matrix H. Wenn die Ausgangssequenz die Informationsbits umfasst, die den Spalten von eingebauten Punktierungsbits entsprechen, ist N = 27-Z; oder wenn die Ausgangssequenz nicht die Informationsbits umfasst, die den Spalten von eingebauten Punktierungsbits entsprechen, ist N = 25-Z.
  • Für ein anderes Beispiel ist die Coderate 1/3, m = 46 und n = 68.
  • Es kann gelernt werden, dass auf diese Weise die Größe des Basisgraphen von H 5 ≤ m ≤ 46 und 27 ≤ n ≤ 68 erfüllt, und entsprechend für die LDPC-Matrix H 5-Z ≤ M ≤ 46-Z und 27-Z =5 N ≤ 68-Z.
  • In einer möglichen Ausgestaltung ist die 26. Spalte in einem beliebigen oben beschriebenen Basisgraphen eine Gewicht-1-Matrixspalte, und die Punktierung kann an der Gewicht-1-Matrixspalte in der Kernmatrix durchgeführt werden, so dass die Kernmatrix um eine Zeile und eine Spalte entsprechend verringert wird, und m = 4 und n = 26, das heißt das Codieren wird basierend auf Zeile 0 bis Zeile 3 und Spalte 0 bis Spalte 25 in einem beliebigen oben beschriebenen Basisgraphen durchgeführt. Eine höhere Coderate kann auf diese Weise erhalten werden. Daher erfüllt die Größe des Basisgraphen 4 =5 m =5 46 und 26 =5 n ≤ 68, und entsprechend für die LDPC-Matrix H4-Z ≤ M ≤ 46-Z und 26-Z ≤ N ≤ 68-Z.
  • In den vorstehenden Implementierungen kann die Basismatrix HB der LDPC-Matrix H eine beliebige in den vorstehenden Ausführungsformen beschriebene Basismatrix oder eine Basismatrix sein, die durch Durchführen von Zeilenpermutation oder Spaltenpermutation oder Zeilenpermutation und Spaltenpermutation an einer beliebigen oben beschriebenen Basismatrix erhalten wird. Ein Basisgraph der Basismatrix HB umfasst mindestens eine Untermatrix A und eine Untermatrix B und kann ferner eine Untermatrix C, eine Untermatrix D und eine Untermatrix E umfassen. Für die Untermatrizen wird auf die Beschreibungen in den vorstehenden Ausführungsformen verwiesen, und Details werden hier nicht erneut beschrieben. Sicherlich kann die Basismatrix HB eine andere Basismatrix sein, deren Basisgraph mit dem in den vorstehenden Ausführungsformen gezeigten Basisgraphen übereinstimmt, und die Basismatrix HB ist in der vorliegenden Anmeldung nicht darauf beschränkt.
  • In einer möglichen Implementierung kann eine Basismatrix HB eines LDPC-Codes in einem Speicher gespeichert werden, und der Codierer erhält eine LDPC-Matrix, die einem Hubfaktor Z entspricht, um die Eingangssequenz zu codieren.
  • In einer anderen möglichen Implementierung kann, da es mehrere Basismatrizen HB eines LDPC-Codes gibt und relativ großer Speicherplatz belegt ist, wenn die Basismatrizen HB basierend auf einer Matrixstruktur gespeichert werden, ein Basisgraph des LDPC-Codes in einem Speicher gespeichert werden, Verschiebungswerte von Nicht-Null-Elementen in jeder Basismatrix können zeilenweise oder spaltenweise gespeichert werden, und dann kann eine LDPC-Matrix basierend auf dem Basisgraphen und einem Verschiebungswert in einer Basismatrix, der einem Hubfaktor Z entspricht, erhalten werden.
  • Der Basisgraph kann eine Position des Nicht-Null-Elements in jeder Basismatrix angeben. In einer anderen möglichen Implementierung kann das Speichern eines Basisgraphen das Speichern einer Position eines Nicht-Null-Elements in dem Basisgraphen sein. Die Position des Nicht-Null-Elements kann durch eine Zeile und eine Spalte angegeben werden, in denen sich das Nicht-Null-Element befindet, zum Beispiel eine Position einer Spalte, in der sich ein Nicht-Null-Element in jeder Zeile befindet, oder eine Position einer Zeile, in der sich ein Nicht-Null-Element in jeder Spalte befindet. In einer anderen möglichen Implementierung kann das Speichern eines Basisgraphen das Speichern einer Position eines Nullelements in dem Basisgraphen sein. Ebenso kann die Position des Nullelements auch durch eine Zeile und eine Spalte angegeben werden, in denen sich das Nullelement befindet, zum Beispiel eine Position einer Spalte, in der sich ein Nullelement in jeder Zeile befindet, oder eine Position einer Zeile, in der sich ein Nullelement in jeder Spalte befindet, und eine entsprechende Position eines Nicht-Null-Elements kann durch Ausschließen der Position des Nullelements erhalten werden. Es ist anzumerken, dass hier nur Beispiele bereitgestellt sind und die Beispiele in der vorliegenden Anmeldung keine Beschränkung darstellen.
  • In einem Entwurf können Parameter, die sich auf einen Basisgraphen oder eine Basismatrix beziehen, in einer Tabelle ausgedrückt werden. Zum Beispiel können verwandte Parameter oder Tabellen in einem oder mehreren Speichern gespeichert werden. Verwandte Parameter, wie etwa ein Zeilenindex eines Basisgraphen oder einer Basismatrix oder eine Spalte, in der sich ein Nicht-Null-Element befindet, werden aus dem Speicher gelesen, um den Basisgraphen oder die Basismatrix zu erhalten. Optional können ferner ein Gewicht jeder Zeile und ein Verschiebungswert eines Nicht-Null-Elements in jeder Zeile gespeichert werden.
  • 11a wird als Beispiel für die nachfolgende Beschreibung verwendet. Für einen anderen Basisgraphen oder eine andere Basismatrix, die in dieser Anmeldung bereitgestellt wird, wird auf ähnliche Entwürfe verwiesen.
  • Zum Beispiel kann die Kernmatrix in dem Basisgraphen 80a, dem Basisgraphen 170a oder dem in 12 gezeigten Basisgraphen in Tabelle 3 ausgedrückt werden. Tabelle 3
    Zeilenindex (Zeilenindex) Zeilengewicht (Zeilengrad/Zeilen gewicht) Spaltenindizes von Nicht-Null-Elementen in Zeile (Spaltenposition von Nicht-Null-Elementen in Zeile)
    0 19 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23
    1 19 0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 24
    2 19 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 25
    3 19 0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 25
    4 3 0, 1, 26
  • Zum Beispiel kann ein Basisgraph einer LDPC-Matrix einen in Tabelle 3 gezeigten Kernmatrixteil umfassen. Ein weiterer Teil des Basisgraphen der LDPC-Matrix kann in dem Basisgraphen 80a, dem Basisgraphen 170a oder dem in 12 gezeigten Basisgraphen oder einer anderen in dieser Anmeldung beschriebenen Struktur oder einer anderen Matrixstruktur gezeigt sein, und dies ist in dieser Anmeldung nicht beschränkt.
  • Der Basisgraph 170a wird als ein anderes Beispiel verwendet. Parameter, die sich auf die ersten 24 Zeilen im Basisgraphen beziehen, können in Tabelle 4 gezeigt werden. Parameter, die sich auf andere Zeilen beziehen, sind ähnlich und sind in Tabelle 4 aufgrund der Platzbeschränkung nicht aufgeführt. Tabelle 4
    Zeilenindex Zeilengewicht Spaltenindizes von Nicht-Null-Elementen in Zeile
    0 19 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23
    1 19 0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 24
    2 19 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 25
    3 19 0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 25
    4 3 0, 1, 26
    5 8 0, 1, 3, 12, 16, 21, 22, 27
    6 9 0, 6, 10, 11, 13, 17, 18, 20, 28
    7 7 0, 1, 4, 7, 8, 14, 29
    8 10 0, 1, 3, 12, 16, 19, 21, 22, 24, 30
    9 9 0, 1, 10, 11, 13, 17, 18, 20, 31
    10 7 1, 2, 4, 7, 8, 14, 32
    11 8 0, 1, 12, 16, 21, 22, 23, 33
    12 7 0,1,10,11,13,18,34
    13 6 0, 3, 7, 20, 23, 35
    14 7 0, 12, 15, 16, 17, 21, 36
    15 7 0, 1, 10, 13, 18, 25, 37
    16 6 1, 3, 11, 20, 22, 38
    17 6 0, 14, 16, 17, 21, 39
    18 6 1, 12, 13, 18, 19, 40
    19 6 0,1,7,8,10,41
    20 6 0, 3, 9, 11, 22, 42
    21 6 1, 5, 16, 20, 21, 43
    22 5 0, 12, 13, 17,44
    23 5 1, 2, 10, 18, 45
    ... ... ...
  • Es ist anzumerken, dass hier nur Beispiele bereitgestellt sind und die Beispiele keine Beschränkung darstellen. Verwandte Parameter eines anderen Basisgraphen oder einer anderen Basismatrix, die in dieser Anmeldung bereitgestellt sind, können auch in einer ähnlichen Tabelle ausgedrückt werden. Es versteht sich, dass der Basisgraph 170a, Tabelle 3 und Tabelle 4 dazu dienen sollen, den Entwurf des Basisgraphen und der Basismatrix zu verstehen. Eine Darstellungsform ist nicht nur auf den Basisgraphen 170a oder eine Darstellungsform in Tabelle 3 oder Tabelle 4 beschränkt. Eine andere mögliche Variation kann enthalten sein.
  • In einer Implementierung können ein Spaltenindex, ein Spaltengewicht und eine Zeile, in der sich ein Nicht-Null-Element befindet, oder eine Zeile, in der sich ein Null-Element befindet, zum Beispiel eine Form in Tabelle 5 verwendet werden. Tabelle 5
    Spaltenindex Spaltengewicht Zeilenindizes von Nicht-Null-Elementen in Spalte
    0 5 0, 1, 2, 3,4
    1 4 0, 2, 3, 4,
    2 3 0, 1, 2
    3 3 0, 1, 3
    4 3 1,2,3
    5 3 0, 1, 2
    6 3 0,2,3
    7 3 1,2,3
    8 3 1,2,3
    9 3 0, 1, 2
    10 3 0,2,3
    11 3 0, 1, 3
    12 3 0, 1, 3
    13 3 0,2,3
    14 3 1,2,3
    15 3 0, 1, 2
    16 3 0, 1, 3
    17 3 1,2,3
    18 3 0,2,3
    19 3 0, 1, 2
    20 3 0,2,3
    21 3 0, 1, 3
    22 3 0, 1, 3
    23 2 0, 1
    24 2 1,2
    25 2 2,3
    26 1 4
  • In einer Implementierung kann der Parameter „Zeilengewicht“ oder „Spaltengewicht“ in Tabelle 3, Tabelle 4 oder Tabelle 5 weggelassen werden. Eine Menge von Nicht-Null-Elementen in einer Zeile oder einer Spalte kann aus einer Spalte oder einer Zeile gelernt werden, in der sich ein Nicht-Null-Element in der Zeile oder der Spalte befindet. Daher wird auch ein Zeilengewicht oder ein Spaltengewicht gelernt.
  • In einer Implementierung können Parameterwerte in „Spaltenindizes von Nicht-Null-Elementen in Zeile“ in Tabelle 3 oder Tabelle 4 oder Parameterwerte in „Zeilenindizes von Nicht-Null-Elementen in Spalte“ in Tabelle 5 nicht in aufsteigender Reihenfolge sortiert werden, vorausgesetzt, dass eine Spalte, in der sich ein Nicht-Null-Element befindet, oder eine Zeile, in der sich ein Nicht-Null-Element befindet, in den Parameterwerten abgerufen werden kann.
  • In einer Implementierung kann Tabelle 3 oder Tabelle 4 ferner eine Spalte von „Verschiebungswerten von Nicht-Null-Elementen“ enthalten, und Parameterwerte in der Spalte von „Verschiebungswerten von Nicht-Null-Elementen“ stehen in einer Eins-zu-Eins-Entsprechung mit Parameterwerten in „Spaltenindizes von Nicht-Null-Elementen in Zeile“. Tabelle 5 kann ferner eine Spalte von „Verschiebungswerten von Nicht-Null-Elementen“ enthalten, und Parameterwerte in der Spalte von „Verschiebungswerten von Nicht-Null-Elementen“ stehen in einer Eins-zu-Eins-Entsprechung mit Parameterwerten in „Zeilenindizes von Nicht-Null-Elementen in Spalte“.
  • In einer Ausgestaltung kann, um Speicherplatz zu sparen, eine Position eines Nicht-Null-Elements in einem Teil mit einer relativ festen Struktur in einem Basisgraphen basierend auf einem Zeilenindex oder einem Spaltenindex berechnet werden, ohne dass die Position gespeichert wird. Zum Beispiel ist eine Untermatrix E eine diagonale Matrix und umfasst Nicht-Null-Element(e) nur auf einer Diagonalen der Matrix. Eine Position einer Spalte, in der sich ein Nicht-Null-Element in der Untermatrix E befindet, kann basierend auf einem Zeilenindex berechnet werden, oder eine Position einer Zeile, in der sich ein Nicht-Null-Element befindet, kann basierend auf einem Spaltenindex berechnet werden. In einem Beispiel eines beliebigen des Basisgraphen 80a, des Basisgraphen 170a oder des Basisgraphen in 12 ist ein Spaltenindex eines Nicht-Null-Elements in Zeile me me + Kb, wobei me ≥ 4 und Kb = 22. Zum Beispiel ist eine Spalte, in der sich ein Nicht-Null-Element in Zeile 7 befindet, Spalte 29. Für ein anderes Beispiel befindet sich eine bidiagonale Struktur B' in einer Untermatrix B in Zeile 0 bis Zeile 3 und Spalte 23 bis Spalte 25 in einem beliebigen des Basisgraphen 80a, des Basisgraphen 170a oder des in 12 gezeigten Basisgraphen. Ein Spaltenindex einer Spalte, in der sich ein Nicht-Null-Element in der bidiagonalen Struktur B' befindet, kann basierend auf einem Zeilenindex berechnet werden, oder ein Zeilenindex einer Zeile, in der sich ein Nicht-Null-Element befindet, kann basierend auf einem Spaltenindex berechnet werden. Positionen von Nicht-Null-Elementen in Zeile mB umfassen Spalte mB + Kb und Spalte mB + Kb + 1, wobei 0 < mB < 3. Eine Position eines Nicht-Null-Elements in Zeile mB ist Spalte mB + Kb, wobei mB = 0 oder mB = 3. Für ein anderes Beispiel ist für eine Gewicht-1-Matrixspalte in einer Untermatrix B, das heißt Spalte 26 in einem beliebigen des Basisgraphen 80a, des Basisgraphen 170a oder des Basisgraphen in 12, eine Position eines Nicht-Null-Elements in Zeile mB Spalte mB + Kb, wobei mB = 4.
  • Tabelle 6 zeigt Parameter, die sich auf die Zeilen in 12 beziehen. Positionen von Spalten, in denen sich Nicht-Null-Elemente in Spalte 0 bis Spalte 25 befinden, können gespeichert werden, wohingegen Positionen von Spalten, in denen sich Nicht-Null-Elemente in Spalte 26 bis Spalte 68 befinden, nicht gespeichert werden, das heißt Spalten, in denen sich Nicht-Null-Elemente in Gewicht-1-Matrixspalten in der Untermatrix E und der Untermatrix B befinden, werden nicht gespeichert. Tabelle 6 kann verwendet werden, um HBG darzustellen, dessen Spaltenindex 26 ist. Tabelle 6
    Zeilenindex Zeilengewicht Spaltenindizes von Nicht-Null-Elementen in Zeile
    0 19 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23
    1 19 0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 24
    2 19 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 25
    3 19 0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 25
    4 2 0, 1
    5 7 0, 1, 3, 12, 16, 21, 22
    6 8 0, 6, 10, 11, 13, 17, 18, 20
    7 6 0, 1, 4, 7, 8, 14
    8 9 0, 1, 3, 12, 16, 19, 21, 22, 24
    9 8 0, 1, 10, 11, 13, 17, 18, 20
    10 6 1, 2, 4, 7, 8, 14
    11 7 0, 1, 12, 16, 21, 22, 23
    12 6 0, 1, 10,11, 13, 18
    13 5 0, 3, 7, 20, 23
    14 6 0, 12, 15, 16, 17, 21
    15 6 0, 1, 10, 13, 18, 25
    16 5 1, 3, 11, 20, 22
    17 5 0, 14, 16, 17, 21
    18 5 1, 12,13, 18, 19
    19 5 0, 1, 7, 8, 10
    20 5 0, 3, 9, 11, 22
    21 5 1, 5, 16, 20, 21
    22 4 0,12,13,17
    23 4 1, 2, 10, 18
    24 5 0, 3, 4, 11, 22
    25 4 1, 6, 7, 14
    26 4 0, 2, 4, 15
    27 3 1,6,8
    28 4 0,4,19,21
    29 4 1,14,18,25
    30 4 0, 10, 13, 24
    31 4 1, 7, 22, 25
    32 4 0, 12, 14, 24
    33 4 1,2,11,21
    34 4 0, 7, 15, 17
    35 4 1,6,12,22
    36 4 0, 14, 15, 18
    37 3 1,13,23
    38 4 0, 9, 10, 12
    39 4 1, 3, 7, 19
    40 3 0,8, 17
    41 4 1,3,9,18
    42 3 0, 4, 24
    43 4 1,16,18,25
    44 4 0, 7, 9, 22
    45 3 1, 6, 10
  • Tabelle 7 zeigt Parameter, die sich auf die Zeilen in 12 beziehen. Positionen von Spalten, in denen sich Nicht-Null-Elemente in Spalte 0 bis Spalte 26 befinden, können gespeichert werden, wohingegen Positionen von Spalten, in denen sich Nicht-Null-Elemente in Spalte 27 bis Spalte 68 befinden, nicht gespeichert werden, das heißt Spalten, in denen sich Nicht-Null-Elemente in der Untermatrix E befinden, werden nicht gespeichert. Tabelle 7 kann verwendet werden, um HBG darzustellen, dessen Spaltenindex 27 ist. Tabelle 7
    Zeilenindex Zeilengewicht Spaltenindizes von Nicht-Null-Elementen in Zeile
    0 19 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23
    1 19 0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 24
    2 19 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 25
    3 19 0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 25
    4 3 0, 1, 26
    5 7 0, 1, 3, 12, 16, 21, 22
    6 8 0, 6, 10, 11, 13, 17, 18, 20
    7 6 0, 1, 4, 7, 8, 14
    8 9 0, 1, 3, 12, 16, 19, 21, 22, 24
    9 8 0, 1, 10, 11, 13, 17, 18, 20
    10 6 1, 2, 4, 7, 8, 14
    11 7 0, 1, 12, 16, 21, 22, 23
    12 6 0, 1, 10,11, 13, 18
    13 5 0, 3, 7, 20, 23
    14 6 0, 12, 15, 16, 17, 21
    15 6 0, 1, 10, 13, 18, 25
    16 5 1, 3, 11, 20, 22
    17 5 0, 14, 16, 17, 21
    18 5 1, 12,13, 18, 19
    19 5 0, 1, 7, 8, 10
    20 5 0, 3, 9, 11, 22
    21 5 1,5,16,20,21
    22 4 0,12,13,17
    23 4 1,2,10,18
    24 5 0,3,4,11,22
    25 4 1, 6, 7, 14
    26 4 0, 2, 4, 15
    27 3 1,6,8
    28 4 0,4,19,21
    29 4 1,14,18,25
    30 4 0,10,13,24
    31 4 1, 7, 22, 25
    32 4 0,12,14,24
    33 4 1,2,11,21
    34 4 0, 7, 15, 17
    35 4 1, 6, 12,22
    36 4 0, 14, 15, 18
    37 3 1,13,23
    38 4 0, 9, 10, 12
    39 4 1, 3, 7, 19
    40 3 0,8, 17
    41 4 1,3,9,18
    42 3 0, 4, 24
    43 4 1,16,18,25
    44 4 0, 7, 9, 22
    45 3 1, 6, 10
  • In den vorstehenden Ausgestaltungen ist die Spalte „Zeilengewicht“ optional. In einer möglichen Ausgestaltung können 1 und 0 in jeder Zeile oder jeder Spalte in einem Basisgraphen als Binärziffern betrachtet werden, und das Speichern der Binärziffern in Dezimalziffern oder Hexadezimalziffern kann Speicherplatz sparen. Ein beliebiger der vorstehenden Basisgraphen wird als Beispiel verwendet. Positionen von Nicht-Null-Elementen in den ersten 26 Spalten oder den ersten 27 Spalten können in vier Hexadezimalziffern in jeder Zeile gespeichert werden. Wenn beispielsweise die ersten 26 Spalten in Zeile 0 11110110 01111101 10111111 00 sind, können Positionen von Nicht-Null-Elementen in Zeile 0 als 0xF6, 0x7D, 0xBF und 0x00 bezeichnet werden. Insbesondere bilden alle acht Spalten eine Hexadezimalziffer. 0 kann für die letzten zwei oder drei Spalten gefüllt werden, um acht Ziffern zu erhalten, so dass eine entsprechende Hexadezimalziffer erhalten wird. Dasselbe gilt für eine andere Zeile, und Details werden hier nicht erneut beschrieben.
  • Wenn die Informationsbitsequenz codiert werden soll, kann die Basismatrix HB basierend auf Z angehoben werden, um die LDPC-Matrix H zu erhalten, die zum Codieren verwendet wird. Eine Kreispermutationsmatrix hi,j der Größe Z*Z wird für jedes Nicht-Null-Element mit Pi,j in der Basismatrix HB bestimmt, wobei hi,j eine Kreispermutationsmatrix ist, die durch kreisförmiges Verschieben einer Identitätsmatrix Pi,j-fache erhalten wird. Ein Nicht-Null-Element mit Pi,j wird durch hi,j ersetzt, und ein Nullelement in der Basismatrix HB wird durch eine Nullmatrix der Größe Z*Z ersetzt, um die Paritätsprüfmatrix H zu erhalten.
  • In einer möglichen Ausgestaltung kann für den Hubfaktor Z Pi,j eines Elements in Zeile i und Spalte j in der Basismatrix HB eine in (2) gezeigte Beziehung erfüllen: P i , j = { 1 V i , j = 1 mod ( V i , j ,   Z ) V i , j 0
    Figure DE202017007614U1_0008
    wobei
    Vi,j ein Verschiebungswert eines Elements in Zeile i und Spalte j in einer Basismatrix eines Satzes von Hubfaktoren, der den Hubfaktor Z umfasst, oder ein Verschiebungswert eines Nicht-Null-Elements in Zeile i und Spalte j in einer Basismatrix sein kann, die einem maximalen Hubfaktor in einem Satz von Hubfaktoren entspricht, der den Hubfaktor Z umfasst.
  • Eine Entsprechung zwischen einem Basismatrixindex und einem Satz von Hubfaktoren Z, die in Tabelle 2 gezeigt ist, wird als Beispiel verwendet. Z = 13 und Pi,j eines Elements in Zeile i und Spalte j in einer Basismatrix von Z erfüllt (2).
  • Vi,j ist ein Verschiebungswert eines Nicht-Null-Elements in Zeile i und Spalte j in einer Basismatrix, die durch PCM 7 angegeben ist. Für Z = 13 wird eine Modulo-Operation durchgeführt, indem der Verschiebungswert Vi,j modulo Z genommen wird, wobei Z = 13 und Vi,j ein Verschiebungswert des Nicht-Null-Elements in Zeile i und Spalte j in der Basismatrix ist, die durch PCM 7 angegeben ist.
  • Es ist anzumerken, dass hier nur Beispiele bereitgestellt sind und die Beispiele in der vorliegenden Anmeldung keine Beschränkung darstellen.
  • Der Basisgraph 80a oder der Basisgraph 170a wird als ein Beispiel verwendet. Nachdem eine Basismatrix HB bestimmt ist, können ein oder mehrere Paritätsbits, die Spalte 22 bis Spalte 25 in der Basismatrix entsprechen, zuerst unter Verwendung der Eingangssequenz und Zeile 0 bis Zeile 3 und Spalte 0 bis Spalte 25, das heißt, Hcore-dual, erhalten werden, ein oder mehrere Paritätsbits, die Spalte 26 entsprechen, das heißt, eine Gewicht-1-Matrixspalte, können basierend auf der Eingangssequenz und einem oder mehreren Paritätsbits, die Hcore-dual entsprechen, erhalten werden, und dann kann das Codieren basierend auf der Eingangssequenz, dem einen oder den mehreren Paritätsbits, die Spalte 22 bis Spalte 26 entsprechen, und einer Untermatrix D durchgeführt werden, um ein oder mehrere Paritätsbits zu erhalten, die einer Untermatrix E entsprechen. Auf diese Weise ist das Codieren abgeschlossen. Für einen Codierungsprozess eines LDPC-Codes wird auf die Beschreibungen in den vorstehenden Implementierungen verwiesen, und Details werden hier nicht erneut beschrieben.
  • Im Kommunikationssystem kann der LDPC-Code erhalten werden, nachdem eine Codierung in dem vorstehenden Verfahren durchgeführt wurde. Nachdem der LDPC-Code erhalten wurde, kann eine Kommunikationsvorrichtung ferner eine oder mehrere der folgenden Operationen durchführen: Durchführen einer Ratenanpassung an dem LDPC-Code; Durchführen, basierend auf einem Verschachtelungsschema, eines Verschachtelns an einem LDPC-Code, der nach der Ratenanpassung erhalten wurde; Modulieren, basierend auf einem Modulationsschema, eines LDPC-Codes, der nach dem Verschachteln erhalten wurde, um eine Bitsequenz X zu erhalten; oder Senden der Bitsequenz X.
  • In einem Decodierverfahren, das in einer anderen Ausführungsform der vorliegenden Anmeldung bereitgestellt wird, decodiert ein Decodierer eine Eingangssequenz unter Verwendung einer LDPC-Matrix. Ein Basisgraph der LDPC-Matrix kann ein beliebiger Basisgraph in den vorstehenden Beispielen sein, und eine Basismatrix HB der LDPC-Matrix kann eine beliebige Basismatrix in den vorstehenden Beispielen sein. Die Eingangssequenz des Decodierers kann eine Sequenz von weichen Werten eines LDPC-Codes sein.
  • Das Verfahren umfasst ferner: Bestimmen eines Hubfaktors Z. Eine Kommunikationsvorrichtung an einer Empfangsseite kann ein Signal empfangen, das einen LDPC-Code umfasst, eine Sequenz von weichen Werten des LDPC-Codes in dem Signal erhalten und den entsprechenden Hubfaktor Z bestimmen.
  • Dass der Decodierer die Eingangssequenz unter Verwendung der LDPC-Matrix H decodiert, kann das Decodieren der Sequenz von weichen Werten des LDPC-Codes unter Verwendung einer LDPC-Matrix H sein, die dem Hubfaktor Z entspricht.
  • Da das Decodieren ein inverser Prozess des Codierens ist, wird für Beschreibungen der LDPC-Matrix H und des Basisgraphen der LDPC-Matrix H auf die vorstehende Codierausführungsform verwiesen. Das Decodieren kann basierend auf einem vollständigen Basisgraphen durchgeführt werden, oder das Decodieren kann basierend auf einigen Zeilen oder einigen Spalten in einem vollständigen Basisgraphen durchgeführt werden.
  • Die Basismatrix HB der LDPC-Matrix H kann eine beliebige in den vorstehenden Ausführungsformen beschriebene Basismatrix oder eine Basismatrix sein, die durch Durchführen von Zeilenpermutation oder Spaltenpermutation oder Zeilenpermutation und Spaltenpermutation an einer beliebigen oben beschriebenen Basismatrix erhalten wird. Ein Basisgraph der Basismatrix HB umfasst mindestens eine Untermatrix A und eine Untermatrix B und kann ferner eine Untermatrix C, eine Untermatrix D und eine Untermatrix E umfassen. Für die Untermatrizen wird auf die Beschreibungen in den vorstehenden Ausführungsformen verwiesen, und Details werden hier nicht erneut beschrieben. Sicherlich kann die Basismatrix HB eine andere Basismatrix sein, deren Basisgraph mit dem in den vorstehenden Ausführungsformen gezeigten Basisgraphen übereinstimmt, und die Basismatrix HB ist in der vorliegenden Anmeldung nicht darauf beschränkt.
  • In einer möglichen Gestaltung kann die Basismatrix HB des LDPC-Codes in einem Speicher gespeichert werden, die weichen Werte des LDPC-Codes können decodiert werden, nachdem die LDPC-Matrix, die dem Hubfaktor Z entspricht, erhalten wurde.
  • In einer anderen möglichen Implementierung kann, da es mehrere Basismatrizen eines LDPC-Codes gibt und relativ großer Speicherplatz belegt ist, wenn die Basismatrizen basierend auf einer Matrixstruktur gespeichert werden, ein Basisgraph des LDPC-Codes in einem Speicher gespeichert werden, Verschiebungswerte von Nicht-Null-Elementen in jeder Basismatrix können zeilenweise oder spaltenweise gespeichert werden, und dann kann eine LDPC-Matrix basierend auf dem Basisgraphen und einem Verschiebungswert in einer Basismatrix, der einem Hubfaktor Z entspricht, erhalten werden.
  • Der Basisgraph kann auf verschiedene Weisen gespeichert werden, die in der vorstehenden Codierausführungsform beschrieben sind.
  • Es ist anzumerken, dass hier nur Beispiele bereitgestellt sind und die Beispiele keine Beschränkung darstellen.
  • Das Decodieren ist ein inverser Prozess des Codierens, und die Basismatrix HB, die während des Decodierens verwendet wird, weist eine gleiche Eigenschaft wie die Basismatrix in der Codierverfahrensausführungsform auf. Zum Anheben der Basismatrix HB, um die LDPC-Matrix H zu erhalten, wird auch auf die Codierverfahrensausführungsform Bezug genommen.
  • Im Kommunikationssystem kann eine Kommunikationsvorrichtung vor dem Decodierverfahren ferner eine oder mehrere der folgenden Operationen durchführen: Empfangen eines Signals, das einen LDPC-Code umfasst; oder Durchführen einer Demodulation, eines Entschachtelns oder einer De-Ratenanpassung an dem Signal, um weiche Werte des LDPC-Codes zu erhalten.
  • In einer möglichen Implementierung können eines oder mehrere der Folgenden gespeichert werden:
    1. (a) ein Parameter, der verwendet wird, um eine beliebige Basismatrix HB zu erhalten, die in den vorstehenden Implementierungen beschrieben ist, wobei die Basismatrix HB basierend auf dem Parameter erhalten werden kann; zum Beispiel kann der Parameter eines oder mehrere der Folgenden umfassen: einen Zeilenindex, ein Zeilengewicht, einen Spaltenindex oder ein Spaltengewicht eines Basisgraphen und/oder einer Basismatrix, eine Position eines Nicht-Null-Elements in einem Basisgraphen und/oder einer Basismatrix, einen Verschiebungswert in einer Basismatrix, einen Verschiebungswert eines Nicht-Null-Elements und einer entsprechenden Position, einen Kompensationswert, einen Hubfaktor, einen Hubfaktorsatz, einen Basisgraphen einer Basismatrix oder eine Coderate;
    2. (b) eine beliebige Basismatrix HB, die in den vorstehenden Implementierungen beschrieben ist;
    3. (c) eine Matrix, die von der Basismatrix HB angehoben ist;
    4. (d) eine Basismatrix, die durch Durchführen von Zeilen-/Spaltenpermutation an einer beliebigen in den vorstehenden Implementierungen beschriebenen Basismatrix HB erhalten wird, wobei Zeilen-/Spaltenpermutation Zeilenpermutation oder Spaltenpermutation oder Zeilenpermutation und Spaltenpermutation in dieser Anwendung ist; oder
    5. (e) eine Matrix, die von der Basismatrix angehoben ist, die durch Durchführen der Zeilen-/Spaltenpermutation erhalten wird.
  • In einer möglichen Implementierung kann eine Eingangssequenz unter Verwendung einer Paritätsprüfmatrix mit niedriger Dichte auf eine oder mehrere der folgenden Weisen während des Codierens oder Decodierens codiert oder decodiert werden:
  • Erhalten einer Basismatrix HB basierend auf dem in (a) beschriebenen Parameter; und Durchführen von Codieren oder Decodieren basierend auf der erhaltenen Basismatrix HB; oder Durchführen von Zeilen-/Spaltenpermutation basierend auf der erhaltenen Basismatrix HB und Durchführen von Codieren oder Decodieren basierend auf einer Basismatrix, die durch Durchführen der Zeilen-/Spaltenpermutation erhalten wird, wobei das Codieren oder Decodieren basierend auf der Basismatrix hierin durchgeführt wird, und optional kann das Codieren oder Decodieren basierend auf einer angehobenen Matrix der Basismatrix durchgeführt werden;
    Durchführen von Codieren oder Decodieren basierend auf einer in (b) oder (d) gespeicherten Basismatrix (einer gespeicherten Basismatrix HB oder einer gespeicherten Basismatrix, die durch Durchführen von Zeilen-/Spaltenpermutation an einer Basismatrix HB erhalten wird); oder Durchführen von Zeilen-/Spaltenpermutation an der gespeicherten Basismatrix und Durchführen von Codieren oder Decodieren basierend auf einer Basismatrix, die durch Durchführen der Zeilen-/Spaltenpermutation erhalten wird, wobei das Codieren oder Decodieren basierend auf der Basismatrix hierin durchgeführt wird, und optional kann das Codieren oder Decodieren basierend auf einer angehobenen Matrix der Basismatrix durchgeführt werden; oder
    Durchführen von Codieren oder Decodieren basierend auf (c) oder (e).
  • Das Anheben in dieser Anmeldung kann Erhalten einer angehobenen Matrix sein, nachdem eine Matrix transformiert oder verarbeitet wurde, und eine Anhebeweise ist in dieser Anmeldung nicht beschränkt. In einer Implementierung kann das Anheben ein Durchführen von Kompensationsverarbeitung an einer Matrix sein. Zum Beispiel wird jeder Verschiebungswert größer oder gleich 0 in einer Basismatrix um einen Kompensationswert erhöht oder verringert, um eine kompensierte Matrix zu erhalten. In einer anderen Implementierung kann das Anheben ein Anheben einer Zeile und einer Spalte in einer Matrix sein, um eine angehobene Matrix zu erhalten. In einer anderen Implementierung kann das Anheben ein Umwandeln eines Nicht-Null-Werts in einer Matrix sein.
  • Das Speichern in dieser Anmeldung kann Speichern in einem oder mehreren Speichern sein. Der eine oder die mehreren Speicher können separat angeordnet sein oder können in den Codierer, den Decodierer, einen Prozessor, einen Chip, die Kommunikationsvorrichtung oder ein Endgerät integriert sein. Einige des einen oder der mehreren Speicher können separat angeordnet sein und die anderen können in den Decodierer, einen Prozessor, einen Chip, die Kommunikationsvorrichtung oder ein Endgerät integriert sein. Ein Typ des Speichers kann eine beliebige Form von Speichermedium sein und der Typ ist in dieser Anmeldung nicht beschränkt.
  • 6 ist eine schematische Strukturdarstellung einer Kommunikationsvorrichtung 600. Die Vorrichtung 600 ist konfiguriert, um das in der vorstehenden Verfahrensausführungsform beschriebene Verfahren zu implementieren. Es wird auf die Beschreibungen in der vorstehenden Verfahrensausführungsform verwiesen. Die Kommunikationsvorrichtung 600 kann ein Chip, eine Basisstation, ein Endgerät oder eine andere Netzwerkvorrichtung sein.
  • Die Kommunikationsvorrichtung 600 umfasst einen oder mehrere Prozessoren 601. Der Prozessor 601 kann ein Universalprozessor, ein dedizierter Prozessor oder dergleichen sein. Zum Beispiel kann der Prozessor 601 ein Basisbandprozessor oder eine zentrale Verarbeitungseinheit sein. Der Basisbandprozessor kann konfiguriert sein, um Verarbeitung an einem Kommunikationsprotokoll und Kommunikationsdaten durchzuführen. Die zentrale Verarbeitungseinheit kann konfiguriert sein, um die Kommunikationsvorrichtung (wie z. B. die Basisstation, das Endgerät oder den Chip) zu steuern, ein Softwareprogramm auszuführen und Daten des Softwareprogramms zu verarbeiten.
  • In einer möglichen Ausgestaltung umfasst die Kommunikationsvorrichtung 600 den einen oder die mehreren Prozessoren 601. Der eine oder die mehreren Prozessoren 601 können Funktionen des vorstehenden Codierers implementieren. In einer anderen möglichen Ausgestaltung kann der Codierer ein Teil des Prozessors 601 sein, und der Prozessor 601 kann zusätzlich zu Funktionen des Codierers andere Funktionen implementieren.
  • Die Kommunikationsvorrichtung 600 codiert eine Eingangssequenz unter Verwendung einer LDPC-Matrix. Ein Basisgraph der LDPC-Matrix kann ein beliebiger Basisgraph in den vorstehenden Beispielen oder ein Basisgraph sein, der durch Durchführen von Zeilenpermutation oder Spaltenpermutation oder Zeilenpermutation und Spaltenpermutation an einem beliebigen oben beschriebenen Basisgraphen erhalten wird. Eine Basismatrix HB der LDPC-Matrix kann eine beliebige Basismatrix in der vorstehenden Ausführungsform oder eine Basismatrix sein, die durch Durchführen von Zeilenpermutation oder Spaltenpermutation oder Zeilenpermutation und Spaltenpermutation an einer beliebigen oben beschriebenen Basismatrix erhalten wird. Die Eingangssequenz des Codierers kann eine Informationsbitsequenz sein.
  • In einer möglichen Ausgestaltung kann/können der eine oder die mehreren Prozessoren 601 Funktionen des vorstehenden Decodierers implementieren. In einer anderen möglichen Ausgestaltung kann der Decodierer ein Teil des Prozessors 601 sein.
  • Die Kommunikationsvorrichtung 600 ist konfiguriert, um eine Eingangssequenz unter Verwendung einer LDPC-Matrix zu decodieren. Ein Basisgraph der LDPC-Matrix kann ein beliebiger Basisgraph in den vorstehenden Beispielen oder ein Basisgraph sein, der durch Durchführen von Zeilenpermutation oder Spaltenpermutation oder Zeilenpermutation und Spaltenpermutation an einem beliebigen oben beschriebenen Basisgraphen erhalten wird. Eine Basismatrix HB der LDPC-Matrix kann eine beliebige Basismatrix in den vorstehenden Beispielen oder eine Basismatrix sein, die durch Durchführen von Zeilenpermutation oder Spaltenpermutation oder Zeilenpermutation und Spaltenpermutation an einer beliebigen oben beschriebenen Basismatrix erhalten wird. Die Eingangssequenz des Decodierers kann eine Sequenz von weichen Werten sein.
  • Optional kann der Prozessor 601 in einer Ausgestaltung auch eine Anweisung 603 umfassen. Die Anweisung kann auf dem Prozessor ausgeführt werden, um die Kommunikationsvorrichtung 600 zu veranlassen, das in der vorstehenden Verfahrensausführungsform beschriebene Verfahren durchzuführen.
  • In einer anderen möglichen Ausgestaltung kann die Kommunikationsvorrichtung 600 auch eine Schaltung umfassen, und die Schaltung kann Funktionen des Codierers, des Decodierers oder des Codierers und des Decodierers in der vorstehenden Verfahrensausführungsform implementieren.
  • Optional kann die Kommunikationsvorrichtung 600 einen oder mehrere Speicher 602 umfassen.
  • Der Speicher speichert eine Anweisung 604, und die Anweisung kann auf dem Prozessor ausgeführt werden, um die Kommunikationsvorrichtung 600 zu veranlassen, das in der vorstehenden Verfahrensausführungsform beschriebene Verfahren durchzuführen. Optional kann der Speicher ferner Daten speichern. Optional kann der Prozessor auch eine Anweisung und/oder Daten speichern. Der Prozessor und der Speicher können separat angeordnet sein oder können zusammen integriert sein. Optional können der eine oder die mehreren Speicher 602 einen Parameter speichern, der sich auf eine Basismatrix bezieht, zum Beispiel einen Verschiebungswert, einen Basisgraphen, eine von einem Basisgraphen angehobene Matrix, Zeilen in der Basismatrix oder einen Hubfaktor. Optional können der eine oder die mehreren Speicher 602 eine Basismatrix oder eine von einer Basismatrix angehobene Matrix speichern.
  • Optional kann die Kommunikationsvorrichtung 600 ferner einen Sendeempfänger 605 und eine Antenne 606 umfassen. Der Prozessor 601 kann als eine Verarbeitungseinheit bezeichnet werden und steuert die Kommunikationsvorrichtung (das Endgerät oder die Basisstation). Der Sendeempfänger 605 kann als eine Sendeempfängereinheit oder eine Sendeempfängerschaltung bezeichnet werden und ist konfiguriert, um eine Sendeempfängerfunktion der Kommunikationsvorrichtung unter Verwendung der Antenne 606 zu implementieren.
  • Optional kann die Kommunikationsvorrichtung 600 ferner eine Komponente umfassen, die konfiguriert ist, um eine Transportblock-CRC zu erzeugen, eine Komponente, die zur Codeblocksegmentierung und CRC-Prüfung verwendet wird, einen Verschachteler, der zum Verschachteln verwendet wird, einen Modulator, der zur Modulationsverarbeitung verwendet wird, oder dergleichen. Funktionen dieser Komponenten können durch den einen oder die mehreren Prozessoren 601 implementiert werden.
  • Optional kann die Kommunikationsvorrichtung 600 ferner einen Demodulator umfassen, der zur Demodulation verwendet wird, einen Entschachteler, der zum Entschachteln verwendet wird, eine Komponente, die zur De-Ratenanpassung verwendet wird, oder dergleichen. Funktionen dieser Komponenten können durch den einen oder die mehreren Prozessoren 601 implementiert werden.
  • 7 ist eine schematische Darstellung eines Kommunikationssystems 700. Das Kommunikationssystem 700 umfasst eine Kommunikationsvorrichtung 70 und eine Kommunikationsvorrichtung 71. Die Kommunikationsvorrichtung 70 und die Kommunikationsvorrichtung 71 empfangen Informationsdaten voneinander und senden Informationsdaten zueinander. Die Kommunikationsvorrichtung 70 und die Kommunikationsvorrichtung 71 können die Kommunikationsvorrichtung 600 sein, oder die Kommunikationsvorrichtung 70 und die Kommunikationsvorrichtung 71 umfassen jeweils die Kommunikationsvorrichtung 600 und empfangen und senden Informationsdaten. Zum Beispiel kann die Kommunikationsvorrichtung 70 ein Endgerät sein, und entsprechend kann die Kommunikationsvorrichtung 71 eine Basisstation sein. Für ein anderes Beispiel ist die Kommunikationsvorrichtung 70 eine Basisstation, und entsprechend kann die Kommunikationsvorrichtung 71 ein Endgerät sein.
  • Ein Fachmann kann ferner verstehen, dass verschiedene veranschaulichende logische Blöcke (veranschaulichender logischer Block) und Schritte (Schritt), die in den Ausführungsformen der vorliegenden Anmeldung aufgeführt sind, unter Verwendung von elektronischer Hardware, Computersoftware oder einer Kombination davon implementiert werden können. Ob die Funktionen unter Verwendung von Hardware oder Software implementiert werden, hängt von bestimmten Anwendungen und einer Ausgestaltungsanforderung des gesamten Systems ab. Ein Fachmann kann verschiedene Verfahren verwenden, um die beschriebenen Funktionen für jede bestimmte Anwendung zu implementieren, aber es sollte nicht berücksichtigt werden, dass die Implementierung über den Umfang der Ausführungsformen der vorliegenden Anmeldung hinausgeht.
  • Die verschiedenen veranschaulichenden logischen Einheiten und Schaltungen, die in den Ausführungsformen der vorliegenden Anmeldung beschrieben sind, können die beschriebenen Funktionen unter Verwendung eines Universalprozessors, eines digitalen Signalprozessors, einer anwendungsspezifischen integrierten Schaltung (ASIC), eines feldprogrammierbaren Gate-Arrays (FPGA) oder einer anderen programmierbaren logischen Vorrichtung, einer diskreten Gate- oder Transistorlogik, einer diskreten Hardwarekomponente oder einer Ausgestaltung einer beliebigen Kombination davon implementieren oder betreiben. Der Universalprozessor kann ein Mikroprozessor sein. Optional kann der Universalprozessor ein beliebiger herkömmlicher Prozessor, Controller, Mikrocontroller oder Zustandsautomat sein. Der Prozessor kann durch eine Kombination von Rechenvorrichtungen, wie etwa einen digitalen Signalprozessor und einen Mikroprozessor, mehrere Mikroprozessoren, einen oder mehrere Mikroprozessoren mit einem digitalen Signalprozessorkern oder eine beliebige andere ähnliche Konfiguration implementiert sein.
  • Schritte der Verfahren oder Algorithmen, die in den Ausführungsformen der vorliegenden Anmeldung beschrieben sind, können direkt in Hardware, eine durch einen Prozessor ausgeführte Anweisung oder eine Kombination davon eingebettet sein. Der Speicher kann ein RAM-Speicher, ein Flash-Speicher, ein ROM-Speicher, ein EPROM-Speicher, ein EEPROM-Speicher, ein Register, eine Festplatte, eine entfernbare Magnetplatte, eine CD-ROM oder ein Speichermedium einer beliebigen anderen Form in der Technik sein. Beispielsweise kann der Speicher mit dem Prozessor verbunden sein, so dass der Prozessor Informationen aus dem Speicher lesen kann und Informationen in den Speicher schreiben kann. Optional kann der Speicher in den Prozessor integriert sein. Der Prozessor und der Speicher können in einer ASIC angeordnet sein, und die ASIC kann in der Kommunikationsvorrichtung (wie etwa der Basisstation oder dem Endgerät) angeordnet sein. Optional können der Prozessor und der Speicher in verschiedenen Komponenten der Kommunikationsvorrichtung angeordnet sein.
  • Mit Beschreibungen der vorstehenden Implementierungen kann ein Fachmann klar verstehen, dass die vorliegende Anmeldung durch Hardware, Firmware oder eine Kombination davon implementiert werden kann. Wenn die vorliegende Anmeldung durch ein Softwareprogramm implementiert wird, kann die vorliegende Anmeldung ganz oder teilweise in einer Form eines Computerprogrammprodukts implementiert werden. Das Computerprogrammprodukt umfasst eine oder mehrere Computeranweisungen. Wenn die Computeranweisungen auf den Computer geladen und ausgeführt werden, werden die Prozedur oder Funktionen gemäß den Ausführungsformen der vorliegenden Anmeldung ganz oder teilweise erzeugt. Wenn die vorliegende Anmeldung durch ein Softwareprogramm implementiert wird, können die vorstehenden Funktionen in einem computerlesbaren Medium gespeichert oder als eine oder mehrere Anweisungen oder Code in dem computerlesbaren Medium übertragen werden. Der Computer kann ein Universalcomputer, ein dedizierter Computer, ein Computernetzwerk oder eine andere programmierbare Vorrichtung sein. Die Computeranweisung kann in einem computerlesbaren Speichermedium gespeichert sein oder kann von einem computerlesbaren Speichermedium zu einem anderen übertragen werden. Das computerlesbare Medium umfasst ein Computerspeichermedium und ein Kommunikationsmedium, wobei das Kommunikationsmedium ein beliebiges Medium umfasst, das ermöglicht, dass ein Computerprogramm von einem Ort zu einem anderen übertragen wird. Das Speichermedium kann ein beliebiges verfügbares Medium sein, auf das ein Computer zugreifen kann. Das computerlesbare Medium kann ein RAM, ein ROM, ein EEPROM, eine CD-ROM oder ein anderes optisches Plattenspeicher- oder Plattenspeichermedium oder eine andere magnetische Speichervorrichtung oder ein beliebiges anderes Medium umfassen, das erwarteten Programmcode in Form einer Anweisung oder einer Datenstruktur tragen oder speichern kann und auf das ein Computer zugreifen kann. Zusätzlich kann eine beliebige Verbindung in geeigneter Weise als ein computerlesbares Medium definiert werden. Wenn beispielsweise Software von einer Website, einem Server oder einer anderen entfernten Quelle unter Verwendung eines Koaxialkabels, einer optischen Faser/eines optischen Kabels, eines verdrillten Paars, einer digitalen Teilnehmerleitung (DSL) oder drahtloser Technologien, wie z. B. Infrarotstrahl, Funk und Mikrowelle, übertragen wird, sind das Koaxialkabel, die optische Faser/das optische Kabel, das verdrillte Paar, die DSL oder die drahtlosen Technologien, wie z. B. Infrarotstrahl, Funk und Mikrowelle, in einer Definition eines Mediums enthalten, zu dem sie gehören. Beispielsweise umfasst eine Platte (Disk) oder eine Platte (Disc), die durch die vorliegende Anmeldung verwendet wird, eine Compact Disc (CD), eine Laserplatte, eine optische Platte, eine Digital Versatile Disc (DVD), eine Diskette und eine Blu-ray-Disc, wobei die Platte im Allgemeinen Daten durch ein magnetisches Mittel kopiert und die Platte Daten optisch durch ein Lasermittel kopiert. Die vorstehende Kombination sollte auch in dem Schutzbereich des computerlesbaren Mediums enthalten sein.
  • In dieser Anmeldung gibt „/“ an und/oder. Beispielsweise gibt Codieren/Decodieren Codieren, Decodieren oder Codieren und Decodieren an.
  • Zusammenfassend ist, was vorstehend beschrieben ist, lediglich Ausführungsformen der technischen Lösungen der vorliegenden Anmeldung, soll jedoch den Schutzbereich der vorliegenden Anmeldung nicht einschränken. Jegliche Modifikation, gleichwertiger Ersatz oder Verbesserung, die vorgenommen wird, ohne von dem Prinzip der vorliegenden Anmeldung abzuweichen, soll in den Schutzbereich der vorliegenden Anmeldung fallen.

Claims (25)

  1. Kommunikationsvorrichtung, umfassend: eine Bestimmungseinheit, die konfiguriert ist, um einen Hubfaktor Z zu bestimmen; und eine Verarbeitungseinheit, die konfiguriert ist, um eine Eingangssequenz basierend auf einer Low-Density-Parity-Check (LDPC)-Matrix H zu codieren, um eine codierte Sequenz zu erhalten, wobei die Eingangssequenz K Bits umfasst; wobei die LDPC-Matrix H gemäß einer Basismatrix und dem Hubfaktor Z erhalten wird; wobei die Basismatrix m Zeilen und n Spalten umfasst, m und n ganze Zahlen sind, 5 ≤ m ≤ 46, 27 ≤ n ≤ 68, und die Basismatrix Nicht-Null-Elemente in den folgenden Zeilen und Spalten umfasst, i einen Zeilenindex darstellt, j einen Spaltenindex darstellt, 0 ≤ i < m, 0 ≤ j < n, und andere Elemente in den folgenden Zeilen Null-Elemente sind: i = 0, j = 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22 oder 23; i = 1, j = 0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23 oder 24; i = 2, j = 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24 oder 25; i = 3, j = 0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22 oder 25; i = 4,j = 0, 1, 26.
  2. Vorrichtung nach Anspruch 1, wobei Z 22*Z≥K erfüllt.
  3. Vorrichtung nach Anspruch 1 oder 2, wobei der Hubfaktor Z ein Minimum von mehreren Hubfaktoren ist.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, wobei der Hubfaktor Z in mehreren Hubfaktoren enthalten ist, die der Basismatrix entsprechen.
  5. Vorrichtung nach einem der Ansprüche 1 bis 4, wobei jedes Nullelement in der Basismatrix einer Nullmatrix einer Größe Z*Z in der LDPC-Matrix H entspricht, ein Nicht-Nullelement am Zeilenindex i und Spaltenindex j in der Basismatrix einer Kreispermutationsmatrix einer Größe Z*Z in der LDPC-Matrix H entspricht.
  6. Vorrichtung nach Anspruch 5, wobei die Kreispermutationsmatrix einer Matrix entspricht, die durch kreisförmiges Verschieben einer Identitätsmatrix der Größe Z*Z auf das richtige Pi,j-fache erhalten wird.
  7. Vorrichtung nach Anspruch 6, wobei Pi,j basierend auf dem Hubfaktor Z bestimmt wird.
  8. Vorrichtung nach Anspruch 7, wobei Pi,j = mod(Vi,j, Z), Vi,j ein Wert des Nicht-Null-Elements am Zeilenindex i und Spaltenindex j in der Basismatrix ist.
  9. Vorrichtung nach einem der Ansprüche 1 bis 8, wobei die Basismatrix ferner Nicht-Null-Elemente in folgenden Zeilen und Spalten umfasst und andere Elemente in den folgenden Zeilen Null-Elemente sind: i = 5, j = 0, 1, 3, 12, 16, 21, 22 oder 27; i = 6, j = 0, 6, 10, 11, 13, 17, 18, 20 oder 28; i = 7, j = 0, 1, 4, 7, 8, 14 oder 29; i = 8, j = 0, 1, 3, 12, 16, 19, 21, 22, 24 oder 30; i = 9, j = 0, 1, 10, 11, 13, 17, 18, 20 oder 31; i = 10, j = 1, 2, 4, 7, 8, 14 oder 32; i = 11, j = 0, 1, 12, 16, 21, 22, 23 oder 33; i = 12, j = 0, 1, 10, 11, 13, 18 oder 34; i = 13, j = 0, 3, 7, 20, 23 oder 35; i = 14, j = 0, 12, 15, 16, 17, 21 oder 36; i = 15, j = 0, 1, 10, 13, 18, 25 oder 37; i = 16, j = 1, 3, 11, 20, 22 oder 38; i = 17, j = 0, 14, 16, 17, 21 oder 39; i = 18, j = 1, 12, 13, 18, 19 oder 40; i = 19, j = 0, 1, 7, 8, 10 oder 41; i = 20, j = 0, 3, 9, 11, 22 oder 42; i = 21, j = 1, 5, 16, 20, 21 oder 43; i = 22, j = 0, 12, 13, 17 oder 44; i = 23, j = 1, 2, 10, 18 oder 45; i = 24, j = 0, 3, 4, 11, 22 oder 46; i = 25, j = 1, 6, 7, 14 oder 47; i = 26, j = 0, 2, 4, 15 oder 48; i = 27, j = 1, 6, 8 oder 49; i = 28, j = 0, 4, 19, 21 oder 50; i = 29, j = 1, 14, 18, 25 oder 51; i = 30, j = 0, 10, 13, 24 oder 52; i = 31, j = 1, 7, 22, 25 oder 53; i = 32, j = 0, 12, 14, 24 oder 54; i = 33, j = 1, 2, 11, 21 oder 55; i = 34, j = 0, 7, 15, 17 oder 56; i = 35, j = 1, 6, 12, 22 oder 57; i = 36, j = 0, 14, 15, 18 oder 58; i = 37, j = 1, 13, 23 oder 59; i = 38, j = 0, 9, 10, 12 oder 60; i = 39, j = 1, 3, 7, 19 oder 61; i = 40, j = 0, 8, 17 oder 62; i = 41, j = 1, 3, 9, 18 oder 63; i = 42, j = 0, 4, 24 oder 64; i = 43, j = 1, 16, 18, 25 oder 65; i = 44, j = 0, 7, 9, 22 oder 66; i = 45, j = 1, 6, 10 oder 67.
  10. Vorrichtung nach einem der Ansprüche 1 bis 9, wobei die Eingangssequenz c = {c0, c1, c2, ..., cK-1} ist, die codierte Sequenz d = {d0, d1, d2, ..., dN-1}, wobei K und N beide positive ganze Zahlen sind, und N = 66·Z.
  11. Vorrichtung nach Anspruch 10, wobei die codierte Sequenz d K0 Bits aus der Eingangssequenz c und N-K0 Paritätsbits in einer Paritätssequenz w = {w0, w1, w2, ..., wN-K0-1} umfasst, K0 ist eine ganze Zahl größer als 0 und kleiner oder gleich K, wobei die Paritätssequenz w und die Eingangssequenz c erfüllen: H × [ c T w T ] = 0 T ,
    Figure DE202017007614U1_0009
    wobei H die LDPC-Matrix H darstellt, cT = [c0, c1, c2, ..., cK-1]T, wT = [w0, w1, w2, ..., wN-K0-1]T, 0T ein Spaltenvektor ist und Werte aller Elemente von 0T sind 0.
  12. Vorrichtung nach Anspruch 11, wobei K0 = K-2-Z .
  13. Vorrichtung nach einem der Ansprüche 1 bis 12, wobei mindestens eines von der Basismatrix und dem Hubfaktor Z aus einem oder mehreren Speichern abgerufen wird.
  14. Kommunikationsvorrichtung, umfassend: eine Bestimmungseinheit, die konfiguriert ist, um einen Hubfaktor Z zu bestimmen; und eine Verarbeitungseinheit, die konfiguriert ist, um eine Eingangssequenz basierend auf einer Low-Density-Parity-Check(LDPC)-Matrix H zu decodieren, um eine decodierte Sequenz zu erhalten; wobei die LDPC-Matrix H gemäß einer Basismatrix und dem Hubfaktor Z erhalten wird; wobei die Basismatrix m Zeilen und n Spalten umfasst, m und n ganze Zahlen sind, 5≤ m≤ 46, 27≤ n≤ 68, und die Basismatrix Nicht-Null-Elemente in den folgenden Zeilen und Spalten umfasst, i einen Zeilenindex darstellt, j einen Spaltenindex darstellt, 0≤ i < m, 0≤j < n, und andere Elemente in den folgenden Zeilen Null-Elemente sind: i = 0, j = 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22 oder 23; i = 1, j = 0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23 oder 24; i = 2, j = 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24 oder 25; i = 3, j = 0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22 oder 25; i = 4,j = 0, 1, 26.
  15. Vorrichtung nach Anspruch 14, wobei der Hubfaktor Z ein Minimum von mehreren Hubfaktoren ist.
  16. Vorrichtung nach Anspruch 14 oder 15, wobei der Hubfaktor Z in mehreren Hubfaktoren enthalten ist, die der Basismatrix entsprechen.
  17. Vorrichtung nach einem der Ansprüche 14 bis 16, wobei jedes Nullelement in der Basismatrix einer Nullmatrix einer Größe Z·Z in der LDPC-Matrix H entspricht, ein Nicht-Nullelement am Zeilenindex i und Spaltenindex j in der Basismatrix einer Kreispermutationsmatrix einer Größe Z·Z in der LDPC-Matrix H entspricht.
  18. Vorrichtung nach Anspruch 17, wobei die Kreispermutationsmatrix einer Matrix entspricht, die durch kreisförmiges Verschieben einer Identitätsmatrix der Größe Z·Z auf das richtige Pi,j-fache erhalten wird.
  19. Vorrichtung nach Anspruch 18, wobei Pi,j basierend auf dem Hubfaktor Z bestimmt wird.
  20. Vorrichtung nach Anspruch 19, wobei Pij = mod(Vi,j, Z), Vij ein Wert des Nicht-Null-Elements am Zeilenindex i und Spaltenindex j in der Basismatrix ist.
  21. Vorrichtung nach einem der Ansprüche 14 bis 20, wobei die Basismatrix ferner Nicht-Null-Elemente in folgenden Zeilen und Spalten umfasst und andere Elemente in den folgenden Zeilen Null-Elemente sind: i = 5, j = 0, 1, 3, 12, 16, 21, 22 oder 27; i = 6, j = 0, 6, 10, 11, 13, 17, 18, 20 oder 28; i = 7, j = 0, 1, 4, 7, 8, 14 oder 29; i = 8, j = 0, 1, 3, 12, 16, 19, 21, 22, 24 oder 30; i = 9, j = 0, 1, 10, 11, 13, 17, 18, 20 oder 31; i = 10, j = 1, 2, 4, 7, 8, 14 oder 32; i = 11, j = 0, 1, 12, 16, 21, 22, 23 oder 33; i = 12, j = 0, 1, 10, 11, 13, 18 oder 34; i = 13, j = 0, 3, 7, 20, 23 oder 35; i = 14, j = 0, 12, 15, 16, 17, 21 oder 36; i = 15, j = 0, 1, 10, 13, 18, 25 oder 37; i = 16, j = 1, 3, 11, 20, 22 oder 38; i = 17, j = 0, 14, 16, 17, 21 oder 39; i = 18, j = 1, 12, 13, 18, 19 oder 40; i = 19, j = 0, 1, 7, 8, 10 oder 41; i = 20, j = 0, 3, 9, 11, 22 oder 42; i = 21, j = 1, 5, 16, 20, 21 oder 43; i = 22, j = 0, 12, 13, 17 oder 44; i = 23, j = 1, 2, 10, 18 oder 45; i = 24, j = 0, 3, 4, 11, 22 oder 46; i = 25, j = 1, 6, 7, 14 oder 47; i = 26, j = 0, 2, 4, 15 oder 48; i = 27, j = 1, 6, 8 oder 49; i = 28, j = 0, 4, 19, 21 oder 50; i = 29, j = 1, 14, 18, 25 oder 51; i = 30, j = 0, 10, 13, 24 oder 52; i = 31, j = 1, 7, 22, 25 oder 53; i = 32, j = 0, 12, 14, 24 oder 54; i = 33, j = 1, 2, 11, 21 oder 55; i = 34, j = 0, 7, 15, 17 oder 56; i = 35, j = 1, 6, 12, 22 oder 57; i = 36, j = 0, 14, 15, 18 oder 58; i = 37, j = 1, 13, 23 oder 59; i = 38, j = 0, 9, 10, 12 oder 60; i = 39, j = 1, 3, 7, 19 oder 61; i = 40, j = 0, 8, 17 oder 62; i = 41, j = 1, 3, 9, 18 oder 63; i = 42, j = 0, 4, 24 oder 64; i = 43, j = 1, 16, 18, 25 oder 65; i = 44, j = 0, 7, 9, 22 oder 66; i = 45, j = 1, 6, 10 oder 67.
  22. Vorrichtung nach einem der Ansprüche 14 bis 21, wobei mindestens eines von der Basismatrix und dem Hubfaktor Z aus einem oder mehreren Speichern abgerufen wird.
  23. Kommunikationssystem, umfassend die Vorrichtung nach einem der Ansprüche 1 bis 13 und die Vorrichtung nach einem der Ansprüche 14 bis 22.
  24. Computerspeichermedium, das ein Programm speichert, wobei das Programm durch die Vorrichtung nach einem der Ansprüche 1 bis 13 oder die Vorrichtung nach einem der Ansprüche 14 bis 22 ausgeführt wird.
  25. Computerprogrammprodukt, das Anweisungen umfasst, wobei die Anweisungen durch die Vorrichtung nach einem der Ansprüche 1 bis 13 oder die Vorrichtung nach einem der Ansprüche 14 bis 22 ausgeführt werden.
DE202017007614.4U 2017-05-05 2017-07-13 Kommunikationsvorrichtung, Computerspeichermedium, Computerprogrammprodukt und Kommunikationssystem Active DE202017007614U1 (de)

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
CN201710314217 2017-05-05
CN201710314217.3 2017-05-05
CN201710381396.2 2017-05-25
CN201710381396.2A CN108809328B (zh) 2017-05-05 2017-05-25 信息处理的方法、通信装置
WOPCT/CN2017/086227 2017-05-26
PCT/CN2017/086227 WO2018201540A1 (zh) 2017-05-05 2017-05-26 信息处理的方法、通信装置
PCT/CN2017/087073 WO2018201547A1 (zh) 2017-05-05 2017-06-02 信息处理的方法、通信装置
WOPCT/CN2017/087073 2017-06-02
PCT/CN2017/087830 WO2018201553A1 (zh) 2017-05-05 2017-06-09 信息处理的方法、通信装置
WOPCT/CN2017/087830 2017-06-09
PCT/CN2017/087943 WO2018201554A1 (zh) 2017-05-05 2017-06-12 信息处理的方法、通信装置
WOPCT/CN2017/087943 2017-06-12
PCT/CN2017/090417 WO2018201597A1 (zh) 2017-05-05 2017-06-27 信息处理的方法、通信装置
WOPCT/CN2017/090417 2017-06-27

Publications (1)

Publication Number Publication Date
DE202017007614U1 true DE202017007614U1 (de) 2023-07-27

Family

ID=64094520

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202017007614.4U Active DE202017007614U1 (de) 2017-05-05 2017-07-13 Kommunikationsvorrichtung, Computerspeichermedium, Computerprogrammprodukt und Kommunikationssystem

Country Status (13)

Country Link
US (5) US10432219B2 (de)
EP (1) EP3540948A4 (de)
JP (2) JP7171590B2 (de)
KR (1) KR102205936B1 (de)
CN (3) CN108809328B (de)
AU (1) AU2017413002B2 (de)
BR (3) BR112019023243A2 (de)
CA (1) CA3051761C (de)
DE (1) DE202017007614U1 (de)
MX (1) MX2019010697A (de)
MY (1) MY195263A (de)
RU (1) RU2740151C1 (de)
ZA (1) ZA201905493B (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10784901B2 (en) 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
US10340949B2 (en) * 2017-02-06 2019-07-02 Qualcomm Incorporated Multiple low density parity check (LDPC) base graph design
US10312939B2 (en) 2017-06-10 2019-06-04 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code
WO2018227681A1 (zh) 2017-06-15 2018-12-20 华为技术有限公司 信息处理的方法和通信装置
CN109150197B (zh) 2017-06-27 2024-05-14 华为技术有限公司 信息处理的方法、装置和通信设备
CN110677157B (zh) 2017-06-27 2023-02-07 华为技术有限公司 信息处理的方法、装置和通信设备
MA47865B1 (fr) * 2017-08-24 2020-09-30 Ericsson Telefon Ab L M Sélection de graphe de base pour une nouvelle radio 3gpp
CN111327330B (zh) * 2018-12-14 2022-04-08 深圳市中兴微电子技术有限公司 一种信息处理方法、设备及计算机存储介质
CN112751571A (zh) * 2019-10-30 2021-05-04 华为技术有限公司 一种ldpc的编码方法及装置
CN114696840A (zh) * 2020-12-31 2022-07-01 华为技术有限公司 一种编码方法及装置
CN112787762B (zh) * 2021-04-12 2021-07-23 南京创芯慧联技术有限公司 信道编码后数据的速率匹配方法及其速率匹配装置
CN116192338B (zh) * 2023-04-25 2023-07-14 中国人民解放军国防科技大学 一种ldpc码的快速盲识别方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3808769B2 (ja) 2001-12-27 2006-08-16 三菱電機株式会社 Ldpc符号用検査行列生成方法
EP1518328B1 (de) * 2002-07-03 2007-04-18 The DIRECTV Group, Inc. Codierung von ldpc-codes (low-density parity check) durch verwendung einer strukturierten paritätsprüfmatrix
KR100996029B1 (ko) 2003-04-29 2010-11-22 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 장치 및 방법
KR100809619B1 (ko) 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR20050118056A (ko) 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
US7526717B2 (en) 2004-06-16 2009-04-28 Samsung Electronics Co., Ltd. Apparatus and method for coding and decoding semi-systematic block low density parity check codes
US20050283707A1 (en) * 2004-06-22 2005-12-22 Eran Sharon LDPC decoder for decoding a low-density parity check (LDPC) codewords
US7581157B2 (en) * 2004-06-24 2009-08-25 Lg Electronics Inc. Method and apparatus of encoding and decoding data using low density parity check code in a wireless communication system
JP4545793B2 (ja) 2004-08-10 2010-09-15 サムスン エレクトロニクス カンパニー リミテッド ブロック低密度パリティ検査符号を符号化/復号化する装置及び方法
US7188297B2 (en) 2004-08-12 2007-03-06 Motorola, Inc. Method and apparatus for encoding and decoding data
US7934140B2 (en) * 2004-09-17 2011-04-26 Lg Electronics Inc. Method of encoding and decoding using LDPC code
US7752521B2 (en) * 2004-10-12 2010-07-06 Nortel Networks Limited Low density parity check (LDPC) code
US7343548B2 (en) 2004-12-15 2008-03-11 Motorola, Inc. Method and apparatus for encoding and decoding data
CN1805291B (zh) * 2005-01-10 2010-04-28 华为技术有限公司 一种低密度奇偶校验码并行编码方法及编码装置
KR100703483B1 (ko) * 2005-03-04 2007-04-03 삼성전자주식회사 저밀도 패러티 검사 부호의 천공 방법
CN100505555C (zh) 2005-09-30 2009-06-24 电子科技大学 一种无线通信系统中非正则低密度奇偶校验码的生成方法
CN101162907B (zh) * 2006-10-10 2010-11-03 华为技术有限公司 一种利用低密度奇偶校验码实现编码的方法及装置
BRPI0806757A2 (pt) * 2007-01-24 2011-09-13 Qualcomm Inc encodificação e decodificação de ldpc de pacotes de tamanhos variáveis
CN101378304A (zh) 2007-08-28 2009-03-04 华为技术有限公司 基于低密度校验码的重传传输方法及传输设备
CN101159435B (zh) * 2007-11-14 2010-06-16 中国人民解放军理工大学 基于移位矩阵分级扩展的低密度校验码校验矩阵构造方法
TWI410055B (zh) 2007-11-26 2013-09-21 Sony Corp Data processing device, data processing method and program product for performing data processing method on computer
CN101459430B (zh) * 2007-12-14 2010-12-08 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
CN101572554B (zh) 2008-05-04 2013-04-24 华为技术有限公司 生成码率兼容ldpc码及harq方案的方法及装置
CN101662290B (zh) * 2008-08-26 2013-08-28 华为技术有限公司 生成准循环ldpc码及编码的方法与装置
GB2471513B (en) * 2009-07-02 2013-09-25 Samsung Electronics Uk Ltd Encoding/decoding apparatus and method
JP5371623B2 (ja) 2009-08-13 2013-12-18 三菱電機株式会社 通信システム及び受信装置
US8196012B2 (en) 2009-10-05 2012-06-05 The Hong Kong Polytechnic University Method and system for encoding and decoding low-density-parity-check (LDPC) codes
EP2477335B1 (de) 2011-01-18 2019-05-29 Samsung Electronics Co., Ltd. Vorrichtung und Verfahren zum Senden und Empfangen von Daten in einem Kommunikations-/Rundfunksystem
US9100052B2 (en) * 2013-02-01 2015-08-04 Samsung Electronics Co., Ltd. QC-LDPC convolutional codes enabling low power trellis-based decoders
US9306601B2 (en) 2013-02-13 2016-04-05 Qualcomm Incorporated LDPC design for high parallelism, low error floor, and simple encoding
KR102104937B1 (ko) * 2013-06-14 2020-04-27 삼성전자주식회사 Ldpc 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법
US9559722B1 (en) * 2013-10-21 2017-01-31 Marvell International Ltd. Network devices and methods of generating low-density parity-check codes and performing corresponding encoding of data
CN103731160B (zh) * 2014-01-09 2016-08-17 西安电子科技大学 分组空间耦合低密度奇偶校验编码方法
KR101800409B1 (ko) 2014-02-19 2017-11-23 삼성전자주식회사 송신 장치 및 그의 인터리빙 방법
CN104168030B (zh) 2014-07-14 2017-11-14 北京邮电大学 一种基于本原域循环群两个生成元的ldpc码构造方法
US9692451B2 (en) * 2014-09-30 2017-06-27 Avago Technologies General Ip (Singapore) Pte. Ltd Non-binary low density parity check (NB-LDPC) codes for communication systems
CN104485970B (zh) * 2014-10-27 2017-07-28 清华大学 单码率、多码率qc‑ldpc码的模板矩阵的构造方法
CN104333390B (zh) * 2014-11-26 2019-08-06 西安烽火电子科技有限责任公司 一种ldpc码的校验矩阵的构造方法与编码方法
US20160173132A1 (en) 2014-12-10 2016-06-16 Alcatel-Lucent Usa Inc. Construction of Structured LDPC Convolutional Codes
US10469104B2 (en) * 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
WO2018084735A1 (en) 2016-11-03 2018-05-11 Huawei Technologies Co., Ltd. Efficiently decodable qc-ldpc code
CN108173621B (zh) 2016-12-07 2022-06-14 华为技术有限公司 数据传输的方法、发送设备、接收设备和通信系统
CA3056908A1 (en) * 2017-03-22 2018-09-27 Ntt Docomo, Inc. User terminal and radio communication method
US10608665B2 (en) * 2017-03-24 2020-03-31 Mediatek Inc. Method and apparatus for error correction coding in communication
US10659079B2 (en) * 2017-05-05 2020-05-19 Mediatek Inc. QC-LDPC codes

Also Published As

Publication number Publication date
CA3051761A1 (en) 2018-11-08
EP3540948A1 (de) 2019-09-18
US20210242881A1 (en) 2021-08-05
RU2740151C1 (ru) 2021-01-12
CN110535474A (zh) 2019-12-03
US20220352903A1 (en) 2022-11-03
US10924134B2 (en) 2021-02-16
JP7171590B2 (ja) 2022-11-15
CA3051761C (en) 2021-11-16
AU2017413002A1 (en) 2019-09-05
MY195263A (en) 2023-01-11
CN110999091A (zh) 2020-04-10
BR112019023179A2 (pt) 2020-05-19
US10432219B2 (en) 2019-10-01
KR102205936B1 (ko) 2021-01-20
EP3540948A4 (de) 2019-12-11
JP2020518145A (ja) 2020-06-18
ZA201905493B (en) 2022-10-26
BR112019018329A2 (pt) 2020-03-31
CN109120276B (zh) 2019-08-13
US20200044665A1 (en) 2020-02-06
BR112019018329B1 (pt) 2021-09-14
US11777521B2 (en) 2023-10-03
US20240048155A1 (en) 2024-02-08
CN109120276A (zh) 2019-01-01
BR112019023243A2 (pt) 2020-05-19
BR112019018329B8 (pt) 2021-09-21
US20190158114A1 (en) 2019-05-23
US11374591B2 (en) 2022-06-28
CN110535474B (zh) 2023-06-06
CN108809328B (zh) 2024-05-17
AU2017413002B2 (en) 2020-12-10
CN108809328A (zh) 2018-11-13
KR20190101476A (ko) 2019-08-30
MX2019010697A (es) 2020-01-27
JP2023014085A (ja) 2023-01-26

Similar Documents

Publication Publication Date Title
DE202017007614U1 (de) Kommunikationsvorrichtung, Computerspeichermedium, Computerprogrammprodukt und Kommunikationssystem
DE602005002815T2 (de) Verfahren und Vorrichtung zur Erzeugung eines Low-Density Parity-Check (LDPC) Codes
KR102194617B1 (ko) 정보 처리 방법, 장치 및 통신 디바이스
DE10030407B4 (de) Verfahren zur optimalen Ratenanpassung in einem Mobilkommunikationssystem
RU2758968C2 (ru) Аппаратура, способ обработки информации и аппаратура связи
JP6820438B2 (ja) 情報処理方法および通信装置
DE112011101995T5 (de) Verfahren und Vorrichtung für eine Parallelverarbeitung in einem Gigabit-LDPC-Decodierer
CN110430010A (zh) 信息处理的方法、设备和通信系统
EP3657707B1 (de) Kommunikationsverfahren und -vorrichtung
DE102017120789A1 (de) Abgestufter Variablenknotenspeicher
DE102008061069B4 (de) Neuübertragung fehlerhafter Daten
DE102020133739A1 (de) Extrem hohe Codierungsraten für WLAN-Systeme einer nächsten Generation
EP3624350A1 (de) Informationsverarbeitungsverfahren und kommunikationsvorrichtung
CN107733439B (zh) 一种ldpc编码方法、编码装置及通信设备
EP3641172B1 (de) Informationsverarbeitungsverfahren und kommunikationsvorrichtung
CN116054890A (zh) 反馈码本的方法、终端设备和网络设备
EP4250571A2 (de) Informationsverarbeitungsverfahren und kommunikationsvorrichtung
DE102022115506A1 (de) Optimierung eines BCC-Interleavers und eines LDPC-Ton-Mappers für Verteiltton-Ressourceneinheiten und Verteiltton-Multi-Ressourceneinheiten
DE102016201408A1 (de) Verfahren zum Übertragen von Daten
DE202023102785U1 (de) Computersystem für die genaue Bereitstellung digitaler Daten über Kommunikationskanäle
DE102014114728B4 (de) Mehrschichtige fehlerkorrekturcodierung
DE112019005507T5 (de) Datengetriebene icad-graphengenerierung

Legal Events

Date Code Title Description
R151 Utility model maintained after payment of second maintenance fee after six years
R207 Utility model specification