Encoding method and apparatus, decoding method and apparatus and storage medium

By determining the dimension of the parity check matrix and using binary extended matrix hash, the problem of NB-LDPC code storage space and encoding complexity is solved, and efficient NB-LDPC encoding is achieved.

WO2025167076A1PCT designated stage Publication Date: 2025-08-14ZTE CORP

Patent Information

Application Number
PCT/CN2024/116293
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-05
Filing Date
2024-09-02
Publication Date
2025-08-14

AI Technical Summary

Technical Problem

The existing non-binary low-density parity check code (NB-LDPC) has complexity problems in storage space and encoding process in actual communication systems, hindering its widespread application.

Method used

By determining the dimensions of the parity check matrix, the binary extension matrix is used to hash the exponential matrix and the boosting factor, reducing the storage space requirement, and NB-LDPC encoding is performed based on the generation matrix.

Benefits of technology

The storage space required in the NB-LDPC coding process is reduced, the encoding process is simplified, and the encoding efficiency is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024116293_14082025_PF_FP_ABST
    Figure CN2024116293_14082025_PF_FP_ABST
Patent Text Reader

Abstract

Provided are an encoding method and apparatus, a decoding method and apparatus, and a storage medium. The encoding method comprises: determining a parity check matrix, wherein the dimension of the parity check matrix is determined on the basis of the dimension of a binary extended matrix, the binary extended matrix is obtained by hashing an exponential matrix on the basis of a lifting factor, and the lifting factor is determined on the basis of a binary fundamental matrix, an information bit sequence, and the order of a non-binary low density parity check code (NB-LDPC); and performing NB-LDPC encoding on the information bit sequence on the basis of the parity check matrix or a generator matrix corresponding to the parity check matrix, to obtain an encoding sequence.
Need to check novelty before this filing date? Find Prior Art

Description

Coding method, device and storage medium

[0001] This disclosure claims priority to Chinese patent application No. 202410173298.X, filed on February 5, 2024, the entire contents of which are incorporated herein by reference. Technical Field

[0002] The present disclosure relates to the field of communication technology, and in particular to a coding method, device, and storage medium. Background Art

[0003] With the rapid development of technologies such as big data, cloud computing, and latency-sensitive networks, the number of user devices in wireless communication networks has exploded. Wireless communication networks will carry a wide variety of applications and massive amounts of data, placing stringent demands on data transmission rates, throughput, reliability, and latency. Low-density parity-check (LDPC) codes, which approach the Shannon limit, can be used for error control. LDPC is a special type of linear block code based on a sparse parity check matrix. Its low decoding complexity, high throughput, and flexible structure have led to its widespread application in practical communication systems.

[0004] Non-binary low-density parity check code (NB-LDPC) expands and improves on LDPC codes, extending both information bits and check bits to the non-binary domain, thereby improving error correction performance and coding efficiency. It is more suitable for communication systems with strict delay requirements and high reliability requirements.

[0005] Summary of the Invention

[0006] In a first aspect, an embodiment of the present disclosure provides an encoding method. The encoding method includes:

[0007] Determine a parity check matrix, where the dimension of the parity check matrix is ​​determined based on the dimension of a binary extension matrix, where the binary extension matrix is ​​hashed by an exponential matrix based on a lifting factor, where the lifting factor is determined based on the binary base matrix, the information bit sequence, and the order of a non-binary low-density parity-check code (NB-LDPC code);

[0008] The information bit sequence is NB-LDPC encoded according to the parity check matrix or the generator matrix corresponding to the parity check matrix to obtain a coded sequence.

[0009] In a second aspect, an embodiment of the present disclosure provides a decoding method. The decoding method includes:

[0010] receiving a coding sequence;

[0011] Based on a parity check matrix of a non-binary low-density parity-check code NB-LDPC, a coding sequence is decoded to obtain an information bit sequence; the dimension of the parity check matrix is ​​determined based on the dimension of a binary extension matrix, and the binary extension matrix is ​​obtained by hashing an exponential matrix based on a lifting factor, and the lifting factor is determined based on the binary basic matrix, the information bit sequence, and the order of the NB-LDPC code.

[0012] In a third aspect, an embodiment of the present disclosure provides an encoding device. The encoding device includes: a determination module and an encoding module;

[0013] a determination module, configured to determine a parity check matrix, wherein the dimension of the parity check matrix is ​​determined based on the dimension of a binary extension matrix, the binary extension matrix is ​​obtained by hashing an exponential matrix based on a lifting factor, and the lifting factor is determined based on a binary basic matrix, an information bit sequence, and an order of a non-binary low-density parity check code (NB-LDPC);

[0014] The encoding module is used to perform NB-LDPC encoding on the information bit sequence according to the parity check matrix or the generator matrix corresponding to the parity check matrix to obtain a coding sequence.

[0015] In a fourth aspect, an embodiment of the present disclosure provides a decoding device. The decoding device includes: a receiving module and a decoding module;

[0016] A receiving module, configured to receive a coding sequence;

[0017] A decoding module is used to decode a coding sequence based on a parity check matrix of a non-binary low-density parity-check code (NB-LDPC) to obtain an information bit sequence. The dimension of the parity check matrix is ​​determined based on the dimension of a binary extension matrix. The binary extension matrix is ​​obtained by hashing an exponential matrix based on a lifting factor. The lifting factor is determined based on the binary basic matrix, the information bit sequence, and the order of the NB-LDPC code.

[0018] In a fifth aspect, embodiments of the present disclosure further provide a communication device. The communication device includes: a memory and a processor; the memory and the processor are coupled; the memory is configured to store instructions executable by the processor; and when the processor executes the instructions, it performs any of the methods provided in the first or second aspects.

[0019] In a sixth aspect, an embodiment of the present disclosure provides a computer program product comprising computer instructions, which, when executed on a computer, enables the computer to execute any one of the methods provided in the first or second aspect above.

[0020] In a seventh aspect, an embodiment of the present disclosure provides a computer program product, which includes computer program instructions, and when the computer program instructions are executed by a processor, implements any one of the methods provided in the first or second aspect above. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] To more clearly illustrate the technical solutions of the present disclosure, the following briefly introduces the drawings required for use in some embodiments of the present disclosure. Obviously, the drawings described below are only drawings of some embodiments of the present disclosure, and those skilled in the art can also derive other drawings based on these drawings.

[0022] FIG1 is a schematic diagram of the architecture of a communication system according to some embodiments.

[0023] FIG2 is a data processing flow chart according to some embodiments.

[0024] FIG3 is a flowchart of an encoding method according to some embodiments.

[0025] FIG4 is a flowchart of another encoding method according to some embodiments.

[0026] FIG5 is a flowchart illustrating a decoding method according to some embodiments.

[0027] FIG6 is a schematic diagram illustrating the structure of an encoding device according to some embodiments.

[0028] FIG7 is a schematic diagram showing the structure of a decoding device according to some embodiments.

[0029] FIG8 is a schematic diagram illustrating the structure of a communication device according to some embodiments. DETAILED DESCRIPTION

[0030] The following will be combined with the accompanying drawings in the embodiments of the present disclosure to clearly and completely describe the technical solutions in the embodiments of the present disclosure. Obviously, the embodiments described are only part of the embodiments of the present disclosure, not all of the embodiments. Based on the embodiments of the present disclosure, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present disclosure.

[0031] In the description of this disclosure, unless otherwise specified, " / " means "or". For example, A / B can mean A or B. "And / or" in this article is merely a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can mean: only A, only B, and A and B. In addition, "at least one" means one or more, and "a plurality" means two or more. Expressions such as "first" and "second" do not limit the quantity and execution order, and expressions such as "first" and "second" do not necessarily limit them to be different.

[0032] It should be noted that in this disclosure, expressions such as "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described in this disclosure as "exemplary" or "for example" should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of expressions such as "exemplarily" or "for example" is intended to present the relevant concepts in a detailed manner.

[0033] LDPC codes are a class of linear block codes defined using a sparse parity check matrix or bipartite graph. They offer advantages such as near-Shannon limit performance, linear-time encoding, low decoding complexity, parallel decoding, and superiority over Turbo codes for long code lengths. The non-zero entries in the parity check matrix of a binary LDPC code are all 1s. By taking the non-zero entries of this parity check matrix from a larger Galois Field set, a linear block code over a larger symbol set is defined. This type of code is referred to as a non-binary LDPC code. Furthermore, for short and medium code lengths, compared to binary LDPC codes of the same bit length, non-binary LDPC codes offer the following advantages: increased coding gain, lower error floor, stronger burst error resilience, and easier integration with high-order modulation. Therefore, non-binary LDPC codes hold promise for application in communication systems with stringent delay and extremely high reliability requirements. However, current non-binary LDPC codes still face numerous challenges, such as high storage space requirements and complex matrix construction and encoding processes, which hinder their application in practical communication systems.

[0034] In view of this, the present disclosure provides a coding method, which includes: determining a parity check matrix, wherein the dimension of the parity check matrix is ​​determined based on the dimension of a binary expansion matrix, the binary expansion matrix is ​​obtained by hashing an exponential matrix based on a lifting factor, and the lifting factor is determined based on a binary basic matrix, an information bit sequence, and the order of a non-binary low-density parity check code (NB-LDPC code); and performing NB-LDPC encoding on the information bit sequence according to the parity check matrix or a generator matrix corresponding to the parity check matrix to obtain a coding sequence. In this way, the parity check matrix can be determined based on the determined binary expansion matrix, exponential matrix, lifting factor, etc., so that the parity check matrix does not need to be stored when performing NB-LDPC code encoding, which can reduce the storage space required during the NB-LDPC code encoding process.

[0035] Accordingly, the present disclosure also provides a decoding method, which includes receiving a coding sequence; decoding the coding sequence based on a parity check matrix of a non-binary low-density parity-check code NB-LDPC to obtain an information bit sequence; the dimension of the parity check matrix is ​​determined based on the dimension of a binary extension matrix, the binary extension matrix is ​​obtained by hashing an exponential matrix based on a lifting factor, and the lifting factor is determined based on the binary basic matrix, the information bit sequence and the order of the NB-LDPC code.

[0036] The technical solutions provided in the embodiments of the present disclosure can be applied to various mobile communication networks, for example, new radio (NR) mobile communication networks using fifth-generation mobile communication technology (5G), future mobile communication networks, or multiple communication convergence systems, etc., and the embodiments of the present disclosure are not limited to this.

[0037] FIG1 shows a schematic diagram of the architecture of a communication system provided by an embodiment of the present disclosure. As shown in FIG1 , the communication system includes one or more first nodes 10 and one or more second nodes 20 .

[0038] In some embodiments, the first node 10 may be a base station, configured to provide wireless access services to multiple terminals. For example, a base station provides a service coverage area (also referred to as a cell). Terminals within this area may communicate with the base station via wireless signals to receive the wireless access services provided by the base station.

[0039] In some embodiments, the base station may be a base station or an evolved base station (eNB or eNodeB) in long term evolution (LTE), long term evolution advanced (LTEA), a base station device in a 5G network, or a base station in a future communication system. The base station may include various network-side devices such as various macro base stations, micro base stations, home base stations, wireless remote devices, reconfigurable intelligent surfaces (RIS), routers, and wireless fidelity (WIFI) devices.

