Coding and decoding method and device and storage medium

By determining the dimension of the parity check matrix and using binary expansion matrix, exponential matrix, and enhancement factor for NB-LDPC encoding, the problem of high storage space requirements is solved, and the memory space and coding complexity is reduced.

CN120433780APending Publication Date: 2025-08-05ZTE CORP
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202410173298.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-02-05
Publication Date
2025-08-05

AI Technical Summary

Technical Problem

Non-binary low-density parity check code (NB-LDPC) has high memory space requirements during the construction process, hindering its application in actual communication systems.

Method used

By determining the dimensions of the parity check matrix, using binary expansion matrix, exponential matrix and boosting factor for hashing, the storage space requirement is reduced, and the generation matrix is used for NB-LDPC encoding.

Benefits of technology

The memory space and matrix construction complexity required during the NB-LDPC coding process are reduced, and the encoding efficiency is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120433780A_ABST
    Figure CN120433780A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a coding and decoding method and device and a storage medium, relates to the technical field of communication, and can reduce the storage space requirement of coding. The method comprises the steps that a parity check matrix is determined, 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 index matrix based on a lifting factor, and the lifting factor is determined based on the order of a binary basic matrix, an information bit sequence and a non-binary low-density parity check code NB-LDPC code; and according to the parity check matrix or a generation matrix corresponding to the parity check matrix, performing NB-LDPC coding on the information bit sequence to obtain a coding sequence.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] With the rapid development of technologies such as big data, cloud computing, and delay-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 high 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. It features low decoding complexity, high throughput, and a flexible structure, making it widely used in practical communication systems.

[0003] Among them, non-binary low-density parity check codes (NB-LDPC) extend and improve upon LDPC codes, extending both information and parity bits into the non-binary domain. This improves error correction performance and coding efficiency, making them more suitable for communication systems with stringent latency and high reliability requirements. However, the high storage space required for NB-LDPC codes during their construction poses a pressing technical challenge. Summary of the Invention

[0004] The embodiments of the present disclosure provide a coding method, device, and storage medium, which can reduce the storage space requirement of coding.

[0005] In order to achieve the above objectives, the present disclosure adopts the following technical solutions:

[0006] In a first aspect, the present disclosure provides an encoding method, comprising:

