System and method for block-kronecker-based low density parity check (LDPC) codes with 5 / 6 code rates
By using quasi-cyclic low-density parity check (QC-LDPC) code based on 5/6 code rate in the communication system, and using the parity check matrix for encoding and decoding, the problem of inefficient error correction under the influence of noise in the prior art is solved, and efficient data transmission and reliable communication are achieved.
Patent Information
- Application Number
- CN202411778039.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-04-26
- Filing Date
- 2024-12-05
- Publication Date
- 2025-06-17
AI Technical Summary
The prior art has a problem of great noise influence in the encoding and decoding process, especially in communication channels, which leads to low error correction efficiency.
Quasi-cyclic low-density parity check (QC-LDPC) code based on 5/6 code rate is used to encode and decode data by identifying and using the corresponding parity check matrix, thereby improving the encoding and decoding efficiency.
It realizes efficient error correction in a noisy environment, and improves the reliability of the communication system and the accuracy of data transmission.
Smart Images

Figure CN120165701A_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] This application claims the benefit of priority of each of U.S. Provisional Patent Application No. 63 / 610,859, filed Dec. 15, 2023, U.S. Provisional Patent Application No. 63 / 610,566, filed Dec. 15, 2023, U.S. Provisional Patent Application No. 63 / 610,762, filed Dec. 15, 2023, and U.S. Provisional Patent Application No. 63 / 610,928, filed Dec. 15, 2023, all of the U.S. provisional patent applications are hereby incorporated by reference in their entirety for all purposes. Technical Field
[0003] The present disclosure generally relates to systems and methods for improving an encoding process and / or a decoding process of a communication system using quasi-cyclic low-density parity-check (QC-LDPC) codes. Background Art
[0004] Error correction codes enable information data to be exchanged reliably between a transmitter communication system and a receiver communication system. The transmitter communication system encodes the information data to obtain a codeword. A codeword is the encoded information data. The transmitter communication system transmits the codeword to the receiver communication system. Due to noise in the communication channel, the transmission received by the receiver communication system may be different from the transmitted codeword. Encoding the information data allows the receiver communication system to recover the information data from the received transmission using an appropriate decoding process despite this noise. For example, the transmitter communication system transmits parity bits to the receiver communication system. The parity bits allow the receiver communication system to verify whether the received transmission is a valid codeword and, if the received transmission is not a valid codeword, correct errors in the transmission. In one method, generating the parity bits involves a complex process. Summary of the Invention
[0005] In one aspect, the present disclosure relates to a method that includes: identifying, by one or more processors of a first device, a second parity-check matrix corresponding to a first exponent matrix including 384 values of a second quasi-cyclic low-density parity-check (QC-LDPC) code based on a first parity-check matrix of a first QC-LDPC code according to a 5 / 6 code rate, wherein the second QC-LDPC code has a code block size that is twice the code block size of the first QC-LDPC code; encoding, by the one or more processors of the first device, data using the second parity-check matrix; and transmitting, by the one or more processors of the first device, the encoded data.
[0006] On the other hand, the present disclosure relates to a device, comprising: a transmitter and one or more processors, wherein the one or more processors are configured to: identify a second parity check matrix corresponding to a first exponent matrix including 384 values of a second quasi-cyclic low-density parity-check (QC-LDPC) code based on a first parity check matrix of a first QC-LDPC code according to a 5 / 6 code rate, wherein the second QC-LDPC code has a code block size that is twice the code block size of the first QC-LDPC code; and encode data using the second parity check matrix, and the transmitter is configured to transmit the encoded data.
[0007] On the other hand, the present disclosure relates to a device, comprising: a receiver configured to receive encoded data; and one or more processors configured to: identify a second parity check matrix corresponding to a first exponent matrix including 384 values of a second quasi-cyclic low-density parity-check (QC-LDPC) code based on a first parity check matrix of a first QC-LDPC code according to a 5 / 6 code rate, wherein the second QC-LDPC code has a code block size that is twice the code block size of the first QC-LDPC code; and decode the received encoded data using the second binary parity check matrix. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Various objectives, aspects, features, and advantages of the present disclosure will become more apparent and better understood by reference to the detailed description in conjunction with the accompanying drawings, in which like reference symbols identify corresponding elements throughout. In the drawings, like reference symbols generally indicate identical, functionally similar, and / or structurally similar elements.
[0009] Figure 1 is a diagram depicting an exemplary communication environment having a communication system according to one or more embodiments.
[0010] Figure 2 is a schematic block diagram of an operating system according to an embodiment.
[0011] Figure 3 is a diagram depicting an exemplary exponent matrix according to one or more embodiments.
[0012] Figure 4 is a diagram depicting an exemplary shift identity matrix for generating a parity check matrix according to one or more embodiments.
[0013] Figure 5 is a diagram depicting an exemplary parity check matrix according to one or more embodiments.
[0014] Figure 6 is a diagram depicting an exemplary exponent matrix according to one or more embodiments.
[0015] Figures 7A to 7C are diagrams each depicting an exemplary binary matrix Γ (also referred to as a "gamma matrix" or "Γ matrix") according to one or more embodiments.
[0016] Figures 8A to 8C is a diagram depicting an exemplary exponent matrix according to one or more embodiments.
[0017] Figure 9 is a diagram depicting an exemplary implementation (source code) of using the binary matrix Γ to generate a parity-check matrix according to one or more embodiments.
[0018] Figure 10 is a flowchart showing a process for determining one or more binary matrices Γ according to one or more embodiments.
[0019] Figures 11A to 11F is a diagram depicting a graphical representation of a binary parity-check matrix according to one or more embodiments.
[0020] Figure 12 is a flowchart showing a process for encoding data using an LDPC code according to an embodiment.
[0021] Figure 13 is a flowchart showing a process for encoding data and / or decoding data using an LDPC code according to an embodiment.
[0022] Details of various embodiments of the methods and systems are set forth in the accompanying drawings and the description below. Detailed Description
[0023] The following disclosure provides many different embodiments or examples for implementing different features of the provided subject matter. Specific examples of components and arrangements are described below to simplify the present disclosure. Of course, these are only examples and are not intended to be limiting. For example, in the following description, the communication of a first feature with a second feature or the communicative coupling of a first feature to a second feature may include embodiments in which the first feature communicates directly with the second feature or is directly coupled to the second feature and may also include embodiments in which additional features may intervene between the first and second features such that the first feature communicates indirectly with the second feature or is indirectly coupled to the second feature. Additionally, the present disclosure may repeat reference numerals and / or letters in various instances. This repetition is for the purpose of simplicity and clarity and does not in itself indicate a relationship between the various embodiments and / or configurations being discussed.
[0024] On the one hand, a parity-check matrix defines a set of equations that any valid codeword satisfies. The parity-check matrix can be used to encode low-density parity-check ("LDPC") codes, as described by Richardson and Urbanke in IEEE Transactions on Information Theory, Vol. 47, No. 2 (February 2001). Generally, many wireless and wired communication systems use LDPC as a forward error correction coding scheme. However, the longest block length (in bits) of the coded data supported by the 802.11 standards (such as 802.11n to 802.11be) is 1944. There may be limited gain achievable with a 1944 block length in a wireless communication channel (such as a 2×2 multiple-input and multiple-output channel).
[0025] To address this issue, in accordance with certain aspects, embodiments in the present disclosure relate to techniques for supporting or providing LDPC codes with a block length of 3888 and a code rate of 5 / 6. The 3888 block length is twice the block length of the longest code (such as the 1944 block length) supported by the 802.11n to 802.11be standards. In some embodiments, the LDPC code has a quasi-cyclic (QC) structure that aids in efficient encoding and decoding. In some embodiments, the QC-LDPC code can be a class of structured LDPC codes that can be used in many practical applications including the IEEE 802.11n, 802.11ac, 802.11ax, 802.11be standards. In a QC-LDPC code, the parity-check matrix has a cyclic structure that repeats itself in a quasi-cyclic manner, which can simplify the encoding and decoding processes to make the QC-LDPC code more efficient. The code block size (denoted by n) refers to the total number of coded or transmitted bits resulting from encoding data using an error correction code (such as LDPC). The number of information bits (denoted by k) refers to the number of bits carrying data that is to be encoded using the error correction code. The code rate (denoted by R) refers to the ratio of the number of information bits to the code block size (R = k / n). In some embodiments, the LDPC encoder can take a block of k bits from the information bits (such as k = 3240) and produce n coded bits with a code rate R = k / n (such as R = 5 / 6, n = 3888). The LDPC decoder can operate on the noisy version of the n received bits and (ideally) recover the k information bits. In some embodiments, the LDPC encoder can take a block of k bits from the information bits as input, encode the block of k bits to produce a block of n coded bits with a code rate of 5 / 6 (R = k / n) (such as n = 3888).
[0026] In some embodiments, a device may include a transmitter and one or more processors. The one or more processors may be configured to determine a first parity-check matrix of a first QC-LDPC code having a first codeblock size and a 5 / 6 code rate. A parity-check matrix refers to a matrix that can define the relationship (e.g., parity-check equations or constraints) between information bits and parity-check bits. A binary parity-check matrix refers to a parity-check matrix in which all elements are 0 or 1. The one or more processors may be configured to determine a binary matrix (also referred to as a "gamma matrix" or "Γ matrix") having a size that is the same as the size of the exponent matrix of the first parity-check matrix. For example, the exponent matrix of the first parity-check matrix may have a dimension of 4×24 (4 rows and 24 columns) that is the same as the dimension of the binary matrix. The one or more processors may be configured to generate a second parity-check matrix of a second QC-LDPC code having a second codeblock size and a 5 / 6 code rate based on the first parity-check matrix and the binary matrix. The one or more processors may be configured to encode data using the generated second parity-check matrix. The one or more processors may be configured to transmit the encoded data to another device via the transmitter of the device.
[0027] In some embodiments, the first codeblock size may be 1944 bits, and the second codeblock size may be 3888 bits. In some embodiments, each of the first parity-check matrix and the second parity-check matrix may have an exponent matrix including a plurality of integers, the number of the plurality of integers being equal to the number of elements of the parity-check matrix divided by z, where z is an integer representing the lifting coefficient of the QC-LDPC. Each element of the exponent matrix may correspond to a cyclic shift value of an identity matrix. The size of the identity matrix is z×z, and the cyclic shift value d is an integer such that -1≤d<z, where z is an integer representing the lifting coefficient of the QC-LDPC. The cyclic shift value d may represent a shifted identity matrix obtained by shifting the identity matrix to the right by d. The cyclic shift value -1 may represent a zero matrix of the identity matrix.
[0028] In some embodiments, when determining the binary matrix, the one or more processors may be configured to determine a plurality of submatrices of the binary matrix, each submatrix being a power of a 2×2 permutation matrix. The one or more processors may be configured to randomize the non-zero values of the binary matrix such that the binary matrix maintains a full rank.
[0029] In some embodiments, the binary matrix may comprise the following group of values: [1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0]; and the second exponent matrix corresponding to the second parity-check matrix of the binary matrix may comprise the following group of values: [-113 48 -1 80 -1 -1 66 -1 4 74 -1 -1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1 -1 74 7 -1 -1 30 -1 76 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 -1 -1 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 69 -1 63 -1 74 -1 -1 56 64 -1 -1 77 57 -1 65 -1 -1 6 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 -1 64 77 -1 -1 57 -1 65 6 -1 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -1 0 80 -1 24 -1 -1 25 42 -1 54 -1 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 51 -1 15 -1 0 -1 -1 80 -1 24 25 -1 -1 42 -1 54 44 -1 71 -1 71-1 -1 9 -167 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1-1 36 -1 41 -1 44 -1 56 -1 59 -1 37 50 -1 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52-1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1 -1 0 -1 16 -1 -1 29 36 -1 41 -1 44-1 44 -1 56 -1 59 -137 -1 -1 50 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1-1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1]。
[0030] In some embodiments, when generating a second parity check matrix based on a first parity check matrix and a binary matrix, one or more processors may be configured to determine a first exponent matrix of the first parity check matrix, determine the Khatri-Rao product of the first exponent matrix and the binary matrix, and determine a second exponent matrix of the second parity check matrix based on the result of the Khatri-Rao product. When generating a second parity check matrix based on a first parity check matrix and a binary matrix, one or more processors may be configured to generate a shifted identity matrix of the identity matrix for each element of the second exponent matrix based on the value of each element of the second exponent matrix. One or more processors may be configured to generate the second parity check matrix such that the second parity check matrix includes the generated shifted identity matrix as an element corresponding to each element of the second exponent matrix.
[0031] In some embodiments, the binary matrix may include the following set of values: [0 0 1 0 1 1 1 1 1 1 1 0 10 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 01 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 01 0 1 1 0]; and the second exponent matrix corresponding to the second parity-check matrix of the binary matrix may include the following set of values: [13 -1 48 -1 -1 80 66 -1 -1 4 -1 74 -1 7 -1 30 -1 76 -1 52 -1 37 60 -1 -1 -149 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 13 -1 4880 -1 -1 66 4 -1 74 -1 7 -1 30 -1 76 -1 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 7331 -1 74 -1 73 -1 -1 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 69 -1 -1 63 74 -1 56 -164 -1 77 -1 57 -1 65 -1 6 -1 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -162 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 63 -1 -1 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27-1 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 -1 -1 0 80 -1 -1 24 25 -1 -1 42 54 -1 44 -171 -1 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0-1 0 -1 -1 51 -1 15 0 -1 -1 80 24 -1 -1 25 42 -1 -1 54 -1 44 -1 71 71-1 -1 9-1 67 -1 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 -1 16 29-1 -1 36 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50 -1 24 -1 -1 -1 65 4 -1 -1 65 -152 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1 -1 0 -1 16 -1 -1 29 36 -1 41 -144 -1 -1 56 59 -1 37 -1 50 -1 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1 -1 0]。
[0032] In some embodiments, the binary matrix may comprise the following set of values: [0 1 1 1 1 0 0 1 0 1 0 1 11 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 11 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 11 0 1 1 0]; and the second exponent matrix corresponding to the second parity-check matrix of the binary matrix may comprise the following set of values: [13 -1 -1 48 -1 80 -1 66 -1 4 74 -1 7 -1 -1 30 76 -1 -1 52 37 -1 -1 60 -1 -1-1 49 73 -1 31 -1 -1 74 73 -1 -1 23 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 13 48 -180 -1 66 -1 4 -1 -1 74 -1 7 30 -1 -1 76 52 -1 -1 37 60 -1 -1 -1 49 -1 -1 73 -1 31 74 -1 -1 73 23 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 64-1 -1 77 57 -1 -1 65 6 -1 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 -1 9 48 -1 -162 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 -1 69 -1 63 -1 74 -1 -1 56 -1 64 77 -1 -157 65 -1 -1 6 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 9 -1 -1 48 62 -1 -1 54 -127 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 -1 -1 0 -1 80 -1 24 -1 25 -1 42 54 -1 -1 4471 -1 71 -1 71 9 67 -1 -1 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 53 -1 0 -1 -1 -1 0-1 0 -1 -1 51 -1 15 0 -1 80 -1 24 -1 25 -1 42 -1 -1 54 44 -1 -1 71 -171 9 -1-1 67 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 16 29-1 36 -1 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50 24 -1 -1 -1 -1 65 4 -1 65 -1 52-1 -1 -1 4 -1 -1 -1 -1 73 -1 52 1 -1 -1 -1 -1 -1 0 -1 16 -1 -1 29 -1 36 41 -144 -1 -1 56 59 -1 37 -1 50 -1 -1 24 -1 -1 65 -1 -1 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 52 -1 -1 1 -1 -1 -1 -1 -1 0
[0033] Generally, the parity-check matrix representation of a code determines equations for whether an error has occurred during transmission. More formally, for all valid codewords (i.e., bits produced error-free by the encoder), the following equation can be true:
[0034] Hc = 0 …………… (Equation 1)
[0035] In Equation 1, "H" is the parity-check matrix, "c" is the codeword vector, and "0" is the all-zero vector. The parity-check matrix H is a way to describe the code.
[0036] The generator matrix G of a code satisfies the following equation:
[0037] sG = c …………… (Equation 2)
[0038] In Equation 2, "s" is the information-bit vector, "G" is the generator matrix, and "c" is the codeword corresponding to "s". In some embodiments, a system (including Figure 1 the communication system 108 including the decoder 160 therein) can use Equation 2 to decode the codeword c to obtain the decoded data s.
[0039] The parity check and generation matrices of the code are related according to the above matrix equations. Generally, if the parity check matrix is low density, then the corresponding generation matrix will be high density, and vice versa. Thus, LCPC codes are characterized by a low density parity check matrix and a high density generation matrix. The density of the matrix is related to the number of operations that must be performed to implement one of the above equations. Although it was recognized in 1995 that LDPC codes can be used to transmit data with very few errors (i.e., having an error rate as good as or better than turbo codes), one disadvantage of LDPC codes is that their generation matrix is high density and makes the encoding operation intensive such that the code is not suitable for many applications.
[0040] In some embodiments, the parity check matrix may have a quasi-cyclic structure, such as the parity check matrix for a QC-LDPC code (n = 3888, k = 3240, R = 5 / 6). For example, given a lifting coefficient z, the parity check matrix may have multiple submatrices such that each submatrix is a cyclic shift version of an identity matrix of size (z×z), where z = 162. The parity check matrix can be represented in two equivalent forms: (1) the parity check matrix H and (2) the block matrix or exponent matrix P = E(H).
[0041] In some embodiments, the parity check matrix H may be a binary matrix of size m×n (where each of m and n is an integer). The elements of the parity check matrix are binary values. Given a block length n and a code rate R, the LDPC code (or QC-LDPC code) LDPC(n,R) satisfies the following equations:
[0042] k = nR …………… (Equation 3)
[0043] m = n(1 - R) …………… (Equation 4)
[0044] In some embodiments, a block matrix or exponent matrix (QC-LDPC exponent matrix) may be obtained. Given a lifting coefficient z, the exponent matrix P = E(H) may have a size of m / z×n / z. If n = 24z (e.g., n = 3888, z = 162), then P = E(H) has a size of 24(1 - R)×24 ( = n(1 - R) / z×n / z). The elements of the exponent matrix may be integer values corresponding to cyclic shift values of an identity matrix of size z×z. The parity check matrix H may be a sparse binary matrix that can be derived from the exponent matrix P = E(H). The generation matrix G may have a size of n×k in binary form (e.g., the elements of the generation matrix G are binary values). The exponent matrix P = E(H) may have a structure that includes multiple submatrices (e.g., A, B, C, D, E, T).
[0045] In some embodiments, a binary QC-LDPC code LDPC(n,R) may be characterized by the null space of an n(1-R)×n parity-check matrix H. The parity-check matrix H may be a binary sparse matrix that includes a set of circulant matrices of size z×z. The parity-check matrix H of the QC-LDPC code may be equivalently represented by an exponent matrix P = E(H). This representation may help to illustrate the graphical structure of the underlying code along with the shift coefficients as a base graph.
[0046] In some embodiments, the parity-check matrix H may be generated from an exponent matrix P = E(H). The exponent matrix P = E(H) may include shift values d (as elements) in the range 0 <= d < z and d = -1. For example, if z = 7, then the shift values d may include -1, 0, 1, 2, 3, 4, 5, 6. The shift value d = 0 may correspond to (or map to) an identity matrix of size z×z, denoted by I(z). The shift value d = -1 may correspond to (or map to) a zero matrix of size z×z (all elements zero), denoted by 0*I(z). Any other integer value d in [1,z-1] may correspond to (or map to) a matrix that is cyclically right-shifted from I(z). The parity-check matrix H may be obtained from the exponent matrix P = E(H) by expanding the exponent matrix P such that each element (as the shift value d) of the exponent matrix P is replaced by a matrix corresponding to the shift value.
[0047] In some embodiments, the exponent matrix P = E(H) may include multiple elements which correspond to values, where and ń satisfy the following equation:
[0048]
[0049] ń = n / z …………… (Equation 6)
[0050] The exponent matrix (or permutation matrix) P = E(H) may be represented as follows:
[0051]
[0052] The corresponding parity-check matrix H may be obtained by replacing each element (as the shift value d) of the matrix with a matrix C(d) corresponding to the shift value as follows:
[0053]
[0054] For example, the matrix C(1) may be represented as follows:
[0055]
[0056] In some embodiments, an encoder may use a generator matrix (e.g., using Equation 2) to generate a codeword. In some embodiments, an encoder may use a parity-check matrix (instead of a generator matrix) to generate a codeword from an information-bit vector. After obtaining the parity-check matrix H, the parity-check matrix H may have submatrices A, B, C, D, T, E. The upper region O of the submatrix T may correspond to the region where the matrix contains all 0s, and the other regions may represent positions that may contain 1s.
[0057] In some embodiments, the codeword c may be obtained by the following expression:
[0058] c = [s p1 p2] ………… (Equation 10)
[0059] where "s" is a vector of information bits to be encoded, "p1" is a vector of the first g parity-check bits, and "p2" is a vector of the remaining m - g parity-check bits.
[0060] The vectors p1 and p2 may be obtained by the following equations:
[0061] Φ = -ET -1 B + D ………… (Equation 11);
[0062] p1 T = -Φ -1 (-ET -1 A + C)s T ………… (Equation 12); and
[0063] p2 T = -T -1 (As T + Bp1 T ) ………… (Equation 13)
[0064] Although the various embodiments disclosed herein are described for encoding data for wireless communication (e.g., a wireless local area network (WLAN) compliant with any IEEE 802.11 standard), the principles disclosed herein may be applied to other types of communication (e.g., wired communication) or any process that performs encoding on LDPC codes.
[0065] In some embodiments, a system and / or method may use Khatri-Rao lifting (e.g., using the Khatri-Rao product) to generate an LDPC code with a 5 / 6 code rate. For example, the system may use a base LDPC code (as the mother code) to recursively construct an LDPC code with a block length that is twice the block length of the base LDPC code. Similar to QC-LDPC codes, the mother code may be defined by a parity-check matrix H or an exponent matrix P = E(H). Each element in P may be an integer value corresponding to a cyclic shift value of an identity matrix of size z × z.
[0066] In some embodiments, the system may determine (e.g., calculate, operate, obtain) a binary matrix Γ having the same size (or dimension) as P=E(H). The binary matrix Γ may internally contain a submatrix that is a switching matrix (e.g., a 2nd-order commutative matrix). The non-zero values (1) of the matrix Γ may be randomized so that the rank of the binary matrix maintains full rank while the binary matrix meets good LDPC code performance (e.g., achieving a low packet error rate). The system may perform a computer search (e.g., searching using one or more processors) to identify an optimal Γ that produces minimum packet error performance (e.g., a packet error rate (PER)). For example, for a Wi-Fi code with a code rate R, the matrix Γ may maintain a full rank equal to 24 / (1-R). For example, for a code rate of R=5 / 6, the binary matrix Γ may have a dimension of 4×24 (4 rows, 24 columns) and a full rank of 4 (=24 / (1-5 / 6)). The rank of a matrix refers to the maximum number of linearly independent columns of the matrix or the dimension of the vector space generated by the columns of the matrix.
[0067] In some embodiments, LDPC codes generated (eg, constructed, created) using the Katri-Rao lifting scheme may be used to design a Wi-Fi LDPC code with block length = 3888 bits from an existing LDPC code with block length = 1944 bits.
[0068] The Cattery-Rao product is an extension of the block-wise Kronecker product operation when the matrices involved are appropriately partitioned. The Cattery-Rao product can be defined as follows. Consider two matrices A and B of order (dimension or size) u×v and p×q, respectively. In partitioned form, A = (a i,j ) and B=(b k,l ). In addition, let A=(A i,j ) with order u i ×v j A i,j Divide into (i, j)th sub-matrix blocks and make B = (B i,j ) with order p k ×q l B i,j is divided into the (k,1)th sub-matrix block, where ∑ i u i =u,∑ j v j =v,∑ k p k =p,∑ l q l =q. The Cattell-Rao product operation of two matrices A and B can be defined as follows:
[0069]
[0070] where is the Khatri-Rao product operation, is of order u i p i × v j q j Kronecker product and the total output has order ∑ i u i p i × ∑ j v j q j . When the matrices involved can be well partitioned, the block Kronecker product is extended. An example of calculating the Khatri-Rao product is shown below. Let
[0071]
[0072] Next, when u i = 1, v i = 1, 1 ≤ i ≤ 2, 1 ≤ j ≤ 4 and p k = q l = 2, 1 ≤ k ≤ 2, 1 ≤ l ≤ 4, the Khatri-Rao product of A and B is given by
[0073]
[0074] In some embodiments, the system can perform (e.g., calculate, operate on) Khatri-Rao lifting as follows. Let P ≡ E(H) be the exponent matrix corresponding to the parity-check matrix H of the QC-LDPC code. The exponent matrix can contain integer values between -1, 0,..., z - 1, where z is a design parameter of the code. For a block length of 1944, the system can use z = 81 for the Wi-Fi error correction code. By cyclically shifting the components of P by the identity matrix the parity-check matrix H can be obtained from the P matrix. The system can use Equation 15 below to determine (e.g., calculate, operate on, obtain) the new code matrix
[0075]
[0076] where is the Khatri-Rao product operation, Γ is a binary matrix, is the all-ones matrix whose order (dimension or size) is the same as that of the Γ matrix (e.g., u × v), and is called the exchange matrix of order 2. ⊙ is an operation involving matrix exponentiation defined as follows:
[0077]
[0078] where B has the dimension of (u × v).
[0079] In some embodiments, the system may generate (e.g., compute, operate on, obtain) a (new) parity check code by computing the Khatri-Rao product (using Equation 16) of a parity check matrix (of size m×n) of a base code and a binary (random) matrix Γ. In some embodiments, the system may determine the binary matrix Γ by iteratively changing the elements of the matrix and finding one or more optimal matrices based on the number of shortest loops and / or block error performance (see Figure 10 ).
[0080] In some embodiments, as with QC-LDPC codes, the system may define (e.g., compute, operate on, obtain, generate) a base code as a parity check matrix H or an exponent matrix E(H). The system may compute (e.g., generate, operate on, obtain, determine) a binary matrix Γ having the same size as E(H). In some embodiments, if H is selected as the representation of the parity check matrix, then matrix Γ may have the same size as H. Matrix Γ may internally contain submatrices that are powers of a permutation matrix J(2). The non-zero values (e.g., the value “1”) of the binary matrix Γ may be randomized such that the resulting matrix conforms to good LDPC code performance (e.g., block error performance). For example, for a Wi-Fi error correction code with an R code rate, the system may randomize the non-zero values of a binary matrix Γ (which has dimensions (u×v)) such that matrix Γ may maintain a full rank equal to min(u,v)=24 / (1 - R). An example of the binary matrix Γ is shown in FIG. 7, but the present disclosure is not limited thereto and any suitable binary matrix Γ may be used to generate a QC-LDPC code. Examples of the exponent matrix E(H) and the parity check matrix H are shown in Figure 8A and Figure 8B respectively, but the present disclosure is not limited thereto (e.g., not limited to Wi-Fi error correction codes) and the techniques according to some embodiments may be applied to any general parity check matrix or its equivalent cyclic representation. In some embodiments, the system may verify the binary Γ matrix from a given parity check matrix and a base matrix. For example, the system may verify the binary Γ matrix based on the performance of the given parity check matrix and the base matrix. In some embodiments, the binary Γ matrix may be any binary matrix Γ that is full rank. A matrix A is full rank if the rank of the matrix (i.e., matrix A) is the highest possible for a matrix of the same size as matrix A.
[0081] Embodiments in the present disclosure have at least the following advantages and benefits.
[0082] First, embodiments in the present disclosure may provide useful techniques for providing significant gains in all modulation schemes. For example, the block length of a QC-LDPC code according to some embodiments (e.g., 3888 bits) is at least twice the block length of the longest code supported by the 802.11n to 802.11be standards (e.g., 1994 bits). This QC-LDPC code can provide a gain of approximately 2 dB in a 2×2 MIMO (Multiple-Input Multiple-Output) channel and the gain is consistent across all modulation schemes with or without beamforming.
[0083] Second, embodiments in the present disclosure may provide useful techniques for providing significant gains (e.g., a gain of 0.5 dB to 1.2 dB in SNR (Signal-to-Noise Ratio) compared to existing codes) in all modulation schemes. For example, the block length of a QC-LDPC code according to some embodiments (e.g., 3888 bits) is at least twice the block length of the longest code supported by the 802.11n to 802.11be standards (e.g., 1994 bits). This QC-LDPC code can provide a gain of approximately 2 dB in a 2×2 MIMO channel and the gain is consistent across all modulation schemes with or without beamforming.
[0084] Third, the codes generated using the systems and / or methods according to embodiments in the present disclosure can facilitate parallel decoding and reusing several blocks of the mother code.
[0085] Refer to Figure 1 , the figure illustrates an exemplary communication environment 100 including communication systems (communication devices) 105, 108 according to one or more embodiments. In one embodiment, communication system 105 includes baseband circuitry 110 and transmitter circuitry 120, and communication system 108 includes baseband circuitry 150 and receiver circuitry 140. On the one hand, communication system 105 is regarded as a transmitter communication system, and communication system 108 is regarded as a receiver communication system. These components operate together to exchange data (such as messages or frames) via a wireless medium. In one or more embodiments, these components are embodied as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or any combination thereof. In some embodiments, communication systems 105, 108 include more, fewer, or different components than those Figure 1 shown. For example, each of communication systems 105, 108 includes transceiver circuitry for allowing two-way communication between communication systems 105, 108 or with other communication systems. In some embodiments, each of communication systems 105, 108 may have a configuration similar to that of the computing system 2000 Figure 2 shown.
[0086] The baseband circuitry 110 of the communication system 105 is circuitry that generates baseband data 115 for transmission. The baseband data 115 contains information data (e.g., signals) at baseband frequencies for transmission. In one method, the baseband circuitry 110 includes an encoder 130 that encodes data and generates or outputs parity bits. In one aspect, the baseband circuitry 110 (or the encoder 130) obtains a generator matrix or a parity-check matrix, or uses a previously generated generator matrix or a previously generated parity-check matrix, and encodes the information data by applying the information data to the generator matrix or the parity-check matrix to obtain a codeword. In some embodiments, the baseband circuitry 110 stores one or more generator matrices or one or more parity-check matrices that conform to any IEEE 802.11 standard for WLAN communication. The baseband circuitry 110 retrieves the stored generator matrix or the stored parity-check matrix in response to detecting information data to be transmitted or in response to receiving an instruction to encode information data. In one method, the baseband circuitry 110 generates parity bits based on a portion of the generator matrix or using the parity-check matrix, and appends the parity bits to the information bits to form a codeword. The baseband circuitry 110 generates baseband data 115 that contains the codeword for the communication system 108 and provides the baseband data 115 to the transmitter circuitry 120.
[0087] The transmitter circuitry 120 of the communication system 105 includes or corresponds to circuitry that receives baseband data 115 from the baseband circuitry 110 and transmits a wireless signal 125 based on the baseband data 115. In one configuration, the transmitter circuitry 120 is coupled between the baseband circuitry 110 and an antenna (not shown). In this configuration, the transmitter circuitry 120 upconverts the baseband data 115 from the baseband circuitry 110 onto a carrier signal to generate a wireless signal 125 at an RF frequency (e.g., 10 MHz to 60 GHz) and transmits the wireless signal 125 through the antenna.
[0088] The receiver circuitry 140 of the communication system 108 is circuitry that receives the wireless signal 125 from the communication system 105 and obtains baseband data 145 from the received wireless signal 125. In one configuration, the receiver circuitry 140 is coupled between the baseband circuitry 150 and an antenna (not shown). In this configuration, the receiver circuitry 140 receives the wireless signal 125 through the antenna and downconverts the wireless signal 125 based on the carrier signal at an RF frequency to obtain baseband data 145 from the wireless signal 125. The receiver circuitry 140 then provides the baseband data 145 to the baseband circuitry 150.
[0089] The baseband circuitry 150 of the communication system 108 includes or corresponds to circuitry that receives baseband data 145 from the receiver circuitry 140 and obtains information data from the received baseband data 145. In one embodiment, the baseband circuitry 150 includes a decoder 160 that extracts information and parity bits from the baseband data 145. The decoder 160 decodes the baseband data 145 to obtain the information data generated by the baseband circuitry 110 of the communication system 105.
[0090] In some embodiments, each of the baseband circuitry 110 (including the encoder 130), the transmitter circuitry 120, the receiver circuitry 140, and the baseband circuitry 150 (including the decoder 160) may be one or more processors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any combination thereof.
[0091] Figure 2 is a schematic block diagram of an operating system according to an embodiment. The illustrated exemplary operating system 2000 includes one or more processors 2010 that communicate directly or indirectly via a communication system 2040 (e.g., a bus) with a memory 2060, at least one network interface controller 2030 having a network interface port for connecting to a network (not shown), and other components (e.g., input / output (“I / O”) components 2050). Generally, the processor 2010 will execute instructions (or computer programs) received from the memory. The illustrated processor 2010 incorporates or is connected to a cache 2020. In some examples, instructions are read from the memory 2060 into the cache 2020 and executed by the processor 2010 from the cache 2020. The operating system 2000 does not necessarily contain Figure 2 all of these components shown in Figure 2 and may contain
[0092] More specifically, the processor 2010 may be any logic circuitry that processes instructions (e.g., instructions fetched from the memory 2060 or the cache 2020). In many implementations, the processor 2010 is a microprocessor unit or a dedicated processor. The computing device 2050 may be based on any processor or group of processors capable of operating as described herein. The processor 2010 may be a single-core or multi-core processor. The processor 2010 may be multiple different processors.
[0093] The memory 2060 can be any device suitable for storing computer-readable data. The memory 2060 can be a device with fixed storage or a device for reading removable storage media. Examples include all forms of volatile memory (such as RAM), non-volatile memory, media and memory devices, semiconductor memory devices (such as EPROM, EEPROM, SDRAM, and flash memory devices), magnetic disks, magneto-optical disks, and optical disks (such as CD ROM, DVD-ROM, or optical disk). The computing system 2000 can have any number of memory devices 2060.
[0094] The cache 2020 is generally in the form of computer memory placed closely adjacent to the processor 2010 to achieve fast read times. In some embodiments, the cache 2020 is part of the processor 2010 or on the same chip as the processor. In some embodiments, there are multiple levels of cache 2020, such as L2 and L3 cache layers.
[0095] The network interface controller 2030 manages data exchange via a network interface (sometimes referred to as a network interface port). The network interface controller 2030 handles the physical and data link layers of the OSI model for network communication. In some embodiments, some tasks of the network interface controller are handled by one or more of the processors 2010. In some embodiments, the network interface controller 2030 is part of the processor 2010. In some embodiments, the computing system 2000 has multiple network interfaces controlled by a single controller 2030. In some embodiments, the computing system 2000 has multiple network interface controllers 2030. In some embodiments, each network interface is a connection point for a physical network link (such as a cat-5 Ethernet link). In some embodiments, the network interface controller 2030 supports wireless network connections and the interface port is wireless (such as a radio) receiver or transmitter (such as for the IEEE 802.11 protocol, near field communication "NFC", Bluetooth, ANT, or any other wireless protocol). In some embodiments, the network interface controller 2030 implements one or more network protocols, such as Ethernet. Generally, the computing device 2050 exchanges data with other computing devices via the network interface over a physical or wireless link. The network interface can be directly linked to another device or linked to another device via an intermediate device (such as a network device, such as a hub, bridge, switch, or router) of a data network that connects the computing device 2000 to, for example, the Internet.
[0096] The computing system 2000 may include one or more input or output ("I / O") devices or provide an interface for one or more input or output ("I / O") devices. Input devices include (but are not limited to) keyboards, microphones, touchscreens, foot pedals, sensors, MIDI devices, and pointing devices such as mice or trackballs. Output devices include (but are not limited to) video displays, speakers, refreshable braille terminals, lights, MIDI devices, and 2D or 3D printers.
[0097] Other components may include an I / O interface, an external serial device port, and any additional coprocessors. For example, the computing system 2000 may include an interface (such as a Universal Serial Bus (USB) interface) for connecting input devices, output devices, or additional memory devices (such as a portable flash drive or an external media drive). In some embodiments, the computing device 2000 includes additional devices such as a coprocessor. For example, a math coprocessor may assist the processor 2010 with high-precision or complex calculations.
[0098] The component 2090 may be configured to connect to external media, the display 2070, the input device 2080, or any other component in the computing system 2000 or a combination thereof. The display 2070 may be a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a flat panel display, a solid state display, a cathode ray tube (CRT) display, a projector, a printer, or any other currently known or later developed display device for outputting determined information. The display 2070 may act as an interface for a user to view the functions of the processor 2010 or, specifically, as an interface for software stored in the memory 2060.
[0099] The input device 2080 may be configured to allow a user to interact with any of the components of the computing system 2000. The input device 2080 may be a plurality of boards, a keyboard, a cursor control device such as a mouse, or a joystick. Additionally, the input device 2080 may be a remote control, a touchscreen display (which may be a combination of the display 2070 and the input device 2080), or any other device operable to interact with the computing system 2000 (such as any device operable to act as an interface between the user and the computing system 2000).
[0100] Figure 3 is a diagram depicting an exemplary exponent matrix (QC-LDPC exponent matrix) 300 according to one or more embodiments. Given the lifting coefficient z, the exponent matrix 300 may have a size of m / z × n / z. If n = 24z (e.g., n = 3888, z = 162), then the size of P = E(H) is 24(1 - R) × 24 (= n(1 - R) / z × n / z). The elements of the exponent matrix may be integer values corresponding to cyclic shift values of an identity matrix of size z × z. The parity check matrix H (seeFigure 5 ) may be a sparse binary matrix derivable from the exponent matrix P = E(H). The generator matrix G may have a size of n × k in binary form (e.g., the elements of the generator matrix G are binary values). Refer to Figure 3 , the exponent matrix P = E(H) may have a structure including multiple sub-matrices (e.g., A 310, B 312, C 316, D 318, E 320, T 314).
[0101] Figure 4 FIG. 400 depicts exemplary shift identity matrices 409, 410, 411, 412, 413, 414, 415, 416 for generating a parity check matrix according to one or more embodiments. The parity check matrix H may be generated from the exponent matrix P = E(H) (e.g., exponent matrix 300) or may be identified using a codebook. As shown in Equation 7, the exponent matrix P = E(H) may include shift values d (as elements) in the range 0 <= d < z and d = -1. For example, see the equation, if z = 7, then the shift values d may include -1, 0, 1, 2, 3, 4, 5, 6 (see Figure 4 ). The shift value d = 0 may correspond to (or map to) an identity matrix of size z × z represented by I(z) (e.g., matrix 410). The shift value d = -1 may correspond to (or map to) a zero matrix of size z × z represented by 0*I(z) (all elements are zero) (e.g., matrix 409). Any other integer value d in [1, z - 1] may correspond to (or map to) a matrix circularly shifted right from I(z) (e.g., matrices 411, 412, 413, 414, 415, 416). As shown in Equation 8, the parity check matrix H can be obtained from the exponent matrix P = E(H) by expanding the exponent matrix P such that each element (as the shift value d) of the exponent matrix P is replaced by a matrix corresponding to the shift value.
[0102] Figure 5 FIG. depicts an exemplary parity check matrix 500 according to one or more embodiments. In some embodiments, an encoder (e.g., encoder 130) may use a generator matrix (e.g., using Equation 2) to generate a codeword. In some embodiments, an encoder (e.g., encoder 130) may use a parity check matrix (instead of a generator matrix) to generate a codeword from an information bit vector. After obtaining the parity check matrix H (e.g., using a codebook), the parity check matrix H (e.g., parity check matrix 500) may have sub-matrices A 510, B 512, C 516, D 518, T 514, E 520. The upper region O 515 of the sub-matrix T 514 (e.g., Figure 5 the white region in ) may correspond to the region where the matrix contains all 0s, and other regions (e.g., Figure 5The gray area (in ) can represent positions that may contain 1. The parity check matrix 500 can be of size m×n, where the sub - matrix D 518 is of size g×g and the sub - matrix T is of size (m - g)×(m - g). In some embodiments, given the information bit vector s to be encoded, the encoder can use Equation 10, Equation 11, Equation 12, and Equation 13 to obtain the codeword c.
[0103] In some embodiments, the codebook of an R = 5 / 6 LDPC code with a block length of 3888 bits can provide high - performance error correction and / or provide a gain of up to 1.2 dB compared to existing LDPC codes specified in the Wi - Fi standard. In some embodiments, the set of LDPC codes with a block length of 3888 bits (2×1944) supports all code rates in the Wi - Fi standard (e.g., 802.11be). The code (e.g., an R = 5 / 6 LDPC code with a block length of 3888 bits) can be directly used in the existing modulation of 64 - QAM in IEEE 802.11be and may be combined with more combinations of QAM sizes in IEEE 802.11bn.
[0104] In some embodiments, the codebook of an R = 5 / 6 LDPC code with a block length of 3888 bits can be directly used in existing modulations, like existing modulation schemes such as binary phase - shift keying (BPSK), quadrature phase - shift keying (BPSK), 16 - QAM, 64 - QAM, 256 - QAM, 1024 - QAM, and 4096 - QAM, as seen in standards such as IEEE 802.11be or IEEE 802.11bn. Additionally, the codebook of an R = 5 / 6 LDPC code with a block length of 3888 bits has the potential to be employed in combination with one or more combinations of QAM sizes (whether similar or different), across orthogonal frequency - division multiple access (OFDMA) resource units (RUs), distributed RUs (DRUs), punctured RUs (MRUs), within a single stream, and / or across multiple spatial streams, as provided in a multiple - input multiple - output (MIMO) configuration.
[0105] A set of LDPC codes with a block length of 3888 bits (2×1944) can achieve a significant performance improvement with ultra-high reliability (UHR) in various communication scenarios while maintaining manageable complexity. A performance comparison is made between these codes and the LDPC codes specified in the IEEE 802.11be standard as well as recently proposed codes with a block length of 4×1944. The results of the performance comparison show significant gains across the board (e.g., channel, PHY bandwidth, MIMO, modulation and coding scheme (MCS), transmission beamforming). For example, depending on the channel conditions, the LDPC codes with a block length of 3888 bits according to some embodiments can provide a gain of 0.5 to 1.0 dB compared to the current 802.11 LDPC codes. Depending on the channel conditions, the LDPC codes with a block length of 4×1944 bits can provide an additional gain of 0.0 to 0.5 dB.
[0106] The longest LDPC code specified in the 802.11be standard has a block length = 1944 bits. In terms of performance, the LDPC codes specified in the 802.11be standard differ from the best random codes by approximately 2.7 dB (e.g., bit-interleaved coded modulation (BICM)-additive white Gaussian noise (AWGN)-QAM (quadrature amplitude modulation) R = 5 / 6 limit). According to the finite-length scaling law, longer block-length random codes (e.g., the Shannon limit addresses the asymptotic case when the block length grows infinitely large) can result in enhanced coding gain. Sub-optimal deterministic codes can exhibit a scaling gain significantly larger than that of the best random codes. For example, in AWGN, the doubling effect is known to be true.
[0107] In some embodiments, there are LDPC codes with a block length = 2×1944 = 3888 bits (which is twice the size of the maximum supported block length in the current 802.11be standard). In some embodiments, the LDPC codes with a block length of 3888 bits can support all existing code rates (e.g., R = 1 / 2, 2 / 3, 3 / 4, and 5 / 6). In some embodiments, in addition to the matrix size expansion, the LDPC codes with a block length of 3888 bits can keep the structure of the 802.11be codes (specifically, QC-LDPC) unchanged. This adaptation can facilitate the reuse of existing embodiments and permit simultaneous encoding and decoding functionality.
[0108] Figure 6 is a diagram depicting an exemplary exponent matrix (QC-LDPC exponent matrix) 600 according to one or more embodiments. Given the lifting coefficient z, the exponent matrix 600 can have a size of m / z × n / z. If n = 48z (e.g., n = 3888, z = 81), then for n = 3888 The size of the matrix is 48(1-R)×48(=n(1-R) / z×n / z). The elements of the exponential matrix may be integer values corresponding to the cyclic shift values of the identity matrix of size z×z. The parity check matrix H may be obtained from the exponential matrix The derived sparse binary matrix. The generator matrix G may have a size n×k in binary form (eg, the elements of the generator matrix G are binary values). Figure 6 , the exponential matrix It can have multiple sub-matrices (such as ) structure.
[0109] Figures 7A to 7C and Figures 8A to 8C A new Wi-Fi LDPC code of block length = 3888 constructed using the Wi-Fi LDPC code of block length = 1944 as a basic matrix (or base / mother code) is shown. Figure 7A 700 is a diagram depicting an example binary matrix Γ1 having a size (dimension) of (4×24) according to one or more embodiments. In some implementations, using Equation 8, a system or method may calculate (obtain, operate on, generate) a basic parity-check matrix H using a basic exponential (or permutation) matrix P=E(H) corresponding to a code block size n=1994 and a code rate R=5 / 6. The size (dimension) of the exponential matrix P may be the same as the size (4×24) of the example binary matrix Γ1, and the size (dimension) of the basic parity-check matrix H may be (4*z, 24*z), where z is a lifting factor, e.g., z=81. Using Figure 7A The binary matrix Γ1 shown in FIG. 1 , according to some embodiments, the system may determine (e.g., calculate, operate, obtain) a new parity check matrix by performing Katli-Rao lifting with the basic parity check matrix H and the binary matrix Γ1 using Equation 15 Figure 7B and Figure 7C Diagrams 720 , 740 , respectively, depict example binary matrices Γ2 and Γ3 having the same size (dimension) as binary matrix Γ1 , but having different elements than binary matrix Γ1 , according to one or more embodiments.
[0110] Figure 8A Is depicted due to the use Figure 7A An exemplary new code matrix (eg, exponential matrix) constructed by performing Katri-Rao lifting on the basic parity check matrix H and the binary matrix Γ1 shown in 800 of FIG. 800. Example New Index Matrix It may have a size (dimension) of (8×48) and corresponds to a code block size n=3888 (which is twice the code block size of the basic matrix P) and a code rate R=5 / 6 (which is the same as the code rate of the basic matrix P). Figure 8B andFigure 8C FIG. 820, 840 depict exemplary exponent matrices constructed by performing Katti-Rao lifting using a basic parity-check matrix H and binary matrices Γ2 and Γ3, respectively.
[0111] corresponds to Figure 8A the exponent matrix shown in and Figure 7A the new parity-check matrix of the binary matrix Γ1 shown in may have a size (dimension) of (8*z, 48*z) (where z is a lifting coefficient, e.g., z = 81) and corresponds to a code block size n = 3888 (which is twice the code block size of the basic parity-check matrix H) and a code rate R = 5 / 6 (which is the same as the code rate of the basic parity-check matrix H). The new parity-check matrix may be a sparse matrix.
[0112] Figure 9 FIG. 900 depicts an exemplary implementation (source code of a programming language) of using a binary matrix Γ to generate a new parity-check matrix according to one or more embodiments. Figure 9 The source code in Figure 9 contains lines 1 to 12. For example, the source code shown in
[0113] defines a binary matrix Γ corresponding to a code rate of 5 / 6 (e.g., variable "Γ56") at line 2; defines a permutation matrix J(2) (e.g., variable "J") at line 3; defines a Katti-Rao product operation in lines 8 to 12; and performs Katti-Rao lifting using the basic parity-check matrix H (e.g., variable "EH1944") and the binary matrix Γ in lines 4 to 6 to generate a new parity-check matrix Figure 11AA bipartite graph of a set of left vertices indicated by circles and a set of right vertices indicated by rectangles in the original template graph 1100 shown. For example, the system can apply some graph theory constraints to select / choose a better Γ matrix, which can eliminate or reduce short cycles in the original template graph or remove problem nodes (such as trap groups) that cause iterative decoding performance to get stuck (congested, trapped). In some embodiments, the cycles in the original template graph generated using the Γ matrix can be weighted in descending order of the degree of the cycle to evaluate the matrix Γ. In some embodiments, the system can shortlist multiple candidate Γ matrices, perform simulations (such as PER simulation or codeword simulation) on the corresponding parity check matrices generated using the multiple candidate Γ matrices, and select (identify, pick, determine) one or more "best" Γ matrices from the shortlisted (candidate) Γ matrices (for example, the best in terms of meeting graph theory constraints and / or simulation constraints (such as above a threshold)).
[0114] Figure 10 is a flowchart showing a process 1000 for determining one or more binary matrices Γ according to one or more embodiments. The system can execute process 1000 to derive (generate, determine, obtain) one or more (best) binary matrices Γ for use in generating a new parity check matrix (using Katti - Rao lifting) when using the derived matrix. In some embodiments, process 1000 is executed by one or more processors of a device (such as encoder 130 or processor 2010 of communication system 105 or decoder 160 or processor 2010 of communication system 108). In other embodiments, process 1000 is executed by other entities (such as an operating system other than system 105 or system 108). In some embodiments, process 1000 includes more, fewer, or different steps than Figure 10 shown.
[0115] In step 1002, one or more processors can initialize the Γ matrix corresponding to the code rate (such as 1 / 2, 2 / 3, 3 / 4, 5 / 6) with any random binary matrix. For example, if z = 5, u = 3, v = 4, then the system (such as communication system 105 or 108) can initialize the Γ matrix with the following matrix (referred to as "Γ1") having a size (dimension) of (3×4):
[0116]
[0117] The system can identify (receive, obtain, calculate) the basic parity check matrix H1 corresponding to the exponent (or permutation) matrix E(H1) as follows:
[0118]
[0119] Refer to Figure 11A and Figure 11B, the H1 matrix can correspond to the original template graph 1100 and different graphical representations 1110 of the original template graph 1100. Since the H1 matrix can be obtained by cyclically shifting the value of the 5×5 identity matrix by E(H1), the prototype graph 1100 (and the graph 1110) can include 3*5 check nodes 1 to 15 (indicated by rectangles) and 4*5 variable nodes 16 to 35 (indicated by circles). As Figure 11B shown, the H1 matrix (and the corresponding graph 1110) can contain 20 shortest cycles with length = 8 (one of the shortest cycles is indicated by the reference symbol 1111).
[0120] In step 1004, the system can perform (apply, operate, calculate) the Khatri-Rao lift on the basic parity-check matrix H1 using the Γ1 matrix initialized in step 1002 to generate (obtain, calculate, operate) a new parity-check matrix H2 as a new QC-LDPC code. The exponent (or permutation) matrix E(H2) can be generated as follows:
[0121]
[0122] Refer to Figure 11C and Figure 11D , the H2 matrix can correspond to the original template graph 1120 and different graphical representations 1130 of the original template graph 1100. Since the H2 matrix can be obtained by cyclically shifting the value of the 5×5 identity matrix by E(H2), the prototype graph 1120 (and the graph 1130) can include 6*5 check nodes 1 to 30 (indicated by rectangles) and 8*5 variable nodes 31 to 70 (indicated by circles). As Figure 11D shown, the H2 matrix (and the corresponding graph 1130) can contain 20 shortest cycles with length = 8 (one of the shortest cycles is indicated by the reference symbol 1131). That is, when using the Γ1 matrix (see Equation 17), the H2 matrix can contain the same number (20) of short cycles with the same length (8) as the H1 matrix.
[0123] In step 1006, the system can identify and enumerate all the shortest loops corresponding to the new graph (e.g., the graph 1130 in Figure 11D ) of the H2 matrix. For example, the system can identify 20 shortest cycles with length = 8 from the graph 1130 and enumerate each cycle (e.g., the cycle 1131 can be enumerated as ).
[0124] In step 1008, the system may determine (verify) whether the size (length) of the shortest cycle (loop) in the graph corresponding to the H2 matrix is < 6. In step 1010, in response to determining that the size (length) of the shortest cycle (loop) < the threshold (e.g., 6), the system may discard the Γ matrix. In step 1012, in response to determining that the size (length) of the shortest cycle (loop) ≥ the threshold (e.g., 6), the system may add the current Γ matrix (e.g., Γ1) to the shortlist of candidate gamma matrices.
[0125] In step 1014, the system may change an element in the current Γ matrix (e.g., Γ1). For example, in response to determining that the length of the shortest cycle (8) ≥ 6, the system may change an element in the Γ1 matrix to obtain a new Γ matrix (referred to as "Γ2") as follows:
[0126]
[0127] Next, the system may proceed to step 1004 and perform (apply, operate, calculate) the Katti-Rao lift on the base parity-check matrix H1 using the Γ2 matrix updated / changed in step 1014 to generate (obtain, calculate, operate) a new parity-check matrix H2' as a new QC-LDPC code. The exponent (or permutation) matrix E(H2') may be generated as follows:
[0128]
[0129] Reference Figure 11E and Figure 11F , the H2' matrix may correspond to the original protograph 1140 and a different graphical representation 1150 of the original protograph 1140. Since the H2' matrix can be obtained by cyclically shifting the values of the 5×5 identity matrix by E(H2'), the prototype graph 1140 (and the graph 1150) may include 6*5 check nodes 1 to 30 (indicated by rectangles) and 8*5 variable nodes 31 to 70 (indicated by circles). As Figure 11F shown, the H2' matrix (and the corresponding graph 1130) may contain 10 shortest cycles with length = 8 (one of the shortest cycles is indicated by the reference sign 1151). That is, when using the Γ2 matrix (see Equation 20), the H2' matrix may contain a smaller number of short cycles (10) than the number of short cycles (20) in the H2 matrix generated using the Γ1 matrix (see Equation 17).
[0130] In step 1006, the system may identify and enumerate all the shortest loops corresponding to the new graph (e.g., the graph 1150 in Figure 11F ) of the H2' matrix. For example, the system may identify 10 shortest cycles with length = 8 from the graph 1150 and enumerate each cycle (e.g., cycle 1151 may be enumerated as )。In step 1012, in response to determining that the size (length) of the shortest cycle (loop) ≥ threshold (e.g., 6), the system may add the current Γ matrix (e.g., Γ2) to the shortlist of candidate gamma matrices.
[0131] In step 1016, the system may perform one or more simulations (e.g., PER simulation or codeword simulation) on the candidate Γ matrices in the shortlist. In some embodiments, the system may determine that the number of candidate Γ matrices in the shortlist reaches a threshold (e.g., 10) and perform the simulation. In some embodiments, the system may determine that the number of iterations (e.g., iterating through steps 1004 to 1014) reaches a threshold (e.g., 100) and perform the simulation.
[0132] In step 1018, the system may select (determine, pick) one or more Γ matrices from the shortlist as the "best" Γ matrices based on the results of the simulation. In some embodiments, the system may select one or more Γ matrices that satisfy the simulation constraints (e.g., average PER is less than the threshold).
[0133] Figure 12 is a flowchart showing process 1200 for encoding data using an LDPC code according to an embodiment. In some embodiments, process 1200 is executed by one or more processors of a device (e.g., communication system 105, encoder 130, or processor 2010). In other embodiments, process 1200 is executed by other entities. In some embodiments, process 1200 includes more, fewer, or different steps than those Figure 12 shown.
[0134] In step 1202, one or more processors may determine a first parity check matrix (e.g., base parity check matrix H) of a first quasi-cyclic low-density parity-check (QC-LDPC) code having a first code block size (e.g., n = 1944) and a 5 / 6 code rate.
[0135] In step 1204, one or more processors may determine a binary matrix (e.g., binary matrix Γ or Γ matrix) having a size equal to the size of the exponent matrix E(H) of the first parity check matrix. In some embodiments, when determining the binary matrix, one or more processors may be configured to determine a plurality of sub-matrices of the binary matrix (e.g., using Equation 16), each sub-matrix being a power of a 2-by-2 permutation matrix (e.g., matrix J(2)). One or more processors may be configured to randomize the non-zero values of the binary matrix such that the binary matrix maintains full rank. For example, for a Wi-Fi code with code rate R, a matrix Γ of size (u × v) may maintain full rank, which is equal to min(u, v) = 24 / (1 - R).
[0136] In step 1206, one or more processors may generate a second parity check matrix (e.g., a novel parity check matrix) of a second QC-LDPC code having a second code block size (e.g., n = 3888) and a 5 / 6 code rate based on the first parity check matrix and a binary matrix. ) In some embodiments, the first code block size may be 1944 bits and the second code block size may be 3888 bits.
[0137] In some embodiments, each of the first parity check matrix and the second parity check matrix may have an exponent matrix that includes a plurality of integers (e.g., as shown in Equation 7), the number of the plurality of integers being equal to the number of elements of the parity check matrix divided by z, where z is an integer representing the lifting coefficient of the QC-LDPC code (e.g., z = 81). See Equation 5 and Equation 6. Each element of the exponent matrix may correspond to a cyclic shift value of an identity matrix. The size of the identity matrix is z×z, and the cyclic shift value d is an integer such that -1 ≤ d < z, where z is an integer representing the lifting coefficient of the QC-LDPC code. The cyclic shift value d may represent a shifted identity matrix obtained by shifting the identity matrix to the right by d (see Figure 4 , when z = 7). The cyclic shift value -1 may represent a zero matrix of the identity matrix (see Figure 4 matrix 412 in).
[0138] In some embodiments, when generating the second parity check matrix based on the first parity check matrix and the binary matrix, one or more processors may be configured to determine a first exponent matrix of the first parity check matrix, determine the Khatri-Rao product of the first exponent matrix and the binary matrix (e.g., using Equation 16), and determine a second exponent matrix of the second parity check matrix based on the result of the Khatri-Rao product (e.g., using Equation 14).
[0139] In some embodiments, when generating the second parity check matrix based on the first parity check matrix and the binary matrix, one or more processors may be configured to generate a shifted identity matrix (e.g., matrices 410, 411, 412, 413, 414, 415, 416) of the identity matrix for each element of the second exponent matrix based on the value of each element of the second exponent matrix (e.g., d = 0, 1, 2, 3, 4, 5, 6). One or more processors may be configured to generate the second parity check matrix such that the second parity check matrix includes the generated shifted identity matrix (see Equation 8) as an element corresponding to each element of the second exponent matrix.
[0140] In step 1208, the one or more processors may encode the data using the generated second parity check matrix (e.g., using Equation 10, Equation 11, Equation 12, and Equation 13). In step 1210, the one or more processors may transmit the encoded data to another device (e.g., communication system 108) via a transmitter of the device (e.g., transmitter circuitry 120 of communication system 105).
[0141] In one approach, an apparatus (e.g., encoder 130 or processor 2010 of communication system 105) may include a transmitter (e.g., transmitter circuitry 120) and one or more processors (e.g., processor 2010 or baseband circuitry 110). The one or more processors may be configured to identify a first index matrix (e.g., a first parity check matrix H) corresponding to 384 values of a second quasi-cyclic low-density parity-check (QC-LDPC) code according to a 5 / 6 code rate. ) of the second parity check matrix (e.g., a new parity check matrix ). The second QC-LDPC code may have a code block size (e.g., n=3888) that is twice the code block size (e.g., n=1944) of the first QC-LDPC code. One or more processors may be configured to encode data using the second parity check matrix. The transmitter may be configured to transmit the encoded data to another device (e.g., decoder 160 or processor 2010 of communication system 108).
[0142] In some embodiments, one or more processors may be configured to identify (e.g., from a codebook) a first parity check matrix of a first QC-LDPC code having a code rate of 5 / 6. One or more processors may be configured to determine a first binary matrix (e.g., a Γ1 matrix) having the same dimensions as the exponential matrix (e.g., E(H)) of the first parity check matrix (e.g., m / Z×n / Z if the first parity check matrix has (m×n) dimensions). One or more processors may be configured to determine the Cattery-Rao product of the first parity check matrix and the first binary matrix (e.g., using Equation 15). One or more processors may be configured to determine a second parity check matrix (e.g., a new parity check matrix) based on the result of the Cattery-Rao product. ).
[0143] In some implementations, when determining the first binary matrix, the one or more processors may be configured to determine a second binary matrix having the same dimensions as the first binary matrix. The one or more processors may be configured to determine the first binary matrix including at least (1) one or more rows of the second binary matrix or (2) one or more columns of the second binary matrix.
[0144] In some embodiments, when determining the second parity check matrix, one or more processors may be configured to determine a second exponent matrix having the same dimensions as the first exponent matrix based on the result of the Khatri-Rao product. One or more processors may be configured to determine the first exponent matrix based on the second exponent matrix. For example, the first exponent matrix may have the same elements as the second exponent matrix except for one or two elements. One or more processors may be configured to determine the second parity check matrix based on the first exponent matrix (e.g., using Equation 8).
[0145] In some embodiments, the second binary matrix may comprise the following set of values: [1 0 0 1 1 0 1 0 0 1 10 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 11 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 11 0 1 0 1 1 0]. The second exponent matrix may comprise the following set of values: [-1 13 48 -1 80 -1 -1 66 -1 4 74 -1-1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1-1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1 -1 74 7 -1 -1 30 -176 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 -1 -1 23 -1 -1 -1 1 -10 -1 -1 -1 -1 69 -1 63 -1 74 -1 -1 56 64 -1 -1 77 57 -1 65 -1 -1 6 -1 16 -151 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1-1 69 -1 63 -1 74 56 -1 -1 64 77 -1 -1 57 -1 65 6 -1 16 -1 51 -1 -1 -1 -1 64-1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -10 80 -1 24 -1 -1 25 42 -1 54 -1 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -158 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 51 -1 15 -1 0 -1 -1 80 -1 2425 -1 -1 42 -1 54 44 -1 71 -1 71 -1 -1 9 -1 67 35 -1-1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1 -1 36 -1 41 -1 44 -1 56 -1 59 -1 37 50 -1 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1 0 -1 16 -1 -1 29 36 -1 41 -1 44 -1 44 -1 56 -1 59 -1 37 -1 -1 50 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1]。
[0146] In some embodiments, when determining the first exponent matrix, one or more processors may be configured to select at least 382 values from the values of the second exponent matrix as the values of the first exponent matrix. One or more processors may be configured to shift one or two values of the first exponent matrix by -1 or +1 from one or more corresponding positive values of the second exponent matrix. One or more corresponding positive values of the second exponent matrix may not be selected as at least 382 values. The first exponent matrix (e.g., permutation matrix ) can be generated by perturbing one or two values from the second exponential matrix. For example, based on the second exponential matrix, the first matrix can be generated as [-1 1248 -1 79 -1 -1 66 -1 4 74 -1 -1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -173 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 8066 -1 4 -1 -1 74 7 -1 -1 30 -1 76 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -174 -1 73 -1 -1 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 69 -1 63 -1 74 -1 -1 56 64 -1 -1 77 57 -1 65 -1 -1 6 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -154 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 -1 64 77 -1 -1 57 -165 6 -1 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -1 0 80 -1 24 -1 -1 25 42 -1 54 -1 -1 44 -1 71-1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0-1 51 -1 15 -1 0 -1 -1 80 -1 24 25 -1 -1 42 -1 54 44 -1 71 -1 71 -1 -1 9 -167 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1-1 36 -1 41 -1 44 -1 56 -1 59 -1 37 50 -1 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52-1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1-1 -1 0 -1 16 -1 -1 29 36 -1 41 -1 44 -1 44 -1 56 -1 59 -1 37 -1 -1 50 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1], where the second value 12 and the fifth value 79 are shifted from 13 and 80 respectively. One or more processors may be configured to determine the resulting matrix after the shift as the first exponent matrix.
[0147] In some embodiments, the second binary matrix may comprise the following group of values: [0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0]. The second exponent matrix may comprise the following group of values: [13 -1 48 -1 -1 80 66 -1 -1 4 -1 74 -1 7 -1 30 -1 76 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 13 -1 48 80 -1 -1 66 4 -1 74 -1 7 -1 30 -1 76 -1 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 -1 -1 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 69 -1 -1 63 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 -1 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 63 -1 -1 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 -1 -1 0 80 -1 -1 24 25 -1 -1 42 54 -1 44 -1 71 -1 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 0 -1 -1 80 24 -1 -1 25 42 -1 -1 54 -1 44 -1 71 71 -1 -1 9 -1 67 -1 35-1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 -1 36 -1 41 -1 44 56 -1 -1 59 -137 -1 50 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1-1 -1 -1 -1 0 -1 16 -1 -1 29 36 -1 41 -1 44 -1 -1 56 59 -1 37 -1 50 -1 24 -1-1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4- 1 -1 -1 -1 73 52-1 -1 1 -1 -1 -1 -1 -10]。
[0148] In some embodiments, the second binary matrix may comprise the following group of values: [0 1 1 1 1 0 0 1 0 1 01 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 01 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 01 1 1 0 1 1 0]. The second exponent matrix may comprise the following group of values: [13 -1 -1 48 -1 80 -1 66 -1 4 74 -17 -1 -1 30 76 -1 -1 52 37 -1 -1 60 -1 -1 -1 49 73 -1 31 -1 -1 74 73 -1 -1 23-1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 13 48 -1 80 -1 66 -1 4 -1 -1 74 -1 7 30 -1 -176 52 -1 -1 37 60 -1 -1 -1 49 -1 -1 73 -1 31 74 -1 -1 73 23 -1 -1 -1 -1 1 -10 -1 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 64 -1 -1 77 57 -1 -1 65 6 -1 -1 16 -151 -1 -1 64 -1 -1 -1 68 -1 -1 9 48 -1 -1 62 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 -169 -1 63 -1 74 -1 -1 56 -1 64 77 -1 -1 57 65 -1 -1 6 16 -1 51 -1 -1 -1 -1 64-1 -1 -1 68 9 -1 -1 48 62 -1 -1 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 -1 -10 -1 80 -1 24 -1 25 -1 42 54 -1 -1 44 71 -1 71 -1 71 9 67 -1 -1 35 -1 -1 -158 -1 -1 -1 29 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 0 -1 80 -1 24 -125 -1 42 -1 -1 54 44 -1 -1 71 -1 71 9 -1 -1 67 35 -1-1 -1 58 -1 -1 -1 29 -1 -1 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 36 -1 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50 24 -1 -1 -1 -1 65 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 -1 52 1 -1 -1 -1 -1 0 -1 16 -1 -1 29 -1 36 41 -1 44 -1 -1 56 59 -1 37 -1 50 -1 -1 24 -1 -1 65 -1 -1 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 52 -1 -1 1 -1 -1 -1 -1 -1 0]。
[0149] In some embodiments, when determining the first binary matrix, one or more processors may be configured to permute (1) two or more rows in the second binary matrix or (2) two or more columns in the second binary matrix. For example, the first binary matrix may correspond to a binary matrix in which the first row and the second row of the second binary matrix are permuted. One or more processors may be configured to determine the resulting permuted binary matrix as the first binary matrix. The first binary matrix may be determined such that the first binary matrix maintains a full rank.
[0150] In some embodiments, one or more processors may be further configured to use (1) the matrix product of the second binary parity-check matrix and the first exponent matrix (e.g., ) or (2) the matrix product of the first exponent matrix and the second binary parity-check matrix (e.g., ) to generate a second binary parity-check matrix corresponding to (e.g., matrix). For example, matrix may be generated by multiplying the matrix product (right) by the inverse matrix of the first exponent matrix (e.g., ).
[0151] In one method, a device (e.g., decoder 160 or processor 2010 of communication system 108) may include a receiver (e.g., receiver circuitry 140) configured to receive encoded data (e.g., from another device such as communication system 105) and one or more processors (e.g., processor 2010). The one or more processors may be configured to identify, based on a first parity-check matrix (e.g., base parity-check matrix H) of a first quasi-cyclic low-density parity-check (QC-LDPC) code according to a 5 / 6 code rate, a second parity-check matrix (e.g., new parity-check matrix ) corresponding to a first exponent matrix of 384 values that includes a second QC-LDPC code (e.g., from a codebook). The second QC-LDPC code may have a code block size (e.g., n = 3888) that is twice the code block size of the first QC-LDPC code (e.g., n = 1944). The one or more processors may be configured to decode the received encoded data using the second binary parity-check matrix (e.g., new parity-check matrix ). For example, the encoded data (e.g., codeword c) may be decoded using Equations 1 and 10 through 13 to obtain information bits s.
[0152] In some embodiments, the first exponent matrix may include at least 382 values selected from a second exponent matrix having the same dimensions as the dimensions of the first exponent matrix (e.g., m / Z × n / Z, if the first parity check matrix has (m × n) dimensions). In some embodiments, the second exponent matrix may include the following set of values: [-1 13 48 -1 80 -1 -1 66 -14 74 -1 -1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -173 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1 -1 74 7 -1-1 30 -1 76 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 -1 -1 23 -1 -1-1 1 -1 0 -1 -1 -1 -1 69 -1 63 -1 74 -1 -1 56 64 -1 -1 77 57 -1 65 -1 -1 6 -116 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1-1 -1 -1 69 -1 63 -1 74 56 -1 -1 64 77 -1 -1 57 -1 65 6 -1 16 -1 51 -1 -1 -1-1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -115 -1 0 80 -1 24 -1 -1 25 42 -1 54 -1 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 51 -1 15 -1 0 -1 -1 80 -1 24 25 -1 -1 42 -1 54 44 -1 71 -1 71 -1 -1 9 -1 67 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1 -1 36 -1 41 -1 44 -1 56 -159 -1 37 50 -1 -1 24 -1-1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -152 1 -1 -1 -1 -1 -1 0 -1 16 -1 -1 29 36 -1 41 -1 44 -1 44 -1 56 -1 59 -1 37 -1 -1 50 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1-1 -1 -1 -1]。
[0153] The first exponent matrix may include one or two values that are shifted -1 or +1 from one or more corresponding positive values of the second exponent matrix. One or more corresponding positive values of the second exponent matrix may not be selected as at least 382 values. The first exponent matrix (e.g., a permutation matrix ) can be generated by perturbing one or two values from the second exponential matrix. For example, based on the second exponential matrix, the first matrix can be generated as [-1 12 48 -1 79 -1 -1 66 -1 4 74 -1 -1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1 -1 74 7 -1 -1 30 -1 76 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 -1 -1 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 69 -1 63 -1 74 -1 -1 56 64 -1 -1 77 57 -1 65 -1 -1 6 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 -1 64 77 -1 -1 57 -1 65 6 -1 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -1 0 80 -1 24 -1 -1 25 42 -1 54 -1 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 51 -1 15 -1 0 -1 -1 80 -1 24 25 -1 -1 42 -1 54 44 -1 71 -1 71 -1 -1 9 -1 67 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1 -1 36 -1 41 -1 44 -1 56 -1 59 -1 37 50 -1 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1-1 -1 -1 0 -1 16 -1 -1 29 36 -141 -1 44 -1 44 -1 56 -1 59 -1 37 -1 -1 50 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1], where the second value 12 and the fifth value 79 are shifted from 13 and 80 respectively.
[0154] In some embodiments, the second exponent matrix may comprise the following sets of values: [13 -1 48 -1 -1 80 66 -1 -1 4 -1 74 -1 7 -1 30 -1 76 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 13 -1 48 80 -1 -1 66 4 -1 74 -1 7 -1 30 -1 76 -1 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 -1 -1 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 69 -1 -1 63 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 -1 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 63 -1 -1 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 -1 -1 0 80 -1 -1 24 25 -1 -1 42 54 -1 44 -1 71 -1 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 0 -1 -1 80 24 -1 -1 25 42 -1 -1 54 -1 44 -1 71 71 -1 -1 9 -1 67 -1 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 -1 36 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1 -1 0 -1 16 -1-1 29 36 -1 41 -1 44 -1 -1 56 59 -1 37 -1 50-1 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1-1 -1 -1 0]。
[0155] In some embodiments, the second exponent matrix may include the following groups of values: [13 -1 -1 48 -1 80 -1 66 -1 4 74 -1 7 -1 -1 30 76 -1 -1 52 37 -1 -1 60 -1 -1 -1 49 73 -1 31 -1 -1 74 73 -1 -1 23 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 13 48 -1 80 -1 66 -1 4 -1 -1 74 -1 7 30 -1 -1 76 52 -1 -1 37 60 -1 -1 -1 49 -1 -1 73 -1 31 74 -1 -1 73 23 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 64 -1 -1 77 57 -1 -1 65 6 -1 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 -1 9 48 -1 -1 62 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 69 -1 63 -1 74 -1 -1 56 -1 64 77 -1 -1 57 65 -1 -1 6 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 9 -1 -1 48 62 -1 -1 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 -1 -1 0 -1 80 -1 24 -1 25 -1 42 54 -1 -1 44 71 -1 71 -1 71 9 67 -1 -1 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 0 -1 80 -1 24 -1 25 -1 42 -1 -1 54 44 -1 -1 71 -1 71 9 -1 -1 67 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 36 -1 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50 24 -1 -1 -1 -1 65 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 -1 52 1 -1 -1 -1 -1 0 -1 16 -1 -1 29 -1 36 41-1 44 -1 -1 56 59 -1 37 -1 50 -1 -1 24 -1 -1 65 -1 -1 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 52 -1 -1 1 -1 -1 -1 -1 -10
[0156] In some embodiments, one or more processors may be configured to identify, e.g., from a codebook, a third binary parity-check matrix in which one or more rows or one or more columns of a second binary parity-check matrix are permuted, the third binary parity-check matrix having the same dimensions as the first binary parity-check matrix. For example, the third binary parity-check matrix may correspond to a binary parity-check matrix in which the first row and the second row of the second binary parity-check matrix are permuted. The one or more processors may be further configured to use the third binary parity-check matrix to decode the received encoded data.
[0157] In some embodiments, one or more processors may be configured to identify a fourth binary parity-check matrix corresponding to a third exponent matrix in which one or more rows or one or more columns of a first exponent matrix are permuted. For example, the third exponent matrix may correspond to an exponent matrix in which the first row and the second row of the first exponent matrix are permuted. The third exponent matrix may have the same dimensions as the first exponent matrix. The one or more processors may be configured to use the fourth binary parity-check matrix to decode the received encoded data.
[0158] Figure 13 is a flowchart showing a process for encoding data and / or decoding data using LDPC codes according to an embodiment. Figure 13 is a flowchart showing a process 1300 for encoding data using LDPC codes according to an embodiment. In some embodiments, process 1300 is performed by one or more processors of a first device (e.g., encoder 130 or processor 2010 of communication system 105) or by one or more processors of a second device (e.g., decoder 160 or processor 2010 of communication system 108). In other embodiments, process 1300 is performed by other entities (e.g., computing systems other than communication systems 105 or 108). In some embodiments, process 1300 includes more, fewer, or different steps than those Figure 13 shown therein.
[0159] In step 1302, the first device may identify a first exponent matrix (e.g., The second parity check matrix (e.g., a novel parity check matrix ). The second QC-LDPC code may have a block size (e.g., n = 3888) that is twice the block size of the first QC-LDPC code (e.g., n = 1944).
[0160] In some embodiments, the first parity check matrix of the first QC-LDPC code with a 5 / 6 code rate may be identified by the first device or another device other than the first device (e.g., from a codebook). If a device other than the first device identifies the first parity check matrix, then the device may transmit the first parity check matrix to the first device. A first binary matrix having the same dimension as the dimension of the exponent matrix of the first parity check matrix (e.g., m / Z × n / Z if the first parity check matrix has a (m × n) dimension) may be determined. The Khatri-Rao product of the first parity check matrix and the first binary matrix may be determined (e.g., using Equation 15). The second parity check matrix (e.g., a novel parity check matrix ) may be determined based on the result of the Khatri-Rao product.
[0161] In some embodiments, the first binary matrix may be determined by: (i) determining a second binary matrix having the same dimension as the dimension of the first binary matrix; and (ii) determining the first binary matrix that includes at least (1) one or more rows of the second binary matrix or (2) one or more columns of the second binary matrix. The second parity check matrix may be determined by: (i) determining a second exponent matrix having the same dimension as the dimension of the first exponent matrix based on the result of the Khatri-Rao product; (ii) determining the first exponent matrix based on the second exponent matrix; and (iii) determining the second parity check matrix based on the first exponent matrix (e.g., using Equation 8).
[0162] In some embodiments, the second binary matrix may comprise the following group of values: [1 0 0 1 1 0 1 0 0 1 10 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 11 0 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 11 0 1 0 1 1 0]. The second exponent matrix may comprise the following group of values: [-1 13 48 -1 80 -1 -1 66 -1 4 74 -1-1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1-1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1 -1 74 7 -1 -1 30 -176 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 -1 -1 23 -1 -1 -1 1 -10 -1 -1 -1 -1 69 -1 63 -1 74 -1 -1 56 64 -1 -1 77 57 -1 65 -1 -1 6 -1 16 -151 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1-1 69 -1 63 -1 74 56 -1 -1 64 77 -1 -1 57 -1 65 6 -1 16 -1 51 -1 -1 -1 -1 64-1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -10 80 -1 24 -1 -1 25 42 -1 54 -1 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -158 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 51 -1 15 -1 0 -1 -1 80 -1 2425 -1 -1 42 -1 54 44 -1 71 -1 71 -1 -1 9 -1 67 35 -1-1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1 -1 36 -1 41 -1 44 -1 56 -1 59 -1 37 50 -1 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1 0 -1 16 -1 -1 29 36 -1 41 -1 44 -1 44 -1 56 -1 59 -1 37 -1 -1 50 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1].
[0163] In some embodiments, the first exponent matrix can be determined by the following steps: (i) selecting at least 382 values from the second exponent matrix as the values of the first exponent matrix; and (ii) shifting one or two values of the first exponent matrix by -1 or +1 from one or more corresponding positive values of the second exponent matrix; (iii) determining the resulting shifted matrix as the first exponent matrix. One or more corresponding positive values of the second exponent matrix may not be selected as at least 382 values. The first exponent matrix (e.g., a permutation matrix ) can be generated by perturbing one or two values from the second exponential matrix. For example, based on the second exponential matrix, the first matrix can be generated as [-1 12 48 -1 79 -1 -1 66 -1 4 74 -1 -1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -149 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1 -1 74 7 -1 -1 30 -1 76 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31-1 74 -1 73 -1 -1 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 69 -1 63 -1 74-1 -1 56 64 -1-1 77 57 -1 65 -1 -1 6-1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -154 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 -1 64 77 -1 -1 57 -165 6 -1 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -1 0 80 -1 24 -1 -1 25 42 -1 54 -1 -1 44 -1 71-1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0-1 51 -1 15 -1 0 -1 -1 80 -1 24 25 -1 -1 42 -1 54 44 -1 71 -1 71 -1 -1 9 -167 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1-1 36 -1 41 -1 44 -1 56 -1 59 -1 37 50 -1 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52-1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1-1 0 -1 16 -1 -1 29 36 -1 41 -1 44 -1 44 -1 56 -1 59 -1 37 -1 -1 50 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1], where the second value 12 and the fourth value 79 are shifted from 13 and 80 respectively. One or more processors may be configured to determine the resulting matrix of the shifts as a first exponent matrix.
[0164] In some embodiments, the second binary matrix may comprise the following group of values: [0 0 1 0 1 1 1 1 1 1 10 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 01 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 11 0 1 0 1 1 0]. The second exponent matrix may comprise the following group of values: [-1 13 48 -1 80 -1 -1 66 -1 4 74 -1-1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -174 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1 -1 74 7 -1 -1 30 -176 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 -1 -1 23 -1 -1 -1 1 -10 -1 -1 -1 -1 69 -1 63 -1 74 -1 -1 56 64 -1 -1 77 57 -1 65 -1 -1 6 -1 16 -151 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1-1 69 -1 63 -1 74 56 -1 -1 64 77 -1 -1 57 -1 65 6 -1 16 -1 51 -1 -1 -1 -1 64-1 -1 -1 68 -1 9-1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -10 80 -1 24 -1 -1 25 42 -1 54 -1 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -158 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 51 -1 15 -1 0 -1 -1 80 -1 2425 -1 -1 42 -1 54 44 -1 71 -1 71 -1 -1 9 -1 67 35 -1-1 58 -1 -1 -1 29 -1 -1-1 53 -1 -1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1 -1 36 -1 41 -1 44 -1 56 -1 59 -137 50 -1 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1-1 -1 -1 -1 0 -1 16 -1 -1 29 36 -1 41 -1 44 -1 44 -1 56 -1 59 -1 37 -1 -1 5024 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4-1 -1 -1 -1 73 52-1 -1 1 -1 -1 -1 -1]。
[0165] In some embodiments, the second binary matrix may include the following set of values: [0 1 1 1 1 0 0 1 0 1 01 1 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 01 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 01 1 1 0 1 1 0]. The second exponent matrix may include the following set of values: [13 -1 -1 48 -1 80 -1 66 -1 4 74 -17 -1 -1 30 76 -1 -1 52 37 -1 -1 60 -1 -1 -1 49 73 -1 31 -1 -1 74 73 -1 -1 23-1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 13 48 -1 80 -1 66 -1 4 -1 -1 74 -1 7 30 -1 -176 52 -1 -1 37 60 -1 -1 -1 49 -1 -1 73 -1 31 74 -1 -1 73 23 -1 -1 -1 -1 1 -10 -1 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 64 -1 -1 77 57 -1 -1 65 6 -1 -1 16 -151 -1 -1 64 -1 -1 -1 68 -1 -1 9 48 -1 -1 62 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 -169 -1 63 -1 74 -1 -1 56 -1 64 77 -1 -1 57 65 -1 -1 6 16 -1 51 -1 -1 -1 -1 64-1 -1 -1 68 9 -1 -1 48 62 -1 -1 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 -1 -10 -1 80 -1 24 -1 25 -1 42 54 -1 -1 44 71 -1 71 -1 71 9 67 -1 -1 35 -1 -1 -158 -1 -1 -1 29 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 0 -1 80 -1 24 -125 -1 42 -1 -1 54 44 -1 -1 71 -1 71 9 -1 -1 67 35 -1-1 -1 58 -1 -1 -1 29 -1 -1 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 36 -1 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50 24 -1 -1 -1 -1 65 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 -1 52 1 -1 -1 -1 -1 0 -1 16 -1 -1 29 -1 36 41 -1 44 -1 -1 56 59 -1 37 -1 50 -1 -1 24 -1 -1 65 -1 -1 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 52 -1 -1 1 -1 -1 -1 -1 -1 0]。
[0166] In some embodiments, the first binary matrix can be determined by the following steps: (i) permuting (1) two or more rows or (2) two or more columns of the second binary matrix; and (ii) determining the resulting permuted binary matrix as the first binary matrix. For example, the first binary matrix can correspond to the binary matrix in which the first row and the second row of the second binary matrix are permuted. The first binary matrix can be determined such that the first binary matrix maintains full rank.
[0167] In step 1304, the first device can use the second parity check matrix to encode data. In step 1306, the first device can transmit the encoded data to another device (e.g., communication system 108).
[0168] In step 1308, the second device (e.g., decoder 160 or processor 2010 of communication system 108) can identify the second binary parity check matrix (e.g., the novel parity check matrix ) (e.g., from a codebook). In step 1310, the second device can receive the encoded data from the first device (e.g., communication system 105). In step 1312, the second device can use the second binary parity check matrix to decode the encoded data.
[0169] In some embodiments, the second device may identify (e.g., from a codebook) a third binary parity-check matrix in which one or more rows or one or more columns of the second binary parity-check matrix are permuted, the third binary parity-check matrix having the same dimensions as the first binary parity-check matrix. For example, the third binary parity-check matrix may correspond to a binary parity-check matrix in which the first row and the second row of the second binary parity-check matrix are permuted. The second device may use the third binary parity-check matrix to decode the received encoded data.
[0170] In some embodiments, the second device may be configured to identify a fourth binary parity-check matrix corresponding to a third exponent matrix in which one or more rows or one or more columns of the first exponent matrix are permuted. For example, the third exponent matrix may correspond to an exponent matrix in which the first row and the second row of the first exponent matrix are permuted. The third exponent matrix may have the same dimensions as the first exponent matrix. The second device may use the fourth binary parity-check matrix to decode the received encoded data.
[0171] References to "or" may be interpreted inclusively, such that any item described using "or" may indicate any of a single, more than one, and all of the described items. References to at least one of a list of items joined by "and" may be interpreted as an inclusive "or" to indicate any of a single, more than one, and all of the described items. For example, a reference to "at least one of 'A' and 'B'" may include only 'A', only 'B', and both 'A' and 'B'. Such references used in conjunction with "comprising" or other open terms may include additional items.
[0172] Note that certain paragraphs of this disclosure may refer to terms such as "first" and "second" for the purpose of relating to each other or for other identification or differentiation purposes, e.g., in relation to transmission spatial streams, sounding frames, responses, and subsets of devices. These terms are not intended to relate entities (e.g., a first device and a second device) solely in terms of time or according to sequence, but in some cases, these entities may include such a relationship. These terms also do not limit the number of possible entities (e.g., STAs, APs, beamformers, and / or beamformee receivers) that may operate within a system or environment. It should be understood that the above system may provide any or each of these components in multiple and these components may be provided on a single machine or, in some embodiments, on multiple machines in a distributed system. Additionally, bit field positions may be varied and multi-bit words may be used. Further, the above systems and methods may be provided as one or more computer-readable programs or executable instructions embodied on or in one or more articles of manufacture (e.g., floppy disk, hard disk, CD-ROM, flash memory card, PROM, RAM, ROM, or magnetic tape). The programs may be implemented in any programming language (e.g., LISP, PERL, C, C++, C#) or in any bytecode language (e.g., JAVA). The software programs or executable instructions may be stored as object code on or in one or more articles of manufacture.
[0173] While the foregoing written description of the methods and systems enables one of ordinary skill in the art to make and use embodiments thereof, one of ordinary skill in the art should understand and appreciate that there are variations, combinations, and equivalents to the specific embodiments, methods, and examples herein. Accordingly, the methods and systems of the present invention should not be limited to the above-described embodiments, methods, and examples, but rather to all embodiments and methods within the scope and spirit of this disclosure.
Claims
1. A method comprising: identifying, by the one or more processors of the first device, a second parity check matrix corresponding to a first exponential matrix including 384 values of a second QC-LDPC code based on a first parity check matrix of a first quasi-cyclic low density parity check (QC-LDPC) code according to a code rate of 5 / 6, wherein the second QC-LDPC code has a code block size that is twice the code block size of the first QC-LDPC code; encoding data using the second parity-check matrix by the one or more processors of the first device; and The encoded data is transmitted by the one or more processors of the first device.
2. The method according to claim 1, further comprising: identifying the first parity check matrix of the first QC-LDPC code having the 5 / 6 code rate; determining a first binary matrix having the same dimension as the dimension of an exponential matrix of the first parity-check matrix; determining a Katri-Rao product of the first parity-check matrix and the first binary matrix; and The second parity check matrix is determined based on a result of the Catelli-Rao product.
3. The method according to claim 2, wherein Determining the first binary matrix includes: determining a second binary matrix having the same dimensions as the first binary matrix; and determining the first binary matrix including at least (1) one or more rows of a second binary matrix or (2) one or more columns of the second binary matrix, and Determining the second parity check matrix includes: determining a second exponential matrix having the same dimension as the first exponential matrix based on a result of the Catterelli-Rao product; determining the first exponential matrix based on the second exponential matrix; and The second parity check matrix is determined based on the first exponential matrix.
4. The method according to claim 3, wherein The second binary matrix comprises the following set of values: [1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 00 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 00 0 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0], and The second exponential matrix includes the following value set: [-1 13 48 -1 80 -1 -1 66 -1 4 74 -1 -1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1 -1 74 7 -1 -1 30 -1 76 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 69 -1 63 -1 74 8 -1 9 -1 48 -1 62 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 -163 -1 74 56 -1 -1 64 77 -1 -1 57 -1 65 6 -1 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 -1 -1 51 -1 15 -1 0 80 -124 -1 -1 25 42 -1 54 -1 4 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1-1 0 -1 -1 -1 0 -1 0 51 -1 15 -1 0 -1 -1 80 -1 24 25 -1 -142 -1 54 44 -1 71 -1 71 -1 9 -1 67 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1-1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1 -1 36 -1 41 -1 44 -1 56 -1 59 -1 37 50 -1-1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1-1 0 -1 16 -1 -1 29 36 -141 -1 44 -1 44 -1 56 -1 59 -1 37 -1 -1 50 24 -1 -1-1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1]。 5. The method according to claim 3, wherein the second binary matrix comprises the following set of values: [0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 00 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 00 0 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0], and The second exponential matrix includes the following value set: [13 -1 48 -1 -1 80 66 -1 -1 4 -1 74 -1 7 -130 -1 76 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1-1 0 -1 -1 -1 -1 -1 -1 13 -1 48 80 -1 -1 66 4 -1 74 -1 7 -1 30 -1 76 -1 52 -137 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 69 -1 -1 63 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 -1 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 63-1 -1 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -1 -1 0 80 -1-1 24 25 -1 -1 42 54 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 0 -1 -1 80 24 -1 -1 25 42 -1 -1 54 -1 44 -1 71 71 -1 9-1 67 -1 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 -1 36 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50-1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1-1 0 -1 16 -1 -1 29 36 -141 -1 44 -1 -1 56 59 -1 37 -1 50 -1 24 -1 -1 -1 65-1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1 -1 0]。 6. The method according to claim 3, wherein The second binary matrix comprises the following set of values: [0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 00 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 10 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0], and The second exponential matrix includes the following value set: [13 -1 -1 48 -1 80 -1 66 -1 4 74 -1 7 -1 -1 30 76 -1 -1 52 37 -1 -1 60 -1 -1 -1 49 73 -1 31 -1 -1 74 73 -1 -1 23 -1 -1 1-1 0 -1 -1 -1 -1 -1 -1 13 48 -1 80 -1 66 -1 4 -1 -1 74 -1 7 30 -1 -1 76 52 -1-1 37 60 -1 -1 -1 49 -1 -1 73 -1 31 74 -1 -1 73 23 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 64 -1 -1 77 57 -1 -1 65 6 -1 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 -1 9 48 -1 -1 62 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 -1 69 -1 63-1 74 -1 -1 56 -1 64 77 -1 -1 57 65 -1 -1 6 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 9 -1 -1 48 62 -1 -1 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 -1 -1 0 -1 80-1 24 -1 25 -1 42 54 -1 -1 44 71 -1 71 -1 71 9 67 -1 -1 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 51 -1 15 0 -1 80 -1 24 -1 25 -1 42 -1 -1 54 44 -1 -1 71 -1 71 9 -1 -1 67 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 36 -1 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 -1 52 1 -1 -1 -1 -1-1 0 -1 16 -1 -1 29 -1 3641 -1 44 -1 -1 56 59 -1 37 -1 50 -1 -1 24 -1 -1 65-1 -1 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 52 -1 -1 1 -1 -1 -1 -1 -1 0]。 7. The method of claim 3, wherein determining the first exponential matrix comprises: selecting at least 382 values from the values of the second index matrix as values of the first index matrix; shifting one or two values of the first index matrix by -1 or +1 from one or more corresponding positive values of the second index matrix, wherein the one or more corresponding positive values of the second index matrix are not selected as the at least 382 values; and The shifted resulting matrix is determined as the first exponential matrix.
8. The method according to claim 1, further comprising: identifying, by a second device, the second binary parity check matrix; receiving, by the second device, the encoded data from the first device; and The encoded data is decoded by the second device using the second binary parity check matrix.
9. A device comprising: A transmitter and one or more processors, wherein The one or more processors are configured to: identifying a second parity check matrix corresponding to a first exponential matrix including 384 values of a second QC-LDPC code based on a first parity check matrix of a first quasi-cyclic low density parity check (QC-LDPC) code according to a code rate of 5 / 6, wherein the second QC-LDPC code has a code block size that is twice that of the first QC-LDPC code; and The data is encoded using the second parity check matrix, and The transmitter is configured to transmit the encoded data.
10. The apparatus of claim 9, wherein the one or more processors are configured to: identifying the first parity check matrix of the first QC-LDPC code having the 5 / 6 code rate; determining a first binary matrix having the same dimension as the dimension of an exponential matrix of the first parity-check matrix; determining a Katri-Rao product of the first parity-check matrix and the first binary matrix; and The second parity check matrix is determined based on a result of the Catelli-Rao product.
11. The device according to claim 10, wherein In determining the first binary matrix, the one or more processors are configured to: determining a second binary matrix having the same dimensions as the first binary matrix; and determining the first binary matrix including at least (1) one or more rows of a second binary matrix or (2) one or more columns of the second binary matrix, and In determining the second parity-check matrix, the one or more processors are configured to: determining, based on the result of the Catterelli-Rao product, a second exponential matrix having the same dimension as the first exponential matrix; determining the first exponential matrix based on the second exponential matrix; and The second parity check matrix is determined based on the first exponential matrix.
12. The device according to claim 11, wherein The second binary matrix comprises the following set of values: [1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 00 1 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 1 1 00 0 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 0], and The second exponential matrix includes the following value set: [-1 13 48 -1 80 -1 -1 66 -1 4 74 -1 -1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1 -1 74 7 -1 -1 30 -1 76 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 69 -1 63 -1 74 8 -1 9 -1 48 -1 62 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 -163 -1 74 56 -1 -1 64 77 -1 -1 57 -1 65 6 -1 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 -1 -1 51 -1 15 -1 0 80 -124 -1 -1 25 42 -1 54 -1 4 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1-1 0 -1 -1 -1 0 -1 0 51 -1 15 -1 0 -1 -1 80 -1 24 25 -1 -142 -1 54 44 -1 71 -1 71 -1 9 -1 67 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1-1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1 -1 36 -1 41 -1 44 -1 56 -1 59 -1 37 50 -1-1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1-1 0 -1 16 -1 -1 29 36 -141 -1 44 -1 44 -1 56 -1 59 -1 37 -1 -1 50 24 -1 -1-1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1]。 13. The apparatus according to claim 11, wherein the second binary matrix comprises the following set of values: [0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 00 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 1 00 0 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0], and The second exponential matrix includes the following value set: [13 -1 48 -1 -1 80 66 -1 -1 4 -1 74 -1 7 -130 -1 76 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1-1 0 -1 -1 -1 -1 -1 -1 13 -1 48 80 -1 -1 66 4 -1 74 -1 7 -1 30 -1 76 -1 52 -137 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 69 -1 -1 63 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 -1 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 63-1 -1 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -1 -1 0 80 -1-1 24 25 -1 -1 42 54 -1 44 -1 71 -1 71 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 0 -1 -1 80 24 -1 -1 25 42 -1 -1 54 -1 44 -1 71 71 -1 9 -1 67 -1 35 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 0 -1 16 29 -1 -1 36 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50-1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1-1 0 -1 16 -1 -1 29 36 -141 -1 44 -1 -1 56 59 -1 37 -1 50 -1 24 -1 -1 -1 65-1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1 -1 0]。 14. The apparatus according to claim 11, wherein The second binary matrix comprises the following set of values: [0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 00 1 1 1 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 0 10 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0], and The second exponential matrix includes the following value set: [13 -1 -1 48 -1 80 -1 66 -1 4 74 -1 7 -1 -1 30 76 -1 -1 52 37 -1 -1 60 -1 -1 -1 49 73 -1 31 -1 -1 74 73 -1 -1 23 -1 -1 1-1 0 -1 -1 -1 -1 -1 -1 13 48 -1 80 -1 66 -1 4 -1 -1 74 -1 7 30 -1 -1 76 52 -1-1 37 60 -1 -1 -1 49 -1 -1 73 -1 31 74 -1 -1 73 23 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 64 -1 -1 77 57 -1 -1 65 6 -1 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 -1 9 48 -1 -1 62 54-1 27 -1 -1 -1 0 -1 0 -1 -1 -1 69 -1 63-1 74 -1 -1 56 -1 64 77 -1 -1 57 65 -1 -1 6 16 -1 51 -1 -1 -1 -1 64 -1 -1 -1 68 9 -1 -1 48 62 -1 -1 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 51 -1 15 -1 -1 0 -1 80-1 24 -1 25 -1 42 54 -1 -1 44 71 -1 71 -1 71 9 67 -1 -1 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 51 -1 15 0 -1 80 -1 24 -1 25 -1 42 -1 -1 54 44 -1 -1 71 -1 71 9 -1 -1 67 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 36 -1 -1 41 -1 44 56 -1 -1 59 -1 37 -1 50 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 -1 52 1 -1 -1 -1 -1-1 0 -1 16 -1 -1 29 -1 3641 -1 44 -1 -1 56 59 -1 37 -1 50 -1 -1 24 -1 -1 65-1 -1 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 52 -1 -1 1 -1 -1 -1 -1 -1 0]。 15. The apparatus of claim 11, wherein in determining the first exponential matrix, the one or more processors are configured to: selecting at least 382 values from the values of the second index matrix as values of the first index matrix; shifting one or two values of the first index matrix by -1 or +1 from one or more corresponding positive values of the second index matrix, wherein the one or more corresponding positive values of the second index matrix are not selected as the at least 382 values; and The shifted resulting matrix is determined as the first exponential matrix.
16. An apparatus comprising: a receiver configured to receive the encoded data; and One or more processors configured to: identifying a second parity check matrix corresponding to a first exponential matrix including 384 values of a second QC-LDPC code based on a first parity check matrix of a first quasi-cyclic low density parity check (QC-LDPC) code according to a code rate of 5 / 6, wherein the second QC-LDPC code has a code block size that is twice that of the first QC-LDPC code; and The received encoded data is decoded using the second binary parity-check matrix.
17. The apparatus of claim 16, wherein the first exponential matrix comprises at least 382 values selected from a second exponential matrix having the same dimension as the first exponential matrix, The first exponential matrix includes one or two values shifted by -1 or +1 from one or more corresponding positive values of the second exponential matrix, and The one or more corresponding positive values of the second exponential matrix are not selected as the at least 382 values.
18. The apparatus of claim 16, wherein the second exponential matrix comprises the following set of values: [-1 13 48 -180 -1 -1 66 -1 4 74 -1 -1 7 30 -1 76 -1 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -131 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 13 -1 -1 48 -1 80 66 -1 4 -1-1 74 7 -1 -1 30 -1 76 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 -1-1 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 69 77 -1 -1 57 -1 65 -1 -1 6 -1 16 -1 51 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 -1 63 -1 74 56 -1 -1 64 77 -1 -1 57 -1 65 6 -1 16-1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0-1 -1 -1 -1 51 -1 15 -1 0 80 -1 24 -1 -1 25 42 -1 54 -1 -1 44 -1 71 -1 71 9 -167 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 0 -1 -1 -1 0 -1 0 -1 51 -1 15-1 0 -1 -1 80 -1 24 25 -1 -1 42 -1 54 44 -1 71 -1 71 -1 9 -1 67 35 -1 -158 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 51 -1 16 29 -1 -1 36 -1 41-1 44 -1 56 -1 59 -1 37 50 -1 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1 -1 0 -116 -1 -1 29 36 -1 41 -1 44 -1 44 -1 56-1 59 -1 37 -1 -1 50 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -173 52 -1 -1 1 -1 -1 -1 -1]。 19. The apparatus of claim 16, wherein the second exponential matrix comprises the following set of values: [13 -1 48 -1-1 80 66 -1 -1 4 -1 74 -1 7 -1 30 -1 76 -1 52 -1 37 60 -1 -1 -1 49 -1 73 -1 -1 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 13 -1 48 80 -1 -1 66 4 -1 74 -1 7 -1 30 -1 76 -1 52 -1 37 -1 -1 60 -1 -1 -1 49 -1 73 31 -1 74 -1 73 23 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 1 7 -1 57 -1 65 -1 6 16-1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 -1 -1 54 -1 27 -1 -1 0 -1 0 -1 -1 -1 -1 69 63 -1 -1 74 -1 56 -1 64 -1 77 -1 57 -1 65 -1 6 16-1 51 -1 -1 -1 -1 64 -1 -1 -1 68 -1 9 -1 48 -1 62 54 -1 27 -1 -1 -1 -1 0 -1 0-1 -1 51 -1 15 -1 -1 0 80 -1 -1 24 25 -1 -1 42 54 -1 44 -1 71 71 -1 9 -1 67 -1 35 -1 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 53 -1 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 -1 36 -1 41-1 44 56 -1 -1 59 -1 37 -1 50 -1 24 -1 -1 -1 65 4 -1 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 -1 52 1 -1 -1 -1 -1 -1 0-1 16 -1 -1 29 36 -1 41 -1 44 -1 -1 56 59-1 37 -1 50 -1 24 -1 -1 -1 65 -1 -1 4 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 52 -1 -1 1 -1 -1 -1 -1 -1 0]。 20. The apparatus of claim 16, wherein the second exponential matrix comprises the following set of values: [13 -1 -1 48 -1 80 -1 66 -1 4 74 -1 7 -1 -1 30 76 -1 -1 52 37 -1 -1 60 -1 -1 -1 49 73 -1 -1 31 -1 -1 74 73 -1 -1 23 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 13 48 -1 80 -1 66 -1 4 -1 -1 74 -1 7 30 -1 -1 76 52 -1 -1 37 60 -1 -1 -1 49 -1 -1 73 -1 31 74 -1 -1 23 -1 -1 -1 -1 1 -1 0 -1 -1 -1 -1 -1 -1 69 9 -1 -1 48 62 -1 -1 54 -1 27 -1 -1 -1 0 -1 0 -1 -1 -1 51 -1 15 -1 -1 0 -1 0 -1 -1 80 -1 24 -1 -1 51 -1 15 -1 -1 0 -1 0 -1 0 -1 80 -1 24 -1 25 -1 42 54 -1 -1 44 71 -1 71 -1 71 967 -1 -1 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 51 -115 0 -1 80 -1 24 -1 25 -1 42 -1 -1 54 44 -1 -1 71 -1 71 9 -1 -1 67 35 -1 -1 -1 58 -1 -1 -1 29 -1 -1 -1 -1 53 -1 0 -1 -1 -1 0 -1 0 -1 16 29 -1 36 -1 -1 41-1 44 56 -1 -1 59 -1 37 -1 50 -1 -1 -1 65 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 -1 -1 73 -1 52 1 -1 -1 -1 -1 -1 0-1 16 -1 -1 29 -1 36 41 -1 44 -1 -1 56 59-1 37 -1 50 -1 -1 24 -1 -1 65 -1 -1 4 -1 65 -1 52 -1 -1 -1 4 -1 -1 73 -1 52 -1 -1 1 -1 -1 -1 -1 -1 0]。