Coding method and communication device

By filtering the first matrix from the loop matrix library to generate the LDPC code matrix, the problem of LDPC code encoding performance dependence on random search in the prior art is solved, and higher coding performance and more flexible matrix selection are achieved.

CN119995781APending Publication Date: 2025-05-13HUAWEI TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202311504446.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-11-10
Publication Date
2025-05-13

AI Technical Summary

Technical Problem

The existing 5G LDPC codes need to randomly select the base graph before encoding, resulting in the coding performance dependent on random search, poor matrix selection flexibility, and poor coding performance.

Method used

By filtering the first matrix from the cyclic matrix library, we generate the LDPC code matrix, avoid random search, ensure the guarantee of decoding threshold and circle properties, and adapt to different communication scenarios and hardware resources.

Benefits of technology

It improves the compilation and decoding performance of LDPC code, enhances the flexibility of matrix selection, reduces the power consumption at the decoding end, and improves hardware utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119995781A_ABST
    Figure CN119995781A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a coding method and a communication device, relates to the field of communication, and can improve the performance of an LDPC (Low Density Parity Check Code) code when the LDPC code is used for coding and decoding. The method comprises the following steps: acquiring information bits to be coded; a first LDPC code matrix is obtained, the first LDPC code matrix is generated according to a first matrix, the first matrix comprises one cyclic matrix or a plurality of different cyclic matrixes, and the one cyclic matrix or the plurality of different cyclic matrixes are matrixes in a cyclic matrix set; encoding the information bits according to the first LDPC code matrix to obtain first data; and sending the first data. The embodiment of the invention is used for coding and decoding through the LDPC code.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] Low-density parity check (LDPC) code is a channel coding scheme close to the Shannon line, with good performance and low complexity. It is currently identified by the 3rd Generation Partnership Project (3GPP) as the data channel coding scheme for the 5th generation mobile networks (5G). 5G LDPC code is used to store the largest matrix. In practical applications, different matrix regions can be selected in 5G LDPC code for channel coding according to different code lengths / code rates.

[0003] However, when applying the current 5G LDPC code, a base graph is randomly selected before each encoding, and the encoding and decoding performance depends on random search. Moreover, after the base graph is randomly selected, the base graph is fixedly used for encoding. In this way, under the same code length / code rate, there is only one matrix area to choose from in the fixed base graph, the matrix selection flexibility is poor, and the encoding and decoding performance is poor. Summary of the invention

[0004] The embodiments of the present application provide a coding method and a communication device, which can improve the performance of LDPC codes when used for coding.

[0005] In a first aspect, a coding method is provided, and optionally, the execution subject of the method may be a terminal device or a network device, or a component or device (such as a processor, a chip, or a chip system, etc.) applied to the terminal device or the network device, or a logic module or software that can realize all or part of the functions of the terminal device or the network device. The method includes: obtaining information bits to be encoded; obtaining a first LDPC code matrix, the first LDPC code matrix is ​​generated according to a first matrix, the first matrix includes a circulant matrix or multiple different circulant matrices, and the circulant matrix or the multiple different circulant matrices are matrices in a circulant matrix set; encoding the information bits according to the first LDPC code matrix to obtain first data; and sending the first data.

[0006] In the case where the first matrix includes a plurality of different circulant matrices, the first matrix can be regarded as a combination of different circulant matrices.

[0007] Therefore, in the present application, the LDPC code matrix can be generated by the first matrix, and the first matrix is ​​obtained by screening from the circulant matrix library. A variety of circulant matrices are stored in the circulant matrix library. Compared with the prior art that relies on random search of the base graph of the LDPC code matrix, the decoding threshold and the cycle properties cannot be guaranteed. The design of the present application that obtains the first matrix from the circulant matrix library to generate the LDPC code matrix does not rely on random search to obtain the base graph of the LDPC code matrix, which can avoid the problem that the decoding threshold and the cycle properties cannot be guaranteed by relying on the base graph of the random search of the LDPC code matrix. Moreover, compared with the prior art, once the base graph is obtained by random search, the fixed base graph is used for encoding, which may not match the hardware resources of the decoding end. The present application generates the LDPC code matrix by screening the first matrix, which can make the selection of the base graph of the LDPC code matrix more flexible. Optionally, when the index of the first matrix is ​​screened to reflect the type of communication scenario and the hardware capability of the decoding end, the LDPC code matrix constructed by the first matrix can meet the current communication scenario and the hardware capability of the decoding end, thereby improving the encoding and decoding performance. Moreover, if the LDPC code matrix generated by the screened first matrix is ​​more suitable for the hardware resources of the decoding end, the power consumption of the decoding end can also be reduced, and the hardware utilization rate of the decoding end can be improved.

[0008] In a second aspect, a decoding method is provided. Optionally, in the case where the execution subject of the first aspect is a terminal device, the execution subject of the method provided in the second aspect may be a network device, or a component or device (such as a processor, chip, or chip system, etc.) applied to the network device, or a logic module or software that can realize all or part of the functions of the network device. Optionally, in the case where the execution subject of the first aspect is a network device, the execution subject of the method provided in the second aspect may be a terminal device, or a component or device (such as a processor, chip, or chip system, etc.) applied to the terminal device, or a logic module or software that can realize all or part of the functions of the terminal device. The method includes: receiving second data; obtaining a first low-density parity check LDPC code matrix, the first LDPC code matrix is ​​generated according to the first matrix, the first matrix includes a circulant matrix or multiple different circulant matrices, and the one circulant matrix or multiple different circulant matrices are matrices in a circulant matrix set; decoding the second data according to the first LDPC code matrix to obtain information bits.

[0009] The second data received by the receiving end may be data obtained after the first data is transmitted through a wireless channel.

[0010] The beneficial effects of the second aspect can be found in the description of the first aspect, that is, for the data receiving end, the first matrix can also be screened by a method similar to that of the transmitting end to construct the first LDPC code matrix.

[0011] In the first and second aspects:

[0012] In one possible design, obtaining the first LDPC code matrix includes: receiving indication information, where the indication information is used to indicate the first LDPC code matrix. For example, when the transmitting end obtains the first matrix according to a certain screening principle and constructs the first LDPC code matrix, the indication information can be carried by the control information, and the receiving end can obtain the first LDPC code matrix according to the indication information. In this way, the receiving end can decode the first data according to the same check matrix as the encoding matrix, and the encoding matrix and the check matrix are both the first LDPC code matrix, and the base graph selection of the check matrix when the receiving end performs decoding is also more flexible.

[0013] In a possible design, the base matrix of the circulant matrix is ​​obtained by circulating and shifting a vector determined by a preset polynomial and the dimension size of the base matrix of the circulant matrix. The polynomial can be used to indicate the elements of the first row in the base matrix of the circulant matrix, for example, the elements are 1 or 0. The dimension size can be understood as the number of rows or columns of the base matrix of the circulant matrix. For a single circulant matrix, the number of rows and columns is the same. In this way, the base matrix of a single circulant matrix can be obtained by circulating and shifting operations based on the elements of the first row and the number of rows. In this way, when the circulant matrix set includes circulant matrices determined by multiple polynomials and dimension sizes, the transmitting end or the decoding end can flexibly select a circulant matrix or a combination of circulant matrices to construct the first LDPC code matrix.

[0014] In one possible design, the basis matrix of the first LDPC code matrix is ​​obtained by concatenating the basis matrices of each circulant matrix in one circulant matrix or multiple different circulant matrices; or, the basis matrix of the first LDPC code matrix is ​​obtained by concatenating the basis matrices of each circulant matrix in one circulant matrix or multiple different circulant matrices, and performing at least one of truncation, edge deletion and edge connection operations on the basis matrix of at least one circulant matrix in one circulant matrix or multiple different circulant matrices.

[0015] Optionally, how to truncate the circulant matrix may be determined based on at least one of a lifting size and a bit rate, for example, N rows or N columns in the circulant matrix are truncated (or a submatrix of the circulant matrix is ​​truncated), wherein the value of N is determined based on at least one of a lifting size and a bit rate. Optionally, how to splice may be determined based on the number of rows and columns of the truncated submatrix and the bit rate, for example, it is determined that five submatrices are to be spliced, and the splicing method is horizontal splicing. Optionally, the border deletion operation may be performed based on a preset border deletion rule, and the border deletion operation may be performed to adapt to a decoding threshold and maintain loop characteristics.

[0016] In a possible design, the interception operation includes at least one of the following operations: continuous row interception; continuous column interception; non-continuous row interception; non-continuous column interception. In this way, based on the execution of the interception operation, the intercepted rows and columns are better adapted to the code rate and the decoding delay is reduced.

[0017] In a possible design, the edge deletion operation includes: obtaining an indication sequence, the indication sequence is used to indicate that when the first indicator is in the target indicator interval, the edge deletion operation is performed on the first part of all the edges of the matrix indicated by the indication sequence; wherein the indication sequence includes at least one of the following information: an indication of the position of the first part of the edges; an indication of the position of the second part of the edges other than the first part of the edges in all the edges of the first matrix. In this way, the transmitter does not perform the edge connection operation at the position where the edge needs to be deleted, and when the base matrix of the first LDPC code matrix is ​​used for encoding, the transmitter skips the encoding of the position where the edge is deleted. Correspondingly, the check matrix does not need to include the shifting value of the position, and the decoding process of the receiving end does not include the decoding of the position. Optionally, the check matrix list corresponding to each circulant matrix in the circulant matrix set can store all the edge connection relationships and the indication sequence matching the code rate, so that the base matrix of the constructed first LDPC code matrix can be more in line with the current code rate requirements.

[0018] In one possible design, the edge connecting operation includes: obtaining an indication sequence, the indication sequence being used to indicate that when a first indicator is in a target indicator interval, an edge connecting operation is performed on a first part of all edges of the matrix indicated by the indication sequence; wherein the indication sequence includes a position indication of the first part of the edges and a lifting factor corresponding to the first part of the edges.

[0019] Optionally, the edge relationships and corresponding offset values ​​used in the main code rate set can be stored in the LDPC check matrix list. This part of the edge relationships and offset values ​​are fixed for use. The list can also store additional edge relationships and offset values ​​corresponding to the target code rate range. The target code rate range can be understood as a subset of the main code rate set. In this way, if the code rate is within the target code rate range, the fixed edge relationships and offset values, as well as additional edge relationships and offset values, can be used to construct the first LDPC code matrix. If the code rate is outside the target code rate range, the fixed edge relationships and offset values ​​are used to construct the first LDPC code matrix. In this way, for different code rates or other indicators, different edge relationships and offset values ​​can be flexibly used to construct the coding matrix and the check matrix.

[0020] In one possible design, the first indicator is at least one of the following information: code length; code rate; number of check bit columns; number of check matrix rows; number of information bits.

[0021] Optionally, different first indicators can be used to reflect different communication scenarios, such as high throughput scenarios, URLLC and low power consumption scenarios, etc. In this way, operations such as edge deletion or edge connection can be performed according to different scenarios, so that the first LDPC code matrix constructed based on the first matrix is ​​more suitable for current scenario requirements.

[0022] In one possible design, the first matrix is ​​screened from a set of circulant matrices based on at least one of the following information: code length; code rate; indication information; capability information of a receiving end receiving the first data; wherein the indication information is used to indicate a type of communication scenario.

[0023] Optionally, the code length, code rate, and indication information can be used to reflect the type of communication scenario, and the capability information is used to reflect the hardware capability of the receiving end. If the first matrix is ​​obtained based on the scenario type screening, and the first LDPC code matrix is ​​constructed, the first LDPC code matrix can be used as a coding matrix or a check matrix to better meet the scenario requirements and improve the encoding and decoding performance. If the first matrix is ​​obtained based on the hardware capability of the receiving end, and the first LDPC code matrix is ​​constructed, the hardware utilization of the receiving end can be improved and the decoding delay can be reduced when the first LDPC code matrix is ​​used as a coding matrix or a check matrix.

[0024] In one possible design, the capability information includes an indication of the hardware capability level of the receiving end, and the hardware capability level is divided according to at least one of the following information: a boost factor; the number of rows and columns of a base matrix of the LDPC code matrix; uplink reception or downlink reception.

[0025] In this way, under different hardware capability levels, the first matrix obtained by screening may be different, and the first LDPC code matrix constructed is different, and a fixed base graph is no longer used. Moreover, when using the first LDPC code matrix for encoding and decoding, different LDPC code matrices can be used for receiving ends with different hardware capabilities, thereby improving the hardware utilization of the receiving end and reducing the decoding delay.

[0026] In one possible design, the method further includes: acquiring capability information, the capability information including the number of rows and columns of a base matrix of an LDPC code matrix supported by the receiving end. Optionally, the capability information includes a range of rows and columns of a base matrix of an LDPC code matrix supported by the receiving end, or the capability information includes a maximum number of rows and a maximum number of columns of a base matrix of an LDPC code matrix supported by the receiving end.

[0027] In a possible design, the screening principle for screening the first matrix from the set of circulant matrices includes a first principle, a second principle and a third principle; wherein the first principle is to screen out the first set from the set of circulant matrices, and the total number of columns of the base matrix of the LDPC code matrix corresponding to a single circulant matrix or a combination of multiple different circulant matrices in the first set is less than or equal to the number of columns of the base matrix of the LDPC code matrix supported by the receiving end; the second principle is to screen out the second set from the first set, and the first ratio of the lifting factor of the single circulant matrix or a combination of multiple different circulant matrices in the second set to the lifting factor supported by the receiving end is less than or equal to a preset threshold; if the number of matrices satisfying the second principle is 1, the matrix satisfying the second principle is the first matrix; if the number of matrices satisfying the second principle is multiple, the third principle is to sort the first reference values ​​of the base matrix of the LDPC code matrix corresponding to the matrices in the second set by size, and take the matrix with the smallest first reference value as the first matrix; wherein the first reference value is the number of elements 1 in the base matrix of the LDPC code matrix corresponding to the matrices in the second set, or the product of the number of elements 1 in the base matrix of the LDPC code matrix corresponding to the matrices in the second set and the second ratio, and the second ratio is the value rounded up to the integer of the first ratio.