[0040] In some embodiments, the second node 20 may be a terminal, which may be a device with wireless transceiver capabilities and may be deployed on land, including indoors or outdoors, handheld, wearable, or vehicle-mounted; may also be deployed on water (such as a ship); or may be deployed in the air (such as an airplane, balloon, or satellite). The terminal may be a mobile phone, a tablet computer, a computer with wireless transceiver capabilities, a virtual reality (VR) terminal, an augmented reality (AR) terminal, a wireless terminal in industrial control, a wireless terminal in self-driving, a wireless terminal in remote medical care, a wireless terminal in a smart grid, a wireless terminal in transportation safety, a wireless terminal in a smart city, a wireless terminal in a smart home, and the like. The embodiments of the present disclosure do not limit the application scenarios. The terminal may sometimes also be referred to as a user, user equipment (UE), access terminal, UE unit, UE station, mobile station, mobile station, remote station, remote terminal, mobile device, UE terminal, wireless communication equipment, UE agent or UE device, etc., but the embodiments of the present disclosure are not limited to this.

[0041] The embodiments of the present disclosure can be applied to downlink data transmission, uplink data transmission, and device-to-device data transmission. For downlink data transmission, the transmitting end is the base station, and the corresponding receiving end is the terminal. For uplink data transmission, the transmitting end is the terminal, and the corresponding receiving end is the base station. For device-to-device data transmission, the transmitting end is the terminal, and the corresponding receiving end is also the terminal. The transmitting end and the receiving end in the present disclosure can both include encoding devices and / or decoding devices, so that the information to be sent can be modulated and encoded, and the received encoded information can be demodulated and decoded, thereby realizing information transmission between the transmitting end device and the receiving end device. The embodiments of the present disclosure are not limited to this.

[0042] It should be noted that Figure 1 is only an exemplary framework diagram. The number of devices included in Figure 1 and the names of each device are not restricted. In addition to the devices shown in Figure 1, the communication system may also include other devices (such as core network devices).

[0043] The embodiments of the present disclosure do not limit the application scenarios. The system architecture and business scenarios described in the embodiments of the present disclosure are intended to more clearly illustrate the technical solutions of the embodiments of the present disclosure and do not constitute a limitation on the technical solutions provided by the embodiments of the present disclosure. Those skilled in the art will appreciate that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of the present disclosure are equally applicable to similar technical problems.

[0044] Figure 2 is a flow chart of data processing between a first node and a second node. As shown in Figure 2, the first node can perform quasi-cyclic non-binary LDPC encoding on the bit sequence to be coded to obtain the codeword sequence to be transmitted. After performing signal processing such as modulation, the first node transmits a transmission signal containing the codeword sequence to be transmitted via a channel to the second node. Upon receiving the transmission signal, the second node can perform signal processing such as demodulation to obtain the codeword sequence information and recover the information bit sequence through non-binary LDPC decoding.

[0045] LDPC is defined by a sparse (or low-density) parity basis matrix, and decoding performance can be improved through iterative decoding, such as using belief transfer decoding.

[0046] The parity check matrix H of the quasi-cyclic LDPC code can be (M b ×Z)×(N b ×Z). Exemplarily, the check matrix H has the following form:

[0047] This matrix can be represented by M b ×N bThe block matrix is ​​composed of block sub-matrices, each of which is a sparse matrix or a square matrix of all zeros of dimension Z×Z. For example, the sparse matrix can be the identity matrix and its cyclic shift matrix (for example, right shift). Such a block matrix can be uniquely formed using the basic permutation matrix P and the exponential matrix Indicates, for example, in h i,j = -1, the block matrix can be a square matrix of all zeros. i,j In the case of non-negative integers, the block matrix can be the h of the basic permutation matrix P i,j The Z×Z standard permutation matrix P is as follows (the standard permutation matrix can be formed by cyclically shifting the unit matrix to the right by 1 bit):

[0048] Thus, the index h of each block matrix i,j Can form an M b ×N b The exponential matrix H w , i and j correspond to the exponential matrix H w The row index and column index of . It can be seen that the index matrix H w The elements in can be divided into two categories: elements used to indicate the all-zero square matrix and elements used to indicate the cyclic shift bit of the unit matrix (the value of this element is used to indicate the cyclic shift bit size). w It is called the exponential matrix of H, and H is H w The expansion matrix, Z is the expansion factor, and, when actually performing LDPC coding, the following relationship can be satisfied:

[0049] Therefore, the quasi-cyclic LDPC code can be based on the exponential matrix H w , expansion factor Z and the selected basic permutation matrix P are generated. The exponential matrix H w Each element of corresponds to a Z×Z square matrix in its extended matrix H, including two possible elements: an element indicating an all-zero square matrix and an element indicating a cyclic shift of the unit matrix (indicating the cyclic shift size). Moreover, this extended matrix is ​​the parity check matrix of the quasi-cyclic LDPC code.

[0050] In addition, an n×n binary cyclic matrix H can be obtained by cyclically shifting an n-dimensional binary vector V. The i-th row (0≤i≤n-1) can be obtained by cyclically shifting i times to the right based on the vector V. Therefore, the n*n binary cyclic matrix H can be uniquely determined by the n-dimensional binary vector V. Furthermore, assuming that the number of "1"s in the vector V is γ, and the indices of these γ "1"s form a set B, it can be called the generating set of the cyclic matrix H, or the position set of "1"s in the first row of the cyclic matrix H. Usually, the generating set B can be recorded as B = {b1, b2, ... b γ}, 0≤bi ≤ n - 1, 1 ≤ i ≤ γ and when i ≠ j, b i ≠ b j . Therefore, the row weight and column weight of the cyclic matrix H formed by the generating set B are both γ. Thus, the code directly defined by this cyclic matrix is a (γ, γ)-regular binary LDPC code.

[0051] As shown in Figure 3, an embodiment of the present disclosure provides an encoding method, which includes:

[0052] S101. Determine the parity-check matrix.

[0053] The dimension of the parity-check matrix is determined based on the dimension of the binary extended matrix, which is obtained by hashing the exponent matrix based on the lifting factor. The lifting factor is determined based on the binary base matrix, the information bit sequence, and the order of the NB-LDPC code.

[0054] In some embodiments, the binary base matrix, the lifting factor, the exponent matrix, and the binary extended matrix can be determined respectively, and then the parity-check matrix can be determined. The determination methods of each matrix are exemplarily described below:

[0055] (1) Binary base matrix

[0056] The binary base matrix is an important concept in NB-LDPC technology. The binary base matrix can be used to define the parity-check matrix of the NB-LDPC code and can also determine the error-correcting performance of the codeword. The binary base matrix can be a square matrix, and its elements only contain 0 and 1.

[0057] In some embodiments, the dimension of the above binary base matrix is determined based on any one of the following: a preset dimension value; a dimension value configured by signaling.