[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, the present disclosure provides a decoding method, comprising:

[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; 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.

[0012] In a third aspect, the present disclosure provides an encoding device, comprising: 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, the present disclosure provides a decoding device, comprising: 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; 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.

[0018] In a fifth aspect, the present disclosure further provides a communication device, comprising: a memory and a processor; the memory and the processor are coupled; the memory is used to store instructions executable by the processor; and when the processor executes the instructions, it performs any method provided in the first aspect or the second aspect.

[0019] In a sixth aspect, 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, a computer program product is provided, which includes computer program instructions, and when the computer program instructions are executed by a processor, the encoding method or decoding method of any of the above embodiments is implemented.

[0021] 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. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] In order to more clearly illustrate the technical solutions in 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. For ordinary technicians in this field, other drawings can also be obtained based on these drawings.

[0023] Figure 1 A schematic diagram of the architecture of a communication system provided by an embodiment of the present disclosure;

[0024] Figure 2 A data processing flow chart provided in an embodiment of the present disclosure;

[0025] Figure 3 A schematic diagram of a flow chart of an encoding method provided in an embodiment of the present disclosure;

[0026] Figure 4 A flowchart of another encoding method provided by an embodiment of the present disclosure;

[0027] Figure 5 A flowchart of a decoding method provided in an embodiment of the present disclosure;

[0028] Figure 6 A schematic diagram of the structure of an encoding device provided in an embodiment of the present disclosure;

[0029] Figure 7 A schematic diagram of the structure of a decoding device provided in an embodiment of the present disclosure;

[0030] Figure 8 A schematic diagram of the structure of a communication device provided in an embodiment of the present disclosure. DETAILED DESCRIPTION

[0031] 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 any creative efforts are within the scope of protection of the present disclosure.

[0032] In the description of the present 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: A exists alone, A and B exist at the same time, and B exists alone. In addition, "at least one" means one or more, and "a plurality" means two or more. Words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not limit them to be necessarily different.

[0033] It should be noted that in this disclosure, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. 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 words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.

[0034] 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 called 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.

[0035] In view of this, the present disclosure provides a coding method, which includes: determining a parity check matrix, where the dimension of the parity check matrix is determined based on the dimension of a binary expansion matrix, where the binary expansion matrix is obtained by hashing an exponential matrix based on a lifting factor, where the lifting factor is determined based on a binary base matrix, an information bit sequence, and the order of an NB-LDPC code; and performing non-binary low-density parity check code (NB-LDPC) encoding on the information bit sequence based on 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.

[0036] 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; 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, the information bit sequence, and the order of the NB-LDPC code.

[0037] 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.

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

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

[0040] In some embodiments, the base station can 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, etc. The base station can include various macro base stations, micro base stations, home base stations, wireless remote stations, reconfigurable intelligent surfaces (RIS), routers, wireless fidelity (WIFI) devices and other network side devices.

[0041] 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 (for example, on an airplane, a balloon, or a 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.

[0042] 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, so as to realize information transmission between the transmitting end device and the receiving end device. The embodiments of the present disclosure are not limited to this.

[0043] It should be noted that Figure 1 This is just an illustrative framework diagram. Figure 1 The number of devices included in the Figure 1 In addition to the devices shown, the communication system may also include other devices, such as core network devices.

[0044] The application scenarios of the embodiments of the present disclosure are not limited. 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. It is known to those skilled in the art 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 also applicable to similar technical problems.

[0045] Figure 2 is a data processing flow chart between a first node and a second node. Figure 2 As shown, 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 sends the transmission signal containing the codeword sequence to be transmitted to the second node through a channel. After receiving the transmission signal, the second node can perform signal processing such as demodulation on the signal to obtain codeword sequence information and recover the information bit sequence through non-binary LDPC decoding.

[0046] 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.

[0047] 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:

[0048]

[0049] Among them, the matrix can be represented by M b ×N b Each block matrix 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 (e.g., 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):

[0050]

[0051] Thus, the index h of each block matrix i,j Can form an M b ×N b The exponential matrix H w , where 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:

[0052] 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, which specifically includes 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.

[0053] In addition, an n×n binary cyclic matrix H can be obtained by cyclically shifting an n-dimensional binary vector V. Among them, the i-th row (0≤i≤n-1) can be obtained by cyclically shifting the vector V to the right i times. 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" in the vector V is γ, and the indices of these γ "1"s are composed into a set B, it can be called the generating set of the cyclic matrix H, or the position set of "1" in the first row of the cyclic matrix H. Without loss of generality, the generating set B can be recorded as B={b1,b2,…b γ}, where 0≤b i ≤n-1,1≤i≤γ and when i≠j, there is b i ≠b j Therefore, the row and column weights of the cyclic matrix H formed by the generator set B are both γ, so the code directly defined by this cyclic matrix is a (γ,γ)-regular binary LDPC code.

[0054] like Figure 3 As shown, an embodiment of the present disclosure provides an encoding method, the method comprising:

[0055] S101: Determine a parity check matrix.

[0056] The dimension of the parity check matrix is determined based on the dimension of the binary extension matrix, the binary extension matrix is obtained by hashing the exponential matrix based on the 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.

[0057] In some embodiments, the binary basic matrix, lifting factor, exponential matrix, and binary expansion matrix may be determined separately, and then the parity check matrix may be determined. The following is an example of how to determine each matrix:

[0058] (1) Binary basic matrix

[0059] The binary fundamental matrix is a key concept in NB-LDPC technology. It defines the parity check matrix for NB-LDPC codes and determines the error correction performance of codewords. The binary fundamental matrix can be a square matrix containing only 0s and 1s.

[0060] In some embodiments, the dimension of the binary basic matrix is determined based on any one of the following: a pre-set dimension value; a dimension value configured through signaling.

[0061] For example, the binary basic matrix B = [b i,j(0 ≤ i, j < n), 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 may come from the node or device that receives the coding sequence.

[0062] In some embodiments, the binary basis matrix in the present disclosure may have a non-full rank circulant matrix structure.

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

[0064] Therefore, the technical solution provided by the present disclosure can be based on the non-full rank circulant matrix structure of the binary basis matrix, and utilize the characteristics of the circulant matrix to detect and correct errors by using the circular shift relationship during the coding and decoding processes, thereby improving the error correction ability of the codewords. And, under the binary basis matrix with a cyclic structure, the circular shift relationship can be used to simplify the coding and decoding processes, thereby reducing the computational amount and complexity of the coding and improving the decoding efficiency.

[0065] In some embodiments, the above binary basis matrix is determined based on at least one of the following:

[0066] A preset generating set;

[0067] A primitive polynomial of the Galois field;

[0068] A binary cyclic code.

[0069] In one example, the binary basis matrix can be determined by a preset generating set.

[0070] Exemplarily, the preset generating set is S = {s1, s2,... s γ}}, where 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 a dimension of n * n as the above binary basis matrix. Among them, the binary basis matrix satisfies n - 1 ≥ s i , 1 ≤ i ≤ γ. That is, the row weight and column weight of the binary basis 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).

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

[0072]

[0073] In another example, the binary basis matrix can be determined based on the primitive polynomial of the Galois field.

[0074] Exemplarily, the binary basis matrix can be determined based on the primitive polynomial of the Galois field GF(2 m ). The primitive polynomial of GF(2 m ) can be expressed as P(x) = p0 + p1x + p2x 2 +…+ p m-1 x m-1 + x m , where p i ∈{0, 1}, 0 ≤ i < m. Thus, based on the coefficient set {p0, p1, p2, … p m-1 , 1}, a non-full-rank circulant matrix with dimension n * n can be constructed, that is, the binary basis matrix. Among them, n = (2 m -1)*t, 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 the circulant matrix are determined by this coefficient set, and the remaining n - m - 1 elements are 0 elements. And the rank of the obtained binary basis matrix is n - m. This binary basis matrix also has a non-full-rank circulant matrix structure.

[0075] 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 with dimension 15 * 15 as the binary basis matrix B, where n = 2 m -1 = 2 4 -1 = 15, and the rank of the binary basis matrix B is 11. Exemplarily, the binary basis matrix B can be expressed as:

[0076]

[0077] 又如,当m = 3时,以素数2为底的伽罗华域GF(2 4 )的本原多项式为P(x) = 1 + x + x 3, whose coefficient set is {1 1 0 0 1}, is used to construct a non-full-rank circulant matrix with a dimension of 14*14 as the binary basic matrix B, where n = (2 m -1)*2 = (2 3 -1)*2 = 14, and the rank of the binary basic matrix B is 11. Exemplarily, the binary basic matrix B can be expressed as:

[0078]

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

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

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

[0082] Table 1

[0083]

[0084]

[0085] Among them, except for the all-zero codeword with codeword number 1, the remaining codewords can all be used to construct a binary basic matrix B with a cyclic matrix structure. Taking the codeword with codeword encoding 5 as an example, it is used to construct a binary basic matrix B with a dimension of 8*8, where n = 8. Exemplarily, the obtained binary basic matrix B can be expressed as:

[0086]

[0087] (2) Lifting factor

[0088] Among them, the lifting factor can be a parameter used to improve the error correction performance in NB-LDPC technology. 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.

[0089] Taking a larger boosting factor as an example, a larger boosting factor can provide better error correction performance, but it also increases the complexity of encoding and decoding. Therefore, it is necessary to determine the appropriate boosting factor based on the actual application scenario and system requirements.

[0090] 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 as shown in formula (1):

[0091]

[0092] Among them, Z is the improvement 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.

[0093] (3) Exponential matrix

[0094] The exponential matrix can be used to represent the check constraint relationship of the NB-LDPC code, and can also be understood as being used to describe the check matrix of the NB-LDPC code. For example, the exponential matrix can reflect the relationship between the elements in the check matrix of the 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 the NB-LDPC code.

[0095] 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.

[0096] For example, the exponential matrix The superscript b takes the value 1 or 2, which 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.

[0097] 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.

[0098] 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 wThe 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, the exponential matrix where 0≤i,j <n。

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

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

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

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

[0103] 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.

[0104] In one example, the second element is used to indicate a cyclic shift value of the binary cyclic matrix.

[0105] For example, the second element may be a non-negative integer, used to indicate the cyclic shift value of the binary cyclic matrix. The cyclic shift value may be used to indicate the cyclic shift of the binary cyclic matrix relative to the unit matrix, for example, In the case of , the binary cyclic matrix is the identity matrix. In the case of , the binary cyclic matrix is the unit matrix Secondary cyclic shift.

[0106] In another example, the second element is used to indicate a row vector of a predefined row of the binary circulant matrix, wherein the predefined row can be, for example, the first row, the last row, or similar predetermined specific row in the binary circulant matrix.

[0107] For example, the second element may be a non-binary number, which may be used to indicate a non-binary representation of the first row vector of the binary circulant matrix, such as octal representation, decimal representation, hexadecimal representation, etc.

[0108] For example, with the second element is an octal number, and take the first row of the predefined behavior binary circulant matrix as an example. Among them, the first row vector of the binary circulant matrix is a binary vector.

[0109] Thus, the binary vector of the first row vector of the binary circulant matrix can be expressed as [a0, a1, … a Z-1 . The second element can be an x-bit octal number where 0 ≤ i < x, 0 ≤ d i ≤ 7, and Thus, the second element indicates that the first row vector of the binary circulant matrix can satisfy at least one of the following methods 1, method 2, and method 3:

[0110] Method 1: When x = Z / 3, for 0 ≤ i < x, then d i = a i*3 * 2 2 + a i*3+1 * 2 + a i*3+2 , that is, after the second element is converted into a 3x-bit binary number, it corresponds to the first row vector of the binary circulant matrix.

[0111] 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 = ∑ j a j * 2 Z-j , that is, after the second element is converted into a 3x-bit binary number, the first Z bits from left to right of the second element are the first row vector of the binary circulant matrix.

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

[0113] Exemplarily, the second element When x = 2 octal digits, The second element can be used to indicate the first row vector of the binary circulant matrix of Z = 4, 5 or 6. For example, in the case of Z = 6, the second element can be based on the above method 1. The first row vector of the indicated binary cyclic matrix is [0, 0, 1, 0, 0, 0]. In the case of Z = 5, the second element can be based on the above method 2. The first row vector of the indicated binary cyclic matrix is [0,0,1,0,0], or based on the above method 3, the second element The first row vector of the indicated binary cyclic matrix is [0, 1, 0, 0, 0]. In the case of Z = 4, based on the above method 2, the second element The first row vector of the indicated binary cyclic matrix is [0,0,1,0]. Or based on the above method 3, the second element The first row vector of the indicated binary circulant matrix is [1,0,0,0].

[0114] For example, the second element is a decimal number, and the predefined row is the first row of a binary circulant matrix. The first row vector of the binary circulant matrix is a binary vector. The 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 first row vector of the binary circulant matrix can satisfy at least one of the following:

[0115]

[0116]

[0117] For example, the second element is a decimal number In the case of , the second element indicates a binary cyclic matrix of Z=4. The second element The first row vector of the indicated binary circulant matrix is [0,0,1,0]. The second element The first row vector of the indicated binary circulant matrix is [0,1,0,0].

[0118] For example, the second element is a hexadecimal number, taking the first row of the predefined behavior binary cyclic square matrix as an example. Among them, the first row vector of the binary cyclic square matrix is a binary vector. The binary vector can be expressed as [a0, a1, … a Z-1 . The second element can be an x-bit hexadecimal number where 0 ≤ i < x, 0 ≤ d i ≤ 15, and Thus, the second element indicates that the first row vector of the binary cyclic square matrix can satisfy at least one of the following Method 4, Method 5, and Method 6:

[0119] Method 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 into a 4x-bit binary number, it corresponds to the first row vector of the binary cyclic square matrix.

[0120] Method 5: When x ≠ Z / 4, for 0 ≤ i < x - 1, then d i = a 4i *2 3 + a 4i+1 *2 2 + a 4i+2 *2 + a 4i+3 . For i = x - 1 and 4x - 4 ≤ j ≤ Z - 1, then d x-1 = ∑ j a j *2 Z-j , that is, after the second element is 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 the binary cyclic square matrix.

[0121] Method 6: When x ≠ Z / 4, for 0 < i ≤ x - 1, then 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, then d0 = ∑ j a j *2 4+Z-4x-1-j , that is, the second element After being converted into a 4x-bit binary number, the last Z bits of the second element from left to right are the first row vector of the binary cyclic array.

[0122] Exemplarily, when the second element is an x = 2-bit hexadecimal number, the second element can be used to indicate the first row vector of a binary cyclic array 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 cyclic array 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 cyclic array 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 cyclic array 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 cyclic array 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 cyclic array 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 cyclic array 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 cyclic array indicated by this second element is [1, 0, 0, 0, 0].

[0123] 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 cyclic square matrix.

[0124] 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 cyclic array.

[0125] For example, in the exponent matrix, the second element is a non-empty set of non-negative integers B = {b1, b2,... b γ}, where γ ≥ 1, and 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 , and for 0 ≤ i < Z, when i ∈ B, a i = 1, or, when In the case of i a = 0.

[0126] Moreover, in the case where the row weight and column weight of the binary cyclic square matrix are 1, the second element is a non - empty non - negative integer set B = {b}, where 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.

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

[0128] 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.

[0129] Thus, the second element in the exponent matrix indicating the binary cyclic square matrix can satisfy any of the following:

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

[0131] 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 cyclic square matrix.

[0132] In one example, the second element is used to indicate the row vector of a predefined row of the binary cyclic square matrix. Among them, the predefined row can be a specific row in a predefined binary cyclic square matrix such as the first row, the last row, etc.

[0133] 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 first - row vector of the binary cyclic 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 description, and details are not elaborated here.

[0134] 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 cyclic square matrix.

[0135] Exemplarily, the second element can be a non - empty non - negative integer set, 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 cyclic matrix. That is, the second element in the exponent matrix For a non - empty and non - negative integer set B = {b1, b2, …, b γ}, where γ≥1, for 1≤i < j≤γ, there is 0≤b i <b j ≤Z - 1. The first row vector of the binary circulant matrix is a binary vector, and this binary vector can be represented as [a0, a1, …, a Z-1 . For 0≤i < Z, when i∈B, a i = 1. Or, when , a i = 0. For example, when Z = 4 and the second element is a non - empty and non - negative integer set B = {0, 2}, the first row vector of the binary circulant matrix indicated by the second element is [1, 0, 1, 0].

[0136] (4) Binary extended matrix

[0137] Among them, 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, for example, to describe the structural characteristics of the parity - check matrix. In some embodiments, a complete parity - check matrix can be quickly generated through the binary extended matrix, thereby reducing the computational complexity.

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

[0139] Among them, the first element in the exponent matrix is expanded into an all - zero square matrix based on the lifting factor, and the second element in the exponent matrix is expanded into a binary circulant matrix based on the lifting factor.

[0140] Exemplarily, the first element in the exponent matrix can be expanded into an all - zero square matrix with dimensions Z*Z, and the second element in the exponent matrix can be expanded into a binary circulant matrix with dimensions Z*Z. Thus, the dimension of the binary extended matrix is (n*Z)*(n*Z), that is, the binary extended matrix can be represented as composed of n*n block matrices with dimensions Z*Z. For example, the binary extended matrix Hb is as follows:

[0141]

[0142] Among them, P is an all - zero square matrix or a binary circulant matrix with dimensions Z*Z, and P can be determined based on the elements in the exponent matrix in the superscript Exemplarily, 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.

[0143] (5) Parity Check Matrix

[0144] The parity check matrix can be used to represent the check constraints of NB-LDPC codes. For example, the 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.

[0145] 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.

[0146] 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 of 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).

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

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

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

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

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

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

[0153] binary basis matrix;

[0154] Binary extended matrix;

[0155] Candidate set, which includes multi - element candidate vectors of various lengths;

[0156] Non - zero multi - element vector;

[0157] Primitive element of the Galois field corresponding to the order of the NB - LDPC code;

[0158] Dimension of the binary base matrix;

[0159] Lifting factor.

[0160] It should be noted that in the technical solution provided by this disclosure, the non - zero element values in the parity - check matrix can be determined based on at least one of the above - mentioned binary base 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 base 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 base 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 base matrix, and lifting factor needs to be stored, thereby reducing the storage space required in the NB - LDPC code encoding process.

[0161] In a possible 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, and the non - zero multi - element vector L.

[0162] 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 with 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 .

[0163] Exemplarily, the process of determining the parity check matrix based on the binary basic matrix, the candidate set, and the non-zero multivariate element vector can be specifically implemented as the following steps S11 to S17:

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

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

[0166] S12. Determine the multivariate vector u.

[0167] 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.

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

[0169] 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, where u=u*L(idx(mod q-1)), and “*” represents Galois Field multiplication.

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

[0171] The coefficient vector t is updated, where 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 base matrix B.

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

[0173] 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 ,in,

[0174] 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.

[0175] S17. Repeat the above steps S12 - S16 until the multi - element assignment of the block matrices of n rows of the binary extended matrix is completed, and the parity - check matrix Hq is obtained.

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

[0177] Exemplarily, taking the binary base matrix B as a 2*2 all - "1" matrix, the lifting factor Z = 4, and the binary extended matrix Hb being 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 multi - element vector L refers to the above implementation. Hb can be expressed as:

[0178]

[0179] Based on the above steps S11 - S17, the parity - check matrix Hq can be obtained as follows:

[0180]

[0181] Among them, all non - zero elements in the same cyclic matrix of the parity - check matrix of NB - LDPC are the same.

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

[0183] 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 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 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 .

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

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

[0186] S2A2. Determine the multivariate vector u.

[0187] For the binary expansion matrix Hb, the i*Zth row to the (i+1)*Z-1th row can be composed of n block matrices with a dimension of Z*Z, which can be expressed as Where P is the first element in the exponential matrix The indicated dimension is a Z*Z all-zero square matrix or the second element The indicated dimension is a binary cyclic matrix of Z*Z. The row weight of the Z rows of the binary expansion matrix Hb is dc, and the multi-element vector set C of length dc in the candidate set C is selected. 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.

[0188] S2A3. Update the multivariate vector u.

[0189] 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, where u=u*L(idx), and “*” represents Galois Field multiplication.

[0190] 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.

[0191] 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) according to the multivariate vector u, thereby obtaining the 0th row of the i-th block matrix of the parity check matrix, that is, the i*Zth row of the parity check matrix. Wherein, Hq(i*Z,Hb(i*Z,:)==1)=u, where Hb(i*Z,:)==1 represents the column index of the 1 element in the i*Zth row of the binary extended matrix Hb.

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

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

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

[0195] S2A7. Repeat steps S2A2 to S2A6 until the multivariate assignment of the block matrices of the n*Z rows of the binary extended matrix is completed to obtain the parity check matrix Hq.

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

[0197] 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, the row weight and column weight of the binary cyclic matrix indicated by some of the second elements are 1, and the row weight and 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 value of the non-zero element 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 the non-zero elements in the binary cyclic square matrix with a row weight and a column weight greater than 1 are different. 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 multi-element vector L refers to the above implementation method. Based on the above steps S2A1-step S2A7, the parity check matrix Hq can be obtained as follows:

[0198]

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

[0200] 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 specifically implemented as the following steps S2B1 to S2B6:

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

[0202] S2B2. Determine the multivariate vector u.

[0203] For the kth row of the binary expansion matrix Hb, the row weight is dc. Thus, a 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.

[0204] S2B3. Update the multivariate vector u.

[0205] 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, where u=u*L(idx), and “*” represents Galois Field multiplication.

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

[0207] Exemplarily, the 1 element in the k-th row of the binary extended matrix Hb can be assigned to a non-zero element value in GF(q) according to the multivariate vector u 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 index of the 1 element in the k-th row of the binary extended matrix Hb.

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

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

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

[0211] 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 steps S2B1 to S2B6, the parity check matrix Hq can be obtained as follows:

[0212]

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

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

[0215] 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, when i ≠ j and 0 ≤ i, j < q - 1, l i ≠ l j .

[0216] Exemplarily, the process of determining the parity - check matrix based on the binary basis matrix B, the candidate set C, the non - zero multi - element vector L, and the primitive element α of the q - order Galois field can be specifically implemented as the following steps S31 - step S38:

[0217] S31. Determine the initialization coefficient vector t, and indicate that the variable idx = 0 and the row index i = 0.

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

[0219] S32. Determine the multi - element vector u.

[0220] 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 dc of length dc can be determined from the candidate set C, and then the idx(mod|C dc |) - th candidate vector c dc can be determined from C idx , and this candidate vector c idx is circularly shifted idx bits to the right (this disclosure takes the right - circular shift as an example) to obtain the multi - element vector u.

[0221] S33. Update u to obtain the updated multi - element vector u.

[0222] Multiply the multi - element vector u by the idx(mod q - 1) - th multi - element in the non - zero multi - element vector L to update the multi - element vector u, where u = u*L(idx(modq - 1)), and "*" represents the Galois field multiplication.

[0223] S34. Update t based on the updated multi - element vector u to obtain the updated coefficient vector t.

[0224] The coefficient vector t is updated, where 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 base matrix B.

[0225] 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.

[0226] 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 Hq(i*Z,:)= in, Indicated by Row vector indicating row 0 of the block matrix.

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

[0228] 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.

[0229] The row vector of the kth row in the block matrix of the ith 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。

[0230] 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.

[0231] S38. Repeat the above steps S32 to S37 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.

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

[0233] 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.

[0234] Taking the binary basis matrix B as a 2*2 all-ones matrix, the lifting factor Z = 4, and the binary extended matrix Hb being composed of 2*2 block matrices with dimensions of 4*4 as an example. The candidate set C and the non-zero multi-element vector L are referred to the above implementation method. Based on the above steps S31 - step S38, the parity check matrix Hq can be obtained as follows:

[0235]

[0236] Among them, there are different non-zero elements in at least one cyclic matrix of the parity check matrix of NB-LDPC.

[0237] In another possible implementation, the non-zero element values in the parity check matrix Hq can be determined 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.

[0238] Exemplarily, the candidate set C can be a set of multi-element candidate vectors with different lengths. For example, C = {C dc}(dc>0), where C dc is a set of multi-element candidate vectors with 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 .

[0239] 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 specifically implemented as the following steps S41 - step S47:

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

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

[0242] 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, expressed as The row weight of each of the Z rows of the binary extended matrix Hb is dc. From the set C dcSelect 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.

[0243] S43. Update the multivariate vector u.

[0244] 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, where u=u*L(idx), and “*” represents Galois Field multiplication.

[0245] S44. 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.

[0246] 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) according to the multivariate vector u, thereby obtaining the 0th row of the i-th block matrix of the parity check matrix, that is, the i*Zth row of the parity check matrix. Wherein, Hq(i*Z,Hb(i*Z,:)==1)=u, where Hb(i*Z,:)==1 represents the column index of the 1 element in the i*Zth row of the binary extended matrix Hb.

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

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

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

[0250] S47. Repeat steps S42 to S46 until the multivariate assignment of the block matrices of the n*Z rows of the binary extended matrix is completed to obtain the parity check matrix Hq.

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

[0252] It should be noted that after the binary cyclic square matrix is assigned multi - element values, each row is a cyclic shift of the previous row vector multiplied by the primitive element α of the q - order Galois field. Therefore, the non - zero elements in this multi - cyclic square matrix are different.

[0253] Exemplarily, with reference to the above implementation manner for the description of the binary extended matrix Hb, the candidate set C, and the non - zero multi - element vector L, based on the above steps S41 - step S47, the parity - check matrix Hq can be obtained as follows:

[0254]

[0255] Among them, there are different non - zero elements in at least one cyclic matrix in the parity - check matrix of NB - LDPC.

[0256] In another possible implementation manner, 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 candidate set C, and the non - zero multi - element vector L.

[0257] 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. When i ≠ j and 0 ≤ i, j < q - 1, l i ≠ l j .

[0258] 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 specifically implemented as the following steps S51 - step S53:

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

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

[0261] Take the candidate vector c nMultiply by one 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.

[0262] S53. Assign values to the binary extended matrix \(H_b\) according to the multi - vector to obtain the parity - check matrix \(H_q\).

[0263] Among them, the parity - check matrix satisfies

[0264] 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.

[0265] 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 steps S51 - S53, the parity - check matrix \(H_q\) can be obtained as follows:

[0266]

[0267] Among them, 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.

[0268] In another possible implementation, the non - zero element values in the parity - check matrix \(H_q\) 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\).