[0028] In this design, it can be understood that the goal of selecting the first matrix by the number of columns of the base matrix of the LDPC code matrix supported by the receiving end and the improvement is to achieve higher hardware utilization. The hardware utilization index here can be, for example, parallelism, the number of non-zero base matrix, etc. In this way, the base matrix of the first LDPC code matrix constructed by the selected first matrix is ​​the number of QC blocks, which can reach the limit performance of the hardware and the decoding can converge quickly.

[0029] In one possible design, the offset values ​​corresponding to multiple edges in the base matrix of the first LDPC code matrix are obtained by circulating and shifting a preset one-dimensional vector, and the displacement direction is consistent with the vector displacement direction of the first matrix; wherein the dimension of the one-dimensional vector is the same as the number of columns of the base matrix of the first LDPC code matrix.

[0030] In this way, when the base matrix of the first LDPC code matrix is ​​constructed by the first matrix, the offset value of the lifting factor can also be obtained by circulating and shifting in a direction consistent with the circulant and shift direction of the polynomial of the first matrix. In addition, the complexity of obtaining the offset value of the first LDPC code matrix through a one-dimensional vector is relatively small.

[0031] In a possible design, the offset values ​​corresponding to multiple edges in the basis matrix of the first LDPC code matrix are obtained by respectively circulating and shifting multiple different one-dimensional vectors, and the displacement direction is consistent with the vector displacement direction of the first matrix; wherein each one-dimensional vector of the multiple different one-dimensional vectors is used to generate an offset value of a circulant matrix of the first LDPC code matrix, and the dimension size of each one-dimensional vector is the same as the number of columns of the basis matrix of a single circulant matrix of the first LDPC code matrix.

[0032] Thus, when the base matrix of the first LDPC code matrix is ​​constructed by the first matrix, the offset value of the lifting factor can also be obtained by circulating and shifting a plurality of one-dimensional vectors in a direction consistent with the circulation and shift direction of the polynomial of the first matrix.

[0033] In a possible design, the one-dimensional vector includes a first element, and the first element is used to indicate that the element corresponding to the first element in the base matrix of the first LDPC code matrix is ​​0. For example, the first element is -1, and the position of the first element corresponding to the position in the base matrix of the first LDPC code matrix is ​​0. Optionally, the one-dimensional vector may not include the first element.

[0034] In one possible design, the second element other than the first element in the one-dimensional vector is calculated by the element position corresponding to the second element in the circulant matrix; or, the second element is calculated by the matrix position of the circulant matrix corresponding to the second element in the base matrix of the first LDPC code matrix and the element position corresponding to the second element in the circulant matrix; or, the second element is calculated by the matrix position of the circulant matrix corresponding to the second element in the base matrix of the first LDPC code matrix, the element position corresponding to the second element in the circulant matrix, and the dimension size of the one-dimensional vector.

[0035] In one possible design, the positions where the elements in the polynomial are 1 satisfy the following condition 1: h μ+1 -h μ ≥a0+μ, (μ=0,…,k-1), where μ ranges from (0, 1,…, k-1, k is an integer greater than or equal to 1), h μ+1 Indicates the position where the μ+1th element in the polynomial is 1, h μ represents the position where the μth element in the polynomial is 1, a0 is the number of adjacent orthogonal rows in the basis matrix of the first LDPC code matrix; the dimension size of the basis matrix of the circulant matrix satisfies the following condition 2: Where m represents the dimension of the basis matrix of the circulant matrix. μ+1 -h μ =a0+μ. Optional,

[0036] Therefore, when mh k When +h0≥a0+k, in the base matrix of the first LDPC code matrix, adjacent a0 rows are completely orthogonal (counting from the first row of the base matrix), which helps the decoding end to perform highly parallel decoding and reduce the delay of the LDPC code decoding process.

[0037] In a third aspect, a communication device is provided, including: an acquisition module, used to acquire information bits to be encoded; the acquisition module is also used to acquire a first low-density parity check LDPC code matrix, the first LDPC code matrix is ​​generated according to a first matrix, the first matrix includes a circulant matrix or multiple different circulant matrices, and the one circulant matrix or the multiple different circulant matrices are matrices in a circulant matrix set; an encoding module, used to encode information bits according to the first LDPC code matrix to obtain first data; and a sending module, used to send the first data.

[0038] In a fourth aspect, a communication device is provided, including: a receiving module for receiving first data; an acquisition module for acquiring a first low-density parity check LDPC code matrix, the first LDPC code matrix is ​​generated according to the first matrix, the first matrix includes a circulant matrix or multiple different circulant matrices, and the one circulant matrix or the multiple different circulant matrices are matrices in a circulant matrix set; a decoding module for decoding the first data according to the first LDPC code matrix to obtain information bits.

[0039] In one possible design, a receiving module is used to receive indication information, where the indication information is used to indicate a first LDPC code matrix.

[0040] In the third and fourth aspects:

[0041] In a possible design, a basis matrix of the circulant matrix is ​​obtained by circulating and shifting a preset polynomial and a vector determined by the dimension size of the basis matrix of the circulant matrix.

[0042] In one possible design, the basis matrix of the first LDPC code matrix is ​​obtained by concatenating the basis matrices of each circulant matrix in one circulant matrix or multiple different circulant matrices; or, the basis matrix of the first LDPC code matrix is ​​obtained by concatenating the basis matrices of each circulant matrix in one circulant matrix or multiple different circulant matrices, and performing at least one of truncation, edge deletion and edge connection operations on the basis matrix of at least one circulant matrix in one circulant matrix or multiple different circulant matrices.

[0043] In one possible design, the interception operation includes at least one of the following operations: continuous row interception; continuous column interception; non-continuous row interception; non-continuous column interception.

[0044] In one possible design, the edge deletion operation includes: obtaining an indication sequence, the indication sequence being used to indicate that when a first indicator is in a target indicator interval, an edge deletion operation is performed on a first portion of all edges of a matrix indicated by the indication sequence; wherein the indication sequence includes at least one of the following information: a position indication of the first portion of edges; a position indication of a second portion of edges other than the first portion of edges among all edges of the first matrix.

[0045] In one possible design, the edge connecting operation includes: obtaining an indication sequence, the indication sequence being used to indicate that when a first indicator is in a target indicator interval, an edge connecting operation is performed on a first part of all edges of the matrix indicated by the indication sequence; wherein the indication sequence includes a position indication of the first part of the edges and a lifting factor corresponding to the first part of the edges.

[0046] In one possible design, the first indicator is at least one of the following information: code rate; number of check bit columns; number of check matrix rows; number of information bits.

[0047] In one possible design, the first matrix is ​​screened from a set of circulant matrices based on at least one of the following information: code length; code rate; indication information; capability information of a receiving end receiving the first data; wherein the indication information is used to indicate a type of communication scenario.

[0048] In one possible design, the capability information includes an indication of the hardware capability level of the receiving end, and the hardware capability level is divided according to at least one of the following information: a boost factor; the number of rows and columns of a base matrix of the LDPC code matrix; uplink reception or downlink reception.

[0049] In a possible design, the acquisition module is also used to obtain capability information, where the capability information includes the number of rows and columns of a base matrix of the LDPC code matrix supported by the receiving end.

[0050] In a possible design, the screening principle for screening the first matrix from the set of circulant matrices includes a first principle, a second principle and a third principle; wherein the first principle is to screen out the first set from the set of circulant matrices, and the total number of columns of the base matrix of the LDPC code matrix corresponding to a single circulant matrix or a combination of multiple different circulant matrices in the first set is less than or equal to the number of columns of the base matrix of the LDPC code matrix supported by the receiving end; the second principle is to screen out the second set from the first set, and the first ratio of the lifting factor of the single circulant matrix or a combination of multiple different circulant matrices in the second set to the lifting factor supported by the receiving end is less than or equal to a preset threshold; if the number of matrices satisfying the second principle is 1, the matrix satisfying the second principle is the first matrix; if the number of matrices satisfying the second principle is multiple, the third principle is to sort the first reference values ​​of the base matrix of the LDPC code matrix corresponding to the matrices in the second set by size, and take the matrix with the smallest first reference value as the first matrix; wherein the first reference value is the number of elements 1 in the base matrix of the LDPC code matrix corresponding to the matrices in the second set, or the product of the number of elements 1 in the base matrix of the LDPC code matrix corresponding to the matrices in the second set and the second ratio, and the second ratio is the value rounded up to the integer of the first ratio. (Instruction manual extended equivalent description)

[0051] In one possible design, the offset values ​​corresponding to multiple edges in the base matrix of the first LDPC code matrix are obtained by circulating and shifting a preset one-dimensional vector, and the displacement direction is consistent with the vector displacement direction of the first matrix; wherein the dimension of the one-dimensional vector is the same as the number of columns of the base matrix of the first LDPC code matrix.

[0052] In a possible design, the offset values ​​corresponding to multiple edges in the basis matrix of the first LDPC code matrix are obtained by respectively circulating and shifting multiple different one-dimensional vectors, and the displacement direction is consistent with the vector displacement direction of the first matrix; wherein each one-dimensional vector of the multiple different one-dimensional vectors is used to generate an offset value of a circulant matrix of the first LDPC code matrix, and the dimension size of each one-dimensional vector is the same as the number of columns of the basis matrix of a single circulant matrix of the first LDPC code matrix.

[0053] In one possible design, the one-dimensional vector includes a first element, where the first element is used to indicate that an element corresponding to the first element in a base matrix of the first LDPC code matrix is ​​0.

[0054] In one possible design, the second element other than the first element in the one-dimensional vector is calculated by the element position corresponding to the second element in the circulant matrix; or, the second element is calculated by the matrix position of the circulant matrix corresponding to the second element in the base matrix of the first LDPC code matrix and the element position corresponding to the second element in the circulant matrix; or, the second element is calculated by the matrix position of the circulant matrix corresponding to the second element in the base matrix of the first LDPC code matrix, the element position corresponding to the second element in the circulant matrix, and the dimension size of the one-dimensional vector.

[0055] In one possible design, the positions where the elements in the polynomial are 1 satisfy the following condition 1: h μ+1 -h μ ≥a0+μ, (μ=0,…,k-1), where μ ranges from (0, 1,…, k-1, k is an integer greater than or equal to 1), h μ+1 Indicates the position where the μ+1th element in the polynomial is 1, h μ represents the position where the μth element in the polynomial is 1, a0 is the number of adjacent orthogonal rows in the basis matrix of the first LDPC code matrix; the dimension size of the basis matrix of the circulant matrix satisfies the following condition 2: Where m represents the dimension of the basis matrix of the circulant matrix.

[0056] In a fifth aspect, a communication device is provided, comprising a module for executing any possible design method as in the first aspect and / or the second aspect.

[0057] In a sixth aspect, a communication device is provided, comprising one or more processors, wherein the one or more processors are configured to execute a method as in any possible design of the first aspect and / or the second aspect.

[0058] In a seventh aspect, a computer-readable storage medium is provided, in which computer instructions are stored. When the computer instructions are executed on a communication device, the communication device executes a method as described in any possible design of the first aspect and / or the second aspect.

[0059] In an eighth aspect, a computer program product is provided, comprising computer instructions, which, when executed on a communication device, cause the communication device to execute a method as described in any possible design of the first aspect and / or the second aspect.

[0060] In a ninth aspect, a chip is provided, wherein the chip stores computer execution instructions, and when the computer execution instructions are executed, the method described in any possible design of the first aspect and / or the second aspect is executed.

[0061] In the tenth aspect, a communication system is provided, comprising a first communication device and a second communication device, wherein the first communication device is used to execute the method described in the first aspect and any possible design of the first aspect, and the second communication device is used to execute the method described in the second aspect and any possible design of the second aspect.

[0062] It can be understood that any of the communication devices, transmitting ends, receiving ends, chips, communication systems, computer-readable storage media or computer program products provided above can be applied to the corresponding methods provided above. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects in the corresponding methods and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0063] Figure 1 A schematic diagram of the architecture of a wireless communication system provided in an embodiment of the present application;

[0064] Figure 2 A schematic diagram of a communication process of a wireless communication system provided in an embodiment of the present application;

[0065] Figure 3 A schematic diagram of a 5G LDPC code provided in an embodiment of the present application;

[0066] Figure 4 A schematic diagram of a basis matrix of a circulant matrix provided in an embodiment of the present application;

[0067] Figure 5 A schematic diagram of splicing a base matrix of a circulant matrix into a circulant matrix combination provided in an embodiment of the present application;

[0068] Figure 6 A schematic diagram of a flow chart of an encoding method provided in an embodiment of the present application;

[0069] Figure 7 A schematic diagram of a method for generating a base matrix of a first LDPC code matrix provided in an embodiment of the present application;

[0070] Figure 8 An example diagram of a base matrix of a first LDPC code matrix obtained by concatenating base matrices of a single circulant matrix provided in an embodiment of the present application;

[0071] Fig. 9 A schematic diagram of a method for extracting a basis matrix of a single circulant matrix provided in an embodiment of the present application;

[0072] Fig.10 A schematic diagram of a process for screening a first matrix provided in an embodiment of the present application;

[0073] Fig.11A schematic diagram for comparing base matrices of LDPC code matrices constructed using different circulant matrices provided in an embodiment of the present application;

[0074] Fig.12 A schematic diagram of a process for obtaining a core matrix in BG2 based on a first matrix provided in an embodiment of the present application;

[0075] Fig.13 A schematic diagram of a base matrix of a first LDPC code matrix provided in an embodiment of the present application;