[0058] Exemplarily, the binary base matrix B = [b i,j (0 ≤ i, j < n), and the dimension of B is n * n. That is, the value of n or "n * n" can be determined based on a preset dimension value or a dimension value configured by signaling. In some embodiments, the signaling can come from a node or device that receives the encoded sequence.

[0059] In some embodiments, the binary base matrix in the present disclosure can have a non-full-rank cyclic matrix structure.

[0060] It should be noted that the non-full-rank cyclic matrix structure of the binary base matrix means that there are some rows or columns in the binary base matrix that can be linearly represented by other rows or columns, so the rank of the binary base matrix is less than its dimension size. In the binary base matrix, the non-full-rank cyclic matrix structure means that there are some rows or columns in the matrix that can be obtained by cyclic shifting of other rows or columns.

[0061] Therefore, the technical solution provided by the present disclosure can utilize the non-full-rank cyclic matrix structure of a binary fundamental matrix and the properties of the cyclic matrix to detect and correct errors during the encoding and decoding processes using cyclic shift relationships, thereby improving the error correction capability of the codeword. Furthermore, in the case of a binary fundamental matrix with a cyclic structure, the cyclic shift relationship can be used to simplify the encoding and decoding processes, thereby reducing the computational complexity and complexity of encoding and improving decoding efficiency.

[0062] In some embodiments, the binary fundamental matrix is ​​determined based on at least one of the following:

[0063] Pre-defined generation sets;

[0064] Primitive polynomials of Galois Fields;

[0065] Binary cyclic code.

[0066] In one example, the binary fundamental matrix may be determined by a preset generation set.

[0067] For example, the preset generation set is S = {s1, s2, ... s γ}, s i ≥0,1≤i,j≤γ. And, when i≠j, s i ≠s j Thus, the generating set S can be used to construct a binary circulant matrix with dimension n*n as the above binary basic matrix. The binary basic matrix satisfies n-1≥s i , 1≤i≤γ, that is, the row weight and column weight of the binary basic matrix with a circulant matrix structure constructed based on the preset generating set S are both γ, and its rank is less than n (non-full rank circulant matrix structure).

[0068] For example, when the preset spanning set S = {0 1 3 7} and n = 15, the row weight and column weight of the binary basic matrix with a circulant structure constructed based on the preset spanning set S are both 4, and its rank is 4, satisfying that the rank is less than the dimension n. Exemplarily, the binary basic matrix B can be expressed as:

[0069] In another example, the binary fundamental matrix may be determined based on primitive polynomials of the Galois Field.

[0070] For example, it can be based on the Galois field GF (2 m ) determines the binary basic matrix. GF(2 m ) can be expressed as P(x)=p0+p1x+p2x 2 +…+p m-1 x m-1 +x m , pi ∈ {0, 1}, 0 ≤ i < m. Thus, based on the coefficient set {p0, p1, p2, … p m-1 , 1} of the primitive polynomial, a non-full-rank circulant matrix of dimension n * n can be constructed, that is, the binary basic matrix. n = (2 m - 1) * t, where t is a positive integer. It can be obtained that n is a positive integer multiple of 2 m - 1, and the first m + 1 elements of the first row vector of this circulant matrix are determined by this coefficient set, and the remaining n - m - 1 elements are 0 elements. Moreover, the rank of the obtained binary basic matrix is n - m. This binary basic matrix also has a non-full-rank circulant matrix structure.

[0071] For example, when m = 4, the primitive polynomial of the Galois field GF(2 4 ) with prime number 2 as the base is P(x) = 1 + x + x 4 , and its coefficient set is {1 1 0 0 1}, which is used to construct a non-full-rank circulant matrix of dimension 15 * 15 as the binary basic matrix B, n = 2 m - 1 = 2 4 - 1 = 15, and the rank of this binary basic matrix B is 11. Exemplarily, this binary basic matrix B can be expressed as:

[0072] Again, for example, when m = 3, the primitive polynomial of the Galois field GF(2 3 ) with prime number 2 as the base is P(x) = 1 + x + x 3 , and its coefficient set is {1 ١ 0 1}, which is used to construct a non-full-rank circulant matrix of dimension 14 * 14 as the binary basic matrix B, n = (2 m - 1) * 2 = (2 3 - 1) * 2 = 14, and the rank of this binary basic matrix B is 11. Exemplarily, this binary basic matrix B can be expressed as:

[0073] In another example, the binary basic matrix is determined based on a binary cyclic code.

[0074] Exemplarily, a binary basic matrix is determined by an n1-length binary cyclic code. A code group of the n1-length binary cyclic code can be (c0, c1, …, c n1-2 , c n1-1 ), c i∈ {0, 1}, 0 ≤ i < n1. Thus, a non-full rank circulant matrix with dimension n * n, that is, the binary basic circulant matrix, can be determined according to this code group. The first n1 elements of the first row vector of the non-full rank circulant matrix with dimension n * n are determined by this code group, and the remaining n - n1 elements of the first row vector are 0 elements, and the remaining row vectors are obtained by circularly shifting the previous row vector by one position, where n ≥ n1.

[0075] For example, a binary basic matrix is determined by a (7, 3) cyclic code. Exemplarily, all code groups of this cyclic code are shown in Table 1 below.

[0076] Table 1

[0077] Except for the all-zero code group with code group number 1, the remaining code groups can be used to construct the binary basic matrix B with a cyclic matrix structure. Taking the code group with code group encoding 5 as an example, it is used to construct the binary basic matrix B with dimension 8 * 8, where n = 8. Exemplarily, the obtained binary basic matrix B can be expressed as:

[0078] (2) Lifting factor

[0079] The lifting factor can be a parameter used in NB-LDPC technology to improve the error correction performance. In actual implementation, the error correction ability of the NB-LDPC code can be adjusted by adjusting the size of the lifting factor, so as to meet the actual communication and data transmission requirements.

[0080] Taking a larger lifting factor as an example, a larger lifting factor can provide better error correction performance, but at the same time, it will increase the complexity of encoding and decoding. Therefore, it is necessary to determine a suitable lifting factor according to the actual application scenario and system requirements.

[0081] In some embodiments, the lifting factor is determined based on the number of information columns of the binary basic matrix, the number of bits of the information bit sequence, and the order of the NB-LDPC code. Exemplarily, the lifting factor satisfies the following relationship shown in formula (1):

[0082] Z is the lifting factor, k b is the number of columns of the binary basic matrix, q is the order of the NB-LDPC code, K is the number of bits of the information bit sequence, represents rounding down.

[0083] (3) Exponent matrix

[0084] The exponential matrix can be used to represent the check constraint relationships of an NB-LDPC code, and can also be understood as describing the parity check matrix of an NB-LDPC code. For example, the exponential matrix can be used to represent the relationships between the elements in the parity check matrix of an NB-LDPC code, thereby facilitating encoding and decoding operations. In some embodiments, the exponential matrix can also be used to describe parameters such as row weight and column weight of an NB-LDPC code.

[0085] In some embodiments, the exponential matrix includes a first element and a second element, the first element is used to indicate an all-zero square matrix, and the second element is used to indicate a binary circulant square matrix.

[0086] For example, the exponential matrix The superscript b takes the value 1 or 2 and can be used to indicate the element type. Thus, the first element can be represented as Used to indicate an all-zero square matrix. The second element can be used to indicate It is used to indicate a binary circulant matrix. In addition, the dimension of the all-zero square matrix and the binary circulant matrix are both Z*Z.

[0087] In some embodiments, the dimension of the exponential matrix is ​​determined based on the dimension of the binary base matrix, the position of the first element is determined based on the position of the element with a value of 0 in the binary base matrix, and the position of the second element is determined based on the position of the element with a value of 1 in the binary base matrix.

[0088] Furthermore, the exponential matrix H w The dimension of can be the same as the dimension of the binary basic matrix above, so the exponential matrix H w The dimension of can be determined based on the dimension of the binary basic matrix. And, the exponential matrix H w The position of the first element in can correspond to the position of the 0 element in the binary basic matrix, and the exponential matrix H w The position of the second element in can correspond to the position of the 1 element in the binary basic matrix. For example, in the basic matrix B, i,j = 0, the exponential matrix In the basic matrix B, b i,j = 1, in the exponential matrix 0≤i,j <n。

[0089] In some embodiments, the row weight and column weight of the binary cyclic square matrix are both 1. Exemplarily, the binary cyclic square matrix is ​​a cyclic shift matrix of the identity matrix.

[0090] In some embodiments, the second element satisfies any of the following:

[0091] The second element is used to indicate the cyclic shift value of the binary cyclic matrix;

[0092] The second element is used to indicate the row vector of a predefined row of a binary circulant matrix;

[0093] The second element is used to indicate the column indices of the elements with value 1 in the predefined row of the binary circulant matrix.

[0094] In one example, the second element is used to indicate the cyclic shift value of the binary circulant matrix. <​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

[0101] In Method 2, when x≠Z / 3, for 0≤i<x - 1, then d i =a i*3 *2 2 +a i*3+1 *2 + a i*3+2 . For i = x - 1 and 3x - 3≤j≤Z - 1, then d x-1 =∑<00000​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​is a decimal number, and taking the first row of the predefined behavior binary circulant matrix as an example. The row vector of the first row of this binary circulant matrix is a binary vector. This binary vector can be expressed as [a0, a1, … a Z-1 . The second element can be an x-digit decimal number Thus, the second element indicates that the row vector of the first row of the binary circulant matrix can satisfy at least one of the following:

[0105] Exemplarily, when the second element is a decimal number the second element indicates a binary circulant matrix with Z = 4. Based on the second element the row vector of the first row of the indicated binary circulant matrix is [0, 0, 1, 0]. Or based on the second element the row vector of the first row of the indicated binary circulant matrix is [0, 1, 0, 0].

[0106] Again, for example, taking the first row of the binary circulant matrix with the second element being a hexadecimal number as an example. The row vector of the first row of this binary circulant matrix is a binary vector. This binary vector can be expressed as [a0, a1, … a Z-1 . The second element can be an x-digit hexadecimal number And Thus, the second element indicates that the row vector of the first row of the binary circulant matrix can satisfy at least one of the following ways: Way 4, Way 5, and Way 6:

[0107] Way 4, when x = Z / 4, for 0 ≤ i < x, then d i = a 4i * 2 3 + a 4i+1 * 2 2 + a 4i+2 * 2 + a 4i+3 That is, after the second element is converted to a 4x-bit binary number, it corresponds to the row vector of the first row of this binary circulant matrix.

[0108] Way 5, when x ≠ Z / 4, for 0 ≤ i < x - 1, then d i = a 4i * 2 3 + a 4i+1 * 2 2 + a4i+2 *2 + a 4i+3 For i = x - 1 and 4x - 4 ≤ j ≤ Z - 1, thus d x-1 = ∑ j a j *2 Z-j , that is, the second element After being converted into a 4x - bit binary number, the first Z bits from left to right of the second element are the first row vector of this binary circulant matrix.

[0109] Method 6: When x ≠ Z / 4, for 0 < i ≤ x - 1, thus d i = a (Z-4x)+4i *2 3 + a(Z - 4x)+4i + 1*2 2 + a(Z - 4x)+4i + 2*2 + a(Z - 4x)+4i + 3. For i = 0 and 0 ≤ j < 4 + Z - 4x, thus d0 = ∑ j a j *24 + Z - 4x - 1 - j, that is, the second element After being converted into a 4x - bit binary number, the last Z bits from left to right of the second element are the first row vector of the said binary circulant matrix.

[0110] Exemplarily, when the second element is a two - digit hexadecimal number of x = 2 The second element can be used to indicate the first row vector of a binary circulant matrix with Z = 5, 6, 7 or 8. For example, when Z = 8, based on the above Method 4, the first row vector of the binary circulant matrix indicated by this second element is [0, 0, 0, 1, 0, 0, 0, 0]. Another example, when Z = 7, based on the above Method 5, the first row vector of the binary circulant matrix indicated by this second element is [0, 0, 0, 1, 0, 0, 0]. Or, based on the above Method 6, the first row vector of the binary circulant matrix indicated by this second element is [0, 0, 1, 0, 0, 0, 0]. Another example, when Z = 6, based on the above Method 5, the first row vector of the binary circulant matrix indicated by this second element is [0, 0, 0, 1, 0, 0]. Or, based on the above Method 6, the first row vector of the binary circulant matrix indicated by this second element is [0, 1, 0, 0, 0, 0]. Another example, when Z = 5, based on the above Method 5, the first row vector of the binary circulant matrix indicated by this second element is [0, 0, 0, 1, 0]. Or, based on the above Method 6, the first row vector of the binary circulant matrix indicated by this second element The first row vector of the indicated binary cyclic matrix is [1, 0, 0, 0, 0].

[0111] In another example, the second element is used to indicate the column index of the element with a value of 1 in a predefined row of the binary cyclic square matrix.

[0112] Exemplarily, the second element can be a non-empty set of non-negative integers, and the multiple non-negative integers in the set respectively indicate the column indices of multiple 1 elements in the first row of the binary cyclic matrix.

[0113] For example, the second element in the exponent matrix is a non-empty set of non-negative integers B = {b1, b2, … b γ}, γ ≥ 1, for 1 ≤ i < j ≤ γ, there is 0 ≤ b i < b j ≤ Z - 1. And, the first row vector of the binary cyclic square matrix is a binary vector, and this binary vector can be expressed as [a0, a1, … a Z-1 , for 0 ≤ i < Z, when i ∈ B, a i = 1, or, when , a i = 0.

[0114] And, when the row weight and column weight of the binary cyclic square matrix are 1, the second element is a non-empty set of non-negative integers B = {b}, 0 ≤ b ≤ Z - 1. And, the first row vector of the binary cyclic square matrix is a binary vector, which can be expressed as [a0, a1, … a Z-1 , then for 0 ≤ i < Z, when i = b, a i = 1. When i ≠ b, a i = 0.

[0115] For example, when Z = 3, and the second element is a non-empty set of non-negative integers B = {2}, the first row vector of the binary cyclic square matrix indicated by the second element is [0, 0, 1].

[0116] In some embodiments, both the row weight and column weight of the binary cyclic square matrix are greater than 1. Exemplarily, the row weight and column weight of some binary cyclic square matrices indicated by this second element are 1, and the row weight and column weight of some binary cyclic matrices indicated by this second element are greater than 1.

[0117] Thus, the second element in the exponent matrix indicates a binary cyclic square matrix, which can satisfy any one of the following:

[0118] The second element is used to indicate the row vector of a predefined row of the binary cyclic square matrix;

[0119] The second element is used to indicate the column indices of the elements with a value of 1 in a predefined row of the binary circulant matrix.

[0120] In one example, the second element is used to indicate the row vector of a predefined row of the binary circulant matrix. The predefined row can be a specific row in a predefined binary circulant matrix such as the first row, the last row, etc.

[0121] Exemplarily, the second element can be a non-binary number, and this second element can be used to indicate the non-binary representation of the row vector of the first row of the binary circulant matrix, such as octal representation, decimal representation, hexadecimal representation, etc. For details regarding the second element being a non-binary number, reference can be made to the above detailed description, and thus it will not be elaborated here.

[0122] In another example, the second element is used to indicate the column indices of the elements with a value of 1 in a predefined row of the binary circulant matrix.

[0123] Exemplarily, the second element can be a non-empty set of non-negative integers, and the multiple non-negative integers in this set respectively indicate the column indices of multiple 1 elements in the first row of the binary circulant matrix. That is, the second element in the exponent matrix is a non-empty set of non-negative integers B = {b1, b2,... b γ}, γ ≥ 1, and for 1 ≤ i < j ≤ γ, there is 0 ≤ b i < b j ≤ Z - 1. The row vector of the first row of the binary circulant matrix is a binary vector, and this binary vector can be expressed as [a0, a1,... a Z-1 . For 0 ≤ i < Z, when i ∈ B, a i = 1. Or, when holds, a i = 0. For example, when Z = 4 and the second element is a non-empty set of non-negative integers B = {0, 2}, the row vector of the first row of the binary circulant matrix indicated by the second element is [1, 0, 1, 0].

[0124] (4) Binary extended matrix

[0125] The binary extended matrix can be used to describe the parity-check constraint relationship of the NB-LDPC code. The binary extended matrix can also be understood as a matrix used to describe the parity-check matrix of the NB-LDPC code, such as for describing the structural characteristics of the parity-check matrix. In some embodiments, the complete parity-check matrix can be quickly generated through the binary extended matrix, thereby reducing the computational complexity.

[0126] In some embodiments, the binary extended matrix is determined based on the exponent matrix and the lifting factor. Exemplarily, the binary extended matrix can be obtained by hashing the exponent matrix according to the lifting factor.

[0127] The first element in the exponential matrix is ​​expanded into an all-zero square matrix based on the lifting factor, and the second element in the exponential matrix is ​​expanded into a binary circulant square matrix based on the lifting factor.

[0128] For example, the first element in the exponential matrix can be expanded into a square matrix of all zeros with a dimension of Z*Z, and the second element in the exponential matrix can be expanded into a binary circulant square matrix with a dimension of Z*Z. Thus, the dimension of the binary expansion matrix is ​​(n*Z)*(n*Z), that is, the binary expansion matrix can be represented as consisting of n*n block matrices with a dimension of Z*Z. For example, the binary expansion matrix Hb is shown below:

[0129] P is a square matrix of all zeros or a binary circulant matrix of dimension Z*Z. P can be based on the elements of the index matrix in the superscript Determine. For example, is the first element In the case of , P is a square matrix of all zeros with dimension Z*Z, or, The second element In the case of P, The indicated dimension is a Z*Z binary circulant square matrix.

[0130] (5) Parity Check Matrix

[0131] The parity check matrix can be used to represent the check constraints of NB-LDPC codes. For example, a parity check matrix describes the linear dependencies that codewords must satisfy. It can be used to determine whether a particular vector is a codeword and is also used in decoding algorithms. The rows of the parity check matrix are the coefficients of the parity check equation, which indicates how certain numbers in each codeword can be linearly combined to equal zero.

[0132] In some embodiments, the number of nonzero elements in the parity check matrix is ​​determined based on the number of nonzero elements in the binary extension matrix, and the positions of the nonzero elements in the parity check matrix are determined based on the positions of the nonzero elements in the binary extension matrix.

[0133] Exemplarily, the dimension of the parity check matrix Hq is equal to the dimension of the binary extended matrix Hb, that is, the parity check matrix Hq can also be composed based on n*n block matrices of dimension Z*Z, so that the number of non-zero elements in the parity check matrix is ​​determined based on the number of non-zero elements in the binary extended matrix. In addition, the positions of the non-zero elements in Hq and Hb are also the same, so that the positions of the non-zero elements in the parity check matrix are determined based on the positions of the non-zero elements in the binary extended matrix. For example, the non-zero elements in the binary extended matrix Hb are 1 elements, while the non-zero elements in the parity check matrix Hq are non-zero elements in the q-order Galois Field GF(q).

[0134] In some embodiments, the parity check matrix satisfies any of the following:

[0135] All non-zero elements in any cyclic matrix of the parity check matrix are the same;

[0136] There are different non-zero elements in at least one circulant matrix of the parity check matrix;

[0137] All non-zero elements in any column of the parity check matrix are the same;

[0138] There are different non-zero elements in at least one column of the parity check matrix.

[0139] In some embodiments, the non-zero element values ​​in the parity check matrix are determined based on at least one of the following:

[0140] binary basis matrix;

[0141] binary expansion matrix;

[0142] Candidate set, the candidate set includes multi-element candidate vectors of various lengths;

[0143] a vector of nonzero multivariate elements;

[0144] The primitive element of the Galois Field corresponding to the order of the NB-LDPC code;

[0145] The dimension of the binary fundamental matrix;

[0146] Boost factor.

[0147] It should be noted that in the technical solution provided by the present disclosure, the non-zero element values in the parity check matrix can be determined based on at least one of the above-mentioned binary basis matrix, binary extended matrix, candidate set, non-zero multi-element vector, primitive element of the Galois field corresponding to the order of the NB-LDPC code, dimension of the binary basis matrix, and lifting factor. Further, the binary extended matrix is determined based on the exponent matrix and the lifting factor. That is, for NB-LDPC code encoding, there is no need to store the parity check matrix, and only at least one of the above-mentioned binary basis matrix, exponent matrix, candidate set, non-zero multi-element vector, primitive element of the Galois field corresponding to the order of the NB-LDPC code, dimension of the binary basis matrix, and lifting factor needs to be stored, thereby reducing the storage space required in the NB-LDPC code encoding process.

[0148] In one implementation, the non-zero element values in the parity check matrix Hq can be determined based on the binary basis matrix B, the candidate set C, and the non-zero multi-element vector L.

[0149] Exemplarily, the candidate set C can be a set of multi-element candidate vectors of different lengths. For example, C = {C dc}(dc>0), where C dc is a set of multi-element candidate vectors of length dc, and c i = [c i,0 , c i,1 , … c i,dc-1 (0 ≤ i < |C dc |, 0 ≤ j < dc, 0 < c i,j < q). The multi-element vector L can be composed of q - 1 non-zero elements in the q-ary Galois field, L = [l0, l1, …, l q-2 and 0 < l i < q, and when i ≠ j and 0 ≤ i, j < q - 1, l i ≠ l j .

[0150] Exemplarily, the process of determining the parity check matrix based on the binary basis matrix, the candidate set, and the non-zero multi-element vector can be implemented as the following S11 to S17:

[0151] S11. Determine the initialization coefficient vector t, set the indicator variable idx = 0 and the row index i = 0.

[0152] Use a all-zero vector of dimension 1*n as the initialization coefficient vector t.

[0153] S12. Determine the multi-element vector u.

[0154] The row weight of the i-th row of the binary basis matrix B can be expressed as dc, so that a set of multi-element vectors C of length dc can be determined from the candidate set Cdc , and then we can get from C dc Determine the idx(mod|C dc |) candidate vectors c idx , and the candidate vector c idx Circularly shift the idx bits (this disclosure takes rightward circular shift as an example) to obtain a multi-element vector u.

[0155] S13. Update u to obtain the updated multivariate vector u.

[0156] Multiply the multivariate vector u by the idx(mod q-1)th multivariate element in the non-zero multivariate element vector L to update the multivariate vector u, u=u*L(idx(mod q-1)), where "*" represents Galois Field multiplication.

[0157] S14. Update t based on the updated multivariate vector u to obtain an updated coefficient vector t.

[0158] The coefficient vector t is updated, t(1, B(i,:)==1)=u, and B(i,:)==1 represents the column index of the 1 element in the i-th row of the basic matrix B.

[0159] S15, determine the i-th row block matrix Hq in the parity check matrix Hq according to the coefficient vector t. i .

[0160] According to the coefficient vector t, the 1 element in the i-th row block matrix of the binary expansion matrix Hb is assigned to the non-zero element value in GF(q), and the i-th row block matrix Hq of the parity check matrix Hq is obtained. i ,

[0161] S16 . Update vector t to an all-zero vector of dimension 1*n, and update row index i=i+1 and indicator variable idx=idx+1.

[0162] S17. Repeat S12 to S16 until the multivariate assignment of the block matrices of the n rows of the binary extended matrix is ​​completed to obtain the parity check matrix Hq.

[0163] In some embodiments, all non-zero elements in the same cyclic matrix of the parity check matrix of the NB-LDPC are the same.

[0164] For example, let's take a binary base matrix B as a 2*2 all-one matrix, a lifting factor Z=4, and a binary expansion matrix Hb consisting of 2*2 block matrices of 4*4 dimensions. The description of the candidate set C and the non-zero multivariate element vector L refers to the above implementation. Hb can be expressed as:

[0165] Based on the above S11 to S17, the parity check matrix Hq can be obtained as follows:

[0166] All non-zero elements in the same cyclic matrix in the parity check matrix of NB-LDPC are the same.

[0167] In another implementation, the non-zero element values in the parity check matrix Hq can be determined based on the binary extension matrix Hb, the candidate set C, and the non-zero multi-element vector L.

[0168] Exemplarily, the candidate set C can be a set of multi-element candidate vectors of different lengths. For example, C = {C dc}(dc > 0), C dc is a set of multi-element candidate vectors of length dc, and c i = [c i,0 , c i,1 , … c i,dc-1 (0 ≤ i < |C dc |, 0 ≤ j < dc, 0 < c i,j < q). The multi-element vector L can be composed of q - 1 non-zero elements in the q-ary Galois field, L = [l0, l1, …, l q-2 and 0 < l i < q, when i ≠ j and 0 ≤ i, j < q - 1, l i ≠ l j .

[0169] In one example, the process of determining the parity check matrix based on the binary extension matrix Hb, the candidate set C, and the non-zero multi-element vector L can be implemented as the following S2A1 to S2A7:

[0170] S2A1. Determine the initialization indicator variable idx = 0 and the row index i = 0.

[0171] S2A2. Determine the multi-element vector u.

[0172] For the i*Z-th row to the (i + 1)*Z - 1-th row of the binary extension matrix Hb, it can be composed of n block matrices of dimension Z*Z, denoted as [[ID=​​​​​​​​​​And circularly shift the candidate vector by idx positions (this disclosure takes right circular shift as an example) to obtain a multi-element vector u.

[0173] S2A3. Update the multivariate vector u.

[0174] Exemplarily, the multivariate vector u may be multiplied by the idx-th (mod q-1) multivariate element in the non-zero multivariate element vector L to update the multivariate vector u, u=u*L(idx), where “*” represents Galois Field multiplication.

[0175] S2A4. Determine the 0th row in the i-th row block matrix of the parity check matrix, that is, the i*Zth row of the parity check matrix.

[0176] For example, the 1 element in the 0th row of the i-th block matrix in the binary extended matrix Hb can be assigned a non-zero element value in GF(q) based on the multivariate vector u, thereby obtaining the 0th row of the i-th block matrix of the parity check matrix, i.e., the i*Zth row of the parity check matrix. Hq(i*Z,Hb(i*Z,:)==1)=u, Hb(i*Z,:)==1, representing the column index of the 1 element in the i*Zth row of the binary extended matrix Hb.

[0177] S2A5. Determine the 1st to Z-1th rows of the block matrix of the i-th row of the parity check matrix.

[0178] For example, the 1 element in the 1st row to the Z-1th row of the block matrix of the i-th row in the binary extended matrix Hb can be assigned to a non-zero element value in GF(q), and the 1st row to the Z-1th row of the block matrix of the i-th row in the parity check matrix is ​​obtained. The row vector of the k-th row in the block matrix of the i-th row is a cyclic shift of the row vector of the k-1th row, 1≤k <Z。

[0179] S2A6. Update row index i=i+1 and indicator variable idx=idx+1.

[0180] S2A7. Repeat the above steps S2A2 to S2A6 until the multi-element assignment of the block matrices of the n*Z rows of the binary extended matrix is ​​completed to obtain the parity check matrix Hq.

[0181] In some embodiments, different non-zero elements exist in at least one cyclic matrix of the NB-LDPC parity check matrix.

[0182] It should be noted that, when the binary cyclic matrix indicated by the second element in the exponential matrix has a row weight and a column weight greater than or equal to 1, that is, when the row weight and the column weight of the binary cyclic matrix indicated by some of the second elements are 1, and the row weight and the column weight of the binary cyclic matrix indicated by some of the second elements are greater than 1, after the binary extended matrix is ​​multi-valued according to the method for determining the non-zero element value in the parity check matrix Hq, all non-zero elements in the binary cyclic square matrix with a row weight and a column weight of 1 are the same, while there are different non-zero elements in the binary cyclic square matrix with a row weight and a column weight greater than 1.

[0183] For example, taking the binary extended matrix Hb consisting of 2*2 block matrices with a dimension of 4*4 as an example, the description of the candidate set C and the non-zero multivariate element vector L refers to the above implementation. Based on the above S2A1 to S2A7, the parity check matrix Hq can be obtained as follows:

[0184] In the NB-LDPC parity check matrix, at least one cyclic matrix has different non-zero elements.

[0185] In another example, the process of determining the parity check matrix based on the binary extended matrix Hb, the candidate set C, and the non-zero multivariate element vector L can be implemented as the following S2B1 to S2B6:

[0186] S2B1. Determine the initialization indicator variable idx=0 and the row index k=0.

[0187] S2B2. Determine the multivariate vector u.

[0188] For the kth row of the binary expansion matrix Hb, the row weight is dc. Thus, the multi-element vector set C with a length of dc can be determined from the candidate set C. dc , and from the set C dc Select the idx(mod|C dc |) candidate vectors c idx And circularly shift the candidate vector by idx positions (this disclosure takes right circular shift as an example) to obtain a multi-element vector u.

[0189] S2B3. Update the multivariate vector u.

[0190] Exemplarily, the multivariate vector u may be multiplied by the idx-th (mod q-1) multivariate element in the non-zero multivariate element vector L to update the multivariate vector u, u=u*L(idx), where “*” represents Galois Field multiplication.

[0191] S2B4. Determine the k-th row of the parity check matrix.

[0192] Exemplarily, according to the multivariate vector u, the 1 elements in the k-th row of the binary extended matrix Hb can be assigned non-zero element values in GF(q) to obtain the k-th row of the parity-check matrix, and Hq(k, Hb(k, :) == 1) = u, where Hb(k, :) == 1 represents the column indices of the 1 elements in the k-th row of the binary extended matrix Hb.

[0193] S2B5. Update the row index k = k + 1 and the indicator variable idx = idx + 1.

[0194] S2B6. Repeat the above S2B2 to S2B5 until the multivariate assignment of the block matrix of n * Z rows of the binary extended matrix is completed to obtain the parity-check matrix Hq.

[0195] In some embodiments, there are different non-zero elements in at least one cyclic matrix of the parity-check matrix of NB-LDPC.

[0196] Exemplarily, taking the binary extended matrix Hb composed of 2 * 2 block matrices with a dimension of 4 * 4 as an example, the description of the candidate set C and the non-zero multivariate element vector L refers to the above implementation method. Based on the above S2B1 to S2B6, the parity-check matrix Hq can be obtained as follows:

[0197] There are different non-zero elements in at least one cyclic matrix of the parity-check matrix of NB-LDPC.

[0198] In another implementation, the non-zero element values in the parity-check matrix Hq can be determined based on the binary base matrix B, the candidate set C, the non-zero multivariate element vector L, and the primitive element α of the q-th order Galois field.

[0199] Exemplarily, the candidate set C can be a set of multivariate element candidate vectors of different lengths. For example, C = {C dc}(dc > 0), C dc is a set of multivariate element candidate vectors with a length of dc, and c i = [c i,0 , c i,1 , … c i,dc-1 (0 ≤ i < |C dc |, 0 ≤ j < dc, 0 < c i,j < q). The multivariate element vector L can be composed of q - 1 non-zero elements in the q-ary Galois field, L = [l0, l1, …, l q-2 and 0 < l i < q, when i ≠ j and 0 ≤ i, j < q - 1, l i ≠ l j .

[0200] Exemplarily, the process of determining the parity check matrix based on the binary basic matrix B, the candidate set C, the non-zero multivariate element vector L, and the primitive element α of the q-order Galois field can be implemented as the following S31 to S38:

[0201] S31 . Determine the initialization coefficient vector t, the indicator variable idx=0 and the row index i=0.

[0202] An all-zero vector with a dimension of 1*n is used as the initialization coefficient vector t.

[0203] S32. Determine the multivariate vector u.

[0204] The row weight of the i-th row of the binary basis matrix B can be expressed as dc, so that a multi-element vector set C of length dc can be determined from the candidate set C. dc , and then we can get from C dc Determine the idx(mod|C dc |) candidate vectors c idx , and the candidate vector c idx Circularly shift the idx bits (this disclosure takes rightward circular shift as an example) to obtain a multi-element vector u.

[0205] S33. Update u to obtain the updated multivariate vector u.

[0206] Multiply the multivariate vector u by the idx(mod q-1)th multivariate element in the non-zero multivariate element vector L to update the multivariate vector u, u=u*L(idx(mod q-1)), where "*" represents Galois Field multiplication.

[0207] S34. Update t based on the updated multivariate vector u to obtain an updated coefficient vector t.

[0208] The coefficient vector t is updated, t(1, B(i,:)==1)=u, and B(i,:)==1 represents the column index of the 1 element in the i-th row of the basic matrix B.

[0209] S35, determining the i-th row block matrix Hq of the parity check matrix according to the coefficient vector t. i The 0th row of , that is, the i*Zth row of the parity check matrix.

[0210] According to the coefficient vector t, the 1 element in the 0th row of the block matrix of the i-th row in the binary expansion matrix Hb is assigned to the non-zero element value in GF(q), and the i-th row block matrix Hq of the parity check matrix is ​​obtained. i The 0th row of , that is, the i*Zth row of the parity check matrix, and Indicated by Row vector indicating row 0 of the block matrix.

[0211] S36. Determine the 1st to Z-1th rows of the block matrix of the i-th row of the parity check matrix.

[0212] The 1 elements in the 1st to Z-1th rows of the i-th row block matrix of the binary extended matrix Hb are all assigned non-zero element values ​​in GF(q), corresponding to the 1st to Z-1th rows of the i-th row block matrix of the parity check matrix.

[0213] The row vector of the kth row in the block matrix of the i-th row can be obtained by multiplying the row vector of the k-1th row by the cyclic shift of the primitive element α of the q-order Galois field, 1≤k <Z。

[0214] S37 . Update the vector t to an all-zero vector of dimension 1*n, and update the row index i=i+1 and the indicator variable idx=idx+1.

[0215] S38. Repeat the above steps S32 to S37 until the multi-element assignment of the block matrices of the n rows of the binary extended matrix is ​​completed to obtain the parity check matrix Hq.

[0216] Illustratively, in the obtained NB-LDPC parity check matrix, different non-zero elements exist in at least one cyclic matrix.

[0217] It should be noted that after the binary cyclic matrix is ​​assigned multivariate elements, each row is a cyclic shift of the previous row vector multiplied by the primitive element α of the q-order Galois field, so the non-zero elements in the multivariate cyclic matrix are different.

[0218] For example, the binary basic matrix B is a 2*2 all-one matrix, the lifting factor Z=4, and the binary expansion matrix Hb is composed of 2*2 block matrices of 4*4 dimensions. The candidate set C and the non-zero multivariate element vector L refer to the above implementation. Based on the above S31 to S38, the parity check matrix Hq can be obtained as follows:

[0219] In the NB-LDPC parity check matrix, at least one cyclic matrix has different non-zero elements.

[0220] In yet another implementation, the non-zero element values ​​in the parity check matrix Hq may be determined based on the binary extension matrix Hb, the candidate set C, the non-zero multivariate element vector L, and the primitive element α of the q-order Galois Field.

[0221] For example, the candidate set C may be a set of candidate vectors of multiple elements of different lengths. For example, C={C dc}(dc>0), C dc is a set of candidate vectors of multiple elements of length dc, and c i =[ci,0 , c i,1 , … c i,dc-1 (0 ≤ i < |C dc |, 0 ≤ j < dc, 0 < c i,j < q). The multi - element vector L can be composed of q - 1 non - zero elements in the q - ary Galois field, L = [l0, l1, …, l q-2 and 0 < l i < q, when i ≠ j and 0 ≤ i, j < q - 1, l i ≠ l j .

[0222] Exemplarily, the process of determining the parity - check matrix based on the binary extended matrix Hb, the candidate set C, the non - zero multi - element vector L, and the primitive element α of the q - order Galois field can be implemented, for example, as the following S41 to S47:

[0223] S41. Determine the initialization indicator variable idx = 0 and the row index i = 0.

[0224] S42. Determine the multi - element vector u.

[0225] For the i*Z - th row to the (i + 1)*Z - 1 - th row of the binary extended matrix Hb, it can be composed of n block matrices with dimensions of Z*Z, denoted as The row weight of each of the Z rows of the binary extended matrix Hb is dc. Select the idx (mod |C dc |) - th candidate vector c dc from the set C idx of multi - element vectors with length dc in the candidate set C, and circularly shift this candidate vector by idx bits (in this disclosure, a right - circular shift is taken as an example) to obtain the multi - element vector u.

[0226] S43. Update the multi - element vector u.

[0227] Exemplarily, the multi - element vector u can be multiplied by the idx (mod q - 1) - th multi - element in the non - zero multi - element vector L to update the multi - element vector u, u = u*L(idx), where "*" represents Galois field multiplication.

[0228] S44. Determine the 0 - th row in the i - th row block matrix of the parity - check matrix, that is, the i*Z - th row of the parity - check matrix.

[0229] For example, the 1 element in the 0th row of the i-th block matrix in the binary extended matrix Hb can be assigned a non-zero element value in GF(q) based on the multivariate vector u, thereby obtaining the 0th row of the i-th block matrix of the parity check matrix, i.e., the i*Zth row of the parity check matrix. Hq(i*Z,Hb(i*Z,:)==1)=u, Hb(i*Z,:)==1, representing the column index of the 1 element in the i*Zth row of the binary extended matrix Hb.

[0230] S45. Determine the 1st to Z-1th rows of the block matrix of the i-th row of the parity check matrix based on α.

[0231] For example, the 1 element in the 1st row to the Z-1th row of the block matrix of the i-th row in the binary extended matrix Hb can be assigned to the non-zero element value in GF(q), and the 1st row to the Z-1th row of the block matrix of the i-th row in the parity check matrix are obtained. The k-th row vector in the block matrix of the i-th row is obtained by cyclic shifting the k-1th row vector multiplied by the primitive element α of the q-order Galois field, 1≤k <Z。

[0232] S46 . Update the row index i=i+1 and the indicator variable idx=idx+1.

[0233] S47. Repeat the above steps S42 to S46 until the multi-element assignment of the block matrices of the n*Z rows of the binary extended matrix is ​​completed, thereby obtaining the parity check matrix Hq.

[0234] In some embodiments, different non-zero elements exist in at least one cyclic matrix of the NB-LDPC parity check matrix.

[0235] It should be noted that after the binary cyclic matrix is ​​assigned multivariate elements, each row is a cyclic shift of the previous row vector multiplied by the primitive element α of the q-order Galois field, so the non-zero elements in the multivariate cyclic matrix are different.

[0236] For example, referring to the above implementation method, the description of the binary extended matrix Hb, the candidate set C, and the non-zero multivariate element vector L, based on the above S41 to S47, the parity check matrix Hq can be obtained as follows:

[0237] In the NB-LDPC parity check matrix, at least one cyclic matrix has different non-zero elements.

[0238] In yet another implementation, the non-zero element values ​​in the parity check matrix Hq may be determined based on the dimension n of the binary base matrix, the candidate set C, and the non-zero multivariate element vector L.

[0239] For example, the candidate set C may be a set of candidate vectors of multiple elements of different lengths. For example, C={Cdc}(dc > 0), C dc is a set of multi - element candidate vectors of length dc, and c i = [c i,0 , c i,1 , … c i,dc-1 (0 ≤ i < |C dc |, 0 ≤ j < dc, 0 < c i,j < q). The multi - element vector L can be composed of q - 1 non - zero elements in the q - ary Galois field, L = [l0, l1, …, l q-2 and 0 < l i < q, when i ≠ j and 0 ≤ i, j < q - 1, l i ≠ l j .

[0240] Exemplarily, the process of determining the parity - check matrix based on the dimension n of the binary base matrix, the candidate set C, and the non - zero multi - element vector L can be implemented as the following S51 to S53:

[0241] S51. Determine a set of multi - element vectors C n of length n from the candidate set C n , and select 1 candidate vector c n from C

[0242] S52. Determine the multi - vector u.

[0243] Multiply the candidate vector c n by 1 multi - element e in the non - zero multi - element vector L (for example, the first multi - element in L) to obtain the multi - vector u, and satisfy u = c n * e, where "*" represents Galois field multiplication.

[0244] S53. Assign values to the binary extended matrix Hb according to the multi - vector to obtain the parity - check matrix Hq.

[0245] The parity - check matrix satisfies

[0246] Exemplarily, all non - zero elements in the same cyclic matrix of the obtained parity - check matrix of NB - LDPC are the same, and all non - zero elements in the same column are the same.

[0247] Exemplarily, taking the dimension n = 2 of the binary base matrix as an example, the description of the candidate set C and the non - zero multi - element vector L refers to the above implementation method. Based on the above S51 to S53, the parity - check matrix Hq can be obtained as follows:

[0248] All non-zero elements in the same cyclic matrix of the parity check matrix of NB-LDPC are the same, and all non-zero elements in the same column are the same.

[0249] In another implementation, the non-zero element values in the parity check matrix Hq can be determined based on the dimension n of the binary base matrix, the lifting factor Z, the candidate set C, and the non-zero multi-element vector L.

[0250] Exemplarily, the candidate set C can be a set of multi-element candidate vectors of different lengths. For example, C = {C dc}(dc>0), C dc is a set of multi-element candidate vectors of length dc, and c i = [c i,0 , c i,1 , … c i,dc-1 (0 ≤ i < |C dc |, 0 ≤ j < dc, 0 < c i,j <q). The multi-element vector L can be composed of q - 1 non-zero elements in the q-ary Galois field, L = [l0, l1, …, l q-2 and 0 < l i <q, when i ≠ j and 0 ≤ i, j < q - 1, l i ≠ l j .

[0251] Exemplarily, the process of determining the parity check matrix based on the dimension n of the binary base matrix, the lifting factor Z, the candidate set C, and the non-zero multi-element vector L can be implemented as the following S61 to S63, for example:

[0252] S61. Determine a set C n*Z of multi-element vectors of length n*Z from the candidate set C, and select 1 candidate vector c n*Z from C n*Z .

[0253] S62. Determine the multi-element vector u.

[0254] Multiply the candidate vector c n*Z by 1 multi-element e in the non-zero multi-element vector L (for example, the first multi-element in L) to obtain the multi-element vector u, and satisfy u = c n*Z *e, where "*" represents Galois field multiplication.

[0255] S63. Assign values to the binary extended matrix Hb according to the multi-element vector to obtain the parity check matrix Hq.

[0256] The parity check matrix satisfies Hq = u * Hb = [u j Hb i,j , 0 ≤ i, j < n*Z. Hbi,j Denote the element at the \(i\)-th row and \(j\)-th column of the binary extension matrix \(H_b\).

[0257] Exemplarily, in at least one cyclic sub-matrix of the obtained parity-check matrix of NB-LDPC, there are different non-zero elements and all non-zero elements in the same column are the same.

[0258] Exemplarily, taking the dimension \(n = 2\) of the binary base matrix, the lifting factor \(Z = 4\), the candidate set \(C\), and the description of the non-zero multi-element vector \(L\) as an example, referring to the above implementation, based on the above S61 to S63, the parity-check matrix \(H_q\) can be obtained as follows:

[0259] In the parity-check matrix of NB-LDPC, there is at least one cyclic sub-matrix in which there are different non-zero elements and all non-zero elements in the same column are the same.

[0260] Exemplarily, taking the length of the information bits to be encoded \(K = 32\) bits, the code rate of the target NB-LDPC code is \(4 / 15\) for a 16-order NB-LDPC code, that is, \(q = 16\), and taking the method of determining the parity-check matrix as shown in S51 to S53 as an example, S101 is exemplarily described. Exemplarily, as shown in Figure 4, it can be implemented as S1011 to S1015:

[0261] S1011. Determine the binary base matrix.

[0262] The binary base matrix \(B=[b_{ij}](0\leq i,j < n)\) has a non-full-rank cyclic sub-matrix structure. The dimension \(n\times n\) of \(B\) can be determined by a preset or signaling configuration method. Taking \(n = 15\) as an example, the binary base matrix \(B\) can be determined by the preset generating set \(S=\{0,1,3,7\}\), and \(B\) can be expressed as: i,j The row weight and column weight of the binary base matrix \(B\) with a cyclic sub-matrix structure constructed from the above preset generating set \(S = \{0,1,3,7\}\) are both 4, and its rank is 4.

[0263] The row weight and column weight of the binary base matrix \(B\) with a cyclic sub-matrix structure constructed from the above preset generating set \(S=\{0,1,3,7\}\) are both 4, and its rank is 4.

[0264] S1012. Determine the lifting factor.

[0265] Exemplarily, the lifting factor \(Z\) can be determined by the number of information bits to be encoded \(K\), the number of information columns \(k_b\) of the binary base matrix, and the order \(q\) of the NB-LDPC code, and \(Z\) satisfies \(\lfloor x\rfloor\) represents rounding down.

[0266] When \(K = 32\) bits, \(k_b = 4\), and \(q = 16\), the lifting factor \(Z\) can be 2.

[0267] S1013. Determine the exponent matrix.

[0268] Based on the above basic matrix B and the lifting factor Z=2, the exponential matrix Hw can be expressed as:

[0269] All binary cyclic matrices indicated by the second element have row weight and column weight of 1, so the binary cyclic matrix is ​​a cyclic shift matrix of the identity matrix.

[0270] In some embodiments, the second element in the exponential matrix indicates the binary cyclic matrix in the following manner: the second element is a non-negative integer indicating the cyclic shift value of the binary cyclic matrix. For example, the exponential matrix Hw can be expressed as:

[0271] The first element in the exponential matrix The fixed value is -1, and it indicates an all-zero square matrix with dimension Z*Z. When Z=2, the second element in the exponential matrix The value of is 0 or 1. When the second element indicates the binary cyclic matrix, the dimension is 2*2. when When the second element indicates the binary cyclic matrix, it is a cyclic shift of the unit matrix of dimension 2*2.

[0272] S1014. Determine a binary expansion matrix.

[0273] Exemplarily, the binary expansion matrix is ​​obtained by hashing the exponential matrix Hw according to a lifting factor Z=2.

[0274] For example, the first element in the exponential matrix Expanded to a 2*2 all-zero square matrix The second element in the exponential matrix Expanded to a binary circulant matrix with dimension 2*2. When , it can be expanded into a unit matrix of dimension 2*2 when When , it can be expanded into a cyclic shift of the unit matrix of dimension 2*2

[0275] Therefore, the dimension of the binary expansion matrix is ​​(15*2)*(15*2), which can be composed of 15*15 block matrices with a dimension of 2*2. The binary expansion matrix can be expressed as:

[0276] S1015: Determine a parity check matrix.

[0277] Exemplarily, the parity check matrix Hq and the binary extended matrix Hb have the same dimension, that is, the parity check matrix Hq is also composed of 15*15 block matrices of dimension 2*2, and the number and position of non-zero elements in Hq and Hb are also the same. For example, the non-zero element in the binary extended matrix Hb is 1, while the non-zero elements in the parity check matrix Hq are the non-zero elements {1, 2, 3, ..., 14, 15} in GF(q=16).

[0278] Therefore, the non-zero element values ​​in the parity check matrix Hq can be determined by the dimension n of the binary basic matrix, the candidate set C, and the non-zero multivariate element vector L.

[0279] The multivariate element vector L consists of q-1 non-zero elements in a q-element Galois field, and can be L = [3 2 12 13 14 11 7 9 15 4 6 8 1 5 10]. The candidate set C is a set of multivariate element candidate vectors of different lengths, which can be shown in Table 2 below:

[0280] Table 2

[0281] Thus, based on the method shown in S51 to S53, the non-zero element values ​​in the parity check matrix Hq can be determined, and the obtained parity check matrix Hq can be expressed as:

[0282] It can be seen that all non-zero elements in the same cyclic matrix of the parity check matrix are the same and all non-zero elements in the same column are the same.

[0283] S102: Perform NB-LDPC encoding on the information bit sequence according to the parity check matrix or the generator matrix corresponding to the parity check matrix to obtain a coded sequence.

[0284] In some embodiments, based on the determined parity check matrix, Gaussian elimination and inversion can be performed on the parity check matrix to obtain a generator matrix. The dimension of the generator matrix is ​​determined by the dimension and rank of the parity check matrix. Exemplarily, the dimension of the parity check matrix is ​​(n*Z)*(n*Z), and its rank is R. Then, the dimension of the generator matrix obtained by Gaussian elimination and inversion is (n*ZR)*(n*Z).

[0285] Furthermore, NB-LDPC encoding is performed on the information bit sequence according to the parity check matrix or the generator matrix corresponding to the parity check matrix to obtain a coded sequence.

[0286] For example, the parity check matrix determined in S1011 to S1015 is used as an example to illustrate S102. The dimension of the parity check matrix determined in S1011 to S1015 is 30*30 and the rank is 22. After Gaussian elimination and inversion, the resulting generator matrix with a dimension of 8*30 can be expressed as:

[0287] In some embodiments, the LDPC codeword sequence may be rate matched according to the required coding rate to output a codeword sequence of corresponding length to be transmitted.

[0288] Based on the technical solutions provided by this disclosure, a method for determining the parity check matrix for NB-LDPC is provided. This method can determine the parity check matrix based on the determined binary expansion matrix, exponential matrix, lifting factor, etc., thereby eliminating the need to store the parity check matrix during NB-LDPC code encoding, thereby reducing the storage space required during the NB-LDPC code encoding process. Furthermore, the binary basic matrix used during the NB-LDPC code encoding process can be a circulant matrix structure, further reducing the storage space required during the NB-LDPC code encoding process and the complexity of the matrix construction involved in the encoding process.

[0289] In addition, the non-zero element values ​​in the parity check matrix can be determined based on at least one of the above-mentioned binary basic matrix, the binary extension matrix, the candidate set, the non-zero multivariate element vector, the primitive element of the Galois field corresponding to the order of the NB-LDPC code, the dimension of the binary basic matrix, and the lifting factor. Further, the binary extension matrix is ​​determined based on the exponential matrix and the lifting factor. That is, when performing NB-LDPC code encoding, there is no need to store the parity check matrix. Only the above-mentioned binary basic matrix, the exponential matrix, the candidate set, the non-zero multivariate element vector, the primitive element of the Galois field corresponding to the order of the NB-LDPC code, the dimension of the binary basic matrix, and the lifting factor need to be stored, thereby saving the storage space required in the NB-LDPC code encoding process.

[0290] In some embodiments, the present disclosure further provides a decoding method, as shown in FIG5 , which includes the following steps:

[0291] S201: Receive a coding sequence.

[0292] S202 : Decode the coded sequence based on a parity check matrix of a non-binary low-density parity-check code NB-LDPC to obtain an information bit sequence.

[0293] The dimension of the parity check matrix is ​​determined based on the dimension of the binary extension matrix, which is obtained by hashing the exponential matrix based on a lifting factor, and the lifting factor is determined based on the binary basic matrix, the information bit sequence, and the order of the NB-LDPC code.

[0294] In some embodiments, the binary base matrix has a non-full rank circulant matrix structure.

[0295] In some embodiments, the binary basis matrix is ​​determined based on at least one of:

[0296] Pre-defined generation sets;

[0297] Primitive polynomials of Galois Fields;

[0298] Binary cyclic code.

[0299] In some embodiments, the dimension of the binary basic matrix is ​​determined based on any one of the following: a preset dimension value; a dimension value configured through signaling.

[0300] In some embodiments, the lifting factor is determined based on the number of information columns of the binary basis matrix, the number of bits of the information bit sequence, and the order of the NB-LDPC code.

[0301] In some embodiments, the boost factor satisfies the following relationship:

[0302] Z is the boost factor, k b is the number of columns of the binary basic matrix, q is the order of the NB-LDPC code, K is the number of bits in the information bit sequence, Indicates rounding down.

[0303] In some embodiments, the exponential matrix includes a first element and a second element, the first element is used to indicate an all-zero square matrix, and the second element is used to indicate a binary circulant square matrix.

[0304] In some embodiments, the dimension of the exponential matrix is ​​determined based on the dimension of the binary base matrix, the position of the first element is determined based on the position of the element with a value of 0 in the binary base matrix, and the position of the second element is determined based on the position of the element with a value of 1 in the binary base matrix.

[0305] In some embodiments, the row weight and column weight of the binary circulant matrix are both 1, or the row weight and column weight of the binary circulant square matrix are both greater than 1.

[0306] In some embodiments, the second element satisfies any of the following:

[0307] The second element is used to indicate the cyclic shift value of the binary cyclic matrix;

[0308] The second element is used to indicate a row vector of a predefined row of the binary circulant matrix;

[0309] The second element is used to indicate the column index of the element with a value of 1 in the predefined row of the binary circulant matrix.

[0310] In some embodiments, the binary expansion matrix is ​​determined based on the exponential matrix and the lifting factor; the first element in the exponential matrix is ​​expanded into an all-zero square matrix based on the lifting factor, and the second element in the exponential matrix is ​​expanded into a binary circulant square matrix based on the lifting factor.

[0311] In some embodiments, the number of nonzero elements in the parity check matrix is ​​determined based on the number of nonzero elements in the binary extension matrix, and the positions of the nonzero elements in the parity check matrix are determined based on the positions of the nonzero elements in the binary extension matrix.

[0312] In some embodiments, the non-zero element values ​​in the parity check matrix are determined based on at least one of the following:

[0313] binary basis matrix;

[0314] binary expansion matrix;

[0315] Candidate set, the candidate set includes multi-element candidate vectors of various lengths;

[0316] a vector of nonzero multivariate elements;

[0317] The primitive element of the Galois Field corresponding to the order of the NB-LDPC code;

[0318] The dimension of the binary fundamental matrix;

[0319] Boost factor.

[0320] In some embodiments, the parity check matrix satisfies any of the following:

[0321] All non-zero elements in any cyclic matrix of the parity check matrix are the same;

[0322] There are different non-zero elements in at least one circulant matrix of the parity check matrix;

[0323] All non-zero elements in any column of the parity check matrix are the same;

[0324] There are different non-zero elements in at least one column of the parity check matrix.

[0325] In addition, for the detailed description of S201 to S202 , reference can be made to the related description of S101 to S102 mentioned above, which will not be repeated here.

[0326] Based on the technical solution provided by the present disclosure, the binary basic matrix used in the NB-LDPC code decoding process can be a circulant matrix structure, thereby reducing the storage space required in the NB-LDPC code decoding process and the complexity of the matrix construction involved in the decoding.

[0327] It is understandable that, in order to implement the above functions, the encoding device and the decoding device include hardware structures and / or software modules corresponding to the execution of each function. It should be easily appreciated by those skilled in the art that, in combination with the algorithm steps of each example described in the embodiments of the present disclosure, the present disclosure can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present disclosure.

[0328] The embodiment of the present disclosure can divide the encoding device or decoding device into functional modules according to the above-mentioned method embodiment. For example, each functional module can be divided corresponding to each function, or two or more functions can be integrated into one functional module. The above-mentioned integrated module can be implemented in the form of hardware or software. It should be noted that the division of modules in the embodiment of the present disclosure is schematic and is only a logical function division. There may be other division methods in actual implementation. The following is an example of dividing each functional module corresponding to each function.

[0329] FIG6 is a schematic diagram of the structure of an encoding device provided by an embodiment of the present disclosure, which can execute the encoding method provided by the above method embodiment. As shown in FIG6 , the encoding device includes: a determination module 601 and an encoding module 602 .

[0330] Determination module 601 is configured to determine a parity check matrix. The dimension of the parity check matrix is ​​determined based on the dimension of a binary extension matrix, where the binary extension matrix is ​​obtained by hashing an exponential matrix based on a lifting factor, where the lifting factor is determined based on the binary base matrix, the information bit sequence, and the order of a non-binary low-density parity-check code (NB-LDPC).

[0331] The encoding module 602 is configured to perform NB-LDPC encoding on the information bit sequence according to the parity check matrix or the generator matrix corresponding to the parity check matrix to obtain a coded sequence.

[0332] In some embodiments, the binary base matrix has a non-full rank circulant matrix structure.

[0333] In some embodiments, the binary basis matrix is ​​determined based on at least one of:

[0334] Pre-defined generation sets;

[0335] Primitive polynomials of Galois Fields;

[0336] Binary cyclic code.

[0337] In some embodiments, the dimension of the binary basic matrix is ​​determined based on any one of the following: a preset dimension value; a dimension value configured through signaling.

[0338] In some embodiments, the lifting factor is determined based on the number of information columns of the binary basis matrix, the number of bits of the information bit sequence, and the order of the NB-LDPC code.

[0339] In some embodiments, the boost factor satisfies the following relationship:

[0340] Z is the boost factor, k b is the number of columns of the binary basic matrix, q is the order of the NB-LDPC code, K is the number of bits in the information bit sequence, Indicates rounding down.

[0341] In some embodiments, the exponential matrix includes a first element and a second element, the first element is used to indicate an all-zero square matrix, and the second element is used to indicate a binary circulant square matrix.

[0342] In some embodiments, the dimension of the exponential matrix is ​​determined based on the dimension of the binary base matrix, the position of the first element is determined based on the position of the element with a value of 0 in the binary base matrix, and the position of the second element is determined based on the position of the element with a value of 1 in the binary base matrix.

[0343] In some embodiments, both the row weight and the column weight of the binary circulant matrix are 1, or both the row weight and the column weight of the binary circulant matrix are greater than 1.

[0344] In some embodiments, the second element satisfies any of the following:

[0345] The second element is used to indicate the cyclic shift value of the binary cyclic matrix;

[0346] The second element is used to indicate a row vector of a predefined row of the binary circulant matrix;

[0347] The second element is used to indicate the column index of the element with a value of 1 in the predefined row of the binary circulant matrix.

[0348] In some embodiments, the binary expansion matrix is ​​determined based on the exponential matrix and the lifting factor; the first element in the exponential matrix is ​​expanded into an all-zero square matrix based on the lifting factor, and the second element in the exponential matrix is ​​expanded into a binary circulant square matrix based on the lifting factor.

[0349] In some embodiments, the number of nonzero elements in the parity check matrix is ​​determined based on the number of nonzero elements in the binary extension matrix, and the positions of the nonzero elements in the parity check matrix are determined based on the positions of the nonzero elements in the binary extension matrix.

[0350] In some embodiments, the non-zero element values ​​in the parity check matrix are determined based on at least one of the following:

[0351] binary basis matrix;

[0352] binary expansion matrix;

[0353] Candidate set, the candidate set includes multi-element candidate vectors of various lengths;

[0354] a vector of nonzero multivariate elements;

[0355] The primitive element of the Galois Field corresponding to the order of the NB-LDPC code;

[0356] The dimension of the binary fundamental matrix;

[0357] Boost factor.

[0358] In some embodiments, the parity check matrix satisfies any of the following:

[0359] All non-zero elements in any cyclic matrix of the parity check matrix are the same;

[0360] There are different non-zero elements in at least one circulant matrix of the parity check matrix;

[0361] All non-zero elements in any column of the parity check matrix are the same;

[0362] There are different non-zero elements in at least one column of the parity check matrix.

[0363] For a more detailed description of the above-mentioned determination module 601 and encoding module 602, a more detailed description of each technical feature, and a description of the beneficial effects, etc., please refer to the above-mentioned corresponding method embodiment part, which will not be repeated here.

[0364] FIG7 is a schematic diagram of the structure of a decoding device provided by an embodiment of the present disclosure, which can execute the decoding method provided by the above method embodiment. As shown in FIG7 , the decoding device includes: a receiving module 701 and a decoding module 702 .

[0365] Receiving module 701, used for receiving a coding sequence;

[0366] A decoding module 702 is configured to decode a coding sequence based on a parity check matrix of a non-binary low-density parity-check code (NB-LDPC) to obtain an information bit sequence. The dimension of the parity check matrix is ​​determined based on the dimension of a binary extension matrix, the binary extension matrix is ​​obtained by hashing an exponential matrix based on a lifting factor, and the lifting factor is determined based on the binary basic matrix, the information bit sequence, and the order of the NB-LDPC code.

[0367] In some embodiments, the binary base matrix has a non-full rank circulant matrix structure.

[0368] In some embodiments, the binary basis matrix is ​​determined based on at least one of:

[0369] Pre-defined generation sets;

[0370] Primitive polynomials of Galois Fields;

[0371] Binary cyclic code.

[0372] In some embodiments, the dimension of the binary basic matrix is ​​determined based on any one of the following: a preset dimension value; a dimension value configured through signaling.

[0373] In some embodiments, the lifting factor is determined based on the number of information columns of the binary basis matrix, the number of bits of the information bit sequence, and the order of the NB-LDPC code.

[0374] In some embodiments, the boost factor satisfies the following relationship:

[0375] Z is the boost factor, k b is the number of columns of the binary basic matrix, q is the order of the NB-LDPC code, K is the number of bits in the information bit sequence, Indicates rounding down.

[0376] In some embodiments, the exponential matrix includes a first element and a second element, the first element is used to indicate an all-zero square matrix, and the second element is used to indicate a binary circulant square matrix.

[0377] In some embodiments, the dimension of the exponential matrix is ​​determined based on the dimension of the binary base matrix, the position of the first element is determined based on the position of the element with a value of 0 in the binary base matrix, and the position of the second element is determined based on the position of the element with a value of 1 in the binary base matrix.

[0378] In some embodiments, the row weight and column weight of the binary circulant matrix are both 1, or the row weight and column weight of the binary circulant square matrix are both greater than 1.

[0379] In some embodiments, the second element satisfies any of the following:

[0380] The second element is used to indicate the cyclic shift value of the binary cyclic matrix;

[0381] The second element is used to indicate a row vector of a predefined row of the binary circulant matrix;

[0382] The second element is used to indicate the column index of the element with a value of 1 in the predefined row of the binary circulant matrix.

[0383] In some embodiments, the binary expansion matrix is ​​determined based on the exponential matrix and the lifting factor; the first element in the exponential matrix is ​​expanded into an all-zero square matrix based on the lifting factor, and the second element in the exponential matrix is ​​expanded into a binary circulant square matrix based on the lifting factor.

[0384] In some embodiments, the number of nonzero elements in the parity check matrix is ​​determined based on the number of nonzero elements in the binary extension matrix, and the positions of the nonzero elements in the parity check matrix are determined based on the positions of the nonzero elements in the binary extension matrix.

[0385] In some embodiments, the non-zero element values ​​in the parity check matrix are determined based on at least one of the following:

[0386] binary basis matrix;

[0387] binary expansion matrix;

[0388] Candidate set, the candidate set includes multi-element candidate vectors of various lengths;

[0389] a vector of nonzero multivariate elements;

[0390] The primitive element of the Galois Field corresponding to the order of the NB-LDPC code;

[0391] The dimension of the binary fundamental matrix;

[0392] Boost factor.

[0393] In some embodiments, the parity check matrix satisfies any of the following:

[0394] All non-zero elements in any cyclic matrix of the parity check matrix are the same;

[0395] There are different non-zero elements in at least one circulant matrix of the parity check matrix;

[0396] All non-zero elements in any column of the parity check matrix are the same;

[0397] There are different non-zero elements in at least one column of the parity check matrix.

[0398] For a more detailed description of the above-mentioned receiving module 701 and decoding module 702, a more detailed description of each technical feature, and a description of beneficial effects, etc., please refer to the above-mentioned corresponding method embodiment part, which will not be repeated here.

[0399] In the case of implementing the functions of the above-mentioned integrated modules in hardware, the embodiments of the present disclosure provide another possible structure of the communication device (which may be the above-mentioned encoding device or decoding device) involved in the above-mentioned embodiments. As shown in Figure 8, the communication device 80 includes: a processor 802 and a bus 804. In some embodiments, the communication device may also include a memory 801; in some embodiments, the communication device may also include a communication interface 803.

[0400] The processor 802 may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the embodiments of the present disclosure. The processor 802 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array, or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. The processor 802 may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the embodiments of the present disclosure. The processor 802 may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.

[0401] The communication interface 803 (also called a transmitter) is used to connect to other devices via a communication network, which may be Ethernet, a wireless access network, a wireless local area network (WLAN), or the like.

[0402] The memory 801 may be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto.

[0403] As an implementation, the memory 801 can exist independently of the processor 802. The memory 801 can be connected to the processor 802 via a bus 804 to store instructions or program codes. When the processor 802 calls and executes the instructions or program codes stored in the memory 801, the encoding method and decoding method provided in the embodiments of the present disclosure can be implemented.

[0404] In another implementation, the memory 801 may also be integrated with the processor 802 .

[0405] Bus 804 can be an Extended Industry Standard Architecture (EISA) bus, etc. Bus 804 can be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, FIG8 shows only one thick line, but this does not mean that there is only one bus or only one type of bus.

[0406] Through the description of the above implementation methods, technical personnel in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned functions can be distributed and completed by different functional modules as needed, that is, the internal structure of the equipment or device is divided into different functional modules to complete all or part of the functions described above.

[0407] The present disclosure also provides a computer-readable storage medium. All or part of the processes in the above-mentioned method embodiments can be completed by computer instructions to instruct the relevant hardware, and the program can be stored in the above-mentioned computer-readable storage medium. When the program is executed, it may include the processes of the above-mentioned method embodiments. The computer-readable storage medium can be the memory of any of the above-mentioned embodiments. The above-mentioned computer-readable storage medium can also be an external storage device of the above-mentioned device or apparatus, such as a plug-in hard disk, a smart memory card (smart media card, SMC), a secure digital (secure digital, SD) card, a flash card (flash card), etc. equipped on the above-mentioned device or apparatus. Further, the above-mentioned computer-readable storage medium can also include both the internal storage unit of the above-mentioned device or apparatus and an external storage device. The above-mentioned computer-readable storage medium is used to store the above-mentioned computer program and other programs and data required by the above-mentioned device or apparatus. The above-mentioned computer-readable storage medium can also be used to temporarily store data that has been output or is to be output. The readable storage medium includes a non-transitory computer-readable storage medium.

[0408] An embodiment of the present disclosure further provides a computer program product, which includes a computer program. When the computer program product is run on a computer, the computer is enabled to execute any one of the methods provided in the above embodiments.

[0409] Although the present disclosure is described herein in conjunction with various embodiments, in the process of implementing the disclosure for which protection is sought, those skilled in the art may understand and implement other variations of the disclosed embodiments by reviewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "one" or "an" does not exclude multiple components. A single processor or other unit may implement several functions listed in the claims. Certain measures are recorded in different dependent claims, but this does not mean that these measures cannot be combined to produce good results.

[0410] Although the present disclosure has been described with reference to detailed features and embodiments thereof, it will be apparent that various modifications and combinations may be made thereto without departing from the spirit and scope of the present disclosure. Accordingly, this specification and the drawings are merely illustrative of the present disclosure as defined by the appended claims and are deemed to cover any and all modifications, variations, combinations or equivalents within the scope of the present disclosure. Obviously, those skilled in the art may make various modifications and variations to the present disclosure without departing from the spirit and scope of the present disclosure. Thus, the present disclosure is intended to encompass such modifications and variations as would fall within the scope of the claims of the present disclosure and their equivalents.

[0411] The above is only a specific embodiment of the present disclosure, but the scope of protection of the present disclosure is not limited thereto. Any changes or replacements within the technical scope disclosed in the present disclosure should be included in the scope of protection of the present disclosure. Therefore, the scope of protection of the present disclosure should be based on the scope of protection of the claims.

Claims

1. A coding method comprising: Determining a parity check matrix, where the dimension of the parity check matrix is determined based on the dimension of a binary extension matrix, where the binary extension matrix is obtained by hashing an exponential matrix based on a lifting factor, where the lifting factor is determined based on the binary base matrix, the information bit sequence, and the order of a non-binary low-density parity-check code (NB-LDPC code); Perform NB-LDPC encoding on the information bit sequence according to the parity check matrix or a generator matrix corresponding to the parity check matrix to obtain a coded sequence.

2. The method according to claim 1, wherein The binary basic matrix has a non-full rank circulant matrix structure.

3. The method according to claim 1, wherein The binary fundamental matrix is determined based on at least one of the following: Pre-defined generation sets; Primitive polynomials of Galois Fields; Binary cyclic code.

4. The method according to claim 1, wherein The dimension of the binary basic matrix is determined based on any one of the following: a preset dimension value; a dimension value configured through signaling.

5. The method according to claim 1, wherein The lifting factor is determined based on the number of information columns of the binary basic matrix, the number of bits of the information bit sequence, and the order of the NB-LDPC code.

6. The method according to claim 5, wherein: The boost factor satisfies the following relationship: Where Z is the boost factor, k b is the number of columns of the binary basic matrix, q is the order of the NB-LDPC code, K is the number of bits of the information bit sequence, Indicates rounding down.

7. The method according to claim 1, wherein The exponential matrix includes a first element and a second element, the first element is used to indicate an all-zero square matrix, and the second element is used to indicate a binary circulant square matrix.

8. The method according to claim 7, wherein: The dimension of the exponential matrix is determined based on the dimension of the binary basic matrix, the position of the first element is determined based on the position of the element with a value of 0 in the binary basic matrix, and the position of the second element is determined based on the position of the element with a value of 1 in the binary basic matrix.

9. The method according to claim 7, wherein: The row weight and column weight of the binary circulant matrix are both 1, or the row weight and column weight of the binary circulant matrix are both greater than 1.

10. The method according to claim 7, wherein: The second element satisfies any of the following: The second element is used to indicate the cyclic shift value of the binary cyclic matrix; The second element is used to indicate a row vector of a predefined row of the binary circulant matrix; The second element is used to indicate a column index of an element with a value of 1 in a predefined row of the binary circulant matrix.

11. The method according to claim 7, wherein: The binary expansion matrix is determined based on the exponential matrix and the lifting factor; wherein the first element in the exponential matrix is expanded into the all-zero square matrix based on the lifting factor, and the second element in the exponential matrix is expanded into the binary circulant square matrix based on the lifting factor.

12. The method according to claim 1, wherein The number of non-zero elements in the parity check matrix is determined based on the number of non-zero elements in the binary extended matrix, and the positions of the non-zero elements in the parity check matrix are determined based on the positions of the non-zero elements in the binary extended matrix.

13. The method according to claim 1, wherein The non-zero element values in the parity check matrix are determined based on at least one of the following: the binary fundamental matrix; the binary expansion matrix; A candidate set, the candidate set including multi-element candidate vectors of various lengths; a vector of nonzero multivariate elements; The primitive element of the Galois Field corresponding to the order of the NB-LDPC code; the dimension of the binary fundamental matrix; The boost factor.

14. The method according to claim 1, wherein The parity check matrix satisfies any of the following: All non-zero elements in any cyclic square matrix of the parity check matrix are the same; There are different non-zero elements in at least one cyclic matrix of the parity check matrix; All non-zero elements in any column of the parity check matrix are the same; There are different non-zero elements in at least one column of elements of the parity check matrix.

15. A decoding method comprising: receiving a coding sequence; Based on a parity check matrix of a non-binary low-density parity-check code NB-LDPC, the coding sequence is decoded to obtain an information bit sequence; wherein the dimension of the parity check matrix is determined based on the dimension of a binary extension matrix, the binary extension matrix is obtained by hashing an exponential matrix based on a lifting factor, and the lifting factor is determined based on the binary basic matrix, the information bit sequence and the order of the NB-LDPC code.

16. The method according to claim 15, wherein The binary basic matrix has a non-full rank circulant matrix structure.

17. The method according to claim 15, wherein: The binary fundamental matrix is determined based on at least one of the following: Pre-defined generation sets; Primitive polynomials of Galois Fields; Binary cyclic code.

18. The method according to claim 15, wherein The dimension of the binary basic matrix is determined based on any one of the following: a preset dimension value; a dimension value configured through signaling.

19. The method according to claim 15, wherein The lifting factor is determined based on the number of information columns of the binary basic matrix, the number of bits of the information bit sequence, and the order of the NB-LDPC code.

20. The method according to claim 19, wherein The lifting factor satisfies the following relationship: Where Z is the boost factor, k b is the number of columns of the binary basic matrix, q is the order of the NB-LDPC code, K is the number of bits of the information bit sequence, Indicates rounding down.

21. The method according to claim 15, wherein The exponential matrix includes a first element and a second element, the first element is used to indicate an all-zero square matrix, and the second element is used to indicate a binary circulant square matrix.

22. The method according to claim 21, wherein The dimension of the exponential matrix is determined based on the dimension of the binary basic matrix, the position of the first element is determined based on the position of the element with a value of 0 in the binary basic matrix, and the position of the second element is determined based on the position of the element with a value of 1 in the binary basic matrix.

23. The method according to claim 21, wherein The row weight and column weight of the binary circulant matrix are both 1, or the row weight and column weight of the binary circulant matrix are both greater than 1.

24. The method according to claim 21, wherein The second element satisfies any of the following: The second element is used to indicate the cyclic shift value of the binary cyclic matrix; The second element is used to indicate a row vector of a predefined row of the binary circulant matrix; The second element is used to indicate a column index of an element with a value of 1 in a predefined row of the binary circulant matrix.

25. The method according to claim 21, wherein The binary expansion matrix is determined based on the exponential matrix and the lifting factor; wherein the first element in the exponential matrix is expanded into the all-zero square matrix based on the lifting factor, and the second element in the exponential matrix is expanded into the binary circulant square matrix based on the lifting factor.

26. The method according to claim 15, wherein The number of non-zero elements in the parity check matrix is determined based on the number of non-zero elements in the binary extended matrix, and the positions of the non-zero elements in the parity check matrix are determined based on the positions of the non-zero elements in the binary extended matrix.

27. The method according to claim 15, wherein The non-zero element values in the parity check matrix are determined based on at least one of the following: the binary fundamental matrix; the binary expansion matrix; A candidate set, the candidate set including multi-element candidate vectors of various lengths; a vector of nonzero multivariate elements; The primitive element of the Galois Field corresponding to the order of the NB-LDPC code; the dimension of the binary fundamental matrix; The boost factor.

28. The method according to claim 15, wherein The parity check matrix satisfies any of the following: All non-zero elements in any cyclic square matrix of the parity check matrix are the same; There are different non-zero elements in at least one cyclic matrix of the parity check matrix; All non-zero elements in any column of the parity check matrix are the same; There are different non-zero elements in at least one column of elements of the parity check matrix.

29. A communication device comprising: memory and processor; The memory is coupled to the processor; The memory is used to store instructions executable by the processor; When the processor executes the instructions, the method according to any one of claims 1 to 28 is performed.

30. A computer-readable storage medium, wherein: The computer-readable storage medium stores computer instructions, which, when executed on a communication device, enable the communication device to perform the method according to any one of claims 1 to 28.

Citation Information

Patent Citations

  • Coding and decoding method and device and storage medium

    CN120433780A

  • Structured LDPC coding and decoding method and device

    CN107370490A

  • Quasi-cyclic LDPC (Low Density Parity Check) coding and decoding method and device and

    CN116683917A

  • Method for generating non-binary structured low density parity check code

    US20080250305A1

  • Non-binary low density parity check (NB-LDPC) codes for communication systems

    US20160094246A1

Cited By

  • Data processing method and device, electronic equipment, storage medium and program product

    CN120934542A