[0269] Exemplarily, the candidate set \(C\) can be a set of multi - element candidate vectors of different lengths. For example, \(C=\{C dc \}(d_c>0)\), where \(C dc \) is a set of multi - element candidate vectors with length \(d_c\), and \(c i =[c i,0 ,c i,1 ,…c i,dc - 1](0\leq i<|C dc |,0\leq j<d_c,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 = [l_0,l_1,\cdots,l q-2 \) and \(0<l i <q\), when \(i\neq j\) and \(0\leq i,j<q - 1\), \(l i \neq l j .

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

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

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

[0273] Multiply the candidate vector c n*Z by one 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.

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

[0275] Among them, the parity check matrix satisfies Hq = |u*Hb = [u j Hb i,j , 0 ≤ i, j < n*z. Among them, Hb i,j represents the element in the i-th row and j-th column of the binary extension matrix Hb.

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

[0277] Exemplarily, taking the dimension n = 2 of the binary basis matrix, the lifting factor Z = 4 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 steps S61 to step S63, the parity check matrix Hq can be obtained as follows:

[0278]

[0279] Among them, there are different non-zero elements in at least one cyclic matrix of the parity check matrix of NB-LDPC, and all non-zero elements in the same column are the same.

[0280] Exemplarily, the following takes the length of the information bit to be encoded K = 32 bits, the code rate of the target NB-LDPC code is 4 / 15 for the 16th-order NB-LDPC code, that is, q = 16, and the parity check matrix is determined in the manner shown in steps S51 - S53 as an example to illustrate step S101. Exemplarily, as Figure 4As shown, it can be specifically implemented as the following steps S1011 - S1015:

[0281] S1011. Determine the binary base matrix.

[0282] Among them, the binary base matrix B = [b i,j (0 ≤ i, j < n) has a non - full - rank cyclic matrix structure. The dimension n * 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:

[0283]

[0284] Among them, the row weight and column weight of the binary base matrix B with a cyclic matrix structure constructed from the above - mentioned preset generating set S = {0 1 3 7} are both 4, and its rank is 4.

[0285] S1012. Determine the lifting factor.

[0286] Exemplarily, the lifting factor Z can be determined by the number of information bits K to be encoded, the number of information columns kb of the binary base matrix, and the order q of the NB - LDPC code. Z satisfies Among them, represents rounding down.

[0287] Among them, when K = 32 bits, kb = 4, and q = 16, the lifting factor Z can be 2.

[0288] S1013. Determine the exponent matrix.

[0289] Based on the above - mentioned base matrix B and the lifting factor Z = 2, the exponent matrix Hw can be expressed as:

[0290]

[0291] Among them, all the binary cyclic matrices indicated by the second element have a row weight and column weight of 1. Thus, this binary cyclic matrix is a cyclic shift matrix of the identity matrix.

[0292] In some embodiments, the method for the second element in the above - mentioned exponent matrix to indicate a binary cyclic matrix is: this second element is a non - negative integer to indicate the cyclic shift value of the binary cyclic matrix. Exemplarily, this exponent matrix can be specifically expressed as:

[0293]

[0294] Among them, the first element in this exponent matrix is fixedly set to - 1 and indicates a zero - square matrix with a dimension of 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.

[0295] S1014. Determine a binary expansion matrix.

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

[0297] 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 cyclic 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

[0298] 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:

[0299]

[0300] S1015: Determine a parity check matrix.

[0301] 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).

[0302] 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.

[0303] 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, and can be shown in Table 2 below:

[0304] Table 2

[0305]

[0306] Thus, based on the method shown in step S51 to step 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:

[0307]

[0308] 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.

[0309] 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.

[0310] 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).

[0311] 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.

[0312] For example, the parity check matrix determined in steps S1011-S1015 is used as an example to illustrate step S102. The dimension of the parity check matrix determined in steps S1011-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:

[0313]

[0314] 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.

[0315] 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.

[0316] 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.

[0317] In some embodiments, the present disclosure also provides a decoding method, such as Figure 5 As shown, the method includes the following steps:

[0318] S201: Receive a coding sequence.

[0319] 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.

[0320] The dimension of the parity check matrix is determined based on the dimension of the binary extension matrix, the binary extension matrix 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.

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

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

[0323] Pre-defined generation sets;

[0324] Primitive polynomials of Galois Fields;

[0325] Binary cyclic code.

[0326] 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.

[0327] 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.

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

[0329]

[0330] Among them, Z is the improvement 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.

[0331] 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.

[0332] 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.

[0333] 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.

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

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

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

[0337] 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.

[0338] In some embodiments, a binary expansion matrix is determined based on an exponential matrix and a lifting factor; wherein 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.

[0339] 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.

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

[0341] binary basis matrix;

[0342] binary expansion matrix;

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

[0344] a vector of nonzero multivariate elements;

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

[0346] The dimension of the binary fundamental matrix;

[0347] Boost factor.

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

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

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

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

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

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

[0354] 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.

[0355] 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.

[0356] 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.

[0357] Figure 6 This is a schematic diagram of the structure of a coding device provided by an embodiment of the present disclosure. The coding device can execute the coding method provided by the above method embodiment. Figure 6 As shown, the encoding device includes: a determination module 601 and an encoding module 602.

[0358] 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).

[0359] 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.

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

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

[0362] Pre-defined generation sets;

[0363] Primitive polynomials of Galois Fields;

[0364] Binary cyclic code.

[0365] 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.

[0366] 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.

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

[0368]

[0369] Among them, Z is the improvement 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.

[0370] 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.

[0371] 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.

[0372] 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.

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

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

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

[0376] 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.

[0377] In some embodiments, a binary expansion matrix is determined based on an exponential matrix and a lifting factor; wherein 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.

[0378] 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.

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

[0380] binary basis matrix;

[0381] binary expansion matrix;

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

[0383] a vector of nonzero multivariate elements;

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

[0385] The dimension of the binary fundamental matrix;

[0386] Boost factor.

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

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

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

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

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

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

[0393] Figure 7 This is a schematic diagram of the structure of a decoding device provided by an embodiment of the present disclosure. The decoding device can execute the decoding method provided by the above method embodiment. Figure 7 As shown, the decoding device includes: a receiving module 701 and a decoding module 702.

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

[0395] 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, 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.

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

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

[0398] Pre-defined generation sets;

[0399] Primitive polynomials of Galois Fields;

[0400] Binary cyclic code.

[0401] 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.

[0402] 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.

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

[0404]

[0405] Among them, Z is the improvement 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.

[0406] 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.

[0407] 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.

[0408] 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.

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

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

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

[0412] 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.

[0413] In some embodiments, a binary expansion matrix is determined based on an exponential matrix and a lifting factor; wherein 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.

[0414] 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.

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

[0416] binary basis matrix;

[0417] binary expansion matrix;

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

[0419] a vector of nonzero multivariate elements;

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

[0421] The dimension of the binary fundamental matrix;

[0422] Boost factor.

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

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

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

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

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

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

[0429] In the case of implementing the functions of the above-mentioned integrated modules in the form of 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. Figure 8 As shown, the communication device 80 includes: a processor 802 and a bus 804. Optionally, the communication device may further include a memory 801; and optionally, the communication device may further include a communication interface 803.

[0430] Processor 802 may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the embodiments of this disclosure. 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. It may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the embodiments of this disclosure. Processor 802 may also be a combination that implements computing functions, such as a combination of one or more microprocessors, or a combination of a DSP and a microprocessor.

[0431] 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.

[0432] 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.

[0433] As a possible 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.

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

[0435] The bus 804 may be an extended industry standard architecture (EISA) bus, etc. The bus 804 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 8 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.

[0436] 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.

[0437] The embodiments of the present disclosure also provide 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 relevant hardware, and the program can be stored in the above-mentioned computer-readable storage medium. When the program is executed, it can 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. Furthermore, 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.

[0438] 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.

[0439] Although the present disclosure is described herein in conjunction with various embodiments, 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 process of implementing the claimed disclosure. In the claims, the word "comprising" does not exclude other components or steps.

[0440] The term "a" or "an" does not exclude a plurality. A single processor or other unit may perform several of the functions recited in a claim. The fact that different dependent claims recite certain measures does not mean that these measures cannot be combined to advantage.

[0441] Although the present disclosure has been described with reference to specific 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 if they fall within the scope of the claims of the present disclosure and their equivalents.

[0442] 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, characterized in that: The method comprises: 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, characterized in that The binary basic matrix has a non-full rank circulant matrix structure.

3. The method according to claim 1, characterized in that 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, characterized in that 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, characterized in that 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, characterized in that 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, characterized in that 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, characterized in that 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, characterized in that 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, characterized in 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, 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, characterized in that: The method comprises: 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, characterized in that The binary basic matrix has a non-full rank circulant matrix structure.

17. The method according to claim 15, characterized in that 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, characterized in that 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, characterized in that 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, characterized in that 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, characterized in that 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, characterized in that 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, characterized in that 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, characterized in that: include: memory and processor; Memory and processor coupling; 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, characterized in that The computer-readable storage medium stores computer instructions, and when the computer instructions are executed on a communication device, the communication device is caused to perform the method according to any one of claims 1 to 28.

Citation Information

Cited By

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

    CN120934542A

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

    WO2025167076A1