[0076] Fig.14 A schematic diagram of an offset value matrix corresponding to a base matrix of a first LDPC code matrix provided in an embodiment of the present application;

[0077] Fig.15 A schematic diagram of a base matrix of a first LDPC code matrix provided in an embodiment of the present application;

[0078] Fig.16 A schematic diagram of performance simulation results of two circulant matrices provided in an embodiment of the present application;

[0079] Fig.17 A schematic diagram of performance simulation results of two circulant matrices provided in an embodiment of the present application;

[0080] Fig.18 A schematic diagram of the structure of a communication device provided in an embodiment of the present application;

[0081] Fig.19 A schematic diagram of the structure of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0082] The embodiments of the present application can be applied to wireless communication systems such as 5G, sixth generation mobile communications (6G), satellite communications, and possible future communication technologies, including but not limited to narrowband Internet of Things (NB-IoT), global system for mobile communications (GSM), enhanced data rate for GSM evolution (EDGE), wideband code division multiple access (WCDMA), code division multiple access 2000 (CDMA2000), time division-synchronization code division multiple access (TD-SCDMA), long term evolution (LTE), three major application scenarios of 5G mobile communication systems (enhanced mobile broadband (eMBB), ultra-reliable low-latency communications (URLLC) and enhanced machine type communication (eMTC)), 6G mobile communication systems, and possible future mobile communication systems.

