Communication method and apparatus
By improving the basis matrix, defining regions D and E, and optimizing the row and column weight distribution of LDPC codes, the problem of low decoding threshold is solved, thereby improving the decoding performance of the communication system and the reliability of channel transmission.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2026-01-13
- Publication Date
- 2026-07-30
AI Technical Summary
How can we improve the basis matrix to optimize the decoding threshold of LDPC codes, thereby enhancing the decoding performance of communication systems and the reliability of channel transmission?
By improving the base matrix, regions D and E are defined, where region D includes specific rows and columns of the base matrix and region E is a lower triangular matrix. This ensures that the row weight of row X is less than or equal to the first threshold and the column weight of column X is greater than 1. The row number and column number are kept consistent during the iterative decoding process to optimize encoding and decoding performance.
It improves the decoding performance of LDPC codes, reduces the bit error rate, and enhances the reliability and coding performance of communication systems, especially in cases with a large number of iterations or a low signal-to-noise ratio.
Smart Images

Figure CN2026072136_30072026_PF_FP_ABST
Abstract
Description
Communication methods and devices
[0001] This application claims priority to Chinese patent application No. 202510128232.3, filed with the State Intellectual Property Office of China on January 27, 2025, entitled "Communication Method and Apparatus", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communication technology, and in particular to communication methods and apparatus. Background Technology
[0003] Low-density parity-check (LDPC) codes are a class of linear block codes with sparse parity-check matrices, characterized by flexible structure and low decoding complexity. Because they employ a partially parallel iterative decoding algorithm, they achieve higher throughput than traditional Turbo codes. LDPC codes can be used as error-correcting codes in communication systems, thereby improving the reliability and power efficiency of channel transmission.
[0004] The transmitting device can perform LDPC encoding on the information bit sequence based on the basis matrix, and similarly, the receiving device can decode the information to be decoded based on the basis matrix. How to improve the basis matrix to achieve a better decoding threshold is a problem that urgently needs to be solved. Summary of the Invention
[0005] This application provides a communication method and apparatus that can improve the base matrix to achieve a better decoding threshold.
[0006] Firstly, this application provides a communication method that can be executed by a transmitting device. Unless otherwise specified, "transmitting device" in this application can refer to the transmitting device itself, a component within the transmitting device (e.g., a processor, chip, chip system, or integrated circuit), or a logic module or software capable of implementing all or part of the functions of the transmitting device. The method includes: the transmitting device performing LDPC encoding on an information bit sequence according to a base matrix to obtain a first sequence; and outputting the first sequence. The base matrix includes regions D and E. Region D includes the m-th row to the last row and columns 0 to (n-1) of the base matrix, and region E includes the m-th row to the last row and columns n to the last column of the base matrix. m and n are determined according to the maximum bit rate supported by the base matrix. The first region includes some or all of the rows in region D. There are X rows in the first region with a row weight less than or equal to a first threshold. Region E is a lower triangular matrix, and there are X columns in region E with a column weight greater than 1. The absolute value of the difference between the row number of the x-th row in the base matrix and the column number of the x-th column in the base matrix is the number of information columns in the base matrix, where x = 0, 1, ..., X-1, and X is a positive integer.
[0007] Based on the first aspect, the base matrix can include regions D and E. Compared to region E being an identity matrix, region E in this application can be a lower triangular matrix, which can optimize the decoding threshold and facilitate encoding. Region E can be used for hybrid automatic repeat request (HARQ) transmission. Furthermore, the first region can include some or all rows of region D. The row weight of X rows in the first region can be less than or equal to a first threshold, equivalent to at least X rows in region D having a row weight less than or equal to the first threshold. Simultaneously, the column weight of X columns in region E is greater than 1, and the column index of X columns in region E is the same as the row index of X rows in region D. This can improve the ultimate performance of encoding (e.g., reducing the bit error rate or performance loss when the number of iterations is large or the signal-to-noise ratio is low). It can also optimize the decoding threshold and improve the convergence performance of LDPC codes, thereby improving decoding performance (e.g., reducing the bit error rate).
[0008] Optionally, the row number of row X in area D is the same as the column number of column X in area E.
[0009] Secondly, this application provides a communication method that can be executed by a receiving device. Unless otherwise specified, "receiving device" in this application can refer to the receiving device itself, a component within the receiving device (e.g., a processor, chip, chip system, or integrated circuit), or a logic module or software capable of implementing all or part of the functions of the receiving device. The method includes: the receiving device receiving information to be decoded; and decoding the information to be decoded according to a basis matrix to obtain a decoding result. The base matrix includes regions D and E. Region D includes the m-th row to the last row and columns 0 to (n-1) of the base matrix, and region E includes the m-th row to the last row and columns n to the last column of the base matrix. m and n are determined according to the maximum bit rate supported by the base matrix. The first region includes some or all of the rows in region D. There are X rows in the first region with a row weight less than or equal to a first threshold. Region E is a lower triangular matrix, and there are X columns in region E with a column weight greater than 1. The absolute value of the difference between the row number of the x-th row in the base matrix and the column number of the x-th column in the base matrix is the number of information columns in the base matrix, where x = 0, 1, ..., X-1, and X is a positive integer.
[0010] Based on the second aspect, the base matrix can include regions D and E. Compared to region E being an identity matrix, region E in this application can be a lower triangular matrix, which can result in a better decoding threshold and easier encoding; region E can be used for HARQ transmission. Furthermore, the first region can include some or all rows of region D. The row weight of X rows in the first region can be less than or equal to a first threshold, equivalent to at least X rows in region D having a row weight less than or equal to the first threshold. Simultaneously, region E has X columns with a column weight greater than 1, and the column indices of the X columns in region E are the same as the row indices of the X rows in region D. This can improve the extreme performance of encoding (e.g., reducing the bit error rate or performance loss when there are many iteration rounds or a low signal-to-noise ratio); it can also result in a better decoding threshold and better convergence performance of the LDPC code, thereby improving decoding performance (e.g., reducing the bit error rate).
[0011] Combining the first and second aspects, one possible implementation is that the first threshold is predefined; or, the first threshold is determined based on the row weight of region D; or, the first threshold is determined based on the row weight of region 1.
[0012] Based on this possible implementation, if the first threshold is predefined, the sending or receiving device can directly determine the first threshold, which can reduce the workload of the device and simplify the implementation. If the first threshold is determined based on the row weight of region D (or the first region), the sending or receiving device can determine the corresponding first threshold according to different communication scenarios, which can make the first threshold better meet communication requirements, thereby improving the reliability of communication; at the same time, it can improve the flexibility and diversity of the value of the first threshold.
[0013] Combining the first and second aspects, one possible implementation is that the first threshold is any one of the following: 3, 4 or 5.
[0014] Based on this possible implementation, the first threshold can be made smaller, ensuring that the row weight of row X in the first region is as small as possible. Combined with the column weight of column X in region E being greater than 1, the ultimate performance of the encoding can be improved. At the same time, the decoding threshold can be optimized, and the convergence performance of the LDPC code can be better, thereby improving the decoding performance.
[0015] Combining the first and second aspects, one possible implementation is that the first threshold is the weighted average of the row weights in region D; or, the first threshold is the minimum row weight in region D.
[0016] Based on this possible implementation, the row weight of row X in the first region can be less than or equal to the weighted average of the row weights in region D. Combined with the column weight of column X in region E being greater than 1, the limit performance of the encoding can be improved. At the same time, the decoding threshold can be optimized, the convergence performance of the LDPC code can be better, thereby improving the decoding performance.
[0017] Combining the first and second aspects, one possible implementation is that the first threshold is the weighted average of the row weights of the first region; or, the first threshold is the minimum row weight of the first region.
[0018] Based on this possible implementation, the row weight of X rows in the first region can be less than or equal to the weighted average of the row weights in the first region. Combined with the column weight of X columns in region E being greater than 1, the limit performance of the encoding can be improved. At the same time, the decoding threshold can be optimized, and the convergence performance of the LDPC code can be better, thereby improving the decoding performance.
[0019] Combining the first and second aspects, one possible implementation is that line X is the line with the smallest row weight in the first region.
[0020] Based on this possible implementation, the first threshold can be the maximum value of the row weight of row X. Since row X is the row with the smallest row weight in the first region, combined with the fact that the column weight of column X in region E is greater than 1, the limit performance of the encoding can be improved. At the same time, the decoding threshold can be optimized, the convergence performance of LDPC code is better, and thus the decoding performance can be improved.
[0021] Combining the first and second aspects, one possible implementation is that the number of non-zero elements in any row of the first region located in the punched column of the base matrix is greater than or equal to t; where t is a positive integer.
[0022] Based on this possible implementation, the transmitting or receiving device can determine the first region based on the row weight of the region in the punched column in region D. The first region has a large number of edges connected to the punched column, which can optimize the convergence performance of the punched column and thus improve the decoding performance.
[0023] Here, the degree can refer to the degree of a variable (i.e., the number of edges connecting the variable, or the number of check nodes connected to the variable), or the degree of the check equation (i.e., the number of edges connecting the check equation, or the number of variables connected to the check equation). For a variable, the more edges it has, the higher its degree, allowing it to obtain information from more check nodes and more accurately estimate the information to be decoded. For a check equation, the fewer edges it has, the lower its degree, and the more accurate the estimation of the variable's state. Therefore, the degree distribution can be determined jointly by the edges of the variable and the check equation to achieve a better degree distribution.
[0024] In this context, the degree of a variable can be understood as the column weight of the basis matrix, and the degree of a verification equation can be understood as the row weight of the basis matrix.
[0025] Combining the first and second aspects, one possible implementation is that t is the number of punched columns in the basis matrix; or, t is the number of information columns in the punched columns of the basis matrix; or, t is predefined.
[0026] Combining the first and second aspects, one possible implementation is that t is 2; or t is 1.
[0027] Based on the two possible implementations mentioned above, if t is predefined, the sending or receiving device can directly determine t, which can reduce the workload of the device and simplify the implementation. If t is determined based on the number of punched columns in the base matrix (or the number of information columns in the punched columns of the base matrix), the sending or receiving device can determine the corresponding t according to different communication scenarios, which can make t better meet communication requirements, thereby improving communication reliability; at the same time, it can improve the flexibility and diversity of t values.
[0028] Combining the first and second aspects, one possible implementation is that the first region includes a portion of the continuous rows of region D.
[0029] Combining the first and second aspects, one possible implementation is that the second region includes a portion of the continuous rows of the D region, and the intersection of the rows in the second region and the rows in the first region is an empty set; there are rows Y in the second region whose row weight is less than or equal to the first threshold, and there are columns Y in the E region whose column weight is greater than 1; the absolute value of the difference between the row index of the y-th row in the Y-th row and the column index of the y-th column in the Y-th column in the Y-th column in the basis matrix is the column number of the information column in the basis matrix, y = 0, 1, ..., Y-1, where Y is a positive integer.
[0030] Based on the two possible implementations mentioned above, the transmitting or receiving device can divide one or more sub-regions (such as the first region or the second region) according to the row number of the D region. The first region has fewer elements, a larger design space for edge relationships, and a better degree distribution, which can result in better decoding performance.
[0031] Combining the first and second aspects, one possible implementation is that Y is 1; or Y is 2.
[0032] Combining the first and second aspects, one possible implementation is that X is 1; or X is 2.
[0033] Based on the two possible implementations mentioned above, two possible implementations are provided for the value of X (or Y). If the value of X (or Y) is smaller, the changes to the edges in the basis matrix can be reduced, thereby simplifying the implementation and reducing the implementation complexity.
[0034] Combining the first and second aspects, one possible implementation is that, when the number of rows in the base matrix is greater than the second threshold, the column weight of column X is greater than or equal to the column weight of columns from column 0 to column (n-1) of the base matrix, excluding the punched columns.
[0035] Based on this possible implementation, the column weight of column X in region E is greater than or equal to the column weight of columns from column 0 to column (n-1) of the basis matrix, excluding the punched columns. This can improve the limiting performance of the encoding. At the same time, it can make the decoding threshold better and the convergence performance of LDPC codes better, thereby improving the decoding performance.
[0036] Combining the first and second aspects, one possible implementation is that the second threshold is determined based on the code rate supported by the base matrix.
[0037] Combining the first and second aspects, one possible implementation is that the second threshold is 13; or, the second threshold is 24; or, the second threshold is 45.
[0038] Based on the two possible implementations mentioned above, the second threshold can be dynamically determined according to the code rate range supported by the base matrix, so that the second threshold can better meet the communication requirements and improve the reliability of communication.
[0039] Combining the first and second aspects, one possible implementation is that m is the number of rows in the core verification region of the basis matrix.
[0040] Based on this possible implementation, m can be determined according to the number of rows in the core verification area, and then the number of rows in area D or area E can be determined.
[0041] Combining the first and second aspects, one possible implementation is that n is the sum of the number of information columns in the base matrix and the number of columns in the core verification region.
[0042] Based on this possible implementation, n can be determined by the sum of the number of columns in the information column of the base matrix and the number of columns in the core verification region, and thus the number of columns in region D or region E can be determined.
[0043] Thirdly, embodiments of this application provide a communication device that can be applied to the transmitting end device described in the first aspect to realize the functions performed by the transmitting end device. The communication device can be the transmitting end device itself, or it can be a chip, chip system, or system-on-a-chip of the transmitting end device, etc. The communication device can execute the functions performed by the transmitting end device through hardware, or it can execute corresponding software through hardware. The hardware or software includes one or more modules corresponding to the above functions. For example, a transceiver module and a processing module. The transceiver module can independently complete the following transceiver operations, or it can cooperate with the processing module to complete the following transceiver operations; correspondingly, the processing module can independently complete the following processing operations, or it can cooperate with the transceiver module to complete the following processing operations, without limitation.
[0044] For example, the processing module is used to perform LDPC encoding on the information bit sequence according to the basis matrix to obtain a first sequence; the transceiver module is used to output the first sequence.
[0045] The base matrix includes regions D and E. Region D includes the m-th row to the last row and columns 0 to (n-1) of the base matrix, and region E includes the m-th row to the last row and columns n to the last column of the base matrix. m and n are determined according to the maximum bit rate supported by the base matrix. The first region includes some or all of the rows in region D. There are X rows in the first region with a row weight less than or equal to a first threshold. Region E is a lower triangular matrix, and there are X columns in region E with a column weight greater than 1. The absolute value of the difference between the row number of the x-th row in the base matrix and the column number of the x-th column in the base matrix is the number of information columns in the base matrix, where x = 0, 1, ..., X-1, and X is a positive integer.
[0046] Optionally, the transceiver module and processing module of the communication device in the third aspect may also perform the corresponding functions in the first aspect or any possible design of the first aspect, as detailed in the method examples, and the beneficial effects that can be achieved can also be found in the foregoing related content.
[0047] Fourthly, embodiments of this application provide a communication device that can be applied to the receiving device described in the second aspect to realize the functions performed by the receiving device. The communication device can be the receiving device itself, or it can be a chip, chip system, or system-on-a-chip of the receiving device. The communication device can execute the functions performed by the receiving device through hardware or through corresponding software. The hardware or software includes one or more modules corresponding to the functions described above. For example, a transceiver module and a processing module. The transceiver module can independently complete the following transceiver operations or cooperate with the processing module to complete the following transceiver operations; correspondingly, the processing module can independently complete the following processing operations or cooperate with the transceiver module to complete the following processing operations, without limitation.
[0048] For example, the transceiver module is used to receive the information to be decoded; the processing module is used to decode the information to be decoded according to the basis matrix to obtain the decoding result.
[0049] The base matrix includes regions D and E. Region D includes the m-th row to the last row and columns 0 to (n-1) of the base matrix, and region E includes the m-th row to the last row and columns n to the last column of the base matrix. m and n are determined according to the maximum bit rate supported by the base matrix. The first region includes some or all of the rows in region D. There are X rows in the first region with a row weight less than or equal to a first threshold. Region E is a lower triangular matrix, and there are X columns in region E with a column weight greater than 1. The absolute value of the difference between the row number of the x-th row in the base matrix and the column number of the x-th column in the base matrix is the number of information columns in the base matrix, where x = 0, 1, ..., X-1, and X is a positive integer.
[0050] Optionally, the transceiver module and processing module of the communication device in the fourth aspect may also perform the corresponding functions in the second aspect or any possible design of the second aspect, as detailed in the method examples, and the beneficial effects that can be achieved can also be found in the foregoing related content.
[0051] Fifthly, embodiments of this application provide a communication device, which includes one or more processors; the one or more processors are configured to run computer programs or instructions, such that when the one or more processors execute the computer instructions or instructions, the communication method described in the first aspect is executed, or the communication method described in any of the second aspects is executed.
[0052] In one possible design, the communication device further includes one or more memories coupled to one or more processors, the memories used to store the aforementioned computer programs or instructions. In one possible implementation, the memories are located outside the communication device. In another possible implementation, the memories are located inside the communication device. In embodiments of this application, the processor and memory may also be integrated into a single device, i.e., the processor and memory may be integrated together. In one possible implementation, the communication device further includes a transceiver for receiving and / or transmitting information.
[0053] In one possible design, the communication device further includes one or more communication interfaces coupled to one or more processors, and the communication interfaces are used to communicate with other modules outside the communication device.
[0054] In a sixth aspect, embodiments of this application provide a communication device, which includes an interface circuit and a logic circuit; the interface circuit is used to input and / or output information; the logic circuit is used to execute the communication method as described in any aspect of the first aspect, to process and / or generate information based on the information, or to execute the communication method as described in any aspect of the second aspect, to process and / or generate information based on the information.
[0055] In a seventh aspect, embodiments of this application provide a computer-readable storage medium storing computer instructions or programs that, when executed on a computer, cause the communication method described in the first aspect to be executed, or the communication method described in any of the second aspects to be executed.
[0056] Eighthly, embodiments of this application provide a computer program product containing computer instructions that, when run on a computer, causes the communication method described in the first aspect to be executed, or the communication method described in any of the second aspects to be executed.
[0057] Ninthly, embodiments of this application provide a computer program that, when run on a computer, causes the communication method described in the first aspect to be executed, or the communication method described in any of the second aspects to be executed.
[0058] In a tenth aspect, embodiments of this application provide a chip, including: a processor coupled to a memory, the memory being used to store programs or instructions, which, when executed by the processor, cause the communication method described in the first aspect to be executed, or the communication method described in any of the second aspects to be executed.
[0059] The technical effects of any of the design methods in aspects three through ten are similar to those in aspects one and two above, and will not be elaborated upon further.
[0060] Eleventhly, embodiments of this application provide a communication system that may include communication means for performing the communication as described in the first aspect or any possible design of the first aspect, and communication means for performing the communication as described in the second aspect or any possible design of the second aspect. Attached Figure Description
[0061] Figure 1 is a schematic diagram of a basis matrix provided in an embodiment of this application;
[0062] Figure 2 is a schematic diagram of a verification matrix provided in an embodiment of this application;
[0063] Figure 3 is a schematic diagram of a communication system provided in an embodiment of this application;
[0064] Figure 4 is a schematic diagram of encoding and decoding performed by a transmitting end device and a receiving end device according to an embodiment of this application;
[0065] Figure 5 is a schematic diagram of the structure of a communication device provided in an embodiment of this application;
[0066] Figure 6 is a flowchart illustrating a communication method provided in an embodiment of this application;
[0067] Figure 7 is a schematic diagram of a simulation result provided in an embodiment of this application;
[0068] Figure 8 is a schematic diagram of another basis matrix provided in an embodiment of this application;
[0069] Figure 9 is a schematic diagram of a cyclic shift matrix provided in an embodiment of this application;
[0070] Figure 10 is a schematic diagram of the structure of a transmitting device provided in an embodiment of this application;
[0071] Figure 11 is a schematic diagram of the structure of a receiving device provided in an embodiment of this application;
[0072] Figure 12 is a schematic diagram of another communication device provided in an embodiment of this application;
[0073] Figure 13 is a schematic diagram of the structure of another communication device provided in an embodiment of this application. Detailed Implementation
[0074] Before describing the embodiments of this application, the technical terms involved in the embodiments of this application will be described.
[0075] LDPC codes: LDPC codes are a channel coding scheme that is very close to the Shannon limit. They have the characteristics of good coding performance and low complexity. They have been selected by the 3rd generation partnership project (3GPP) as the channel coding scheme for the 5th generation (5G) mobile communication system.
[0076] Among them, LDPC code decoding algorithms can be min-sum (MS) decoding and belief propagation (BP) decoding. BP decoding has better decoding performance, but it requires more information storage and has higher computational complexity, making it less suitable for hardware implementation. MS decoding has poorer decoding performance, but its computational complexity is lower and it is easier to implement in hardware. Therefore, in practical communication systems, offset MS decoding and normalized MS decoding algorithms are commonly used.
[0077] Among them, LDPC codes can achieve channel coding through generator matrices. The mainstream LDPC codes are quasi-cyclic (QC) structures, that is, by setting the shift amount of each block, bad structures such as short cycles can be avoided as much as possible, thereby improving the code distance.
[0078] The generator matrix of the QC-LDPC code can be determined by the basis matrix. For example, the transmitting device can determine the generator matrix based on the basis matrix (which can be denoted as H). BG The parity check matrix is determined, and then the generator matrix can be determined based on the parity check matrix.
[0079] Basis Matrix: The basis matrix has a common basis matrix structure. For example, as shown in Figure 1, the basis matrix can include regions A, B, C, D, and E. Region A corresponds to information bits (or information segments, system bits, etc.), such as a high-bit-rate information column region. Region B is a square matrix corresponding to core parity bits (or core parity bits). Core parity bits can be the parity bits corresponding to the highest bit-rate (or can be described as a high-bit-rate core parity region), or parity bits with degrees greater than or equal to 2, or parity bits corresponding to the row with the highest row weight (or a row weight significantly higher than other rows) (row weight is the number of non-zero elements in a row). Region C can be a zero matrix, Region D can be the incremental redundancy region of the basis matrix (corresponding to a low-bit-rate matrix), and Region E can be the extended parity region of the basis matrix, which can be used for HARQ transmission. The degrees mentioned above can refer to the degree of variables or the degree of parity nodes; please refer to the description of degrees below.
[0080] In this context, regions B and E are both check parts. Region B is defined as the core check region, and one possible feature is that it is a non-lower triangular coding part (i.e., the values of elements above the diagonal are not all 0), or a coding part with a column weight (column weight is the number of 1s in a column) greater than 1. Region E is defined as the extended check region, and one possible feature is that it is a lower triangular coding part (i.e., the values of elements above the diagonal are all 0), or a diagonal matrix.
[0081] It is understandable that the columns of the base matrix can include information columns and check columns.
[0082] Among them, the information column corresponds to the information bit (or information bit, system bit, etc.), that is, the information column can be the column corresponding to area A.
[0083] The check column corresponds to the check bit (or check position, etc.). That is, the check column can be the column corresponding to region B and region C, or it can be described as the check column including a core check column and an extended check column. The core check column can be the column corresponding to region B, and the extended check column can be the column corresponding to region C or region E. The extended check column can also be called a raptor-like region column; or, the core check column can be the check column in region B with a column weight greater than 1 (there are 1 elements above and below the diagonal of region B), and the extended check column can be the remaining columns in the check column excluding the core check column.
[0084] In addition, the base matrix contains core columns, which can include all information columns and all core check columns. That is, core columns are the columns corresponding to high bitrate regions, or the columns corresponding to regions A and B. Similarly, the base matrix contains core rows, which can be the rows corresponding to the core check bits of the base matrix. That is, core rows are the rows corresponding to high bitrate regions, or the rows corresponding to regions A, B, or C. Likewise, the base matrix contains a kernel matrix, which is a matrix region composed of all core rows and all core columns of the base matrix. That is, the kernel matrix is the high bitrate region of the base matrix, or a portion composed of regions A and B.
[0085] It is understood that the high bit rate in the embodiments can also be referred to as a higher bit rate, and the low bit rate can also be referred to as a lower bit rate.
[0086] In Figure 1, the area within the dashed box represents the punctured columns. The first two columns of the base matrix are also punctured columns, which have a relatively high column weight. During transmission, the punctured columns do not participate in the transmission process, but they are involved in both encoding and decoding.
[0087] The graph model of the basis matrix (which can be simply called the base graph (BG)) can be represented as: BG = (X, Y, F); where X corresponds to the variable, Y corresponds to the check equation associated with the variable, and F corresponds to the edge relationship between the variable and the check equation associated with the variable.
[0088] It is understandable that the elements in the basis matrix can be 0 or 1. A value of 0 represents an empty element, a value of 1 represents the relationship between the verification equation and the variable, or it can represent the connection of the basis graph.
[0089] The parity check matrix can be obtained by expanding the base matrix according to the expansion factor (which can be denoted as Zc). For example, the transmitting device can expand the 0s in the base matrix into a Zc×Zc all-zero matrix and expand the 1s in the base matrix into a Zc×Zc cyclic shift matrix to obtain the parity check matrix.
[0090] The expansion factor can also be called the boosting factor, expansion value, expansion coefficient, or boosting size, and there is no restriction on its usage.
[0091] The graph model of the verification matrix (which can be simply called the Tanner graph or a bipartite graph) can be represented as: G = (V, C, E), where V corresponds to the variable node, C corresponds to the verification node, and E corresponds to the edge relationship between the variable node and the verification node.
[0092] It is understandable that the number of columns N in the parity check matrix can be represented as: N = |V| = Zc|X|, the number of rows M in the parity check matrix can be represented as: M = |C| = Zc|Y|, and the number of non-zero elements in the parity check matrix is: |E| = Zc|F|. Here, |·| can be understood as the size of the set corresponding to (·). For example, in |V|, V can be understood as the set of columns in the parity check matrix, and |V| is the size of the set of columns in the parity check matrix.
[0093] For example, the common matrix structure of the parity check matrix can be as shown in Figure 2. The parity check matrix can include a high-rate region, an all-zero region, an incremental redundancy region, and a Lapt-like region. Specifically, the high-rate region can include regions A and B as shown in Figure 1; the all-zero region can include region C as shown in Figure 1, which is an all-zero matrix; the incremental redundancy region can include region D as shown in Figure 1; and the Lapt-like region can include region E as shown in Figure 1, which can be an identity matrix corresponding to the parity bits of the low-rate extension.
[0094] It is understandable that the parity check matrix and the base matrix described above are designed according to the lowest possible code rate (i.e., they can encode the information bit sequence at the lowest possible code rate). When the code rate changes, the upper left part of the parity check matrix can be truncated for encoding (equivalent to truncating the upper left part of the base matrix for encoding). As the code rate decreases, one or more rows, one or more columns (as shown by the dotted lines in Figure 2) can be added as matrix regions for encoding. For the base matrix, taking region A as an example with 22 information columns, region B with 4 core parity columns, and 2 punched columns, the code rate supported by regions A and B can be 22 / (22+4-2)=11 / 12≈0.917.
[0095] In other words, the transmitting device can extract the first F rows and first G columns of the parity check matrix for encoding based on the bit rate. As the bit rate decreases, the values of F and G also increase. Here, F and G are both positive integers.
[0096] Based on the above description of LDPC codes, the transmitting device can encode the information bit sequence according to the basis matrix; correspondingly, the receiving device can decode the information to be decoded according to the basis matrix. How to improve the basis matrix to achieve a better decoding threshold is an urgent problem to be solved.
[0097] This application provides a communication method, which includes: a transmitting device performing LDPC encoding on an information bit sequence according to a base matrix to obtain a first sequence; and outputting the first sequence. The base matrix includes a D region and an E region. The D region includes the m-th row to the last row and the 0th to the (n-1)th column of the base matrix, and the E region includes the m-th row to the last row and the n-th to the last column of the base matrix. m and n are determined based on the maximum bit rate supported by the base matrix. The first region includes some or all rows of the D region. In the first region, there are X rows with a row weight less than or equal to a first threshold. The E region is a lower triangular matrix, and in the E region, there are X columns with a column weight greater than 1. The absolute value of the difference between the row number of the x-th row in the X-th row and the column number of the x-th column in the X-th column in the X-th column in the base matrix is the number of information columns in the base matrix, where x = 0, 1, ..., X-1, and X is a positive integer.
[0098] In this embodiment, the base matrix may include regions D and E. Compared to region E being an identity matrix, region E in this application may be a lower triangular matrix, which allows for a better decoding threshold, easier encoding, and support for HARQ transmission. Furthermore, the first region may include some or all rows of region D. The row weight of X rows in the first region may be less than or equal to a first threshold, equivalent to at least X rows in region D having a row weight less than or equal to the first threshold. Simultaneously, region E has X columns with a column weight greater than 1, and the column indices of the X columns in region E are the same as the row indices of the X rows in region D. This can improve the extreme performance of the encoding (e.g., reducing the bit error rate or performance loss when there are many iteration rounds or a low signal-to-noise ratio); it also allows for a better decoding threshold and better convergence performance of the LDPC code, thereby improving decoding performance (e.g., reducing the bit error rate).
[0099] The embodiments of this application will now be described in detail with reference to the accompanying drawings.
[0100] The communication method provided in this application can be used in any communication system, such as a 3GPP communication system, for example, a long term evolution (LTE) system, or a 5G mobile communication system, a hybrid LTE and 5G network system, a new radio (NR) vehicle-to-everything (V2X) system, a device-to-device (D2D) communication system, a machine-to-machine (M2M) communication system, an Internet of Things (IoT) system, a narrow band Internet of Things (NB-IoT) system, an ultra-reliable and low-latency communication (URLLC) system, an enhanced machine-type communication (eMTC) system, and various types of future communication systems. It can also be a non-terrestrial network (NTN) system (such as a satellite communication system), a non-3GPP communication system, etc., without limitation.
[0101] The communication system provided in the embodiments of this application will be described below with reference to Figure 3.
[0102] Figure 3 is a schematic diagram of a communication system provided in an embodiment of this application. As shown in Figure 3, the communication system may include at least one terminal device and at least one network device.
[0103] In Figure 3, the terminal device can be located within the beam / cell coverage area of the network device, and the network device can provide communication services to the terminal device. For example, the network device can use channel coding to encode downlink data and then transmit it to the terminal device via air interface after constellation modulation (i.e., the network device is the transmitting device, and the terminal device is the receiving device); the terminal device can also use channel coding to encode uplink data and then transmit it to the network device via air interface after constellation modulation (i.e., the terminal device is the transmitting device, and the network device is the receiving device). It is understood that when network devices communicate with each other, or when terminal devices communicate with each other, communication can also be based on channel coding; that is, the transmitting and receiving devices can both be network devices or both be terminal devices, without restriction.
[0104] The terminal device in Figure 3 can be a device with wireless transceiver capabilities or a chip or chip system that can be configured on the device. It allows users to access the network and is used to provide voice and / or data connectivity to users. The terminal device can also be called user equipment (UE), subscriber unit, terminal, mobile station (MS), or mobile terminal (MT), etc.
[0105] For example, the terminal device can be a mobile phone, a tablet computer, or a computer with wireless transceiver capabilities. Terminal equipment can also be user stations, mobile stations, remote stations, remote terminal equipment, mobile terminal equipment, user terminal equipment, wireless communication equipment, user agents, user devices, cellular phones, cordless phones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), handheld devices with wireless communication capabilities, computing devices, processing devices connected to wireless modems, in-vehicle equipment, wearable devices, terminal equipment in the Internet of Things (IoT), home appliances, virtual reality (VR) terminals, augmented reality (AR) terminals, wireless terminals in industrial control, wireless terminals in autonomous driving, wireless terminals in telemedicine, wireless terminals in smart grids, wireless terminals in smart cities, wireless terminals in smart homes, vehicles with vehicle-to-vehicle (V2V) communication capabilities, intelligent connected vehicles, and UAV-to-UAV communication. Unmanned aerial vehicles (UAVs) with U2U communication capabilities, terminal devices in future networks, or terminal devices in future evolved public land mobile networks (PLMNs) are not subject to restrictions.
[0106] In Figure 3, the network device can be any device deployed in the access network capable of wireless communication with terminal devices. It can also be a chip or chip system that can be configured in the aforementioned device, a logical node or logical module, or a function implemented in software. It is primarily responsible for functions such as air interface-side wireless physical control, resource scheduling, wireless resource management, quality of service management, data compression and encryption, wireless access control, and mobility management. Specifically, the network device can be a device supporting wired access or a device supporting wireless access. Alternatively, in this embodiment, the apparatus for implementing the functions of the network device can be the network device itself; it can also be an apparatus capable of supporting the network device in implementing these functions, such as a chip system, hardware circuit, software module, or a hardware circuit plus a software module. This apparatus can be installed in the network device or used in conjunction with the network device. In this embodiment, only the apparatus for implementing the functions of the network device is described as a network device, and this does not constitute a limitation on the solution of this embodiment.
[0107] For example, a network device can consist of one or more access network (AN) / radio access network (RAN) nodes. AN / RAN nodes can be various types of base stations, such as: satellite base stations, evolved Node Bs (gNBs), transmission reception points (TRPs), evolved Node Bs (eNBs), radio network controllers (RNCs), Node Bs (NBs), base station controllers (BSCs), base transceiver stations (BTSs), home base stations (e.g., home evolved Node Bs, or home Node Bs (HNBs), macro base stations, micro base stations, pico base stations, small cells, relay stations, balloon stations, drone stations, wireless backhaul nodes, base band units (BBUs), or wireless fidelity (Wi-Fi) access points (APs), etc. It is understood that network devices can be terrestrial devices or non-terrestrial devices (such as satellites, drones, high-altitude communication equipment, etc.). Furthermore, in communication systems employing different wireless access technologies, the names of network devices with base station functions may differ, and this application does not impose any restrictions on this.
[0108] In another example, the network equipment may include a BBU and a remote radio unit (RRU). The BBU and RRU can be located in different places; for example, the RRU can be moved remotely to a high-traffic area, while the BBU is located in the central equipment room. The BBU and RRU can also be located in the same equipment room. The BBU and RRU can also be different components under the same rack.
[0109] In another example, a network device can include centralized unit (CU) nodes, distributed unit (DU) nodes, or both CU and DU nodes. For instance, a network device can be logically divided into CUs and DUs, with some protocol layer functions centrally controlled by the CU, and the remaining or all protocol layer functions distributed across the DU, which is then centrally controlled by the CU. CUs and DUs can be separate entities or included in the same network element, such as a BBU. Furthermore, a centralized unit (CU) can be further divided into a control plane (CP) (CU-CP) and a user plane (UP) (CU-UP).
[0110] In another example, the network device may also be a device that includes a radio unit (RU), or a device that includes a CU, a DU, and a RU. The RU may be included in a radio frequency device or radio frequency unit, such as an RRU, an active antenna unit (AAU), or a remote radio head (RRH).
[0111] It is understood that CU (or CU-CP and CU-UP), DU, or RU may have different names in different systems, but those skilled in the art will understand their meaning. For example, in an open radio access network (O-RAN) system, CU can also be called O-CU (open CU), DU can also be called O-DU, CU-CP can also be called O-CU-CP, CU-UP can also be called O-CU-UP, and RU can also be called O-RU. For ease of description, this application uses CU, CU-CP, CU-UP, DU, and RU as examples. Any of the units among CU (or CU-CP, CU-UP), DU, and RU in this application can be implemented through software modules, hardware modules, or a combination of software modules and hardware modules.
[0112] Network devices and / or terminal devices can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; they can also be deployed on water; and they can also be deployed in the air on airplanes, balloons, and satellites. This application does not limit the scenario in which the network devices and terminal devices are located. Furthermore, terminal devices and network devices can be hardware devices, or software functions running on dedicated hardware or general-purpose hardware, such as virtualization functions instantiated on a platform (e.g., a cloud platform), or entities that include dedicated or general-purpose hardware devices and software functions. This application does not limit the specific form of the terminal devices and network devices.
[0113] Based on the above description of the terminal device and network device, optionally, the communication method provided in the embodiments of this application can be implemented by the aforementioned terminal device or network device, or by components of the terminal device or network device, such as by application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or software (such as program code in memory) deployed in the terminal device or network device, without limitation.
[0114] Optionally, in this embodiment of the application, the transmitting device (or source) and the receiving device (or sink) can use the process shown in Figure 4 below for encoding and decoding. The transmitting device can be any terminal device or network device in the communication system shown in Figure 3, and the receiving device can also be any terminal device or network device in the communication system shown in Figure 3.
[0115] In this process, the transmitting device performs source coding on its generated bits to obtain a source bit stream. Then, it performs channel coding on the source bit stream, modulates it, and transmits the modulated symbols to the receiving device through a noisy channel. When the receiving device receives the modulated symbols through the noisy channel, it demodulates them, performs channel decoding to recover the source bit stream, and then performs source decoding to obtain the decoded result.
[0116] In specific implementation, as shown in Figure 3, each terminal device and network device can adopt the composition structure shown in Figure 5, or include the components shown in Figure 5. Figure 5 is a schematic diagram of the structure of a communication device 500 provided in an embodiment of this application. The communication device 500 can be a terminal device or a chip or system-on-a-chip in a terminal device; it can also be a network device or a chip or system-on-a-chip in a network device. As shown in Figure 5, the communication device 500 includes a processor 501, a transceiver 502, and a communication line 503.
[0117] Furthermore, the communication device 500 may also include a memory 504. The processor 501, memory 504, and transceiver 502 can be connected via a communication line 503.
[0118] The processor 501 can be a central processing unit (CPU), a network processor (NP), a digital signal processor (DSP), a microprocessor, a microcontroller, a programmable logic device (PLD), or any combination thereof. The processor 501 can also be other devices with processing capabilities, such as circuits, devices, or software modules, without limitation.
[0119] Transceiver 502 is used to communicate with other devices or other communication networks. These other communication networks can be Ethernet, radio access network (RAN), wireless local area network (WLAN), etc. Transceiver 502 can be a module, circuit, transceiver, or any device capable of enabling communication.
[0120] Communication line 503 is used to transmit information between the components included in communication device 500.
[0121] Memory 504 is used to store instructions. These instructions can be computer programs.
[0122] The memory 504 can be a read-only memory (ROM) or other type of static storage device that can store static information and / or instructions; it can also be a random access memory (RAM) or other type of dynamic storage device that can store information and / or instructions; it can also be an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, etc., without limitation.
[0123] The memory 504 can exist independently of the processor 501 or be integrated with the processor 501. The memory 504 can be used to store instructions, program code, or some data. The memory 504 can be located inside or outside the communication device 500, without limitation. The processor 501 is used to execute the instructions stored in the memory 504 to implement the communication method provided in the following embodiments of this application.
[0124] In one example, processor 501 may include one or more CPUs, such as CPU0 and CPU1 in Figure 5.
[0125] As an optional implementation, the communication device 500 may include multiple processors, for example, in addition to the processor 501 in FIG. 5, it may also include a processor 507.
[0126] As an optional implementation, the communication device 500 also includes an output device 505 and an input device 506. For example, the input device 506 is a device such as a keyboard, mouse, microphone, or joystick, and the output device 505 is a device such as a display screen or speaker.
[0127] The communication device 500 can be a desktop computer, laptop computer, web server, mobile phone, tablet computer, wireless terminal, embedded device, chip system, or device with a similar structure to that shown in Figure 5. Furthermore, the composition shown in Figure 5 does not constitute a limitation on the communication device. In addition to the components shown in Figure 5, the communication device may include more or fewer components than shown, or combine certain components, or have different component arrangements.
[0128] In this embodiment of the application, the chip system may be composed of chips or may include chips and other discrete devices.
[0129] Furthermore, the actions, terms, etc., involved in the various embodiments of this application can be referenced interchangeably without limitation. The message names or parameter names in the messages exchanged between the various devices in the embodiments of this application are merely examples, and other names may be used in specific implementations without limitation.
[0130] The communication method provided in the embodiments of this application will be described below with reference to the communication system shown in Figure 3 and Figure 6. The transmitting device can be any terminal device or network device in the communication system shown in Figure 3, and the receiving device can also be any terminal device or network device in the communication system shown in Figure 3. The transmitting or receiving device described in the following embodiments may include the components shown in Figure 5.
[0131] Figure 6 is a flowchart of a communication method provided in an embodiment of this application. As shown in Figure 6, the method may include:
[0132] Step 601: The transmitting device performs LDPC encoding on the information bit sequence according to the base matrix to obtain the first sequence.
[0133] It is understandable that the encoding of information bit sequences based on the basis matrix in this application can be interpreted in at least the following ways:
[0134] (1) Encode the information bit sequence according to the base matrix T. In this case, the transmitting device can encode the information bit sequence according to the parity check matrix corresponding to the base matrix T; that is, the transmitting device determines the parity check matrix according to the base matrix T, and then encodes the information bit sequence according to the parity check matrix. Alternatively, the transmitting device determines the parity check matrix according to the base matrix T, determines the generator matrix according to the parity check matrix, and then encodes the information bit sequence according to the generator matrix.
[0135] The generator matrix G and the parity check matrix H can satisfy the following formula: HG Τ =0; or, the generating matrix and the parity check matrix can satisfy the following formula: GH Τ =0.
[0136] (2) Encode the information bit sequence based on T', obtained by transforming the base matrix T. Here, the base matrix T' is obtained by transforming the base matrix T. At this point, the transmitting device encodes the information bit sequence based on the parity check matrix corresponding to the base matrix T'; that is, the transmitting device determines the parity check matrix based on the base matrix T', and then encodes the information bit sequence based on this parity check matrix. Alternatively, the transmitting device determines the parity check matrix based on the base matrix T', determines the generator matrix based on the parity check matrix, and then encodes the information bit sequence based on the generator matrix.
[0137] For example, the basis matrix T' is obtained by performing row transformations on the basis matrix T, that is, by performing row swaps on the basis matrix T to obtain the basis matrix T'; or, the basis matrix T' is obtained by performing column transformations on the basis matrix T, that is, by performing column swaps on the basis matrix T to obtain the basis matrix T'; or, the basis matrix T' is obtained by performing both row and column transformations on the basis matrix T, that is, by performing both row and column swaps on the basis matrix T to obtain the basis matrix T'; this application does not impose any restrictions.
[0138] Wherein, the basis matrix T can be any basis matrix designed in this application, such as any basis matrix in the examples of this application (as shown in Figure 8), without limitation.
[0139] The length of the information bit sequence can be K, where K is a positive integer. For example, the information bit sequence may include information bits and cyclic redundancy check (CRC) bits, where K can be the sum of the number of information bits and the number of CRC bits in the information bit sequence. Alternatively, the information bit sequence may include only the information bits themselves without CRC bits, where K can be the number of information bits.
[0140] The basis matrix includes regions D and E.
[0141] The D region can also be called the extended parity region. The number of rows in the D region can be the number of non-core parity rows (or can be described as non-core rows) in the base matrix. In other words, the number of rows in the D region can be the number of rows in the base matrix excluding the core parity rows (or can be described as core rows).
[0142] The core check row of the base matrix is the row corresponding to the core check bit, or it can be understood as the row corresponding to the high code rate region of the base matrix, or it can be understood as the row corresponding to region A, region B or region C in Figure 1.
[0143] The E region can also be called a Laptler-like region. The number of rows in the E region can be the number of non-core check rows in the base matrix; that is, the number of rows in the E region is the same as the number of rows in the D region. Furthermore, the number of columns in the E region can be the number of extended check columns in the base matrix. In other words, the number of columns in the E region can be the number of check columns in the base matrix excluding the core check columns. The extended check columns and core check columns are described above and will not be repeated here.
[0144] It is understandable that the number of columns in region D can be the difference between the number of columns in the base matrix and the number of columns in region E.
[0145] Optionally, the number of rows and columns in region E can be equal.
[0146] In this context, region D includes the m-th row to the last row and the 0-(n-1)-th column of the base matrix, and region E includes the m-th row to the last row and the n-th column of the base matrix. Both m and n are positive integers.
[0147] In this application, the number of columns in a region (such as region A, region D, region B or region E above) can be understood as the number of columns included in that region; similarly, the number of rows in a region (such as region A, region D, region B or region E above) can be understood as the number of rows included in that region.
[0148] Furthermore, the row and column numbers of the basis matrix (or region) are numbered starting from 0, merely for ease of explanation. For example, column number 0 represents the first column of the basis matrix, column number 1 represents the second column, row number 0 represents the first row, row number 1 represents the second row, and so on. It is understood that row and column numbers can also start from 1, in which case the corresponding row and column numbers are increased by 1 compared to those shown in this application. For example, if the row or column numbers start from 1, then column number 1 represents the first column of the basis matrix, column number 2 represents the second column, row number 1 represents the first row, row number 2 represents the second row, and so on.
[0149] The first region includes some or all of the rows in region D; or it can be described as the existence of a first region that includes some or all of the rows in region D; or it can be described as the region corresponding to some or all of the rows in region D being the first region.
[0150] In this context, there exist X rows in the first region whose row weight is less than or equal to a first threshold. The determination of the first threshold can be referred to the description of the first threshold below, and will not be repeated here.
[0151] Where X is a positive integer. For example, X can be 1; or X can be 2; or X can be 3.
[0152] Here, row weight can be understood as the number of non-zero elements in a row of any region (such as region D, region E, etc. mentioned above). For example, if the elements in the first row of region D are [0 1 0 0 0 0 0 0], the row weight of the first row can be 1.
[0153] It is understandable that, since the first region includes some or all of the rows in the D region, the existence of X rows in the first region with a row weight less than or equal to the first threshold can be understood as the existence of X rows in the D region with a row weight less than or equal to the first threshold.
[0154] In this context, region E is a lower triangular matrix, meaning that all elements on the diagonal of region E can be 1, all elements above the diagonal of region E can be 0 (e.g., all elements in the u-th row and v-th column of region E are 0, where u is an integer less than v, v = 0, 1, 2, ..., M-1, and M is the column number of region E, where M is a positive integer), and at least one element below the diagonal of region E is 1 (e.g., one element in the f-th row and v-th column of region E is 1, where f is an integer greater than v).
[0155] In region E, there exist columns X whose column weight is greater than 1. That is, the row number of any non-zero element in column X is greater than or equal to the column number of that column.
[0156] For example, taking the case where the column weight of column 0 in region E is greater than 1, the row number of the non-zero element in column 0 can be greater than or equal to 0. That is, there are at least two rows in column 0 from row 0 to row M-1 where the element is 1, or there is an element in row 0 of column 0 where the element is 1, and there is at least one row in column 0 from row 1 to row M-1 where the element is 1. M is the number of rows in region E (or region D), and M is a positive integer.
[0157] Alternatively, taking the case where the column weight of the 5th column in region E is greater than 1, the row number of the non-zero element in the 5th column can be greater than or equal to 5. That is, there are at least two rows in the 5th row to the M-1th row of the 5th column where the element is 1; or, the element in the 5th row of the 5th column is 1, and there are at least one row in the 6th row to the M-1th row of the 5th column where the element is 1.
[0158] Here, column weight can be understood as the number of non-zero elements in a column of any region (such as region D, region E, etc. mentioned above). For example, if the elements in the first column of region D are [0 1 1 1 1 1 1], the column weight of the first column can be 6.
[0159] It is understandable that if the value of X is small, the number of rows with a weight greater than 1 in region E can be smaller, which can reduce the changes to the edges in the base matrix, thereby simplifying the implementation and reducing the implementation complexity.
[0160] Optionally, if the number of rows in the base matrix is greater than the second threshold, the column weight of column X can be greater than or equal to the column weight of columns from column 0 to column (n-1) of the base matrix, excluding the punched columns; or, the column weight of column X can be greater than or equal to the column weight of columns in region D, excluding the punched columns.
[0161] For example, taking the maximum column weight of columns from column 0 to column (n-1) of the base matrix, excluding the punched columns, as an example, the column weight of any column in column X can be greater than 10. For example, the column weight of column 0 in column X can be 11, the column weight of column 1 in column X can be 12, and so on.
[0162] In this case, any two columns in column X can have the same column weight; or, any two columns in column X can have different column weights; or, at least two columns in column X have different column weights, without any restrictions.
[0163] The punched column can be referred to in the following description of the punched column, and will not be repeated here.
[0164] In one example, the second threshold can be determined based on the code rate supported by the base matrix. For instance, the second threshold could be the maximum row number of the region corresponding to a code rate of 1 / 2 supported by the base matrix. As another example, the second threshold could be the maximum row number of the region corresponding to a code rate of 2 / 3 supported by the base matrix.
[0165] In another example, the second threshold can be predefined. For example, the second threshold can be 13; or, the second threshold can be 24; or, the second threshold can be 45.
[0166] Understandably, the transmitting device can dynamically determine the second threshold based on the code rate range supported by the base matrix, allowing the second threshold to better meet communication requirements and improve communication reliability. Alternatively, if the second threshold is predefined, the transmitting device can directly determine its value according to the communication protocol, reducing the workload of the transmitting device and simplifying implementation.
[0167] In this context, the absolute value of the difference between the row number of row X in the first region and the column number of column X in the E region is the number of information columns in the base matrix; or it can be described as the absolute value of the difference between the row number of row X in the first region and the column number of column X in the E region is the number of information columns in the base matrix. x = 0, 1, ..., X-1.
[0168] For example, the number of information columns in the base matrix can be 21.
[0169] For example, let the X-th row of the first region be the d0-th row, the d1-th row, ..., the d-th row of the D region. X-1 line (d0) <d1<…<d X-1 For example, suppose region D includes the m-th row to the last row and the 0-n-1 columns of the base matrix. Then, the row number of the d0-th row of region D in the base matrix can be d0+m (that is, the row number of the 0th row of the X-th row in the first region can be d0+m), the row number of the d1-th row of region D in the base matrix can be d1+m (that is, the row number of the 1st row of the X-th row in the first region can be d1+m), ..., the row number of the d-th row of region D... X-1 The row number corresponding to a row in the basis matrix can be d. X-1 +m (that is, the row number of the (X-1)th row of row X in the first region in the base matrix can be d) X-1 +m).
[0170] For example, region E may include the m-th row to the last row and the n-th column to the last column of the base matrix. Assume that column X of region E is column e0, column e1, ..., column e of region E. X-1 column (e0) <e1<…<e X-1 The column index of the e0th column in region E in the base matrix can be e0+n, the column index of the e1th column in region E in the base matrix can be e1+n, ..., the column index of the eth column in region E... X-1 The column index corresponding to the column in the basis matrix can be e. X-1+n.
[0171] It can be understood that the absolute value of the difference between the row number of the d0th row of region D (or the 0th row of row X in the first region) and the column number of the e0th column of region E in the base matrix is the number of information columns in the base matrix; that is, the absolute value of the difference between (d0+m) and (e0+n) can be the number of information columns in the base matrix. Similarly, the absolute value of the difference between the row number of the d1th row of region D (or the 1st row of row X in the first region) and the column number of the e1th column of region E in the base matrix is the number of information columns in the base matrix; that is, the absolute value of the difference between (d1+m) and (e1+n) can be the number of information columns in the base matrix. ... The dth row of region D... X-1 The row number of the first row (or the (X-1)th row of row X in the first region) in the basis matrix corresponds to the row number of the e-th row in region E. X-1 The absolute value of the difference between the column indices corresponding to the columns in the base matrix is the number of information columns in the base matrix. In other words, (d X-1 +m) and (e X-1 The absolute value of the difference between (+n) can be the number of columns of information columns in the base matrix.
[0172] Wherein, the absolute value of the difference between the row number of row X in the first region and the column number of column X in the E region is the number of information columns in the base matrix. This can be replaced by the fact that the row number of row X in the first region is the same as the column number of column X in the E region.
[0173] For example, let the X-th row of the first region be the d0-th row, the d1-th row, ..., the d-th row of the D region. X-1 line (d0) <d1<…<d X-1 ), where column X of region E is the e0th column, e1th column, ..., eth column of region E. X-1 column (e0) <e1<…<e X-1 For example, d0 and e0 can be equal, d1 and e1 can be equal, ..., d X-1 With e X-1 They can be equal.
[0174] Step 602: The transmitting device outputs the first sequence; correspondingly, the receiving device receives the decoding information from the transmitting device.
[0175] Optionally, the transmitting device can perform rate matching on the first sequence to obtain a rate-matched bit sequence.
[0176] Optionally, the transmitting device can modulate the rate-matched bit sequence to obtain a modulated symbol sequence; or, the transmitting device can interleave the rate-matched bit sequence to obtain an interleaved bit sequence, and then modulate the interleaved bit sequence to obtain a modulated symbol sequence.
[0177] It is understandable that the modulation symbol sequence sent by the transmitting device to the receiving device may be affected by noise and other interference when transmitted through the channel. The demodulated information received by the receiving device is a modulation symbol sequence affected by noise and other interference.
[0178] Optionally, the receiving device can demodulate the information to be demodulated to obtain the information to be decoded.
[0179] Step 603: The receiving device decodes the information to be decoded according to the base matrix to obtain the decoding result.
[0180] It is understandable that the decoding of information to be decoded based on the basis matrix in this application can be interpreted in at least the following ways:
[0181] (1) Decode the information to be decoded according to the base matrix T. For example, the receiving device can decode the information to be decoded by scheduling the base matrix T.
[0182] (2) Decode the information to be decoded based on T' obtained by transforming the basis matrix T. The basis matrix T' is obtained by transforming the basis matrix T. For example, the receiving device can decode the information to be decoded by scheduling the basis matrix T'.
[0183] The method by which the receiving device determines the base matrix can be referred to the method by which the transmitting device determines the base matrix in this application, and will not be elaborated here.
[0184] Optionally, if the transmitting device interleaves the rate-matched bit sequence, the receiving device can deinterleave the information to be decoded to obtain a deinterleaved bit sequence, and then de-rate-match the deinterleaved bit sequence to obtain a de-rate-matched bit sequence; otherwise, the receiving device can de-rate-match the information to be decoded to obtain a de-rate-matched bit sequence.
[0185] Optionally, the receiving device can decode the rate-matched bit sequence based on the basis matrix to obtain the decoding result.
[0186] Based on the communication method shown in Figure 6, the base matrix can include regions D and E. Compared to region E being an identity matrix, region E in this application can be a lower triangular matrix, which can optimize the decoding threshold and facilitate encoding. Region E can be used for HARQ transmission. Furthermore, the first region can include some or all rows of region D. The row weight of X rows in the first region can be less than or equal to a first threshold, equivalent to at least X rows in region D having a row weight less than or equal to the first threshold. Simultaneously, region E has X columns with a column weight greater than 1, and the column indices of the X columns in region E are the same as the row indices of the X rows in region D. This can improve the ultimate performance of encoding (e.g., reducing the bit error rate or performance loss when the number of iterations is large or the signal-to-noise ratio is low). It can also optimize the decoding threshold and improve the convergence performance of LDPC codes, thereby improving decoding performance (e.g., reducing the bit error rate).
[0187] Based on the above description of the basis matrix, the basis matrix can include a D region and an E region. The D region can include the m-th row to the last row and the 0-(n-1)-th column of the basis matrix, and the E region can include the m-th row to the last row and the n-th column to the last column of the basis matrix.
[0188] Wherein, m can be determined based on the following two possible implementations:
[0189] In the first possible implementation, m can be determined based on the maximum bitrate supported by the base matrix. For example, the maximum bitrate supported by the base matrix can be the ratio of the maximum number of information columns supported by the base matrix to a first difference, where the first difference can be the difference between a first value and the number of punched columns in the base matrix, and the first value is the sum of the maximum number of information columns supported by the base matrix and m. For instance, the maximum bitrate supported by the base matrix and (m-1) can satisfy the following formula: Where R is the maximum bit rate supported by the base matrix, kb is the maximum number of information columns supported by the base matrix, and punc is the number of punched columns in the base matrix.
[0190] In this context, the punched column of the basis matrix can be understood as the Qth column with the largest column weight, where Q is a positive integer. For example, the punched column of the basis matrix can be columns 0 to Q-1 of the basis matrix. For instance, Q can be 2.
[0191] In this context, the column Q with the largest column weight in the base matrix can be understood as follows: if there exists a column Q1 in the base matrix with the largest and equal column weight, then if Q1 is greater than or equal to Q, column Q can be determined from that column Q1 as the column with the largest column weight in the base matrix; if Q1 is less than Q, the column weights of the base matrix can be arranged in descending order, and the column Q at the beginning of the order can be determined as the column Q with the largest column weight in the base matrix. Therefore, any two columns in the column X with the largest column weight in the base matrix can have the same column weight, or at least two columns in the column Q with the largest column weight in the base matrix can have different column weights, or any two columns in the column Q with the largest column weight in the base matrix can have different column weights—there are no restrictions.
[0192] In the second possible implementation, m can be the number of rows in the core parity region of the basis matrix; or it can be described as the number of rows in the core parity region. For example, the core parity region of the basis matrix can be region B as shown in Figure 1, and the number of rows in the core parity region is the same as the number of rows in region B.
[0193] Based on the two possible implementations described above, the maximum value of the row number corresponding to the core verification region in the base matrix is associated with the maximum bitrate supported by the base matrix. For example, the maximum bitrate supported by the base matrix can be the ratio of the maximum number of information columns supported by the base matrix to a second difference, where the second difference can be the difference between the second value and the number of punched columns in the base matrix, and the second value is the sum of the maximum number of information columns supported by the base matrix and the maximum value of the row number corresponding to the core verification region in the base matrix. For instance, the maximum bitrate supported by the base matrix and the maximum value of the row number corresponding to the core verification region in the base matrix can satisfy the following formula: Where R is the maximum bitrate supported by the base matrix, row is the maximum row number of the core check region in the base matrix, kb is the maximum number of information columns supported by the base matrix, and punc is the number of punched columns in the base matrix.
[0194] For example, m can be 4; or m can be 5.
[0195] Wherein, n can be determined based on the following two possible implementations:
[0196] In the first possible implementation, n can be determined based on the maximum bitrate supported by the base matrix. For example, n can be the number of columns in the region corresponding to the maximum bitrate supported by the base matrix. For instance, n could be 14.
[0197] In the second possible implementation, n can be the sum of the number of information columns in the base matrix and the number of columns in the core verification region. The number of information columns in the base matrix can be the number of columns in region A shown in Figure 1. For example, if the number of information columns in the base matrix is 11 and the number of columns in the core verification region is 3, then n can be 14.
[0198] Based on the two possible implementations mentioned above, the number of columns in the region corresponding to the maximum code rate supported by the base matrix can be the sum of the number of columns in the information column and the number of columns in the core check region.
[0199] Based on the description of m and n, the sending device can determine region D according to m and n. The first region may include some or all of the rows in region D. There are X rows in the first region whose row weight is less than or equal to a first threshold.
[0200] This application provides four possible implementations for determining the first threshold:
[0201] In one possible implementation, the first threshold can be predefined. For example, the first threshold can be 3; or, the first threshold can be 4; or, the first threshold can be 5.
[0202] Based on the first possible implementation, the transmitting device can directly determine the first threshold, which can reduce the device's workload and simplify the implementation. In addition, making the first threshold smaller can ensure that the row weight of X rows in the first region is as small as possible. Combined with the column weight of X columns in region E being greater than 1, this can improve the extreme performance of the encoding. At the same time, it can make the decoding threshold more favorable, and the convergence performance of the LDPC code is better, thereby improving the decoding performance.
[0203] In the second possible implementation, the first threshold can be determined based on the row weight of region D.
[0204] In one example, the first threshold can be a weighted average of the row weights in region D. For instance, assuming region D has M rows, let's assume the row weight of row 0 is S0, the row weight of row 1 is S1, ..., and the row weight of row (M-1) is S... M-1 Therefore, the first threshold can be L0*S0+L1*S1+…+L M-1 *S M-1 Among them, L0, L1, ..., L M-1 It is a positive number greater than or equal to 0 and less than or equal to 1, and L0 + L1 + ... + L M- 1 = 1.
[0205] For example, L0, L1, ..., L M-1 All can be 1 / M; or, L0, L1, ..., L M-1 There can be at least two different values in L0; or, L0, L1, ..., L M-1 Any two values in the expression can be different.
[0206] In another example, the first threshold can be the minimum row weight of region D. For instance, assuming region D has M rows, let's assume the row weight of row 0 is S0, the row weight of row 1 is S1, ..., and the row weight of row (M-1) is S... M-1 If SM-1 If the minimum row weight in region D is given, then the first threshold can be S. M-1 .
[0207] In the third possible implementation, the first threshold can be determined based on the row weight of the first region.
[0208] In one example, the first threshold can be a weighted average of the row weights of the first region. For instance, taking the number of rows in the first region as M0, assume the row weight of row 0 in the first region is S'0, the row weight of row 1 is S'1, ..., and the row weight of row M0-1 is S' M0-1 Therefore, the first threshold can be L'0*S'0+L'1*S'1+…+L' M-1 *S' M-1 Among them, L'0, L'1, ..., L' M-1 It is a positive number greater than or equal to 0 and less than or equal to 1, and L'0 + L'1 + ... + L' M-1 =1.
[0209] For example, L'0, L'1, ..., L' M-1 All can be 1 / M; or, L'0, L'1, ..., L' M-1 There can be at least two different values in L'; or, L'0, L'1, ..., L' M-1 Any two values in the expression can be different.
[0210] In another example, the first threshold can be the minimum row weight of the first region. For instance, taking the number of rows in the first region as M0, suppose the row weight of the 0th row of the first region is S'0, the row weight of the 1st row is S'1, ..., and the row weight of the (M0-1)th row is S' M0-1 If S'0 is the minimum value of row weight in region D, then the first threshold can be S'0.
[0211] In the fourth possible implementation, the X rows in the first region can be the X rows with the smallest row weight in the first region. Then, the first threshold can be the maximum row weight of that X row.
[0212] For example, taking X as 2 and the number of rows in the first region as M0, assume that the row weight of the 0th row in the first region is S'0, the row weight of the 1st row is S'1, ..., and the row weight of the (M0-1)th row is S' M0-1 , and S'0 <S’1<…<S’ M0-1 Therefore, the first threshold can be S'1.
[0213] In this context, the X rows with the lowest row weight in the first region can be understood as follows: If there exists an X1 row in the first region with the lowest and equal row weight, then if X1 is greater than or equal to X, the X rows with the lowest row weight in the first region can be determined. If X1 is less than X, the row weights in the first region can be arranged in ascending order, and the X rows at the beginning of the order can be determined as the X rows with the lowest row weight in the first region. Therefore, any two rows in the X rows with the lowest row weight in the first region can have the same row weight, or any two rows in the X rows with the lowest row weight in the first region can have different row weights, or at least two rows in the X rows with the lowest row weight in the first region can have the same row weight; there are no restrictions.
[0214] Based on the second, third, and fourth possible implementations, the sending device can determine the corresponding first threshold according to different communication scenarios, which can make the first threshold better meet the communication requirements and thus improve the reliability of communication; at the same time, it can improve the flexibility and diversity of the value of the first threshold.
[0215] Furthermore, by reducing the row weight of row X in the first region and ensuring that the column weight of column X in region E is greater than 1, the maximum performance of the encoding can be improved. Simultaneously, a better decoding threshold can be achieved, resulting in better convergence performance of the LDPC code, thereby enhancing decoding performance.
[0216] It is understood that in the first region, there are X rows with a row weight less than or equal to a first threshold, and correspondingly, in the E region, there are X columns with a column weight greater than 1. This application proposes three possible designs to determine the X rows in the D region and the X columns in the E region, thereby determining the basis matrix. In the first possible design, the first region may include all rows of the D region (i.e., the first region is the D region). In the second possible design, the first region may include some rows of the D region.
[0217] The first possible design is described in detail below:
[0218] In this application, X rows in region D have a row weight less than or equal to a first threshold; correspondingly, X columns in region E have a column weight greater than 1, and region E is a lower triangular matrix. The absolute value of the difference between the row number of row X in the base matrix and the column number of column X in the base matrix is the number of information columns in the base matrix (or, the row number of row X in region D is the same as the column number of column X in region E). This application provides two possible embodiments:
[0219] In a first possible embodiment, the sending device can determine the X row with the smallest row weight in region D. For example, the X row can be the d0th row, the d1th row, ..., the dth row in region D. X-1 line (d0) <d1<…<d X-1Furthermore, the transmitting device can determine column X of region E based on the row number of row X in the base matrix and the column number of the information columns in the base matrix. For example, column X can be column e0, column e1, ..., column e of region E. X-1 column (e0) <e1<…<e X-1 ).
[0220] Wherein, the column index of the e0th column in region E in the base matrix can be the sum of the row index of the d0th row in region D in the base matrix and the column number of the information column in the base matrix; the column index of the e1th column in region E in the base matrix can be the sum of the row index of the d1th row in region D in the base matrix and the column number of the information column in the base matrix; ..., the column index of the e0th column in region E... X-1 The column index corresponding to the column in the base matrix can be the d-th column in region D. X-1 The sum of the row number corresponding to the row in the base matrix and the column number of the information column in the base matrix.
[0221] For example, taking X as 1, assume that the row weight of the 0th row in region D is the smallest, and the row number of the 0th row in region D in the base matrix is 4. That is, the 0th row in region D is the 4th row of the base matrix. Assuming that the number of columns of information columns in the base matrix is 22, then the column weight of the 26th column (i.e., 4+22=26) of the base matrix can be greater than 1. In other words, the column weight of the 0th column in region E can be greater than 1, that is, the number of non-zero elements in the 0th column of region E can be greater than 1.
[0222] For example, the element in row 0 and column 0 of region E is 1, and there is at least one row in column 0 from row 1 to the last row that contains an element of 1.
[0223] Based on the first possible embodiment, the transmitting device can also determine X rows in region D whose row weight is less than or equal to the first threshold. Furthermore, the transmitting device can determine X columns in region E based on the row number of the X row in the base matrix and the number of information columns in the base matrix.
[0224] The determination of the first threshold can refer to the description of the first threshold above, and will not be repeated here.
[0225] In a second possible embodiment, the transmitting device can determine that there is a column weight of 1 in column n0 in region E. Correspondingly, the column weights of all columns in region E except column n0 are greater than 1. For example, the column weight of column e in region E is... X Column, e X+1 Column, ..., the eth M-1 Taking a column weight of 1 as an example, then the e0th column, e1th column, ..., eth column of region E... X-1 The column weight is greater than 1)(e0) <e1<…<e X-1Furthermore, the transmitting device can determine the X row of the D region based on the column index of column X in the base matrix corresponding to column X in region E, combined with the number of information columns in the base matrix. The row weight of this X row is less than or equal to a first threshold. For example, this X row can be the d0th row, the d1th row, ..., the dth row of the D region. X-1 line (d0) <d1<…<d X-1 ).
[0226] Wherein, the row number of the d0th row in region D in the base matrix can be the difference between the column number of the e0th column in region E in the base matrix and the column number of the information column in the base matrix; the row number of the d1th row in region D in the base matrix can be the difference between the column number of the e1th column in region E in the base matrix and the column number of the information column in the base matrix; ...; the dth row in region D... X-1 The row number corresponding to the row in the basis matrix can be the e-th row in region E. X-1 The difference between the column number corresponding to the information column in the base matrix and the column number in the base matrix.
[0227] Where n0 is a positive integer. For example, n0 can be the difference between the number of columns in region E and 1; or, n0 can be the difference between the number of columns in region E and 2; or, n0 can be the difference between the number of columns in region E and 3.
[0228] For example, taking n0 as the difference between the number of columns in region E and 1, the transmitting device can determine that X is 1. Assuming that the column weight of the 1st, 2nd, ..., Z-1th columns in region E is equal to 1, and the number of columns of information columns in the base matrix, the transmitting device can determine that the column weight of the 0th column in region E is greater than 1. If the column number of the 0th column in region E is 26 in the corresponding column index of the base matrix, then the row weight of the 4th row (i.e., 26-22=4) of the base matrix can be less than or equal to the first threshold. In other words, the row weight of the 0th row in region D can be less than or equal to the first threshold.
[0229] Based on the second possible embodiment, optionally, the transmitting device can make the row weight of X rows in region D less than or equal to the first threshold by deleting or adding non-zero elements of X rows in region D; or, the transmitting device can make the row weight of X rows in region D less than or equal to the first threshold by transformation, such as by performing row transformation on at least two rows in region D.
[0230] Based on the first possible design, the sending device can directly determine row X in region D, which simplifies the implementation and reduces its complexity.
[0231] In the second possible design, the first region may include a portion of the rows in region D. In the first region, there are X rows whose row weight is less than or equal to a first threshold. Correspondingly, in region E, there are X columns whose column weight is greater than 1, and region E is a lower triangular matrix. The absolute value of the difference between the row number of the x-th row in the base matrix and the column number of the x-th column in the base matrix is the number of information columns in the base matrix (or, the row number of the x-th row in region D is the same as the column number of the x-th column in region E). This application proposes two possible implementations, with different first regions in the different implementations:
[0232] In the first possible implementation, the number of non-zero elements in any row of the first region located in the punched column of the base matrix can be greater than or equal to t, where t is a positive integer.
[0233] In one example, t can be the number of punched columns in the base matrix (or it can be described as the number of information columns in the punched columns of the base matrix). For example, if the number of punched columns in the base matrix is 2, t can be 2.
[0234] In another example, t can be predefined. For instance, t can be 1; or t can be 2.
[0235] Understandably, if t is predefined, the transmitting device can directly determine t, which can reduce the device's workload and simplify implementation. If t is determined based on the number of punched columns in the base matrix (or the number of information columns in the punched columns of the base matrix), the transmitting device can determine the corresponding t according to different communication scenarios, which can make t better meet communication requirements, thereby improving communication reliability; at the same time, it can improve the flexibility and diversity of t's value.
[0236] Understandably, the transmitting device can determine the number of non-zero elements in the punched columns of each row in region D, and define the row where the number of non-zero elements in the punched columns is greater than or equal to t as the first region. For example, taking the 0th and 1st columns of the punched columns as the basis matrix, the transmitting device can determine the number of non-zero elements in the 0th and 1st columns of each row in region D, and define the row where the number of non-zero elements is greater than or equal to t as the first region.
[0237] Alternatively, the transmitting device can determine the row weight of the rows in region D within the punched column, and define the rows with a row weight greater than or equal to t as the first region. For example, taking the 0th and 1st columns of the punched column as the basis matrix, the transmitting device can determine the row weight of the 0th and 1st columns of region D, and define the rows with a row weight greater than or equal to t as the first region.
[0238] For example, taking the number of rows in region D as M, the punched columns as the 0th and 1st columns of the base matrix, and t as 2, the transmitting device can determine the rows in the 0th and 1st columns of region D with a row weight greater than or equal to 2. Assuming that the number of non-zero elements in the 0th and 1st columns of the 0th row of region D is 2, the number of non-zero elements in the 0th and 1st columns of the 3rd row is 2, and the number of non-zero elements in the 0th and 1st columns of the 6th row is 2, then the first region can include the 0th, 3rd, and 6th rows of region D.
[0239] Understandably, the sending device can determine the first region based on the row weight of the region in the punched column within region D. The first region has a large number of edges connected to the punched column, which can optimize the convergence performance of the punched column and thus improve the decoding performance.
[0240] Based on the first possible implementation, the transmitting device can determine the X row in the first region and the X column in the E region based on the two possible embodiments of the first possible design described above. That is, the D region in the two possible embodiments of the first possible design described above can be replaced with the first region, which will not be elaborated here.
[0241] In the second possible implementation, the first region may include a portion of consecutive rows of region D. For example, the first region may include rows 0 to t0 of region D; or, the first region may include rows t1 to t2 of region D; or, the first region may include rows t3 to M-1 of region D. Here, t0, t1, t2, and t3 are all positive integers.
[0242] Based on the second possible implementation, the transmitting device can determine the X row in the first region and the X column in the E region based on the two possible embodiments of the first possible design described above. That is, the D region in the two possible embodiments of the first possible design described above can be replaced with the first region, which will not be elaborated here.
[0243] Optionally, a second region may also exist, which may include a portion of consecutive rows of region D, and the intersection of the rows in the second region and the rows in the first region is an empty set. For example, if the first region includes rows 0 to t0 of region D, the second region may include rows t1 to t2 of region D, where t1 is greater than t0.
[0244] In this system, in the second region, there are Y rows whose row weight is less than or equal to the first threshold, and in the E region, there are Y columns whose column weight is greater than 1. The absolute value of the difference between the row number of the y-th row in the Y-row and the column number of the y-th column in the Y-column in the base matrix is the number of information columns in the base matrix (or, alternatively, the row number of the y-th row in the Y-row and the column number of the y-th column in the Y-column in the base matrix are the same). y = 0, 1, ..., Y-1, where Y is a positive integer. For example, Y can be 1; or Y can be 2; or Y can be 3.
[0245] The determination of row Y in the second region can be referenced to the determination of row X in the first region of this application, and will not be repeated here.
[0246] It is understood that the transmitting device can determine the Y row in the second region and the Y column in the E region based on the two possible embodiments of the first possible design described above. That is, the D region in the two possible embodiments of the first possible design described above can be replaced with the second region, and the X row (or X column) can be replaced with the Y row (or Y column), which will not be elaborated here.
[0247] Optionally, there may be a third region, a fourth region, ..., and each of the third, fourth, ... regions may include a portion of continuous rows from region D. The intersection of rows in the third region, rows in the third region, ... and rows in the first region is an empty set. The description of the third region, the fourth region, ... can be referred to the description of the second region in this application, and will not be repeated here.
[0248] Optionally, the transmitting device may determine only that there are X rows in the first region with a row weight less than or equal to a first threshold, and X columns in region E with a column weight greater than 1, and region E is a lower triangular matrix. Alternatively, the transmitting device may determine only that there are Y rows in the second region with a row weight less than or equal to the first threshold, and Y columns in region E with a column weight greater than 1, and region E is a lower triangular matrix. Or, the transmitting device may determine that there are X rows in the first region with a row weight less than or equal to the first threshold, and Y rows in the second region with a row weight less than or equal to the first threshold; in this case, region E has X+Y columns with a column weight greater than 1, and region E is a lower triangular matrix.
[0249] Optionally, the transmitting device can divide region D into multiple sub-regions. For example, region D may include a first region, a second region, and a third region. The first region may include rows 0 to t0 of region D, the second region may include rows t0+1 to t1 of region D, and the third region may include rows t1+1 to M-1 of region D. The transmitting device can determine that there are X rows in the first region with a row weight less than or equal to a first threshold, and correspondingly, there are X columns in region E with a column weight greater than 1. Similarly, the transmitting device can determine that there are Y rows in the second region with a row weight less than or equal to the first threshold, and correspondingly, there are Y columns in region E with a column weight greater than 1. Similarly, the transmitting device can determine that there are P rows in the third region with a row weight less than or equal to the first threshold, and correspondingly, there are P columns in region E with a column weight greater than 1. Region E is a lower triangular matrix.
[0250] Where P is a positive integer. For example, P can be 1; or P can be 2; or P can be 3.
[0251] It is understood that the sending device can divide the D region into any number of sub-regions. The first region, the second region, and the third region mentioned above are merely examples and do not impose any limitations on this application.
[0252] Furthermore, X, Y, and P can be different, or X, Y, and P can be the same, or at least two of X, Y, and P can have the same value; there are no restrictions.
[0253] Furthermore, the way the transmitting device determines row Y in the second region and column Y in the E region can refer to the two possible embodiments in the first possible design described above, that is, replacing the second region with region D and replacing row X (or column X) with row Y (or column Y); similarly, the way the transmitting device determines row P in the third region and column P in the E region can refer to the two possible embodiments in the first possible design described above, that is, replacing row X (or column X) with row P (or column P), which will not be elaborated here.
[0254] Based on the second possible design, the sending device can determine the first region from the D region, such that the row weight of X rows in the first region is less than or equal to the first threshold. The number of elements in the first region is small, the design space of the edge relationship is large, and the degree distribution is better, which can make the decoding performance better.
[0255] Here, the degree can refer to the degree of a variable (i.e., the number of edges connecting the variable, or the number of check nodes connected to the variable), or the degree of the check equation (i.e., the number of edges connecting the check equation, or the number of variables connected to the check equation). For a variable, the more edges it has, the higher its degree, allowing it to obtain information from more check nodes and more accurately estimate the information to be decoded. For a check equation, the fewer edges it has, the lower its degree, and the more accurate the estimation of the variable's state. Therefore, the degree distribution can be determined jointly by the edges of the variable and the check equation to achieve a better degree distribution.
[0256] In this context, the degree of a variable can be understood as the column weight of the basis matrix, and the degree of a verification equation can be understood as the row weight of the basis matrix.
[0257] This application provides a simulation design, as shown in Figure 7. The horizontal axis represents the code rate, and the vertical axis represents the difference between the SNR corresponding to the second basis matrix and the SNR corresponding to the first basis matrix. Figure 7 shows the simulation results obtained by the transmitting device performing LDPC encoding on the information bit sequence based on the first and second basis matrices respectively. The E region of the first basis matrix is an identity matrix, and the E region of the second basis matrix is a lower triangular matrix. It can be seen that the difference between the SNR corresponding to the second basis matrix and the SNR corresponding to the first basis matrix is basically greater than 0, that is, the SNR corresponding to the second basis matrix is greater than the SNR corresponding to the first basis matrix. In other words, the decoding performance corresponding to the basis matrix determined in this application is better.
[0258] It is understood that this application can be used to determine the base matrix. The transmitting device can perform LDPC encoding on the information bit sequence according to the base matrix; correspondingly, the receiving device can decode the information to be decoded according to the base matrix, as shown in the communication method in Figure 6. This application provides a possible embodiment for determining the base matrix. Taking a base matrix with 22 columns as an example, the base matrix can include regions D and E. Region D can include rows 4 to the last row and columns 0 to 25 of the base matrix. Region E can include rows 4 to the last row and columns 26 to the last column of the base matrix. The row with the smallest row weight in region D can be row 0. Therefore, the row number of row 0 in region D in the base matrix can be 4. Thus, the row number of column X in region E in the base matrix can be determined to be 26. That is, the column weight of column 0 in region E is greater than 1, and region E is a lower triangular matrix.
[0259] Specifically, the element in the 4th row of the 26th column of the basis matrix can be 1, and at least one row in the 5th to 45th rows of the 26th column of the basis matrix has an element of 1.
[0260] For example, the element in the 6th row and 26th column of the basis matrix can be 1, the element in the 7th row and 26th column can be 1, the element in the 8th row and 26th column can be 1, the element in the 26th row and 26th column can be 1, the element in the 28th row and 26th column can be 1, the element in the 31st row and 26th column can be 1, and the element in the 34th row and 26th column can be 1.
[0261] For example, the element in the 6th row and 26th column of the basis matrix can be 1, the element in the 7th row and 26th column can be 1, the element in the 8th row and 26th column can be 1, the element in the 26th row and 26th column can be 1, the element in the 28th row and 26th column can be 1, the element in the 31st row and 26th column can be 1, the element in the 34th row and 26th column can be 1, the element in the 6th row and 17th column can be 0, the element in the 7th row and 4th column can be 0, the element in the 8th row and 24th column can be 0, the element in the 26th row and 2nd column can be 0, the element in the 28th row and 21st column can be 0, the element in the 31st row and 25th column can be 0, and the element in the 34th row and 7th column can be 0.
[0262] For example, the basis matrix can be as shown in Figure 8, and the non-zero elements in the basis matrix can be as shown in Table 1.
[0263] Table 1
[0264] It is understandable that all elements in the basis matrix except those shown in Table 1 above are 0, or it can be described as all other elements in the above rows being zero elements.
[0265] In step 601, the transmitting device can determine the parity check matrix based on the base matrix. Specifically, the transmitting device can expand the base matrix according to the expansion factor to obtain the parity check matrix. For example, the expansion factor can be included in the expansion factor list, as shown in Table 2. Different set indices in Table 1 correspond to different sets of expansion factors, and the expansion factor set can include multiple expansion factors.
[0266] Table 2 List of expansion factors The set of natural numbers, The initial value is 1. For example, using set index i LS Taking 1 as an example, max(k1) is 7, k1∈{0,1,2,3,4,5,6,7}, a1=2, then the set index i LS The set of extended factors associated with 1 is {2, 4, 8, 16, 32, 64, 128, 256}. For example, using set index i... LSFor example, if the value is 7, then max(k7) is 4, k7∈{0,1,2,3,4}, and a7=15, then the set index i LS The set of extended factors associated with 7 is {15,30,60,120,240}.
[0267] Specifically, the transmitting device can expand the 0s in the base matrix into a Zc×Zc all-zero matrix, and expand the 1s in the base matrix into a Zc×Zc cyclic shift matrix.
[0268] For example, the transmitting device can expand the 1 in the i-th row and j-th column of the base matrix into a Zc×Zc cyclic shift matrix, that is, it can cyclically shift the Zc×Zc identity matrix Pi,j times, where Pi,j is the shifting value (SV) corresponding to the i-th row and j-th column of the base matrix.
[0269] For example, taking a 4*4 identity matrix as an example, the result of shifting the identity matrix cyclically once can be shown in Figure 9(a), the result of shifting the identity matrix cyclically twice can be shown in Figure 9(b), the result of shifting the identity matrix cyclically three times can be shown in Figure 9(c), and the result of shifting the identity matrix cyclically 0 (or 4) times can be shown in Figure 9(d).
[0270] Optionally, the transmitting device can determine the set index (i.e., the index of the set containing the expansion factor) based on the determined expansion factor, and can expand the 1s in the basis matrix according to the translation value list corresponding to the determined set index. For example, the translation value lists corresponding to different set indices in the expansion factor list are different, and the translation value lists can be as shown in Table 3:
[0271] Table 3 lists the translation values corresponding to set index 0.
[0272] Table 3 shows only the number of cyclic shifts corresponding to the elements in the first row of the base matrix.
[0273] For example, taking the set index of the expansion factor as 0, the 1 in the 1st row and 1st column of the base matrix can be expanded into a cyclic shift matrix of Zc×Zc, that is, the identity matrix of Zc×Zc can be cyclically shifted 250 times. The 1 in the 1st row and 2nd column of the base matrix can be expanded into a cyclic shift matrix of Zc×Zc, that is, the identity matrix of Zc×Zc can be cyclically shifted 69 times, ..., and the 1 in the 1st row and 24th column of the base matrix can be expanded into a cyclic shift matrix of Zc×Zc, that is, the identity matrix of Zc×Zc can be cyclically shifted 0 times.
[0274] For example, similar to the description in Release 15 of the 5G 3GPP standard, the basic code length *n* of LDPC encoding can be defined by the base matrix and the spreading factor *Zc*. When selecting the base matrix and spreading factor *Zc*, the choice between using the base matrix corresponding to BG1 or BG2 can be determined based on the transport block size and code rate conditions, ensuring that the encoded code length is as close as possible to the target code length. The target code length can be a preset value, such as 6144. Optionally, in this process, the spreading factor *Zc* can be determined from the aforementioned spreading factor list based on the number of information columns in the base matrix and the number of bits to be transmitted. Alternatively, the correspondence between the basic code length *n* and the spreading factor *Zc* and the transport block size and code rate conditions can be predefined.
[0275] The various embodiments of this application can be implemented independently or in combination, without limitation. Unless otherwise specified or in conflict of logic, the terminology and / or descriptions between the different embodiments provided in this application are consistent and can be referenced mutually. Technical features in different embodiments can be combined to form new embodiments based on their inherent logical relationships.
[0276] It is understood that in the embodiments of this application, the executing entity may perform some or all of the steps in the embodiments of this application. These steps or operations are merely examples, and the embodiments of this application may also perform other operations or variations thereof. Furthermore, the various steps may be executed in different orders as presented in the embodiments of this application, and it is not necessarily necessary to execute all the operations in the embodiments of this application.
[0277] The foregoing primarily describes the solutions provided in this application from the perspective of device-to-device interaction. It is understood that each device, in order to achieve the aforementioned functions, includes corresponding hardware structures and / or software modules for executing each function. Those skilled in the art will readily recognize that, based on the algorithmic steps of the examples described in conjunction with the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0278] This application embodiment can divide each device into functional modules according to the above method example. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into one processing module. The integrated module can be implemented in hardware or as a software functional module. The module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.
[0279] Figure 10 shows a transmitting device 100 when each functional module is divided according to its corresponding function. The transmitting device 100 can perform the actions performed by the transmitting device in the method shown in Figure 6 above. All relevant content of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module. The technical effects that can be obtained can be referred to the above method embodiment, and will not be repeated here.
[0280] The transmitting device 100 may include a transceiver module 1001 and a processing module 1002. Exemplarily, the transmitting device 100 may be a communication device, or a chip or other combination device or component having the aforementioned transmitting device functions applied in a communication device. When the transmitting device 100 is a communication device, the transceiver module 1001 may be a transceiver, which may include an antenna and radio frequency circuits, etc.; the processing module 1002 may be a processor (or processing circuit), such as a baseband processor, which may include one or more CPUs. When the transmitting device 100 is a combination device or component having the aforementioned transmitting device functions, the transceiver module 1001 may be a radio frequency unit; the processing module 1002 may be a processor (or processing circuit), such as a baseband processor. When the transmitting device 100 is a chip system, the transceiver module 1001 may be an input / output interface of a chip (e.g., a baseband chip); the processing module 1002 may be a processor (or processing circuit) of the chip system, and may include one or more central processing units. It should be understood that the transceiver module 1001 in the embodiments of this application can be implemented by a transceiver or transceiver-related circuit components; the processing module 1002 can be implemented by a processor or processor-related circuit components (or, referred to as processing circuit).
[0281] For example, the transceiver module 1001 can be used to execute all the transceiver operations performed by the sending device in the embodiment shown in FIG6, and / or to support other processes of the technology described herein; the processing module 1002 can be used to execute all operations other than the transceiver operations performed by the sending device in the embodiment shown in FIG6, and / or to support other processes of the technology described herein.
[0282] Figure 11 shows a receiving device 110, which can perform the actions performed by the receiving device in the method shown in Figure 6 above. All relevant content of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module, and the technical effects that can be obtained can be referred to the above method embodiment, which will not be repeated here.
[0283] The receiving device 110 may include a transceiver module 1101 and a processing module 1102. For example, the receiving device 110 may be a communication device, or a chip or other combination device or component having the aforementioned receiving device functions. When the receiving device 110 is a communication device, the transceiver module 1101 may be a transceiver, which may include an antenna and radio frequency circuits; the processing module 1102 may be a processor (or processing circuit), such as a baseband processor, which may include one or more CPUs. When the receiving device 110 is a combination device or component having the aforementioned receiving device functions, the transceiver module 1101 may be a radio frequency unit; the processing module 1102 may be a processor (or processing circuit), such as a baseband processor. When the receiving device 110 is a chip system, the transceiver module 1101 may be an input / output interface of a chip (e.g., a baseband chip); the processing module 1102 may be a processor (or processing circuit) of the chip system, and may include one or more central processing units. The transceiver module 1101 in this embodiment can be implemented by a transceiver or transceiver-related circuit components; the processing module 1102 can be implemented by a processor or processor-related circuit components (or, referred to as processing circuit).
[0284] For example, the transceiver module 1101 can be used to perform all the transceiver operations performed by the receiving device in the embodiment shown in FIG6, and / or to support other processes of the technology described herein; the processing module 1102 can be used to perform all operations other than the transceiver operations performed by the receiving device in the embodiment shown in FIG6, and / or to support other processes of the technology described herein.
[0285] As another possible implementation, the transceiver module 1001 in Figure 10 can be replaced by a transceiver unit that integrates the functions of the transceiver module 1001; the processing module 1002 can be replaced by a processor that integrates the functions of the processing module 1002. Furthermore, the transmitting end device 100 shown in Figure 10 may also include a memory. Alternatively, the transceiver module 1101 in Figure 11 can be replaced by a transceiver unit that integrates the functions of the transceiver module 1101; the processing module 1102 can be replaced by a processor that integrates the functions of the processing module 1102. Furthermore, the receiving end device 110 shown in Figure 11 may also include a memory.
[0286] Alternatively, when the processing module 1002 is replaced by a processor and the transceiver module 1001 is replaced by a transceiver, the transmitting end device 100 involved in the embodiments of this application can also be the communication device 120 shown in FIG12. Or, when the processing module 1102 is replaced by a processor and the transceiver module 1101 is replaced by a transceiver, the receiving end device 110 involved in the embodiments of this application can also be the communication device 120 shown in FIG12.
[0287] The processor can be logic circuit 1201, and the transceiver can be interface circuit 1202. Furthermore, the communication device 120 shown in FIG. 12 may also include a memory 1203. The memory 1203 may exist independently of the processor or be integrated with it. The memory 1203 can be used to store instructions, program code, or data, for example, it can store one or more of the following: a base matrix, a list of expansion factors, a list of translation values, or a cyclic shift matrix, or other data used to implement the method shown in FIG. 6. The memory 1203 may be located inside or outside the communication device 120, without limitation.
[0288] This application also provides a communication device, as shown in FIG13. This communication device can be applied to the method shown in any of the embodiments in FIG6. As shown in FIG13, the communication device includes a processing module and a transceiver module. The processing module may be one or more processors, and the transceiver module may be a transceiver or a communication interface. This communication device can be used to implement the sending or receiving device involved in any of the above method embodiments, or to implement the functions of the device involved in any of the above method embodiments. The device or device function may be a network component in a hardware device, a software function running on dedicated hardware, or a virtualization function instantiated on a platform (e.g., a cloud platform). Optionally, the communication device may further include a storage module for storing the program code and data of the communication device.
[0289] In one example, the communication device functions as a transmitting device or is a chip applied within a transmitting device, and executes the steps performed by the transmitting device in the above method embodiments. The transceiver module is used to specifically execute the transmitting and / or receiving actions performed by the transmitting device in any embodiment of FIG. 6, for example, supporting the transmitting device in performing other processes of the technology described herein. The processing module can be used to support the communication device in performing the processing actions in the above method embodiments, for example, supporting the transmitting device in performing other processes of the technology described herein.
[0290] To achieve the above functions, the chip of this application may include hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art will readily recognize that, based on the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0291] In one possible implementation, when the transmitting or receiving device is a chip, the transceiver module can be a communication interface, pins, or circuits. The communication interface can be used to input data to be processed to the processor and can output the processor's processing results. Specifically, the communication interface can be a general purpose input / output (GPIO) interface, which can connect to multiple peripheral devices (such as LCD displays, cameras, radio frequency (RF) modules, antennas, etc.). The communication interface is connected to the processor via a bus.
[0292] The processing module can be a processor, which can execute computer execution instructions stored in the storage module to cause the chip to execute the method involved in any of the embodiments shown in Figure 6. Further, the processor may include a controller, an arithmetic logic unit (ALU), and registers. For example, the controller is mainly responsible for instruction decoding and issuing control signals for the operations corresponding to the instructions. The ALU is mainly responsible for performing fixed-point or floating-point arithmetic operations, shift operations, and logical operations, and can also perform address operations and conversions. The registers are mainly responsible for storing register operands and intermediate operation results temporarily stored during instruction execution. In specific implementations, the processor's hardware architecture can be an ASIC architecture, a microprocessor without interlocked piped stages architecture (MIPS), an advanced reduced instruction set machine (RISC) machine (ARM) architecture, or a network processor (NP) architecture, etc. The processor can be single-core or multi-core. The storage module can be an internal storage module of the chip, such as a register or cache. The storage module can also be an external storage module, such as ROM or other types of static storage devices that can store static information and instructions, RAM, etc.
[0293] This application also provides a computer program product that, when executed by a computer, can implement the functions of any of the above method embodiments.
[0294] This application also provides a computer program that, when executed by a computer, can implement the functions of any of the above method embodiments.
[0295] This application also provides a computer-readable storage medium. All or part of the processes in the above method embodiments can be implemented by a computer program instructing related hardware. This program can be stored in the computer-readable storage medium, and when executed, it can include the processes of the above method embodiments. The computer-readable storage medium can be an internal storage unit of the terminal (including a data sending end and / or a data receiving end) of any of the foregoing embodiments, such as the terminal's hard disk or memory. The computer-readable storage medium can also be an external storage device of the terminal, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the terminal. Further, the computer-readable storage medium can include both the terminal's internal storage unit and external storage devices. The computer-readable storage medium is used to store the computer program and other programs and data required by the terminal. The computer-readable storage medium can also be used to temporarily store data that has been output or will be output.
[0296] The terms "first" and "second," etc., used in the specification, claims, and drawings of this application are used to distinguish different objects, not to describe a specific order. "First" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Therefore, a feature defined with "first" and "second" may explicitly or implicitly include one or more of that feature. In the description of this embodiment, unless otherwise stated, "a plurality of" means two or more.
[0297] Furthermore, the terms “comprising” and “having”, and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the steps or units listed, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to such process, method, product, or apparatus.
[0298] It is understood that in this application, "at least one (item)" refers to one or more. "More than one" refers to two or more. "At least two (items)" refers to two or three or more. "And / or" is used to describe the relationship between related objects, indicating that there can be three relationships. For example, "A and / or B" can mean: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the related objects before and after are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple. Both "...when" and "if" indicate that a corresponding action will be taken under certain objective circumstances. They are not time limits, nor do they require a judgment action to be taken when the action is taken, nor do they imply any other limitations.
[0299] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner to facilitate understanding.
[0300] In this application, "sending information to...(terminal device)" can be understood as the destination of the information being the terminal device. This can include sending information directly or indirectly to the terminal device. "Receiving information from...(terminal device)" can be understood as the source of the information being the terminal device, and can include receiving information directly or indirectly from the terminal device. Information may undergo necessary processing between the source and destination, such as format changes, but the destination can understand the valid information from the source.
[0301] Through the above description of the embodiments, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.
[0302] In the several embodiments provided in this application, the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another device, or some features may be ignored or not executed. Furthermore, the displayed or discussed mutual couplings, direct couplings, or communication connections may be through some interfaces; indirect couplings or communication connections between devices or units may be electrical, mechanical, or other forms.
[0303] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0304] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0305] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solution of this application embodiment, or all or part of the technical solution, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a device (which may be a microcontroller, chip, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.
Claims
1. A communication method, characterized in that, include: The first sequence is obtained by performing low-density parity check (LDPC) encoding on the information bit sequence based on the basis matrix. Output the first sequence; The base matrix includes a D region and an E region. The D region includes the m-th row to the last row and the 0-(n-1)-th column of the base matrix. The E region includes the m-th row to the last row and the n-th column of the base matrix. The m and n are determined according to the maximum bitrate supported by the base matrix. The first region includes some or all of the rows in the D region; In the first region, there are X rows with a row weight less than or equal to a first threshold. The E region is a lower triangular matrix, and in the E region, there are X columns with a column weight greater than 1. The absolute value of the difference between the row number of the xth row in the X rows and the column number of the xth column in the X columns in the base matrix is the column number of the information columns in the base matrix, where x = 0, 1, ..., X-1, and X is a positive integer.
2. A communication method, characterized in that, include: Receive the information to be decoded; The information to be decoded is decoded according to the basis matrix to obtain the decoding result; The base matrix includes a D region and an E region. The D region includes the m-th row to the last row and the 0-(n-1)-th column of the base matrix. The E region includes the m-th row to the last row and the n-th column of the base matrix. The m and n are determined according to the maximum bitrate supported by the base matrix. The first region includes some or all of the rows in the D region; In the first region, there are X rows with a row weight less than or equal to a first threshold. The E region is a lower triangular matrix, and in the E region, there are X columns with a column weight greater than 1. The absolute value of the difference between the row number of the xth row in the X rows and the column number of the xth column in the X columns in the base matrix is the column number of the information columns in the base matrix, where x = 0, 1, ..., X-1, and X is a positive integer.
3. The method according to claim 1 or 2, characterized in that, The first threshold is predefined; or The first threshold is determined based on the row weight of the D region; or The first threshold is determined based on the row weight of the first region.
4. The method according to any one of claims 1-3, characterized in that, The first threshold is the weighted average of the row weights in region D; or The first threshold is the minimum row weight of the D region.
5. The method according to any one of claims 1-3, characterized in that, The first threshold is the weighted average of the row weights in the first region; or The first threshold is the minimum row weight in the first region.
6. The method according to any one of claims 1-5, characterized in that, The first threshold is any one of the following: 3, 4, or 5.
7. The method according to any one of claims 1-3, characterized in that, The X row is the X row with the smallest row weight in the first region.
8. The method according to any one of claims 1-7, characterized in that, The number of non-zero elements in any row of the first region located in the punched column of the base matrix is greater than or equal to t; where t is a positive integer.
9. The method according to any one of claims 1-8, characterized in that, The t is the number of columns in the punched column of the base matrix; or The t is the number of information columns in the punched column of the base matrix; or The t is predefined.
10. The method according to claim 9, characterized in that, The value of t is 2; or The value of t is 1.
11. The method according to any one of claims 1-10, characterized in that, The first region includes a portion of the continuous rows of the D region.
12. The method according to claim 11, characterized in that, The second region includes a portion of the continuous rows of the D region, and the intersection of the rows in the second region and the rows in the first region is an empty set; In the second region, there are rows with a weight of Y that are less than or equal to the first threshold, and in the E region, there are columns with a weight of Y that are greater than 1. The absolute value of the difference between the row number of the y-th row in the Y-th row and the column number of the y-th column in the Y-th column in the base matrix is the number of information columns in the base matrix, where y = 0, 1, ..., Y-1, and Y is a positive integer.
13. The method according to claim 12, characterized in that, The Y is 1; or The value of Y is 2.
14. The method according to any one of claims 1-13, characterized in that, The value of X is 1; or X is 2.
15. The method according to any one of claims 1-14, characterized in that, If the number of rows in the base matrix is greater than the second threshold, the column weight of column X is greater than or equal to the column weight of columns from column 0 to column (n-1) of the base matrix, excluding the punched columns.
16. The method according to claim 15, characterized in that, The second threshold is determined based on the code rate supported by the base matrix.
17. The method according to claim 15 or 16, characterized in that, The second threshold is 13; or The second threshold is 24; or The second threshold is 45.
18. The method according to any one of claims 1-17, characterized in that, The m is determined based on the maximum code rate supported by the base matrix, including: The m is the row number of the core verification region of the base matrix.
19. The method according to any one of claims 1-18, characterized in that, The n is determined based on the maximum code rate supported by the base matrix, including: The number n is the sum of the number of information columns in the base matrix and the number of columns in the core verification region.
20. A communication device, characterized in that, The communication device includes a module or unit for performing the communication method as described in any one of claims 1, 3-19; or, the communication device includes a module or unit for performing the communication method as described in any one of claims 2-19.
21. A communication device, characterized in that, The communication device includes a processor; the processor is configured to run a computer program or instructions that cause the communication method as described in any one of claims 1, 3-19 to be executed, or cause the communication method as described in any one of claims 2-19 to be executed.
22. A communication device, characterized in that, The communication device includes an interface circuit and a logic circuit; the interface circuit is used to input and / or output information; the logic circuit is used to execute the communication method as described in any one of claims 1, 3-19, or to execute the communication method as described in any one of claims 2-19, and to process and / or generate the information based on the information.
23. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions or programs that, when executed on a computer, cause the communication method as described in any one of claims 1, 3-19 to be executed, or cause the communication method as described in any one of claims 2-19 to be executed.
24. A computer program product, characterized in that, The computer program product includes computer instructions; when some or all of the computer instructions are executed on a computer, they cause the communication method as described in any one of claims 1, 3-19 to be executed, or cause the communication method as described in any one of claims 2-19 to be executed.