[0083] Figure 1 1 is a schematic diagram of the architecture of a wireless communication system 10 used in an embodiment of the present application. Figure 1 As shown, the communication system 10 includes a radio access network (RAN) 100, wherein the RAN 100 includes at least one RAN node (such as Figure 1 110a and 110b in the figure, collectively referred to as 110), and may also include at least one terminal (such as Figure 1 RAN 100 may also include other RAN nodes, such as wireless relay equipment and / or wireless backhaul equipment ( Figure 1The terminal 120 is connected to the RAN node 110 in a wireless manner. Terminals and terminals and RAN nodes and RAN nodes can be connected to each other by wire or wireless means. The communication system 10 may also include a core network 200. The RAN node 110 is connected to the core network 200 in a wireless or wired manner. The core network device in the core network 200 and the RAN node 110 in the RAN 100 may be independent and different physical devices, or may be the same physical device that integrates the logical functions of the core network device and the logical functions of the RAN node. The communication system 10 may also include the Internet 300.

[0084] RAN100 may be an evolved universal terrestrial radio access (E-UTRA) system, a new radio (NR) system, and a future radio access system defined in the 3rd generation partnership project (3GPP). RAN100 may also include two or more of the above-mentioned different radio access systems. RAN100 may also be an open RAN (O-RAN).

[0085] RAN nodes, also known as radio access network equipment, RAN entities or access nodes, are used to help terminals access the communication system wirelessly. In one application scenario, a RAN node can be a base station, an evolved NodeB (eNodeB), a transmission reception point (TRP), a next generation NodeB (gNB) in a fifth generation (5G) mobile communication system, a next generation NodeB in a sixth generation (6G) mobile communication system, or a base station in a future mobile communication system. A RAN node can be a macro base station (such as a Figure 1 110a), or a micro base station or an indoor station (such as Figure 1 110b) in the figure, it can also be a relay node or a donor node.

[0086] In another application scenario, the cooperation of multiple RAN nodes can be used to help the terminal achieve wireless access, and different RAN nodes respectively implement part of the functions of the base station. For example, the RAN node can be a centralized unit (CU), a distributed unit (DU) or a radio unit (RU). The CU here completes the functions of the radio resource control protocol and the packet data convergence protocol (PDCP) of the base station, and can also complete the function of the service data adaptation protocol (SDAP); the DU completes the functions of the radio link control layer and the medium access control (MAC) layer of the base station, and can also complete the functions of part of the physical layer or all of the physical layer. For the specific description of the above-mentioned various protocol layers, please refer to the relevant technical specifications of 3GPP. RU can be used to implement the transceiver function of radio frequency signals. CU and DU can be two independent RAN nodes, or they can be integrated in the same RAN node, such as integrated in a baseband unit (BBU). RU can be included in a radio frequency device, such as a remote radio unit (RRU) or an active antenna unit (AAU). The CU can be further divided into two types of RAN nodes: CU-control plane and CU-user plane.

[0087] In different systems, RAN nodes may have different names. For example, in an O-RAN system, CU may be called an open CU (open CU, O-CU), DU may be called an open DU (open DU, O-DU), and RU may be called an open RU (open RU, O-RU). The RAN node in the embodiment of the present application may be implemented by a software module, a hardware module, or a combination of a software module and a hardware module. For example, the RAN node may be a server loaded with a corresponding software module. The embodiments of the present application do not limit the specific technology and specific device form adopted by the RAN node. For the convenience of description, the following description takes a base station as an example of a RAN node.

[0088] A terminal is a device with wireless transceiver function, which can send signals to a base station or receive signals from a base station. A terminal can also be called a terminal device, user equipment (UE), a mobile station, a mobile terminal, etc. The terminal can be widely used in various scenarios, for example, device-to-device (D2D), vehicle-to-everything (V2X) communication, machine-type communication (MTC), Internet of Things (IoT), virtual reality, augmented reality, industrial control, automatic driving, telemedicine, smart grid, smart furniture, smart office, smart wear, smart transportation, smart city, etc. The terminal can be a mobile phone, a tablet computer, a computer with wireless transceiver function, a wearable device, a vehicle, an airplane, a ship, a robot, a mechanical arm, a smart home device, etc. The embodiments of the present application do not limit the specific technology and specific device form adopted by the terminal.

[0089] Base stations and terminals can be fixed or movable. Base stations and terminals can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; they can also be deployed on the water surface; they can also be deployed on airplanes, balloons, and artificial satellites. The embodiments of this application do not limit the application scenarios of base stations and terminals.

[0090] The roles of the base station and the terminal can be relative, for example, Figure 1 The helicopter or drone 120i in the figure can be configured as a mobile base station. For the terminal 120j that accesses the wireless access network 100 through 120i, the terminal 120i is a base station; but for the base station 110a, 120i is a terminal, that is, 110a and 120i communicate through the wireless air interface protocol. Of course, 110a and 120i can also communicate through the interface protocol between base stations. In this case, relative to 110a, 120i is also a base station. Therefore, base stations and terminals can be collectively referred to as communication devices. Figure 1 110a and 110b in the figure may be referred to as communication devices having base station functions. Figure 1 120a-120j in the figure can be called communication devices with terminal functions.

[0091] Base stations and terminals, base stations and base stations, and terminals and terminals can communicate through authorized spectrum, unauthorized spectrum, or both; they can communicate through spectrum below 6 gigahertz (GHz), spectrum above 6 GHz, or spectrum below 6 GHz and spectrum above 6 GHz. The embodiments of the present application do not limit the spectrum resources used for wireless communication.

[0092] In the embodiments of the present application, the functions of the base station may also be performed by a module (such as a chip) in the base station, or by a control subsystem including the base station function. The control subsystem including the base station function here may be a control center in the above-mentioned application scenarios such as smart grid, industrial control, smart transportation, and smart city. The functions of the terminal may also be performed by a module (such as a chip or a modem) in the terminal, or by a device including the terminal function.

[0093] In this application, the base station sends a downlink signal or downlink information to the terminal, and the downlink information is carried on the downlink channel; the terminal sends an uplink signal or uplink information to the base station, and the uplink information is carried on the uplink channel. In order to communicate with the base station, the terminal needs to establish a wireless connection on the cell controlled by the base station. The cell with which the terminal has established a wireless connection is called the service cell of the terminal. When the terminal communicates with the service cell, it will also be interfered by signals from neighboring cells.

[0094] In wireless communication systems, Figure 2 A communication flow diagram of a wireless communication system provided in an embodiment of the present application. The transmitting end can obtain a 01 sequence with original information and redundant information by performing source coding and channel coding (error control coding) on ​​the source (transmission block) from the high-level layer, and then modulate the 01 sequence through the modulator to send an electrical signal to the channel. When the receiving end receives the electrical signal through the channel, it can demodulate the received electrical signal to obtain a 01 sequence, and then perform channel decoding and source recovery on the 01 sequence to obtain the destination (transmission block) and transmit it to the high-level processing of the receiving end.

[0095] LDPC code is a channel coding scheme that is very close to the Shannon line and has the characteristics of good performance and low complexity. It has been identified by 3GPP as the 5G data channel coding scheme.

[0096] LDPC code encoding is done by generating a matrix and applying the quasi-cyclic (QC) structure of LDPC code. By setting the translation of each block (element) in the matrix, bad structures such as short loops can be avoided and the code distance can be improved. At present, the decoding algorithms of LDPC code mainly include Min-Sum (MS) and belief propagation (BP) decoding algorithms. In terms of decoding performance, BP decoding algorithm has better performance, but the information storage volume is large, m c→v (row and column) calculation method is complicated and not conducive to hardware implementation. Therefore, Offset-MS and Normalized-MS decoding algorithms are currently used in actual communication systems. In these two decoding algorithms, the LDPC code used is to expand element 1 in the base matrix (base graph, BG) (basic matrix) graph into a cyclic shift matrix. The BG graph (base graph) model of the QC-LDPC code is BG = (X, Y, F), where X corresponds to the variable (column of the BG graph), Y corresponds to the check equation (row of the BG graph), and F is the edge relationship. After the expansion factor (lifting factor) is Z c After the QC expansion of , we get the Tanner graph, which is a bipartite graph G = (V, C, E), where V is the variable node, C is the check node, and E is the edge relationship. The corresponding check matrix column number N = |V| = Z c |X|, the number of check matrix rows M = |C| = Z c |Y|, the number of non-zero elements in the check matrix is ​​|E|=Z c |F|.

[0097] Generally, the information bit range supported by 5G data channels is 1 to 8448. The standard describes two check matrices: BG1 and BG2. The same base graph uses different lifting factors to adapt to the rate matching of different code lengths. Therefore, both the data transmitter and receiver need to store the lifting factor set and the shifting value list, as well as the rate matching method based on the lifting factor and the shifting value. Among them, the offset value is used to expand element 1 in the base graph to Z. c ×Z c The Z c ×Z c The expansion matrix.

[0098] When generating a 5G LDPC code, the 5G LDPC code stores a maximum-scale matrix. In actual application, different matrix regions can be selected for encoding and decoding according to the code rate. For example, the matrix region corresponding to rows 1 to M0 and columns 1 to N0 can be selected for encoding and decoding. Figure 3The figure shows a schematic diagram of a 5G LDPC code, including a high code rate region, an incremental redundancy region, an extended check region, and an element 0 region. The multiple borders in the dashed part are understood as schematic diagrams of different code rates. For example, the matrix area of ​​the dashed border selected in the high code rate scenario is smaller than the matrix area of ​​the dashed border selected in the low code rate scenario. Moreover, from Figure 3 It can be seen that the main feature of 5G LDPC code is nestedness, that is, the low code rate area must contain the high code rate area as a submatrix.

[0099] The current 5G LDPC code uses a fixed base graph for base matrix (matrix area) selection. Moreover, under the same code length / code rate, the selected base matrix has only one matrix area. Even if the hardware resources of different decoding ends are different, or the communication scenarios are different, the selected matrix area is only related to the current code length / code rate, and the selected matrix area may not be suitable for the current scenario requirements or hardware resource requirements. For example, in a high-throughput scenario, or if the hardware capability of the decoding end is weak or the decoding end is a low-power device, if the matrix area is selected according to the code length / code rate, the selected matrix area may cause a higher load on the decoding end and a higher power consumption during hardware decoding.

[0100] Moreover, the current 5G LDPC codes rely on random search, that is, using a random base graph design, the decoding threshold and cycle properties cannot be guaranteed, and the decoding performance is poor.

[0101] For example, this random base graph design is prone to short cycle bad structure. For the base matrix of LDPC code, there are two elements 1 in two rows in the same two columns, which can form a cycle / loop with a length of 4. When there is a cycle in the check matrix, especially a short cycle, the node obtains the information and transmits it back to the original node after iteration. The independence of nodes in transmitting external information is reduced, which reduces the ability to resist interference. This means that if the information transmitted by a node is wrong, when this wrong information is propagated, the decoding speed will be slowed down, unable to converge to the optimal decoding value, or even decoding failure. The existence of short cycles will inevitably destroy the assumption of independence. Therefore, the check matrix should make the length of the shortest cycle as large as possible and sparse enough. That is, the longer the length of the shortest cycle, the closer the information transmission algorithm is to the optimal algorithm. Usually, the existence of short cycles of length 4 and 6 causes variable nodes to frequently transmit positive feedback information to themselves during iterative decoding, which is undesirable for iterative decoding.

[0102] Therefore, an embodiment of the present application provides a coding method, in which an LDPC code can be generated by a circulant matrix, and the circulant matrix is ​​obtained by screening from a circulant matrix library. A variety of circulant matrices are stored in the circulant matrix library. Compared with the prior art that relies on random search of the base graph of the LDPC code, the decoding threshold and the cycle properties cannot be guaranteed. The design of the present application that generates the LDPC code by screening the circulant matrix in the circulant matrix library does not rely on the base graph of the LDPC code obtained by random search, and can guarantee the decoding threshold and the cycle properties of the generated LDPC code. Moreover, compared with the prior art, once the base graph is obtained by random search, the fixed base graph is used for encoding, which may cause the problem of high power consumption at the decoding end. The present application generates the LDPC code by screening the circulant matrix, which can make the selection of the base graph more flexible, and the LDPC code corresponding to the selected base graph can meet the current communication scenario and the hardware capabilities of the decoding end, thereby improving the encoding and decoding performance. Moreover, if the LDPC code generated by the screened circulant matrix is ​​more in line with the hardware resources of the decoding end, the power consumption of the decoding end can also be reduced, and the hardware utilization rate of the decoding end can be improved.

[0103] The present application can be implemented through a dedicated chip, such as an application specific integrated circuit (ASIC), or through a programmable chip, such as a field programmable gate array (FPGA), or through software (program code in a memory). Among them, it mainly involves the source coding and channel coding of the transmitting end (coding end), and the channel decoding and source recovery part of the receiving end (decoding end).

[0104] Here, the features of the circulant matrix related to this application are first introduced. The circulant matrix may also be called a circulant unit, a basic circulant unit, a circulant block, or a single circulant block, etc., or may have other names, which are not limited by this application. The circulant matrix can be used as a template for the basic operation of generating LDPC codes, and the base matrix of the circulant matrix can be used to generate the base matrix / base graph of the LDPC code for lifting and translation.

[0105] In some embodiments, the parameters required for the basis matrix of a single circulant matrix are as follows:

[0106] 1. Polynomial: g(x)=g0+g1x+…+g t x t (g t =0,1), or, t+1-dimensional 0,1 vector g = (g0,g1,…,g t ). The position of non-zero coefficients in a polynomial or vector is denoted by p = (h0, h1,…, h k ). The value range of t is an integer greater than or equal to 0.

[0107] 2. Dimension size m, where m ≥ t, m is the length and width of the basis matrix in the circulant matrix, or the number of rows and columns of the basis matrix of a single circulant matrix, and the number of rows and columns is the same.

[0108] It should be noted that for any value b, b is an integer greater than or equal to 1, the polynomials with the degree t of non-zero coefficients being (p+b)mod(m) can construct the same basis matrix of the circulant matrix. That is, when all non-zero positions are shifted by b units, the basis matrix of the circulant matrix is ​​the same.

[0109] Based on the parameters required for the basis matrix of a single circulant matrix, the basis matrix of the circulant matrix is ​​generated as follows:

[0110] 1. First, generate an m-dimensional 0,1 vector, where the position of the element 1 is p+1=(h0+1,h1+1,…,h k +1), and the rest of the elements are 0, generating an m-dimensional vector V1. It can be understood here that p+1 describes the process of vector g performing row translation, that is, the position of element 1 in the previous row can be translated to the right / left by 1 unit to obtain the vector of the next row. Vector V1 describes the first row of elements of the cyclic unit.

[0111] For example, Figure 4 The figure shows a schematic diagram of a basis matrix of a circulant matrix. The above polynomial or m-dimensional 0,1 vector is used to describe the elements / blocks of the first row of the basis matrix of the circulant matrix. In the case of m=9 and t=8, the above polynomial can be changed to g(x)=g0+g1x+…+g8x 8 , if the position where the element is 1 is p=(0,3,7), b=1 (non-zero position is shifted by 1 unit), the k in the position representing the non-zero coefficient in the polynomial and m-dimensional 0,1 vector is 2. The polynomial corresponding to this circulant matrix is ​​(x)=1+x 3 +x 7 The m-dimensional vector V1 of the first row is (1, 0, 0, 1, 0, 0, 0, 1, 0). Among them, h0=0, which means the coefficient g0, that is, the element at the first position of the first row is 1; h1=3, which means the coefficient g3, that is, the element at the fourth position of the first row is 1; h2=7, which means the coefficient g7, that is, the element at the eighth position of the first row is 1.

[0112] 2. If Figure 4As shown, vector V1 is circulated to the right by 1 to m-1 terms respectively, generating a basis matrix of an m×m circulant matrix, that is, the first row of m-dimensional vectors of the basis matrix of the circulant matrix is ​​V1, and the second row of m-dimensional vectors V2 is the result of translating V1 to the right by one term, that is, V2(i)=V1(i-1), i represents the i-th element in a row, the value range is [2, m], and i is an integer. Among them, V2(1)=V1(m), which means that if the m-th element is moved out to the m+1-th position during the translation process, the n-th element returns to the 1st element position, that is, cyclic shift. Similarly, the third row of m-dimensional vectors V3 is the result of translating vector V2 to the right by one term, and the generation rules of the fourth row elements to the m-th row elements are consistent with the generation rules of the second row elements.

[0113] Or, in Figure 4 Not shown, it can also be that the second row element m-dimensional vector V2 is the result of translating V1 to the left by one term, that is, V2(i)=V1(i+1), i represents the i-th element in a row, the value range is [1, m-1], and i is an integer, and V2(m)=V1(1), which means that if the m-th element moves out to the m+1-th position during the translation process, the n-th element returns to the 1st element position, that is, cyclic shift. Similarly, the third row element m-dimensional vector V3 is the result of translating vector V2 to the left by one term, and the generation rules of the fourth row elements to the m-th row elements are consistent with the generation rules of the second row elements.

[0114] Based on the basis matrix of the circulant matrix generated in the above manner, the structure of the circulant matrix can be expressed as (g(x), m).

[0115] In some embodiments, a circulant matrix set may be stored in the data transmitting end, and the circulant matrix set may include not only one or more single circulant matrices, i.e., a circulant matrix represented by 1 (g(x), m), but also a combination of multiple different circulant matrices, which is recorded as a circulant matrix combination. The circulant matrix combination is equivalent to the combination of the basis matrices of multiple different single circulant matrices. Of course, the receiving end may also store the circulant matrix set.

[0116] In some embodiments, it is assumed that the i-th circulant matrix in the circulant matrix combination is denoted by (g i (x),m i ), i is an integer greater than or equal to 1:

[0117] The circulant matrix combination is obtained by horizontally concatenating the basis matrices of two circulant matrices with the same dimension size (matrix scale) but different polynomials. Figure 5(a) is a schematic diagram of concatenating the basis matrices of two circulant matrices of the same dimensional size but different polynomials into a circulant matrix combination, which is obtained by horizontally concatenating the basis matrices of the circulant matrix (g1(x), m1) and the circulant matrix (g2(x), m1).

[0118] Alternatively, the circulant matrix combination is obtained by vertically concatenating the basis matrices of two circulant matrices of the same dimension size (matrix scale) but different polynomials. Figure 5 (b) is a schematic diagram of concatenating the basis matrices of two circulant matrices of the same dimensional size but different polynomials into a circulant matrix combination, which is obtained by vertically concatenating the basis matrices of the circulant matrix (g1(x), m1) and the circulant matrix (g2(x), m1).

[0119] Alternatively, the circulant matrix combination is obtained by concatenating the basis matrices of the circulant matrices whose dimensions are not completely the same and whose polynomials are different. Figure 5 (c) in FIG. 1 is a schematic diagram of concatenating the basis matrices of circulant matrices of three dimensions with different sizes and different terms into a circulant matrix combination, which is obtained by concatenating the basis matrices of circulant matrix (g1(x), m1), circulant matrix (g2(x), m1) and circulant matrix (g2(x), 2m1). For example, the matrix obtained by concatenating the basis matrices of circulant matrix (g1(x), m1) and circulant matrix (g2(x), m1) vertically is then concatenated horizontally with the basis matrix of circulant matrix (g2(x), 2m1) to obtain a circulant matrix combination.

[0120] Based on the above introduction to a single circulant matrix and a combination of circulant matrices, the encoding method of the present application is introduced below.

[0121] like Figure 6 The figure shows a flow chart of an encoding method, which includes the following process.

[0122] 601. The transmitting end obtains information bits to be encoded.

[0123] In some embodiments, the sending end is, for example, a terminal device in a 5G communication scenario, or it may be an access network device or other network device in an access network, or it may be a network device in a core network, etc., and this application does not limit this.

[0124] For example, when the upper layer of the transmitting end has data to send, the information bits to be encoded can be sent to the physical layer through the transport layer, and the physical layer performs source encoding on the information bits. The source is the information bits to be encoded here.

[0125] In some embodiments, the information bits in the present application refer to information bits of LDPC codes. The information bits may be information bits completely composed of data to be sent, or may be bit sequences with cyclic redundancy check (CRC) bits added.

[0126] 602. The transmitter obtains a first LDPC code matrix, where the first LDPC code matrix is ​​generated according to a first matrix, where the first matrix includes a circulant matrix or a plurality of different circulant matrices, and the circulant matrix or the plurality of different circulant matrices are matrices in a circulant matrix set.

[0127] In some embodiments, it can be seen from the above introduction to a single circulant matrix that a base matrix of the single circulant matrix is ​​obtained by circulating and shifting a preset polynomial and a vector determined by the dimension size of the base matrix of the circulant matrix.

[0128] In some embodiments, the transmitting end may first select a circulant matrix or multiple different circulant matrices from the circulant matrix set according to a preset screening principle. For example, the screening principle is based on an indicator used to reflect the communication scenario or the capability information of the receiving end. In this way, when the first LDPC code obtained by the first matrix screened is used for encoding, the LDPC code matrix used for encoding can be different according to different scenarios or different capability information, which can improve data transmission performance and improve the hardware utilization of the receiving end.

[0129] In some embodiments, the base matrix of the first LDPC code matrix is ​​obtained by concatenating the base matrices of one circulant matrix or each circulant matrix in a plurality of different circulant matrices.

[0130] Alternatively, the basis matrix of the first LDPC code matrix is ​​obtained by concatenating the basis matrices of a circulant matrix or each circulant matrix in a plurality of different circulant matrices, and performing at least one of truncating, deleting edges, and connecting edges on the basis matrix of a circulant matrix or at least one circulant matrix in a plurality of different circulant matrices.

[0131] Here, a specific introduction to the base matrix forming the first LDPC code matrix will be illustrated below with examples.

[0132] 603. The transmitter encodes the information bits according to the first LDPC code matrix to obtain first data.

[0133] 604. The sender sends first data.

[0134] Correspondingly, for the data receiving end, Figure 6 The process of a decoding method provided by the present application is also shown in the figure, including the following process.

[0135] 605. The receiving end receives the second data.

[0136] The second data received by the receiving end may be data of the first data sent by the sending end transmitted through a wireless channel.

[0137] 606. The receiving end obtains a first LDPC code matrix.

[0138] In some embodiments, the receiving end may obtain the first LDPC code matrix by screening it from a set of circulant matrices according to the same principle as the transmitting end screening the first matrix, or the receiving end may obtain it according to indication information of the transmitting end.

[0139] In some embodiments, the receiving end acquiring the first LDPC code matrix includes: the receiving end receiving indication information, where the indication information is used to indicate the first LDPC code matrix. For example, the transmitting end may send control information to the receiving end, where the control information includes the indication information.

[0140] 607. The receiving end decodes the second data according to the first LDPC code matrix to obtain information bits.

[0141] In this way, compared with the current situation that the transmitter randomly selects the base matrix / base graph of the LDPC code matrix before data encoding, and once the base matrix of the LDPC code matrix is ​​randomly selected, the base matrix of the LDPC code matrix is ​​fixedly used, the present application can make the selection of the LDPC code matrix more flexible, and before encoding the information bits, the first matrix that can generate the LDPC code matrix is ​​first selected from the set of circulant matrices. In this way, when the base matrix of the LDPC code matrix is ​​flexible and variable, the matrix area (coding matrix) selected by the transmitter according to the base matrix of the LDPC code matrix is ​​also flexible and variable, which can avoid the problem of poor performance caused by using a fixed base matrix for encoding and improve the encoding and decoding performance.

[0142] The following is an introduction to the process of generating a base matrix of the first LDPC code matrix from a basic circulant matrix or a combination of circulant matrices in this application. Figure 7 The figure shows a schematic diagram of a method for generating a base matrix of a first LDPC code matrix, the method comprising the following process.

[0143] 701. Predefine multiple circulant matrices and offset values ​​corresponding to a base matrix of each circulant matrix at a transmitting end through a protocol and a system, and establish a circulant matrix set, wherein the circulant matrix set includes multiple circulant matrices.

[0144] For example, a set of circulant matrices may be stored in the transmitting end, including a base matrix of each circulant matrix and an offset value corresponding to the base matrix. This is equivalent to storing multiple (g i (x),m i ) and each (gi (x),m i ) corresponding to the shifting value.

[0145] The above step 602 or step 606 may include the following steps 702 to 704 .

[0146] 702. The transmitting end selects a first matrix from a set of circulant matrices according to a preset screening principle, where the first matrix is ​​one circulant matrix or a plurality of different circulant matrices.

[0147] For example, a screening principle for screening the first matrix may be stored in the transmitting end, and the transmitting end may screen the first matrix according to the stored screening principle before encoding the information bits.

[0148] 703. The transmitting end concatenates basis matrices of circulant matrices included in the first matrix, or the transmitting end truncates a basis matrix of at least one circulant matrix included in the first matrix, and concatenates the truncate sub-matrices.

[0149] For example, the sending end may store a method for concatenating the selected circulant matrices / circulant matrix combinations, and a method for truncating and concatenating the selected circulant matrices / circulant matrix combinations.

[0150] 704. The transmitter performs at least one of edge deletion and edge addition operations on the concatenated matrix to obtain a base matrix of the first LDPC code matrix, or obtains a submatrix of the base matrix of the first LDPC code matrix.

[0151] For example, the sending end stores rules for edge deletion and edge addition, and the sending end may delete edges from the concatenated matrix according to the rules for edge deletion and edge addition.

[0152] In step 704, when the base matrix of the first LDPC code matrix is ​​obtained, it is equivalent to that the matrix obtained after edge deletion and / or edge addition can be directly used as the base matrix of the first LDPC code matrix. Before encoding, the transmitter can select the matrix area in the base matrix of the first LDPC code matrix for encoding according to indicators such as code length or code rate.

[0153] If a submatrix of the base matrix of the first LDPC code matrix is ​​obtained, the submatrix can be used to replace a certain matrix region of the base matrix of the existing LDPC code matrix, and the base matrix of the replaced LDPC code matrix is ​​the base matrix of the first LDPC code matrix. Before encoding, the transmitter can select a matrix region in the base matrix of the first LDPC code matrix for encoding according to indicators such as code length or code rate. Here, when the submatrix is ​​used to replace a certain matrix region of the base matrix of the existing LDPC code matrix, there may be multiple base matrices of the LDPC code matrix to be replaced, so that base matrices of multiple LDPC code matrices can be obtained.

[0154] For step 703, in some embodiments, if the base matrix of the first LDPC code matrix is ​​obtained by concatenating the base matrices of each circulant matrix in a circulant matrix or a plurality of different circulant matrices, an example of concatenating the base matrix of the first LDPC code matrix is ​​given here. Figure 8 (a) in FIG. 1 shows an example diagram of a base matrix of a first LDPC code matrix obtained by concatenating base matrices of a single circulant matrix. Assuming that a single circulant matrix is ​​(g1(x), m1), the base matrix of the first LDPC code matrix is ​​obtained by concatenating base matrices of five identical circulant matrices (g1(x), m1) horizontally. Figure 8 (b) in FIG. 1 is an example diagram of a base matrix of a first LDPC code matrix concatenated by base matrices of each of a plurality of different circulant matrices. Assume that the plurality of different circulant matrices are as follows: Figure 5 The circulant matrix combination shown in (b) in the figure, the base matrix of the first LDPC code matrix is ​​composed of 3 Figure 5 Of course, the splicing here can also be vertical splicing, which is not limited in this application.

[0155] In some embodiments, if the base matrix of the first LDPC code matrix is ​​obtained by concatenating the base matrices of each of a circulant matrix or a plurality of different circulant matrices, and performing at least one of truncation and edge deletion on the base matrix of at least one of a circulant matrix or a plurality of different circulant matrices, here an example is given of obtaining the base matrix of the first LDPC code matrix by concatenating, truncating and edge deletion of the base matrix of a single circulant matrix. Figure 8 (c) in FIG. 1 shows an example diagram of a base matrix of a first LDPC code matrix constructed from a base matrix of a single circulant matrix. Assume that the single circulant matrix is ​​(g i (x),5),m i =5, the process of obtaining the base matrix of the first LDPC code matrix can be:

[0156] 801. Determine and improve factor Z c The number of rows and columns that matches at least one indicator in the code rate, and the basis matrix of the single circulant matrix is ​​intercepted according to the determined number of rows and columns. For example, if the number of rows is 4 and the number of columns is 5, the first 4 rows of the circulant matrix can be intercepted.

[0157] 802. Splice the intercepted matrix according to a preset splicing method and code rate. Figure 8 As shown in (c), the splicing method is horizontal splicing, and the number of rows and columns after the truncation of 5 single-cycle matrices is determined according to the code rate to be spliced.

[0158] 803. Delete edges from the concatenated matrix according to a preset edge deletion rule to obtain a base matrix of the first LDPC code matrix.

[0159] Although the above example is described by taking line interception as an example, it should be understood that the present application does not limit the operation method of interception.

[0160] In some embodiments, the interception operation may include at least one of the following operations: continuous row interception; continuous column interception; non-continuous row interception; non-continuous column interception.

[0161] For example, Fig. 9 The figure shows a schematic diagram of a method for extracting the basis matrix of a single circulant matrix. Fig. 9 (a) in FIG. 1 shows a schematic diagram of continuous row interception of the basis matrix of the circulant matrix, and the elements of the first 4 rows of the basis matrix of the circulant matrix are intercepted. Fig. 9 (b) in FIG. 1 is a schematic diagram showing non-continuous row interception of a basis matrix of a circulant matrix, where the elements of the 1st row, the 2nd row, the 4th row and the 5th row of the basis matrix of the circulant matrix are intercepted.

[0162] In some embodiments, the edge deletion operation includes: obtaining an indication sequence, the indication sequence being used to indicate that when the first indicator is within a target indicator interval, an edge deletion operation is performed on a first portion of all edges of the matrix indicated by the indication sequence.

[0163] The first indicator is at least one of the following information: code rate; number of check bit columns; number of check matrix rows; number of information bits. Of course, the present application does not limit the first indicator, and it can also be other parameters.

[0164] That is to say, the present application can use the indication sequence to indicate a subset of the edge relationships of the basis matrix of a single circulant matrix, delete the edges corresponding to the subset, and do not use all the edges in the basis matrix of the circulant matrix for encoding, but use part of the edge relationships among all the edge relationships of the basis matrix of the circulant matrix, and accordingly, use the lifting factors corresponding to the part of the edge relationships for encoding.

[0165] In some embodiments, the indication sequence includes at least one of the following information: an indication of the position of the first portion of edges; an indication of the position of the second portion of edges in all edges of the first matrix except the first portion of edges. For example, the indication sequence includes indication values ​​of 0 and 1, 0 indicates deleting the edge position in the circulant matrix, and 1 indicates connecting the edge position in the circulant matrix.

[0166] Exemplarily, when the first indicator is the code rate and the target indicator set is the target code rate set, the transmitter or receiver may store a check matrix list corresponding to each circulant matrix, the check matrix list includes all edge relationships E corresponding to the base matrix of the circulant matrix, and also includes an additional indication sequence θ, the sequence length of the indication sequence θ |θ|=|E|. Wherein, θ(i) is the indication value corresponding to the i-th edge, θ(i)∈{0,1}, 0 is used to indicate edge deletion, and 1 is used to indicate edge connection. When the code rate of the transmitter is in the target code rate interval, it is determined according to θ(i) whether to use the edge in the base matrix of the circulant matrix for encoding. When an edge in the base matrix of the circulant matrix is ​​indicated to be edge deleted, the transmitter skips the encoding of the position corresponding to the edge when using the base matrix of the circulant matrix for encoding. Correspondingly, the check matrix does not include the lifting factor corresponding to the position, and the receiver also skips the decoding of the position when decoding. Wherein, the target indicator interval can be understood as the target code rate set.

[0167] In some embodiments, the edge adding operation includes: obtaining an indication sequence, the indication sequence being used to indicate that when the first indicator is in a target indicator interval, an edge adding operation is performed on a first portion of all edges of the matrix indicated by the indication sequence.

[0168] The indication sequence includes position indications of the first portion of edges and lifting factors corresponding to the first portion of edges.

[0169] Exemplarily, when the first indicator is the code rate and the target indicator set is the target code rate set, the main code rate set, the edge relationship used by the main code rate set, and the lifting factor are stored in the LDPC check matrix list of the transmitter, and the transmitter also stores an additional indication sequence. If the code rate belongs to the main code rate set but is not in the target code rate range, the edge relationship and lifting factor used by the main code rate set can be used to construct the coding matrix and the check matrix, that is, the main code rate set uses the edge relationship when it is fixed. If the code rate belongs to the main code rate set and belongs to the target code rate set, the edge relationship and lifting factor used by the main code rate set, as well as the edge relationship and lifting factor of the first part of the edges indicated by the additional storage of the indication sequence, can be used to construct the coding matrix and the check matrix.

[0170] In some embodiments, there may be multiple stored indication sequences, which are used to indicate the positions of edges to be deleted or added in scenarios with different indicators or other application requirements. When the transmitter determines the edge connection relationship of the base matrix of the LDPC code matrix, it may perform edge deletion or edge addition operations according to the indication sequence that matches the current indicator.

[0171] For step 702, in some embodiments, when screening the first matrix from the circulant matrix set, the first matrix can be screened from the circulant matrix set based on at least one of the following information: code length; code rate; indication information; capability information of the receiving end receiving the first data; wherein the indication information is used to indicate the type of communication scenario.

[0172] In some embodiments, the code length, code rate and indication information can reflect the communication scenario between the sender and the receiver. The capability information is used to reflect the hardware capability of the receiver.

[0173] In this way, the present application is equivalent to selecting the first matrix from the circulant matrix library based on at least one of the communication scenario and the hardware capability.

[0174] In some embodiments, the communication scenario types include high throughput scenarios, ultra-reliable, low latency communication (URLLC), and low power consumption scenarios. The communication scenario types can be distinguished by indicators such as code length and code rate, or by specifying the scenario types by standards. The following briefly introduces the characteristics of various communication scenarios, and gives various examples of obtaining the first matrix by screening according to the communication scenario types.

[0175] Exemplarily, the requirements of high-throughput scenarios are peak rate scenarios with extremely high code rates and long code lengths, for example, the information length of long code lengths is 8000 to 16000. For the selection of the base matrix of the LDPC code matrix for such high-throughput scenarios, in one possible implementation, when the code rate is higher than the first preset threshold, the base matrix of the LDPC code matrix can be selected as BG1. For example, the first preset threshold here is 948 / 1024 or 22 / 24 or 5 / 6, etc. When the first matrix is ​​screened, the first matrix is ​​a matrix that can obtain BG1 through at least one operation of splicing, truncating and edge deletion. In one possible implementation, for high-throughput scenarios, the information bits corresponding to the puncturing columns also need to be sent, and the first matrix obtained by screening is a matrix that can be obtained by at least one operation of splicing, truncating and edge deletion to meet the requirements. In another possible implementation, when the code rate is within a certain range, the first matrix has multiple construction methods, supports the code rate range, and can be further screened according to factors such as complexity.

[0176] Exemplarily, the requirements of the URLLC scenario are extremely low code rate and medium-short code length, for example, the information length is within 2kb. For the selection of the base matrix of the LDPC code matrix of the URLLC scenario, in one possible implementation, when the code rate is lower than the second preset threshold, a specific construction method is used, and other construction methods are not used. For example, the second preset threshold is one of 1 / 3, 2 / 5, 1 / 5 and 1 / 6. When screening the first matrix, the first matrix can be used to obtain the base matrix of the LDPC code matrix of the specific construction method through at least one operation of splicing, truncation and edge deletion. In another possible implementation, multiple code rate thresholds can be set. If the current code rate is reduced to between two adjacent code rate thresholds, it is determined that the base matrix of the LDPC code matrix corresponding to the range of the two adjacent code rate thresholds needs to be used. When the first matrix is ​​screened, the first matrix can be used to obtain the base matrix of the LDPC code matrix corresponding to the range of the two adjacent code rate thresholds through at least one operation of splicing, truncation and edge deletion. In another possible implementation, the information bits corresponding to the punctured columns also need to be sent, and the first matrix obtained by screening is a matrix that meets the requirement and can be obtained through at least one operation of splicing, truncation and edge deletion.

[0177] In some embodiments, the capability information of the receiving end for receiving the first data includes an indication of the hardware capability level of the receiving end, and the hardware capability level is divided according to at least one of the following information: lifting factor; the number of rows and columns of the base matrix of the LDPC code matrix; uplink reception or downlink reception.

[0178] Exemplarily, for each hardware capability level in a plurality of hardware capability levels: each hardware capability level corresponds to a set of boosting factors, and different hardware capability levels correspond to different sets of boosting factors. Alternatively, each hardware capability level corresponds to a maximum boosting factor, and different hardware capability levels correspond to maximum boosting factors. Alternatively, each hardware capability level corresponds to a range of rows and columns of a base matrix of an LDPC code matrix, and different hardware capability levels correspond to different ranges of rows and columns of the base matrix of the LDPC code matrix. Alternatively, each hardware capability level corresponds to a maximum number of rows and columns of a base matrix of an LDPC code matrix, and different hardware capability levels correspond to different maximum number of rows and columns of the base matrix of the LDPC code matrix. For example, the present application may specify multiple hardware capability levels, such as level A, level B, and level C. From level A to level C, the maximum boosting factor supported by the receiving end gradually increases, or the number of boosting factors supported by the receiving end gradually increases, or the maximum number of rows and the maximum number of columns of the base matrix of the LDPC code matrix supported by the receiving end gradually increase.

[0179] Exemplarily, the method further includes: the transmitting end obtains capability information, the capability information including the number of rows and columns of the base matrix of the LDPC code matrix supported by the receiving end. When the number of rows and columns of the base matrix of the LDPC code matrix supported by the receiving end is within the range of the number of rows and columns of the base matrix of the LDPC code matrix corresponding to level B, the transmitting end determines that the capability level of the receiving end is level B. When the transmitting end obtains the first matrix by screening, the first matrix can be used to construct the base matrix of the LDPC code matrix corresponding to level B.

[0180] Alternatively, the capability information includes the maximum number of columns of the base matrix of the LDPC code matrix supported by the receiving end. When the maximum number of columns of the base matrix of the LDPC code matrix supported by the receiving end corresponds to the maximum number of columns of the base matrix of the LDPC code matrix indicated by level C, the transmitting end determines that the capability level of the receiving end is level C. When the transmitting end obtains the first matrix by screening, the first matrix can be used to construct the base matrix of the LDPC code matrix corresponding to level C.

[0181] In some embodiments, if the hardware capability level is divided according to whether the receiving end is uplink receiving or downlink receiving, it is equivalent to that in the present application, the transmitting end can screen the first matrix according to the uplink and downlink, and the uplink and downlink correspond to a hardware capability level respectively. Generally, the hardware capability level of the receiving end when uplink sending is higher than the hardware capability level of the receiving end when downlink sending.

[0182] For example, when the transmitting end is uplink transmission / the receiving end is downlink reception, the transmitting end is the UE, the receiving end is the base station, the hardware capability level of the base station is downlink reception, the UE is uplink transmission, the hardware capability level of the base station is higher than the hardware capability level of the UE, the lifting factor of the first matrix obtained by screening is higher, and the scale of the base matrix of the LDPC code matrix constructed by the first matrix is ​​larger. Alternatively, when the transmitting end is downlink transmission / the receiving end is uplink reception, the transmitting end is the base station, the receiving end is the UE, the hardware capability level of the UE is uplink reception, the base station is downlink transmission, the hardware capability level of the UE is lower than the hardware capability level of the base station, the lifting factor of the first matrix obtained by screening is smaller, and the scale of the base matrix of the LDPC code matrix constructed by the first matrix is ​​smaller.

[0183] After introducing the above information for filtering the first matrix, the following describes how to filter and obtain the first matrix in combination with the communication scenario type and the filtering principle.

[0184] In some embodiments, for high throughput scenarios, the goal of selecting the first matrix is ​​to achieve higher hardware utilization, for example, the hardware utilization index is the degree of parallelism or the number of non-zero base matrices of the LDPC code matrix, etc. In this way, the first matrix can be selected with characteristics such as the minimum number of QC blocks of the base matrix to achieve the ultimate performance and fast convergence.

[0185] In some embodiments, for high throughput scenarios, the screening principle for screening the first matrix from the circulant matrix library includes a first principle, a second principle, and a third principle;

[0186] Among them, the first principle is to select a first set from the circulant matrix library, and the total number of columns of the base matrix of the LDPC code matrix corresponding to a single circulant matrix or a combination of multiple different circulant matrices in the first set is less than or equal to the number of columns of the base matrix of the LDPC code matrix supported by the receiving end;

[0187] The second principle is to select the second set from the first set, and a first ratio of a lifting factor of a single circulant matrix or a combination of multiple different circulant matrices in the second set to a lifting factor supported by the receiving end is less than or equal to a preset threshold;

[0188] If the number of matrices satisfying the second principle is 1, the matrix satisfying the second principle is the first matrix;

[0189] If there are multiple matrices that satisfy the second principle, the third principle is to sort the first reference values ​​of the base matrices of the LDPC code matrices corresponding to the matrices in the second set by size, and take the matrix with the smallest first reference value as the first matrix; wherein the first reference value is the number of elements that are 1 in the base matrix of the LDPC code matrix corresponding to the matrices in the second set, or the product of the number of elements that are 1 in the base matrix of the LDPC code matrix corresponding to the matrices in the second set and the second ratio, and the second ratio is the value obtained by rounding up the first ratio.

[0190] In combination with the above screening principles, the specific process of step 702 is exemplarily described for high throughput scenarios. Fig.10 (a) in FIG. 1 shows a schematic diagram of a process of screening a first matrix in a high throughput scenario, including the following process.

[0191] 7021. The sender obtains the capability information of the receiver, which includes the maximum boost factor Z supported by the receiver. max The maximum number of columns n of the base matrix of the supported LDPC code matrix max .

[0192] 7022. The transmitting end determines, according to the number K of information bits to be encoded, a lifting factor Z corresponding to each circulant matrix in the circulant matrix set and each circulant matrix combination. i The total number of columns n of the basis matrix of the LDPC code matrix i .

[0193] 7023. The transmitter calculates the total number of columns n of the base matrix of the LDPC code matrix corresponding to each circulant matrix and each circulant matrix combination. i The maximum number of columns n of the base matrix of the LDPC code matrix supported by the receiver maxCompare and select the first set, the total number of columns n of the base matrix of the LDPC code matrix corresponding to the circulant matrix or circulant matrix combination in the first set i Less than the maximum number of columns n of the base matrix of the LDPC code matrix supported by the receiver max .

[0194] This is equivalent to using the above-mentioned first principle to screen the first set.

[0195] 7024. The transmitting end increases the lifting factor Z of each circulant matrix and / or circulant matrix combination in the first set by i With the maximum lifting factor Z max For comparison, according to the first ratio δ i =Z i / Z max The first set is screened to obtain a second set.

[0196] Exemplarily, the transmitting end may select the first ratio δ from the first set i ≤1 circulant matrix / circulant matrix combination, if the first set has the first ratio δ i Circulant matrices / circulant matrix combinations ≤ 1, the first ratio δ in the first set i Circulant matrices / circulant matrix combinations with a value of ≤1 belong to the second set, and the preset threshold in the second principle is 1. i Circulant matrices / circulant matrix combinations ≤ 1, try to select the first ratio δ from the first set i ≤2 circulant matrices / circulant matrix combinations, if the first set has the first ratio δ i ≤2 circulant matrices / circulant matrix combinations, the first ratio δ in the first set i Circulant matrices / circulant matrix combinations with a value less than or equal to 2 belong to the second set, and the preset threshold in the second principle is 2. i For circulant matrices / circulant matrix combinations with a value less than or equal to 2, continue to try to select the first ratio δ from the first set according to similar rules. i Circulant matrices / circulant matrix combinations ≤ 3, and so on.

[0197] 7025. If there are multiple matrices in the second set, the transmitting end sorts the first reference values ​​of the base matrices of the LDPC code matrices corresponding to the matrices in the second set, and uses the matrix with the smallest first reference value as the first matrix.

[0198] Exemplarily, the first reference value is the number of elements that are 1 in the base matrix of the LDPC code matrix corresponding to the matrix in the second set, or the number of elements that are 1 (non-zero number) in the base matrix of the LDPC code matrix corresponding to the matrix in the second set and the second ratio In the case of the product of, if there are multiple circulant matrices, or multiple circulant matrix combinations, or at least one circulant matrix and at least one circulant matrix combination in the second set, the transmitter may select the circulant matrix or circulant matrix combination with the smallest number of element 1 as the first matrix, or select the second ratio The smallest circulant matrix or combination of circulant matrices is used as the first matrix. In this way, for high throughput scenarios, when the first matrix is ​​screened and used to form the first LDPC code matrix, the number of QC blocks of the first LDPC code matrix is ​​small, and the complexity of data decoding at the receiving end is small.

[0199] It should be noted that the above embodiment is equivalent to first screening according to the first principle, and then further screening according to the second principle on the basis of the first principle screening, and finally screening according to the third principle to obtain the first matrix. In other embodiments, the present application may also first screen according to the second principle, and then further screen according to the first principle on the basis of the second principle screening, and finally use the third principle to screen to obtain the first matrix. Alternatively, the present application may also screen according to the first principle and the second principle to obtain the first matrix, for example, it may be based on the first principle screening and then use the second principle to screen to obtain the first matrix, or it may be based on the second principle screening and then use the first principle to screen to obtain the first matrix. If there are multiple circulant matrices / circulant matrix combinations that meet the first principle and the second principle screening according to the first principle and the second principle, any one of them may be selected as the first matrix.

[0200] In some embodiments, for URLLC scenarios, the goal of selecting the first matrix is ​​to reduce decoding delay and adapt to very low bit rate requirements. Since the number of information bits to be encoded in the URLLC scenario is small, it will not be affected by the maximum hardware capability improvement factor Z of the receiving end. max The influence of the first matrix can be mainly combined with the circulant matrix / circulant matrix in the circulant matrix set to generate the total number of columns n of the base matrix of the LDPC code matrix. i related.

[0201] For example, for the URLLC scenario, the specific process of step 702 is described as follows. Fig.10 (b) shows a schematic diagram of the process of screening the first matrix in a URLLC scenario, including the following process.

[0202] 7026. The transmitter obtains the capability information of the receiver, including the maximum number of columns n of the base matrix of the LDPC code matrix supported by the receiver. max .

[0203] 7027. The transmitting end determines the total number of columns n of the base matrix of the LDPC code matrix corresponding to each circulant matrix in the circulant matrix set and each circulant matrix combination according to the number K of information bits to be encoded. i .

[0204] 7028. The transmitter calculates the total number of columns n of the base matrix of the LDPC code matrix corresponding to the circulant matrix in the circulant matrix set and the circulant matrix combination. i Sort from small to large to obtain the third set. The total number of columns n of the base matrix of the LDPC code matrix corresponding to the circulant matrix or circulant matrix combination in the third set is i Minimum.

[0205] 7029. If there are multiple matrices in the third set, the sending end performs a lifting factor Z on the matrices in the third set. i Sort by size to get the fourth set, which includes the boost factor Z in the third set. i The largest matrix.

[0206] That is, if there are multiple circulant matrices with a total column number n in the third set i Minimum, or total number of columns n of multiple circulant matrix combinations i The minimum, or third set, includes at least one circulant matrix and at least one circulant matrix combination, whose total number of columns is n i The same and minimum, the matrix in the third set is lifted by the factor Z i Sort from largest to smallest and filter to get the fourth set.

[0207] 7030. If there are multiple matrices in the fourth set, the transmitting end sorts the second reference values ​​of the base matrices of the LDPC code matrices corresponding to the matrices in the fourth set, and uses the matrix with the smallest second reference value as the first matrix.

[0208] Exemplarily, when the second reference value is the number of 1 elements in the base matrix of the LDPC code matrix corresponding to the matrix in the fourth set, if there are multiple circulant matrices, or multiple circulant matrix combinations, or at least one circulant matrix and at least one circulant matrix combination in the fourth set, the transmitter may select the circulant matrix or circulant matrix combination with the smallest number of elements 1 as the first matrix. In this way, for the URLLC scenario, when the first matrix is ​​screened and used to form the first LDPC code matrix, the number of QC blocks of the first LDPC code matrix is ​​small, the complexity of data decoding at the receiving end is small, and the decoding delay is small.

[0209] certainly, Fig.10 In the scenario shown, the process of selecting the first matrix is ​​also applicable to the receiving end, that is, the receiving end can also be used to perform Fig.10 The method steps in .

[0210] An example is given below to exemplarily analyze the relationship between the base matrix for constructing the LDPC code matrix and the requirements of the communication scenario.

[0211] like Fig.11 The figure shows a comparison diagram of base matrices of LDPC code matrices constructed using two different circulant matrices.

[0212] refer to Fig.11 The circulant matrix set includes circulant matrix 1 and circulant matrix 2. According to the basic concatenation method, five circulant matrices 1 are concatenated to obtain the base matrix 110 of the LDPC code matrix. Fig.11 As shown in (a), the base matrix 111 of the LDPC code matrix obtained by splicing five circulant matrices 2 can be obtained as follows Fig.11 As shown in (b) in .

[0213] Among them, the characteristics of the circulant matrix 1 are as follows: the lifting factor is Z c ; The hardware parallelism at the receiving end is Z c In the case of , the decoding delay of each circulant permutation matrix (CPM) block (block of element 1) is 1 unit time; the decoding delay of one round of iteration is 75 unit time (the number of element 1 in the base matrix 110 is 75).

[0214] The characteristics of the circulant matrix 2 are as follows: The lifting factor is 5 / 4Z c ; The hardware parallelism at the receiving end is Z c In this case, the decoding delay of each CPM block is 2 unit times; the decoding delay of one round of iteration is 60×2=120 unit times (the number of elements 1 in the base matrix 111 is 60).

[0215] It can be seen that when the base matrix of the LDPC code matrix is ​​constructed by circulant matrix 1 and circulant matrix 2, the degree distribution of the base matrix is ​​consistent, and the decoding threshold is also consistent. Therefore, other indicators can be compared, such as complexity and delay. Among them, the decoding delay of circulant matrix 1 is less than the decoding delay of circulant matrix 2, so the decoding complexity and decoding delay of the base matrix of the LDPC code matrix constructed by circulant matrix 1 are small when used for decoding. In this way, the present application can construct the base matrix of the LDPC code matrix by screening circulant matrices or circulant matrix combinations in the circulant matrix set, instead of using a fixed base matrix of the LDPC code matrix for encoding, and can improve the hardware utilization of the receiving end, reduce decoding delay and decoding complexity, etc. for different scenarios or different hardware capabilities, and improve the encoding and decoding performance of the LDPC code.

[0216] In addition, it has been pointed out above that the transmitter can obtain a submatrix of the base matrix of the first LDPC code matrix by performing at least one of edge deletion and edge connection operations on the spliced ​​matrix, that is, the submatrix can be used to replace a certain matrix area of ​​the base matrix of the existing LDPC code matrix. In some embodiments, the embodiment of the present application performs a splicing operation on the first matrix obtained by screening, or performs operations such as truncation, splicing and edge deletion to obtain a matrix that can be used as the core matrix in BG1 or BG2 in NR. Among them, the core matrix can be understood to refer to the following area in the LDPC code check matrix: the columns are information columns and core check columns, and the rows are rows corresponding to the core check.

[0217] In some embodiments, the core matrix here is a high code rate region in BG1 or BG2.

[0218] Exemplarily, assume that the first matrix is ​​circulant matrix 2, the dimension size m corresponding to circulant matrix 2 is 4, and the polynomial g(x)=g0+g1x+…+g t x t Satisfies the following conditions: k∈{0,1,2,3}, i≡k(mod 4), so g i =0, g1=1, g2=1, g3=1. Fig.12 A schematic diagram of a process for obtaining a core matrix in BG2 based on the first matrix. Fig.12 (a) in FIG. 1 shows a schematic diagram of a matrix after splicing based on the first matrix. Fig.12 (b) in FIG. 1 shows a method of performing column-wise truncation of the concatenated matrix, and obtaining a concatenated matrix of 3.5 circulant matrices 2. Then, Fig.12 The matrix shown in (b) is deleted to obtain Fig.12 The matrix shown in (c) in 12 can be used as the core matrix of BG2, and can also be used for Fig.12 The matrix shown in (c) is further transformed twice to obtain Fig.12 The core matrix of BG2 shown in (d) in FIG. 1 . For example, the core matrix of BG2 finally obtained is a high-code rate region of BG2, or a matrix region corresponding to a certain code rate in BG2.

[0219] In some embodiments, Fig.12 When the matrix shown in (b) in FIG. 1 is edge-deleted, it can be combined with multiple indicator sequences to obtain multiple core matrices, and the multiple core matrices can be used as core matrices of other LDPC code matrices. For example, the core matrix of BG2 and the core matrix of BG1 can be obtained by two indicator sequences.

[0220] In some embodiments, Fig.12In the case where the core matrix shown is a matrix with 4 rows and n columns, the core matrix can be regarded as a single cyclic block of n×n with a density of 3 / 4 (the number of edges occupies 3 / 4 of the overall matrix size) obtained by row interception, or as a single cyclic block of n / 4 4×4 obtained by row splicing. In other words, there are many ways to obtain the cyclic matrix and construction of the core matrix.

[0221] The above describes how to construct the base matrix or submatrix of the first LDPC code matrix based on the selected first matrix. On the basis of obtaining the base matrix or submatrix of the first LDPC code matrix, the base matrix or submatrix of the first LDPC code matrix can be further connected to obtain the lifting matrix Z corresponding to each lifting factor in the first LDPC code matrix. c ×Z c , thereby obtaining a first LDPC code matrix constructed based on the first matrix or a submatrix of the first LDPC code matrix.

[0222] Therefore, after step 704, if Figure 7 As shown, the following process is also included.

[0223] 705. The transmitter connects the base matrix of the first LDPC code matrix to obtain the first LDPC code matrix, or connects the submatrix of the base matrix of the first LDPC code matrix to obtain the submatrix of the first LDPC code matrix.

[0224] It should be understood that for each edge in the basis matrix, there is a corresponding shifting value of the lifting factor. c ×Z c When the identity matrix is ​​Z, the offset value corresponding to each edge needs to be adjusted. c ×Z c The unit matrix is ​​offset to obtain the Z corresponding to each edge c ×Z c matrix.

[0225] In some embodiments, the offset values ​​corresponding to the multiple edges in the base matrix of the first LDPC code matrix are obtained by circulating and shifting a preset one-dimensional vector, and the shift direction is consistent with the vector offset direction of the first matrix. The dimension of the one-dimensional vector is the same as the number of columns of the base matrix of the first LDPC code matrix.

[0226] For example, Fig.13 (a) in FIG. 1 shows a schematic diagram of a base matrix of a first LDPC code matrix, which is obtained by concatenating 6 identical circulant matrices, such as Fig.13(b) in the figure shows a schematic diagram of the offset value matrix of the base matrix of the first LDPC code matrix. Among them, the dimension size of the one-dimensional vector (the length of the one-dimensional vector or the number of columns of the offset value matrix) is n=24, the one-dimensional vector is A1=(-1,0,5,17,-1,0,6,19,-1,0,1,9,-1,0,2,11,-1,0,3,13,-1,0,4,15), and the vector A1 corresponds to the offset value of the first row of the base matrix of the first LDPC code matrix. The offset value of the i-th row can be obtained by looping and shifting the offset value of the i-1-th row, where i is an integer greater than or equal to 1. That is, the offset values ​​of the first row are shifted right by one unit and looped one by one, or in other words, the vector A i By vector A i-1 By looping and shifting, we get. Moreover, A i The element of (j) is A i-1 (j-1), j-1>0. When j-1=0, A i (j) = A i-1 (n). This can be understood as the vector A of the i-th row i The j-th element of is the j-1-th element of the i-1-th row. When the j-th element moves out of the offset value matrix, the j-th element is cyclically shifted to the 1st element.

[0227] Among them, the cyclic shift direction of the offset value matrix is ​​consistent with the cyclic shift direction of the base matrix of the first LDPC code matrix. For example, the position of element 0 in each row of the base matrix is ​​shifted to the right with respect to the position of element 0 in the previous row, and accordingly, the offset value in each row of the offset value matrix is ​​also shifted to the right with respect to the position of the offset value in the previous row. Similarly, if the position of element 0 in each row of the base matrix is ​​shifted to the left with respect to the position of element 0 in the previous row, accordingly, the offset value in each row of the offset value matrix is ​​also shifted to the left with respect to the position of the offset value in the previous row.

[0228] In some embodiments, the one-dimensional vector includes a first element, where the first element is used to indicate that an element corresponding to the first element in a base matrix of the first LDPC code matrix is ​​0.

[0229] For example, the first element is -1, such as Fig.13 As shown, the position with an offset value of -1 corresponds to element 0 in the base matrix of the first LDPC code matrix.

[0230] It should be understood that the one-dimensional vector may not include the first element, and the offset value matrix only stores the offset value corresponding to the position of element 1 in the base matrix of the first LDPC code matrix. That is, the one-dimensional vector A1 can also be expressed as A1=(0,5,17,0,6,19,0,1,9,0,2,11,0,3,13,0,4,15).

[0231] In some embodiments, other elements in the one-dimensional vector A1 except the first element may be determined by a preset calculation rule.

[0232] In some embodiments, the second element other than the first element in the one-dimensional vector is calculated based on the element position j in the circulant matrix corresponding to the second element.

[0233] Alternatively, the second element is calculated by the matrix position p of the circulant matrix corresponding to the second element in the base matrix of the first LDPC code matrix and the element position j in the circulant matrix corresponding to the second element.

[0234] Alternatively, the second element is calculated by the matrix position p of the circulant matrix corresponding to the second element in the base matrix of the first LDPC code matrix, the element position j corresponding to the second element in the circulant matrix, and the dimension n of the one-dimensional vector A1.

[0235] Exemplarily, the offset value corresponding to the jth element of the pth cyclic unit in the base matrix of the first LDPC code matrix is ​​recorded as a p,j In the case of p,j It can be calculated according to the following formula (1).

[0236]

[0237] Among them, the modulo part is related to j, and the calculation method is segmented according to the modulo j. The content of each calculation segment is mainly related to p and n.

[0238] In some embodiments, the second element other than the first element in the one-dimensional vector is determined by the column number q of the second element in the offset value matrix. Alternatively, the second element other than the first element in the one-dimensional vector is determined by the column number q of the second element in the offset value matrix and the number of columns n of the offset value matrix.

[0239] For example, the second element in a one-dimensional vector other than the first element is denoted as a q In the case of q It can be calculated according to the following formula (2).

[0240]

[0241] That is, the modulo part is related to q, and the calculation method is segmented according to the modulo q, and the content of each calculation segment is mainly related to q.

[0242] It should be understood that although the above examples of the offset value matrix are related to the horizontal splicing of the circulant matrix, the present application may also have corresponding offset value matrices for other splicing methods. For example, for vertical splicing, the vector of the offset value matrix is ​​a one-dimensional vector in columns, and the one-dimensional vector is circulated and shifted in columns to obtain the offset value matrix.

[0243] The above example of the implementation of the offset value matrix is ​​determined by a one-dimensional vector having the same number of columns as the base matrix of the first LDPC code matrix. In some embodiments, the offset values ​​corresponding to the multiple edges in the base matrix of the first LDPC code matrix are obtained by respectively circulating and shifting multiple different one-dimensional vectors, and the shift direction is consistent with the vector shift direction of the first matrix. Each one-dimensional vector in the multiple different one-dimensional vectors is used to generate an offset value of a circulant matrix of the first LDPC code matrix, and the dimension size of each one-dimensional vector is the same as the number of columns of the base matrix of a single circulant matrix of the first LDPC code matrix.

[0244] That is, the offset value matrix can be realized by looping and shifting a plurality of one-dimensional vectors.

[0245] like Fig.14 A schematic diagram of an offset value matrix corresponding to a base matrix of a first LDPC code matrix is ​​shown. Assume that the base matrix of the first LDPC code matrix is ​​obtained by concatenating 6 identical circulant matrices, or by combining and concatenating multiple circulant matrices, and the dimension of a single circulant matrix is ​​4. The multiple one-dimensional vectors used to generate the offset value matrix are: A1 = (-1, 0, 0, 6), A2 = (-1, 0, 1, 8), A3 = (-1, 0, 2, 10), A4 = (-1, 0, 3, 12), A5 = (-1, 0, 4, 14), A6 = (-1, 0, 5, 16). Among them, A1 corresponds to the offset value of the first row of the first circulant matrix of the base matrix of the first LDPC code matrix, and the offset value of the i-th row of the first circulant matrix is ​​obtained by circulating and shifting the offset value of the i-1-th row, that is, vector A 1i Move one unit to the right and repeat the cycle, that is, A 1i By A 1(i-1) Perform cyclic shift to obtain, where A 1i Represents the i-th row element of the offset value matrix corresponding to vector A1, A 1(i-1) Represents the i-1th row element of the offset value submatrix corresponding to vector A1. 1i (j) The element is A 1(i-1) (j-1), j-1>0, and when j-1=0, A 1i (j) = A (i-1) (4) The process of obtaining the offset value submatrix of the remaining vectors A2 to A6 is similar to the process of obtaining the offset value submatrix of the vector A1, which will not be repeated here.

[0246] In other words, the offset value matrix is ​​obtained by segmenting a one-dimensional vector of length n, and the segmentation is based on different circulant matrices. Fig.14 In the example, n=24, the number of segments is 6, corresponding to 6 one-dimensional vectors.

[0247] In some embodiments, in the method of obtaining the offset value matrix from multiple one-dimensional vectors, the offset value sub-matrix corresponding to each one-dimensional vector can also be obtained according to a calculation formula similar to the above formula (1) or formula (2).

[0248] In addition, in the present application, certain conditions can be set for the polynomial g(x) and dimension size m of the base matrix used to construct the first LDPC code matrix so that the receiving end can perform parallel decoding to reduce the delay of the receiving end during the LDPC code decoding process.

[0249] Thus, in some embodiments, the positions where the elements in the polynomial corresponding to a single circulant matrix are 1 satisfy the following condition 1: μ+1 -h μ ≥a0+μ,(μ=0,…,k-1), where μ ranges from (0, 1,…, k-1), k is an integer greater than or equal to 1, and h μ+1 Indicates the position where the μ+1th element in the polynomial is 1, h μ represents the position where the μth element in the polynomial is 1, and a0 is the number of adjacent orthogonal rows in the base matrix of the first LDPC code matrix. μ+1 -h μ =a0+μ.

[0250] The dimension size m of the basis matrix of the circulant matrix satisfies the following condition 2: Wherein, m represents the dimension size of the basis matrix of the circulant matrix. For example,

[0251] In this way, when mh k When +h0≥a0+k, adjacent a0 rows of the base matrix of the first LDPC code matrix are completely orthogonal (counting starts from the first row of the base matrix of the first LDPC code matrix). For the receiving end / decoding end, adjacent a0 rows can be decoded in parallel, and the decoding delay is low.

[0252] For example, Fig.15The figure shows a schematic diagram of a base matrix of a first LDPC code matrix. Assume that the base matrix of the first LDPC code matrix is ​​obtained by horizontally splicing the base matrices of the circulant matrix (g1(x), m1) and the circulant matrix (g2(x), m1). Among them, in the circulant matrix (g1(x), m1), k = 4, the position of element 1 p = [1, 6, 12, 19], m1 = 26, the number of columns of the base matrix of the first LDPC code matrix N = 52, and when a0 = 5, starting from the first row of the base matrix of the first LDPC code matrix, every 5 rows can be decoded in parallel, and the receiving end has a low delay in the decoding process of the LDPC code.

[0253] Two examples of simulation results of constructing a first LDPC code matrix using the embodiments of the present application are given below.

[0254] In some scenarios, a fine-grained simulation is performed on the base matrix of the first LDPC code matrix with a scale of 4 rows and 16 to 28 columns. In order to cover the BG2 and BG1 ranges of 5G, the number of punctured columns of the base matrix of the first LDPC code matrix is ​​set to 2, and the corresponding code rates are 11 / 12, 12 / 13, ..., 24 / 26. The decoding threshold calculation results are as follows: Fig.16 The simulation results shown in the example are shown in the figure. Fig.16 The horizontal axis represents the code rate, and the vertical axis represents the decoding threshold. Each circle line "О" represents a sub-matrix (matrix region) of the base matrix of the first LDPC code matrix, and the circulant matrix of the base matrix of the first LDPC code matrix is ​​generated as follows: Fig.11 The circulant matrix 2 shown in , and the number of punctured columns is the 1st column and the 2nd column. The mark "×" indicates that when the first LDPC code matrix is ​​applied to the core matrix of BG1, the 4×26 matrix area of ​​the first four core rows of BG1 is used for encoding and decoding, and the mark "+" indicates that when the first LDPC code matrix is ​​applied to the core matrix of BG2, the 4×14 matrix area of ​​the first four core rows of BG2 is used for encoding and decoding. It can be seen from the simulation results that in the scheme of the embodiment of the present application, the decoding thresholds of each fine-grained code rate are excellent.

[0255] In some scenarios, Fig.11 The two circulant matrices shown in FIG. 1 and 2 respectively construct the base matrices of the first LDPC code matrix for performance simulation. Fig.17(a) in the figure shows a schematic diagram showing that the performance of two circulant matrices is basically the same under various numbers of iterations when the number of iterations is aligned during decoding, wherein the horizontal axis represents the equivalent iteration time, and the vertical axis represents the signal to noise ratio (SNR) when the block error rate (BLER) is 1e-2. Therefore, the base matrices of the first LDPC code matrix constructed by circulant matrix 1 and circulant matrix 2 respectively have exactly the same row and column degree distribution, the same decoding threshold, and the SNR of the first LDPC code matrix constructed by circulant matrix 1 is basically the same as the SNR of the first LDPC code matrix constructed by circulant matrix 2. However, when the first LDPC code matrix is ​​constructed using circulant matrix 1, the delay for one round of iteration at the receiving end will be lower. Fig.17 (b) in the figure shows a schematic diagram of the inconsistent performance of the two circulant matrices under various numbers of iterations when the number of iterations is aligned during decoding. It can be seen that in the case of aligned decoding delay, the SNR of the first LDPC code matrix constructed by circulant matrix 1 is lower than the SNR of the first LDPC code matrix constructed by circulant matrix 2, and the decoding performance of circulant matrix 1 is better than the decoding performance of circulant matrix 2. That is, under various numbers of iterations, the gain increases as the number of iterations decreases. Therefore, in high-throughput scenarios (few decoding iterations) and URLLC scenarios (low latency requirements), the method of constructing the base matrix of the first LDPC code matrix by screening circulant matrices in the present application has better performance and less complexity.

[0256] It is understandable that, in order to implement the functions in the above-mentioned embodiments, the transmitting end and the receiving end 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 units and method steps of each example described in the embodiments disclosed in this application, the present application 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 scenario and design constraints of the technical solution.

[0257] Fig.18 and Fig.19 The following is a schematic diagram of the structure of possible communication devices provided in the embodiments of the present application. These communication devices can be used to implement the functions of the transmitting end or the receiving end in the above method embodiments, and thus can also achieve the beneficial effects possessed by the above method embodiments. In the embodiments of the present application, the communication device can be as follows: Figure 1 The terminal 120 shown may also be Figure 1 The base station 110 shown may also be a module (such as a chip) applied to a terminal or a base station.

[0258] like Fig.18 As shown, the communication device 180 includes a processing unit 1810 and a transceiver unit 1820. The communication device 180 is used to implement the above Figure 6 , Figure 7 , Fig.10 The functions of the sending end or the receiving end in the method embodiment shown in FIG.

[0259] When the communication device 180 is used to implement Figure 6 , Figure 7 , Fig.10 The functions of the transmitting end in the method embodiment shown are: the processing unit 1810 is used to obtain information bits to be encoded, screen the first matrix, and construct the first LDPC code matrix according to the first matrix. The processing unit 1810 can also be used to encode the information bits according to the first LDPC code matrix to obtain the first data. The transceiver unit 1820 is used to send the first data;

[0260] When the communication device 180 is used to implement Figure 6 , Figure 7 , Fig.10 The functions of the receiving end in the method embodiment shown are: the transceiver unit 1820 is used to receive the second data; the processing unit 1810 is used to screen the first matrix, construct the first LDPC code matrix according to the first matrix, and decode the second data according to the first LDPC code matrix to obtain information bits.

[0261] For more detailed description of the processing unit 1810 and the transceiver unit 1820, please refer to Figure 6 , Figure 7 , Fig.10 The method embodiment shown is described in detail.

[0262] like Fig.19 As shown, the communication device 190 includes a processor 1910 and an interface circuit 1920. The processor 1910 and the interface circuit 1920 are coupled to each other. It is understood that the interface circuit 1920 can be a transceiver or an input-output interface. Optionally, the communication device 190 may also include a memory 1930 for storing instructions executed by the processor 1910 or storing input data required by the processor 1910 to execute instructions or storing data generated after the processor 1910 executes instructions.

[0263] When the communication device 190 is used to implement Figure 6 , Figure 7 , Fig.10 When the method is shown, the processor 1910 is used to implement the functions of the above-mentioned processing unit 1810, and the interface circuit 1920 is used to implement the functions of the above-mentioned transceiver unit 1820.

[0264] When the communication device is a chip applied to the transmitting end, the chip of the transmitting end implements the function of the transmitting end in the above method embodiment. The chip of the transmitting end sends information to the receiving end, which can be understood as the information is first sent to other modules in the transmitting end (such as a radio frequency module or an antenna), and then sent to the receiving end by these modules.

[0265] When the communication device is a chip applied to the receiving end, the chip of the receiving end implements the function of the receiving end in the above method embodiment. The chip of the receiving end receives information from the sending end, which can be understood as the information is first received by other modules in the receiving end (such as a radio frequency module or an antenna), and then sent to the chip of the receiving end by these modules.

[0266] In the present application, when entity A sends information to entity B, it can be that A sends it directly to B, or that A sends it to B indirectly through other entities. Similarly, when entity B receives information from entity A, it can be that entity B directly receives the information sent by entity A, or that entity B indirectly receives the information sent by entity A through other entities. Entities A and B here can be RAN nodes or terminals, or modules inside the RAN nodes or terminals. The sending and receiving of information can be information interaction between a RAN node and a terminal, for example, information interaction between a base station and a terminal; the sending and receiving of information can also be information interaction between two RAN nodes, for example, information interaction between a CU and a DU; the sending and receiving of information can also be information interaction between different modules inside a device, for example, information interaction between a terminal chip and other modules of the terminal, or information interaction between a base station chip and other modules in the base station.

[0267] It is understood that the processor in the embodiments of the present application may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.

[0268] The method steps in the embodiments of the present application can be implemented in hardware or in software instructions that can be executed by a processor. The software instructions can be composed of corresponding software modules, and the software modules can be stored in random access memory, flash memory, read-only memory, programmable read-only memory, erasable programmable read-only memory, electrically erasable programmable read-only memory, registers, hard disks, mobile hard disks, compact disc read-only memory (compact disc read-only memory, CD-ROM) or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. The storage medium can also be a component of the processor. The processor and the storage medium can be located in an ASIC. In addition, the ASIC can be located in a base station or a terminal. The processor and the storage medium can also be present in a base station or a terminal as discrete components.

[0269] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented by software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instruction is loaded and executed on a computer, the process or function described in the embodiment of the present application is executed in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device or other programmable device. The computer program or instruction may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer program or instruction may be transmitted from one website site, computer, server or data center to another website site, computer, server or data center by wired or wireless means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server, data center, etc. that integrates one or more available media. The available medium may be a magnetic medium, for example, a floppy disk, a hard disk, a tape; it may also be an optical medium, for example, a digital video disc; it may also be a semiconductor medium, for example, a solid-state hard disk. The computer-readable storage medium may be a volatile or nonvolatile storage medium, or may include both volatile and nonvolatile types of storage media.

[0270] In the various embodiments of the present application, unless otherwise specified or provided for in any logical conflict, the terms and / or descriptions between the different embodiments are consistent and may be referenced to each other, and the technical features in the different embodiments may be combined to form new embodiments according to their inherent logical relationships.

[0271] In this application, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. In the text description of this application, the character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "Including at least one of A, B and C" can mean: including A; including B; including C; including A and B; including A and C; including B and C; including A, B and C.

[0272] It is understood that the various numbers involved in the embodiments of the present application are only for the convenience of description and are not used to limit the scope of the embodiments of the present application. The size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic.

Claims

1. A coding method, characterized in that: Obtaining information bits to be encoded; Acquire a first low-density parity-check (LDPC) code matrix, where the first LDPC code matrix is ​​generated according to a first matrix, where the first matrix includes a circulant matrix or a plurality of different circulant matrices, and the one circulant matrix or the plurality of different circulant matrices are matrices in a circulant matrix set; Encode the information bits according to the first LDPC code matrix to obtain first data; The first data is sent.

2. A decoding method, characterized in that: receiving second data; Acquire a first low-density parity-check (LDPC) code matrix, where the first LDPC code matrix is ​​generated according to a first matrix, where the first matrix includes a circulant matrix or a plurality of different circulant matrices, and the one circulant matrix or the plurality of different circulant matrices are matrices in a circulant matrix set; The second data is decoded according to the first LDPC code matrix to obtain information bits.

3. The method according to claim 1 or 2, characterized in that: The acquiring of a first low-density parity check (LDPC) code matrix includes: receiving indication information, where the indication information is used to indicate the first LDPC code matrix.

4. The method according to any one of claims 1 to 3, characterized in that: The base matrix of the circulant matrix is ​​obtained by circulating and shifting a preset polynomial and a vector determined by the dimension size of the base matrix of the circulant matrix.

5. The method according to any one of claims 1 to 4, characterized in that: The base matrix of the first LDPC code matrix is ​​obtained by concatenating the base matrix of each of the one circulant matrix or the multiple different circulant matrices; Alternatively, the basis matrix of the first LDPC code matrix is ​​obtained by concatenating the basis matrices of the one circulant matrix or each of the multiple different circulant matrices, and performing at least one of truncation, edge deletion and edge connection on the basis matrix of at least one circulant matrix of the one circulant matrix or the multiple different circulant matrices.

6. The method according to claim 5, characterized in that The interception operation includes at least one of the following operations: Continuous row capture; Continuous column capture; Non-continuous row capture; Non-continuous column capture.

7. The method according to claim 5 or 6, characterized in that: The edge deletion operation includes: Acquire an indication sequence, where the indication sequence is used to indicate that when the first indicator is within a target indicator interval, an edge deletion operation is performed on a first portion of all edges of the matrix indicated by the indication sequence; The indication sequence includes at least one of the following information: an indication of the position of the first portion of edges; Position indication of a second portion of edges among all edges of the first matrix except the first portion of edges.

8. The method according to claim 5 or 6, characterized in that: The edge connection operation includes: Acquire an indication sequence, where the indication sequence is used to indicate that when the first indicator is within a target indicator interval, an edge connection operation is performed on a first portion of all edges of the matrix indicated by the indication sequence; The indication sequence includes a position indication of the first portion of edges and a lifting factor corresponding to the first portion of edges.

9. The method according to claim 7 or 8, characterized in that: The first indicator is at least one of the following information: Code rate; number of check bit columns; number of check matrix rows; number of information bits.

10. The method according to any one of claims 1 to 9, characterized in that: The first matrix is ​​obtained by screening from the set of circulant matrices according to at least one of the following information: Code length; code rate; indication information; receiving end capability information; The indication information is used to indicate the type of communication scenario.

11. The method according to claim 10, characterized in that The capability information includes an indication of a hardware capability level of the receiving end, where the hardware capability level is divided according to at least one of the following information: Lifting factor; number of rows and columns of the basis matrix of the LDPC code matrix; uplink reception or downlink reception.

12. The method according to claim 10 or 11, characterized in that: The method further comprises: Capability information is obtained, where the capability information includes the number of rows and columns of a base matrix of an LDPC code matrix supported by the receiving end.

13. The method according to any one of claims 1 to 12, characterized in that: The screening principle for screening the first matrix from the set of circulant matrices includes a first principle, a second principle and a third principle; The first principle is to select a first set from the set of circulant matrices, wherein the total number of columns of a base matrix of an LDPC code matrix corresponding to a single circulant matrix or a combination of multiple different circulant matrices in the first set is less than or equal to the number of columns of a base matrix of an LDPC code matrix supported by the receiving end; The second principle is to select a second set from the first set, wherein a first ratio of a lifting factor of a single circulant matrix or a combination of multiple different circulant matrices in the second set to a lifting factor supported by the receiving end is less than or equal to a preset threshold; If the number of matrices satisfying the second principle is 1, the matrix satisfying the second principle is the first matrix; If there are multiple matrices that satisfy the second principle, the third principle is to sort the first reference values ​​of the base matrix of the LDPC code matrix corresponding to the matrices in the second set by size, and take the matrix with the smallest first reference value as the first matrix; wherein the first reference value is the number of elements that are 1 in the base matrix of the LDPC code matrix corresponding to the matrices in the second set, or the product of the number of elements that are 1 in the base matrix of the LDPC code matrix corresponding to the matrices in the second set and a second ratio, and the second ratio is the value obtained by rounding up the first ratio.

14. The method according to any one of claims 1 to 13, characterized in that: The offset values ​​respectively corresponding to the multiple edges in the base matrix of the first LDPC code matrix are obtained by circulating and shifting a preset one-dimensional vector, and the shift direction is consistent with the vector shift direction of the first matrix; The dimension of the one-dimensional vector is the same as the number of columns of the base matrix of the first LDPC code matrix.

15. The method according to any one of claims 1 to 13, characterized in that: The offset values ​​corresponding to the multiple edges in the base matrix of the first LDPC code matrix are obtained by respectively circulating and shifting multiple different one-dimensional vectors, and the shift direction is consistent with the vector shift direction of the first matrix; Each of the multiple different one-dimensional vectors is used to generate an offset value of a circulant matrix of the first LDPC code matrix, and the dimension of each one-dimensional vector is the same as the number of base matrix columns of a single circulant matrix of the first LDPC code matrix.

16. The method according to claim 14 or 15, characterized in that The one-dimensional vector includes a first element, where the first element is used to indicate that an element corresponding to the first element in a base matrix of the first LDPC code matrix is ​​0.

17. The method according to any one of claims 14 to 16, characterized in that: The second element in the one-dimensional vector other than the first element is calculated by the element position corresponding to the second element in the circulant matrix; Or, the second element is calculated by the matrix position of the circulant matrix corresponding to the second element in the base matrix of the first LDPC code matrix and the element position of the second element in the circulant matrix; Or, the second element is calculated by the matrix position of the circulant matrix corresponding to the second element in the base matrix of the first LDPC code matrix, the element position of the second element in the circulant matrix, and the dimension size of the one-dimensional vector.

18. The method according to any one of claims 4 to 17, characterized in that: The positions where the elements in the polynomial are 1 satisfy the following condition 1: h μ+1 -h μ ≥a0+μ, (μ=0,…,k-1), where μ ranges from (0, 1,…, k-1, k is an integer greater than or equal to 1), h μ+1 represents the position where the μ+1th element in the polynomial is 1, h μ represents the position where the μth element in the polynomial is 1, and a0 is the number of adjacent orthogonal rows in the base matrix of the first LDPC code matrix; The dimension size of the basis matrix of the circulant matrix satisfies the following condition 2: Wherein, m represents the dimension size of the basis matrix of the circulant matrix.

19. A communication device, characterized in that: The method comprises a module for executing the method as claimed in any one of claims 1 to 18.

20. A communication device, characterized in that: The method comprises one or more processors configured to execute the method according to any one of claims 1 to 18.

21. 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 execute the method according to any one of claims 1 to 18.

22. A computer program product, characterized in that The method comprises computer instructions, which, when executed on a communication device, cause the communication device to execute the method according to any one of claims 1 to 18.

23. A chip, characterized in that: The chip stores computer-executable instructions, and when the computer-executable instructions are executed, the method described in any one of claims 1 to 18 is executed.

24. A communication system, characterized in that: The method comprises a first communication device and a second communication device, wherein the first communication device is used to execute the method according to any one of claims 1 or 3-18, and the second communication device is used to execute the method according to any one of claims 2-18.

Citation Information

Cited By

  • Encoding method and apparatus, and decoding method and apparatus

    WO2026051722A1