Coding method and communication device

By obtaining the basis matrix of multiple cyclic matrices and splicing, the basis matrix offset value of the LDPC code is designed using cyclic and displacement operations, the decoding performance problem caused by the bad structure of short circles in 5G LDPC code is solved, and more efficient decoding performance and fine-grained offset value design is achieved.

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

Patent Information

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

AI Technical Summary

Technical Problem

5G LDPC codes are prone to short-circuit bad structures when encoding, resulting in poor decoding performance.

Method used

By obtaining the basis matrix of multiple cyclic matrices and splicing them, a combination of offset values ​​is designed, and the offset value of the basis matrix of the LDPC code is determined using cyclic and displacement operations to avoid short-circuit bad structures.

Benefits of technology

It effectively avoids the occurrence of short-circuit bad structures, improves the decoding performance of LDPC codes, and realizes fine-grained offset value design.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119995780A_ABST
    Figure CN119995780A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a coding method and a communication device, relates to the field of communication, and can improve the performance of an LDPC (Low Density Parity Check Code) code when the LDPC code is used for coding and decoding. The method comprises the following steps: acquiring a basis matrix of a first LDPC code, wherein the basis matrix of the first LDPC code is generated according to basis matrixes of a plurality of cyclic matrixes; obtaining an offset value of a basis matrix of the first LDPC code, the offset value of the basis matrix of the first LDPC code being obtained by circulating and displacing an offset value of at least one line in the basis matrix of the first LDPC code; or, the offset value of the basis matrix of the first LDPC code is obtained by performing circulation and displacement on the offset value of at least one line in the basis matrix of each cyclic matrix in the plurality of cyclic matrixes; encoding the information bit to be encoded according to the first LDPC code to obtain first data; and sending the first data. The embodiment of the invention is used for coding and decoding through the LDPC code.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

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

[0003] Among them, the offset value of the base matrix of the 5G LDPC code is obtained by random search, which has a large search volume and is prone to short cycle bad structure, which can easily lead to poor decoding performance. Summary of the invention

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

[0005] In a first aspect, a coding method is provided, and optionally, the execution subject of the method may be a terminal device or a network device, or a component or device (such as a processor, a chip, or a chip system, etc.) applied to the terminal device or the network device, or a logic module or software that can realize all or part of the functions of the terminal device or the network device. The method includes: obtaining a base matrix of a first LDPC code, wherein the base matrix of the first LDPC code is generated according to base matrices of multiple circulant matrices; obtaining an offset value of the base matrix of the first LDPC code, wherein the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of the first LDPC code; or, the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of each circulant matrix in multiple circulant matrices; encoding the information bits to be encoded according to the first LDPC code to obtain first data; and sending the first data.

[0006] The multiple circulant matrices may be multiple identical circulant matrices or multiple cyclic matrices that are not identical. The base matrix of the first LDPC code may be obtained by concatenating base matrices of multiple circulant matrices or by concatenating base matrices of multiple circulant matrices and then cutting off some rows and columns.

[0007] Therefore, in the present application, it is equivalent to adopting the idea of ​​jointly designing the base matrix and the offset value of the LDPC code, and a combination form of the offset value is proposed to avoid the short-circuit bad structure. In the present application, the offset value of the base matrix of the LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of the LDPC code; or, the offset value of the base matrix of the LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of each circulant matrix in multiple circulant matrices. That is, the design of the offset value in the present application is related to the operation of displacement. Compared with the random search in the prior art to obtain the offset value, there is a lack of a fixed algebraic structure guidance method. The present application is equivalent to characterizing the numerical characteristics of the offset value. Compared with the bad circle structure caused by the random search of the check matrix on the base matrix, the design of the offset value in the present application has a regular algebraic feature, which can not only avoid the problem of poor decoding performance caused by the bad circle structure, but also realize fine-grained offset value design, and can meet the required LDPC code characteristics with a smaller order of magnitude improvement factor.

[0008] In a second aspect, a decoding method is provided, and optionally, the execution subject of the method may be a terminal device or a network device, or a component or device (such as a processor, a chip, or a chip system, etc.) applied to the terminal device or the network device, or a logic module or software that can realize all or part of the functions of the terminal device or the network device. The method includes: receiving second data; obtaining a base matrix of a first LDPC code, wherein the base matrix of the first LDPC code is generated according to base matrices of multiple circulant matrices; obtaining an offset value of the base matrix of the first LDPC code, wherein the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of the first LDPC code; or, the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of each circulant matrix in multiple circulant matrices; decoding the second data according to the first LDPC code to obtain decoded information bits.

[0009] The beneficial effects of the second aspect can be found in the description of the first aspect.

[0010] In the first and second aspects:

[0011] In one possible design, obtaining the base matrix of the first LDPC code includes: receiving first indication information, the first indication information is used to indicate the base matrix of the first LDPC code; obtaining the offset value of the base matrix of the first LDPC code includes: receiving second indication information, the second indication information is used to indicate the offset value of the base matrix of the first LDPC code. For example, for the transmitting end, the first indication information and the second indication information may be sent to the transmitting end by the receiving end or other network devices. For the receiving end, the first indication information and the second indication information may be sent to the receiving end by the transmitting end or other network devices. Among them, the first indication information may, for example, indicate the dimension size of the base matrix of the first LDPC code, and the second indication information, the second indication information is used to indicate the dimension size of the matrix of the offset value of the base matrix of the first LDPC code. In the transmitting end and the receiving end, base matrices of various dimensional sizes and matrices of offset values ​​of various dimensional sizes may be stored. In this way, the design in which the base matrix and / or the offset value are indicated by the indication information can reduce the probability of short-circuit bad structure caused by the random search of the offset value by the transmitting end or the receiving end.

[0012] In a possible design, the base matrix of the circulant matrix is ​​obtained by circulating and shifting a vector determined by a preset polynomial and the dimension size of the base matrix of the circulant matrix. The polynomial can be used to indicate the element value of one row in the base matrix of the circulant matrix. In this way, when the element value of one row is subjected to multiple circulation and shift operations, a circulant matrix can be obtained. The number of rows and columns of the circulant matrix is ​​the same. In this way, for the base matrix of the first LDPC code, the base matrix of the first LDPC code can be obtained by the base matrices of different circulant matrices, which can realize a more flexible structure of the base matrix of the first LDPC code. For example, the circulant matrix of the base matrix of the first LDPC code can be determined according to indicators such as code length / code rate, so that the base matrix of the first LDPC code meets the current code length / code rate requirements.

[0013] In one possible design, a basis matrix of the first LDPC code is obtained by concatenating multiple circulant matrices; or, a basis matrix of the first LDPC code is obtained by concatenating and truncating basis matrices of multiple circulant matrices; wherein the concatenation operation includes at least one of row concatenation and column concatenation, and the truncation operation includes at least one of row truncation and column truncation.

[0014] In this way, compared with the method in which the base matrix of the first LDPC code is fixedly used once it is randomly searched, the implementation in which the base matrix of the first LDPC code is generated by multiple circulant matrices in the present application can make the base matrix of the first LDPC code currently used for encoding or decoding more flexible.

[0015] In one possible design, the number of elements 1 in the basis matrix of the first LDPC code accounts for (m-1) / m of the total number of elements in the basis matrix, where m is the number of rows of the basis matrix of the first LDPC code.

[0016] In the base matrix, each element 1 can be connected to an edge. This means that the present application can design an offset value for a base matrix with an edge density of (m-1) / m, so that the offset value has certain algebraic characteristics and avoids short loops and bad structures. In the present application, a short loop can be a loop / ring with a length of 4 or a loop / ring with a length of 6.

[0017] In a possible design, when the offset value of the base matrix of the first LDPC code is obtained by looping and shifting the offset value of at least one row in the base matrix of the first LDPC code, for any two consecutive rows in the base matrix of the first LDPC code, the offset value of the latter row is obtained by looping and shifting the offset value of the previous row by one element position. This is equivalent to looping and shifting the offset value of one row in the base matrix of the first LDPC code to obtain the offset value of the base matrix of the first LDPC code.

[0018] For example, when a numerical sequence of offset values ​​of a row is obtained according to the offset value vector, the numerical sequence of the offset values ​​of this row can be circulated and shifted to the right (or left) multiple times, each time shifting 1 element position, to obtain a matrix of offset values. For example, the dimension of the matrix of the offset values ​​is (n+m-1)×n, where n represents the length of the offset value vector / the number of offset values, and m represents the number of rows of the base matrix of the first LDPC code. When the dimension of the base matrix of the first LDPC code is m×N, any continuous m rows and N columns can be intercepted from the matrix of offset values ​​of dimension (n+m-1)×n as the offset values ​​of the base matrix of the first LDPC code. In this design, when the lifting factor of the base matrix meets certain conditions, short cycles of length 4, short cycles of length 6, or short cycles of length 4 and 6 can be avoided, thereby improving decoding performance.

[0019] In some possible designs, the present application does not limit the offset value of the next row to the offset value of the previous row by one element position, and may be circulated and shifted by two or more element positions each time. The present application also does not limit the offset value of one row in the base matrix of the first LDPC code to be circulated and shifted, and may be circulated and shifted by two or more rows of offset values.

[0020] In a possible design, in a case where the offset value of a base matrix of a first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in a base matrix of each of a plurality of circulant matrices, the offset value of a base matrix of a first LDPC code is obtained by respectively circulating and shifting the offset value of one row in a base matrix of each of a plurality of circulant matrices.

[0021] For example, when the dimension of the base matrix of the first LDPC code is m×N, the offset value of the base matrix of each circulant matrix can be obtained by performing multiple (e.g., m-1) cycles and positions according to the offset value vector of one row in the base matrix of each circulant matrix, and the direction of each cycle and displacement can be rightward or leftward translation, to obtain an offset value matrix with a latitude size of m×N. In this design, when the lifting factor of the base matrix meets certain conditions, a short cycle of length 4, a short cycle of length 6, or a short cycle of length 4 and 6 can be avoided, thereby improving decoding performance.

[0022] In a possible design, in the basis matrix of each circulant matrix, for any two consecutive rows, the offset value of the latter row is obtained by circulating and shifting the offset value of the previous row by one element position.

[0023] Of course, the present application does not limit the offset value of the next row in the base matrix of each circulant matrix to the offset value of the previous row being circulated and shifted by one element position, and it can also be circulated and shifted by two or more element positions each time. The present application also does not limit the offset value of the base matrix of the first LDPC code to be obtained by circulating and shifting the offset value of one row of the base matrix of each circulant matrix in multiple circulant matrices, and it can also be obtained by circulating and shifting the offset value of at least two rows of the base matrix of each circulant matrix in multiple circulant matrices.

[0024] In a possible design, in the base matrices of multiple circulant matrices, the offset values ​​of the same element positions are the same, or the offset values ​​of the same element positions are an arithmetic progression. That is, in the base matrix of the first LDPC code, the offset values ​​of a single circulant matrix are circulated and shifted within the block. When obtaining the offset values ​​of the base matrix of the first LDPC code, if the base matrix of the first LDPC code is transformed in rows and columns, the offset values ​​of the base matrix of the transformed first LDPC code may have the characteristics that the offset values ​​of the same element positions are the same, or the offset values ​​of the same element positions are an arithmetic progression.

[0025] In a possible design, in a case where an offset value of a base matrix of a first LDPC code is obtained by respectively circulating and shifting offset values ​​of at least one row in a base matrix of each of a plurality of circulant matrices, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting offset values ​​of two consecutive rows in a base matrix of each of a plurality of circulant matrices.

[0026] Of course, the present application is not limited to the offset values ​​of two rows (continuous or discontinuous rows) of the base matrix of each circulant matrix in multiple circulant matrices being circulated and shifted to obtain the offset value of the base matrix of the first LDPC code, and it can also be the offset values ​​of at least three rows of the base matrix of each circulant matrix in multiple circulant matrices being circulated and shifted to obtain the offset value of the base matrix of the first LDPC code. The present application does not limit the offset value of the latter row in the base matrix of each circulant matrix to circulate and shift the offset value of the previous row by two element positions, and it can also be circulated and shifted by three or more element positions each time. Moreover, in this design, under certain conditions that the lifting factor of the base matrix meets certain conditions, short cycles of length 4 can be avoided, or short cycles of length 6 can be avoided, or short cycles of length 4 and 6 can be avoided, thereby improving decoding performance.

[0027] In one possible design, in the basis matrix of each circulant matrix, for any four consecutive rows, the offset value of the third row is obtained by circulating the offset value of the first row and shifting it by two element positions, and the offset value of the fourth row is obtained by circulating the offset value of the second row and shifting it by two element positions.

[0028] In a possible design, when a base matrix of the first LDPC code is transformed in columns to make columns with the same edge relationship continuous, the offset values ​​of the base matrix of the transformed first LDPC code include multiple groups of identical offset value sequences.

[0029] That is, in the base matrix of the first LDPC code, the offset values ​​of a single circulant matrix are circulated and shifted within the block. When obtaining the offset values ​​of the base matrix of the first LDPC code, if the base matrix of the first LDPC code is transformed into rows and columns, the offset values ​​of the base matrix of the first LDPC code after the transformation have the characteristics of multiple groups of identical offset value sequences.

[0030] In one possible design, the shift direction of the offset value is consistent with the shift direction of the elements of the basis matrix of the circulant matrix.

[0031] That is, when the basis matrix of the circulant matrix corresponding to the basis matrix of the first LDPC code is uniformly obtained by rightward circulation and shifting, the offset value of the basis matrix of the first LDPC code can also be uniformly obtained by rightward circulation and shifting. Alternatively, when the basis matrix of the circulant matrix corresponding to the basis matrix of the first LDPC code is uniformly obtained by leftward circulation and shifting, the offset value of the basis matrix of the first LDPC code can also be uniformly obtained by leftward circulation and shifting. Alternatively, in some scenarios, the shift direction of the offset value may be inconsistent with the shift direction of the elements of the basis matrix of the circulant matrix.

[0032] In one possible design, the basis matrix of the first LDPC code is a core matrix of a base graph of the LDPC code.

[0033] Thus, relative to the basis of LDPC code Figure 1 Once the random search is obtained, the core matrix of the base graph of the LDPC code is fixed, which may lead to poor decoding performance. In the present application, the core matrix of the base graph of the LDPC code can be generated based on multiple circulant matrices, and the core matrix of the base graph of the LDPC code can be flexible.

[0034] In one possible design, for the j-th offset value of one row of the base matrix of the first LDPC code, j is an integer greater than or equal to 1: the j-th offset value is determined based on j and the number of rows of the base matrix of the first LDPC code; or, the j-th offset value is determined based on j and the number of values ​​of a preset offset value vector; or, the j-th offset value is determined based on j and the number of rows of the base matrix of the first LDPC code and the number of values ​​of a preset offset value vector; or, the j-th offset value is determined based on j, the number of rows of the base matrix of the first LDPC code, and the number of columns of the base matrix of the first LDPC code.

[0035] Of course, the present application does not limit the implementation method of the jth offset value. The number of values ​​of the offset value vector can also be understood as the total number of columns of the base matrix of multiple circulant matrices that generate the base matrix of the first LDPC code. In this way, for the base matrix of the first LDPC code, the offset value has a fixed algebraic structure guidance and has regular algebraic characteristics. Compared with the random search offset value method, the offset value design of the present application can reduce the probability of generating short loops and improve decoding performance.

[0036] According to a third aspect, a communication device is provided, comprising: a processing unit, configured to obtain a base matrix of a first low-density parity-check (LDPC) code, wherein the base matrix of the first LDPC code is generated based on base matrices of multiple circulant matrices; obtaining an offset value of the base matrix of the first LDPC code, wherein the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of the first LDPC code; or, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in the base matrix of each circulant matrix in multiple circulant matrices; encoding the information bits to be encoded according to the first LDPC code to obtain first data; and a sending unit, configured to send the first data.

[0037] In a fourth aspect, a communication device is provided, comprising: a receiving unit, configured to receive second data; a processing unit, configured to obtain a base matrix of a first low-density parity-check (LDPC) code, wherein the base matrix of the first LDPC code is generated based on base matrices of multiple circulant matrices; an offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of the first LDPC code; or, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in the base matrix of each circulant matrix in multiple circulant matrices; and the second data is decoded according to the first LDPC code to obtain decoded information bits.

[0038] The various possible designs of the first and second aspects are also applicable to the third and fourth aspects herein.

[0039] According to a fifth aspect, a communication device is provided, comprising a module for executing the method according to any possible design of at least one of the first aspect or the second aspect.

[0040] In a sixth aspect, a communication device is provided, comprising one or more processors, wherein the one or more processors are configured to execute the method described in any possible design of at least one of the first aspect or the second aspect.

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

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

[0043] In a ninth aspect, a chip is provided, comprising: storing computer execution instructions on the chip; when the computer execution instructions are executed, the method described in any possible design of at least one of the first aspect or the second aspect is executed.

[0044] In a tenth aspect, a communication system is provided, comprising a first communication device and a second communication device, the first communication device being used to execute a method as described in any possible design in the first aspect, and the second communication device being used to execute a method as described in any possible design in the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

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

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

[0047] Figure 3 A schematic diagram of BG1 and BG2 provided in an embodiment of the present application;

[0048] Figure 4 A schematic diagram of base matrix distribution of BG1 provided in an embodiment of the present application;

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

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

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

[0052] Figure 8 A characteristic schematic diagram of an offset value of a base matrix of a first LDPC code provided in an embodiment of the present application;

[0053] Fig. 9 A schematic diagram of the characteristics of the offset value of a base matrix of a first LDPC code obtained by horizontally splicing multiple circulant matrices provided in an embodiment of the present application;

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

[0055] Fig.11 A schematic diagram of various offset values ​​of a non-fully connected base matrix provided in an embodiment of the present application;

[0056] Fig.12 A schematic diagram of a circulant matrix of various offset values ​​provided in an embodiment of the present application;

[0057] Fig.13 A schematic diagram of offset values ​​of base matrices of various first LDPC codes provided in an embodiment of the present application;

[0058] Fig.14 A schematic diagram of offset values ​​of base matrices of various first LDPC codes provided in an embodiment of the present application;

[0059] Fig.15 A schematic diagram of offset values ​​of base matrices of various first LDPC codes provided in an embodiment of the present application;

[0060] Fig.16 A characteristic schematic diagram of an offset value of a base matrix of a first LDPC code provided in an embodiment of the present application;

[0061] Fig.17 A schematic diagram of offset values ​​of base matrices of various first LDPC codes provided in an embodiment of the present application;

[0062] Fig.18 A schematic diagram comparing BLERs of two random search-based offset values ​​provided in an embodiment of the present application and the offset value design of the present application;

[0063] Fig.19 A schematic diagram of performance comparison between a current BG1 provided in an embodiment of the present application and a core matrix of the BG1 using the offset value design of the present application;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0080] The LDPC code is encoded by generating a matrix and applying a quasi-cyclic (QC) structure of the LDPC code. By setting the translation amount of each block, bad structures such as short loops are avoided to increase the code distance.

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

[0082] At present, the decoding algorithms of LDPC codes mainly include Min-Sum (MS) and belief propagation (BP) decoding algorithms. In terms of decoding performance, BP decoding algorithm has better performance, but it requires large amount of information storage. c→v The calculation method of (row and column) is complex and not conducive to hardware implementation. Therefore, in actual communication systems, Offset-MS and Normalized-MS decoding algorithms are currently used.

[0083] In the current 5G air interface, BG1 and BG2 are mostly used for the base graph / base matrix of the 5G NR-LDPC code. Figure 3 Shown are the distribution diagrams of BG1 and BG2. Figure 3 (a) in FIG. 1 shows a schematic diagram of a base matrix of BG1, where the number of rows of BG1 is 46Z, the number of columns is 68Z, the number of punctured columns is 2Z, the number of information bits is 22Z, and the number of check bits is 46Z, where Z represents a lifting size. Figure 3 (b) shows a schematic diagram of the base matrix of BG2, where the number of rows of BG2 is 42Z, the number of columns is 52Z, the number of punctured columns is 2Z, the number of information bits is 10Z, and the number of check bits is 42Z.

[0084] Taking BG1 as an example, specifically, the basis matrix distribution of BG1 can be as follows Figure 4 As shown, it includes a high code rate area (core area / matrix), an incremental redundancy area and a check area. Among them, the high code rate area includes a high code rate information bit area and a high code rate check area. The high code rate check area can be a dual diagonal structure.

[0085] At present, when using the base matrix BG1 or BG2 of the 5G NR-LDPC code, the base matrix and the shifting value of the base matrix are obtained by random search and rely on a large number of searches. Moreover, the LDPC code obtained by the search is prone to short-circuit bad structures, resulting in poor decoding performance.

[0086] In order to reduce the bad structure of short cycles, when designing LDPC codes, the offset value of the base matrix can be designed to avoid the bad structure of short cycles as much as possible, so that the decoding performance of LDPC codes is basically guaranteed. In this design, when the base matrix of the LDPC code is n×n fully connected, in order to avoid the appearance of short cycles (C4) of length 4, the offset value of the base matrix can have the following characteristics: for the n×n fully connected base matrix, when the set of row and column labels is {0,…,n-1}, the offset value of the i-th row and j-th column is designed to be i×j. Among them, if n is a prime number p, the offset value of the i-th row and j-th column can also be designed to be i×j (mod p).

[0087] Thus, Table 1 shows the design of the offset value of the base matrix of the LDPC code.

[0088] Table 1

[0089]

[0090] However, on the one hand, this LDPC code is designed to be fully connected, which has a high implementation complexity and cannot guarantee decoding performance, making it unsuitable for actual application requirements. On the other hand, this design only considers avoiding the occurrence of short cycles of length 4. For medium-length codes, short cycles of length 6 may still appear. Furthermore, the magnitude of the boost factor in this design is large, or n is required to be a prime number, which limits the scope of application and makes it impossible to achieve fine-grained offset value design.

[0091] Therefore, the embodiment of the present application provides a method for encoding and decoding based on a cyclic structure LDPC code, in which all isomorphic matrices can be covered at the same time, and the idea of ​​jointly designing the base matrix and the offset value of the LDPC code is adopted, and a combination form of the offset value is proposed to avoid the short-circuit bad structure. In the present application, the offset value of the base matrix of the LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of the LDPC code; or, the offset value of the base matrix of the LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of each cyclic matrix in multiple cyclic matrices. That is, the design of the offset value in the present application is related to the operation of displacement, which is equivalent to characterizing the numerical characteristics of the offset value. Compared with the bad circle structure caused by randomly searching the check matrix on the base matrix, the design of the offset value in the present application has a regular algebraic feature, which can not only avoid the bad circle structure, but also realize the fine-grained offset value design.

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

[0093] In order to facilitate the description of the method for encoding and decoding based on the cyclic structure LDPC code of the present application, the cyclic matrix in the present application is first introduced here. The cyclic matrix can also be called a cyclic unit, a basic cyclic unit, a cyclic block or a single cyclic block, etc., and can also have other names, which are not limited by the present application. The cyclic matrix can be used as a template for the basic operation of generating LDPC codes, and the base matrix of the cyclic matrix can be used to generate the base matrix / base graph of the LDPC code for lifting and translation.

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

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

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

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

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

[0099] 1. First, generate an m-dimensional 0,1 vector, where the position of the element 1 is p+1=(h 0 +1,h 1 +1,…,h k +1), and the rest of the elements are 0, generating an m-dimensional vector V 1 Here, p+1 describes the process of vector g performing row translation, that is, the position of element 1 in the previous row can be translated to the right / left by 1 unit to obtain the vector of the next row. 1 Describes the first row of elements of the cycle unit.

[0100] For example, Figure 5 The figure shows a schematic diagram of a basis matrix of a circulant matrix. The above polynomial or m-dimensional 0,1 vector is used to describe the elements / blocks of the first row of the basis matrix of the circulant matrix. In the case of m=9 and t=8, the above polynomial can be changed to g(x)=g 0 +g 1 x+…+g 8 x 8 , if the position where the element is 1 is p=(0,3,7), b=1 (non-zero position is shifted by 1 unit), the k in the position representing the non-zero coefficient in the polynomial and m-dimensional 0,1 vector is 2. The polynomial corresponding to this circulant matrix is ​​(x)=1+x 3 +x 7 The first row of the m-dimensional vector V 1 =(1,0,0,1,0,0,0,1,0). Where, h 0 =0, indicating the coefficient g 0 , that is, the first element in the first row is 1; h 1 =3, indicating the coefficient g 3 , that is, the element at the 4th position of the first row is 1; h2 =7, indicating the coefficient g 7 , that is, the element at the 8th position in the first row is 1.

[0101] 2. If Figure 5 As shown, the vector V 1 Perform 1 to m-1 cycles to the right to generate a basis matrix of an m×m circulant matrix, that is, the first row of the basis matrix of the circulant matrix is ​​the m-dimensional vector V 1 , the second row element is an m-dimensional vector V 2 V 1 The result of a rightward shift is V 2 (i) = V 1 (i-1), i represents the i-th element in a row, the value range is [2, m], and i is an integer. 2 (1) = V 1 (m), which means that if the mth element moves out to the m+1th position during the translation process, the nth element returns to the 1st element position, that is, circular displacement. Similarly, the m-dimensional vector V of the third row element 3 is to transform the vector V 2 As a result of shifting one item to the right, the generation rules for the elements in the fourth row to the mth row are the same as the generation rules for the elements in the second row.

[0102] Or, in Figure 5 Not shown, it can also be that the second row element m-dimensional vector V 2 V 1 The result of a left shift, V 2 (i) = V 1 (i+1), i represents the i-th element in a row, the value range is [1, m-1], and i is an integer, and V 2 (m) = V 1 (1) means that if the mth element moves out to the m+1th position during the translation process, the nth element returns to the 1st element position, that is, cyclic shift. Similarly, the m-dimensional vector V of the third row element 3 is to transform the vector V 2 As a result of shifting one term to the left, the generation rules for the elements in the fourth row to the mth row are the same as the generation rules for the elements in the second row.

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

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

[0105] Based on the above introduction to the circulant matrix, the encoding method of the present application is introduced below.

[0106] like Figure 6 The figure is a schematic diagram of a process flow of an encoding method provided in an embodiment of the present application, and the method includes the following process.

[0107] 601. A transmitting end obtains a basis matrix of a first LDPC code, where the basis matrix of the first LDPC code is generated according to a basis matrix of at least one circulant matrix.

[0108] In some embodiments, the transmitting end is, for example, a terminal device or a network device. Before the transmitting end encodes the information bits to be transmitted, a base matrix of the first LDPC code may be obtained first.

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

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

[0111] Exemplarily, the indicator used to reflect the communication scenario is, for example, at least one of the code length and the code rate, or the communication scenario may also be indicated by indication information indicating the type of the communication scenario. The indicator used to reflect the capability information of the receiving end may be divided according to, for example, at least one of the following information: the range of the lifting factor supported by the receiving end; the range of the number of rows and columns of the base matrix of the LDPC code matrix supported by the receiving end; uplink reception or downlink reception.

[0112] In some embodiments, the base matrix of the first LDPC code is obtained by concatenating multiple circulant matrices; or, the base matrix of the first LDPC code is obtained by concatenating and truncating base matrices of multiple circulant matrices. Here, the multiple circulant matrices may be the same or different.

[0113] The splicing operation includes at least one of row splicing and column splicing, and the interception operation includes at least one of row interception and column interception.

[0114] In some embodiments, the base matrix of the first LDPC code in the present application may be a matrix of 4 rows and N columns or a matrix of 3 rows and N columns, where N is an integer greater than or equal to 1.

[0115] For example, Figure 7 (a) in FIG. 1 is a schematic diagram of a single circulant matrix 600 with a dimension m of 4, as shown in FIG. Figure 7 The schematic diagram of the circulant matrix 600 shown in (a) can be spliced ​​to obtain the base matrix of the first LDPC code. In this case, N=28. The base matrix of the first LDPC code is obtained by horizontally splicing 7 circulant matrices 600. Alternatively, the circulant matrix 600 can also be obtained by truncating a circulant matrix in the circulant matrix set. Figure 7 From (a) in the figure, we can see that the vector p of the first row of the basis matrix of the first LDPC code is (1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15, 16, 18, 19, 21, 22, 23, 25, 26, 27).

[0116] like Figure 7 (b) in FIG. 1 is a schematic diagram of a single circulant matrix 700 with a dimension m of 3, as shown in FIG. Figure 7 The schematic diagram of the circulant matrix 700 shown in (b) of FIG. 1 can be concatenated to obtain the base matrix of the first LDPC code, where N=18. The base matrix of the first LDPC code is obtained by horizontally concatenating six circulant matrices 700. Alternatively, the circulant matrix 700 can also be obtained by truncating a circulant matrix in the circulant matrix set. Figure 7 From (b) in the figure, we can see that the vector p of the first row of the basis matrix of the first LDPC code is (0, 2, 3, 5, 6, 8, 9, 10, 12, 14, 15, 17).

[0117] It should be noted that Figure 7 The structure of the base matrix of the first LDPC code shown in (a) and (b) can also be transformed into other structures after row-column transformation operations, and the transformed structure has the same matrix properties as the base matrix of the first LDPC code.

[0118] In some embodiments, the number of elements 1 in the base matrix of the first LDPC code accounts for (m-1) / m of the total number of elements in the base matrix of the first LDPC code, where m is the number of rows of the base matrix of the first LDPC code.

[0119] For example, in Figure 7 In the basis matrix of the first LDPC code shown in (a), m is 4, and the number of elements 1 accounts for 3 / 4 of the total number of elements in the basis matrix of the first LDPC code. In other words, in the basis matrix of the first LDPC code, the edge density is 3 / 4. Figure 7 In the base matrix of the first LDPC code shown in (b), m is 3, and the number of element 1 accounts for 2 / 3 of the total number of elements in the base matrix of the first LDPC code. In other words, in the base matrix of the first LDPC code, the edge density is 2 / 3. Among them, the position of each element 1 can be connected to the edge operation.

[0120] The base matrix of the first LDPC code may also be referred to as a non-fully connected base matrix with m rows and N columns.

[0121] 602. The transmitter obtains an offset value of a base matrix of a first LDPC code, wherein the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of the first LDPC code; or, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in a base matrix of each of a plurality of circulant matrices.

[0122] In some embodiments, the displacement direction of the base matrix of the first LDPC code is consistent with the displacement direction of the offset value of the base matrix of the first LDPC code. For example, if the base matrix of the first LDPC code is obtained by circulating and shifting the vectors of at least one row of the base matrix to the right, the offset value of the base matrix of the first LDPC code is also obtained by circulating and shifting one row of the offset value to the right. Of course, the displacement direction here can also be a left shift.

[0123] Three structures based on the base matrix of the first LDPC code and corresponding forms of offset values ​​of the base matrix of the first LDPC code are given below.

[0124] Form 1. In some embodiments, when the offset value of the base matrix of the first LDPC code is obtained by looping and shifting the offset value of at least one row in the base matrix of the first LDPC code, the offset value of the base matrix of the first LDPC code may be obtained by looping and shifting the offset value of one row in the base matrix of the first LDPC code. In this way, for any two consecutive rows in the base matrix of the first LDPC code, the offset value of the latter row is obtained by looping and shifting the offset value of the previous row by one element position. It should be noted that one of the rows here can be understood as the first row element of the base matrix in sequence, or it can be understood as any row element of the base matrix. When understood as any row element, the any row element can also be used as the first row element of the base matrix in sequence after row transformation.

[0125] It should be noted that the offset value of the base matrix of the first LDPC code can also be the offset value after the base matrix of the structure of form 1 is transformed into rows and columns. That is, any two consecutive rows here can also be transformed into two discontinuous rows by performing row transformation in the base matrix of the first LDPC code. As long as the base matrix of any LDPC code has the offset value structure of form 1 after the row-column transformation, the base matrix of any LDPC code is considered to be the base matrix of the first LDPC code.

[0126] For example, Figure 7 In the case where the base matrix of the first LDPC code shown in (a) is obtained by horizontally splicing a plurality of identical circulant matrices 600, as shown in FIG. Figure 7 The offset value of the base matrix of the first LDPC code shown in (a) can also be obtained by looping and shifting one element position of the offset value of one row (e.g., the first row) in the base matrix of the first LDPC code. That is, for the offset value of the base matrix of the first LDPC code, the offset value of the next row is obtained by looping and shifting one element position of the offset value of the previous row.

[0127] Form two, in some embodiments, when the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in the base matrix of each circulant matrix in multiple circulant matrices, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of one row in the base matrix of each circulant matrix in multiple circulant matrices.

[0128] That is to say, when the base matrix of the first LDPC code is obtained by concatenating multiple circulant matrices, the offset value of one row of the base matrix of each circulant matrix can be circulated and shifted within the block to obtain the offset value of the base matrix of each circulant matrix. For example, for the base matrix of each circulant matrix, one of the rows here is the first row of the base matrix. Of course, it can also be one of the rows after the row-column transformation of all circulant matrices is performed with the same operation.

[0129] It should be noted that the basis matrix of the first LDPC code may also be a basis matrix after the basis matrix of the structure of form 2 is transformed in rows and columns. That is, the offset value of the first row of the basis matrix of each circulant matrix is ​​circulated and shifted here, which can also be understood as the offset value of any row of the basis matrix of each circulant matrix is ​​circulated and shifted. As long as the basis matrix of any LDPC code is transformed in rows and columns and has the offset value structure of form 2, the basis matrix of any LDPC code is considered to be the basis matrix of the first LDPC code.

[0130] In some embodiments, in the base matrix of each circulant matrix, for any two consecutive rows, the offset value of the latter row is obtained by circulating and shifting the offset value of the previous row by one element position.

[0131] In some embodiments, in the basis matrices of the plurality of circulant matrices, the offset values ​​of the same element positions are the same, or the offset values ​​of the same element positions are an arithmetic progression.

[0132] For example, Figure 8 FIG. 1 is a characteristic diagram of an offset value of a base matrix of a first LDPC code. Figure 8 The schematic diagram of the base matrix of the first LDPC code is shown, and the base matrix is ​​obtained by horizontally splicing 7 identical circulant matrices, but when the offset values ​​of the base matrix of each circulant matrix are respectively circulated within the block, for example, the offset values ​​of the first row are circulated and shifted by 1 position, the offset values ​​of the same element positions in the base matrices of the multiple circulant matrices are the same or an arithmetic progression. For example, the offset values ​​of the third element position in the second row of the base matrix of each circulant matrix are the same or an arithmetic progression, and the offset values ​​of the second element position in the fourth row of the base matrix of each circulant matrix are the same or an arithmetic progression.

[0133] Form three, in some embodiments, when the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in the base matrix of each circulant matrix in multiple circulant matrices, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of two rows of the base matrix of each circulant matrix in multiple circulant matrices. For example, for the base matrix of each circulant matrix, the two rows here are the first two rows of the base matrix. Of course, it can also be two consecutive rows after the row-column transformation of all circulant matrices is performed with the same operation.

[0134] That is, in form 3, the loop and displacement in the block are performed similarly to form 2. The difference is that in form 3, for the offset value, the loop and displacement are performed once every two rows.

[0135] It should be noted that the base matrix of the first LDPC code can also be a base matrix after the base matrix of the structure of form three is transformed into a base matrix with rows and columns. That is, the offset values ​​of the first two rows of the base matrix of each circulant matrix are circulated and shifted here, which can also be understood as the offset values ​​of any two rows of the base matrix of each circulant matrix are circulated and shifted. As long as the base matrix of any LDPC code has the offset value structure of form three after the row-column transformation, the base matrix of any LDPC code is considered to be the base matrix of the first LDPC code.

[0136] In some embodiments, in the base matrix of each circulant matrix, for any four consecutive rows, the offset value of the third row is obtained by circulating the offset value of the first row and shifting it by two element positions, and the offset value of the fourth row is obtained by circulating the offset value of the second row and shifting it by two element positions.

[0137] Similarly, any four consecutive rows can also be transformed into four discontinuous rows. As long as there are four rows in the base matrix of the first LDPC code that have the offset value structure after the row transformation, it is sufficient.

[0138] In this case, when the base matrix of the first LDPC code is obtained by horizontally splicing multiple identical circulant matrices, if the base matrix of the first LDPC code is column-transformed so that columns with the same edge relationship are connected continuously, the offset values ​​of the base matrix of the transformed first LDPC code include multiple groups of identical offset value sequences.

[0139] For example, Fig. 9 The figure shows a schematic diagram of the base matrix of the first LDPC code obtained by horizontally splicing multiple circulant matrices. Fig. 9The positions of the same shaded patterns in the circulant matrix 901 in have the same offset value. If multiple circulant matrices with the same dimension (including the circulant matrix 901) are concatenated and column transformation is performed to make the columns with the same edge relationship continuous, the following can be obtained: Fig. 9 The offset value structure 902 shown in (a) of FIG. 9 is a structure of a base matrix, but the numerical sequence of the offset values ​​at positions with the same hatching pattern in the concatenated offset value structure 902 is the same. The offset value at the position of element 0 is a null value.

[0140] akin, Fig. 9 The positions of the same shaded patterns in the circulant matrix 904 in have the same offset value. If multiple circulant matrices with the same dimension (including the circulant matrix 904) are concatenated and column transformation is performed to make the columns with the same edge relationship continuous, the following can be obtained: Fig. 9 (b) shows the offset value structure 905. Although the offset value structure 905 shows the structure of the base matrix, the numerical sequence of the offset values ​​of the positions with the same hatching pattern is the same in the concatenated offset value structure 905. The offset value of the position of element 0 is a null value.

[0141] akin, Fig. 9 The positions of the same shaded patterns in the circulant matrix 907 in have the same offset value. If multiple circulant matrices with the same dimension (including the circulant matrix 907) are concatenated and column transformation is performed to make the columns with the same edge relationship continuous, the following can be obtained: Fig. 9 The offset value structure 908 shown in (c) of FIG. 9 is a structure of a base matrix, but the numerical sequence of the offset values ​​of the positions with the same hatching pattern in the concatenated offset value structure 908 is the same. The offset value of the position of element 0 is a null value. The offset value of the position of element 0 is a null value.

[0142] It should be noted that Fig. 9 In the offset values ​​of the base matrix of the first LDPC code after splicing shown in (a), (b) and (c), the numerical sequence of the positions of the continuous same shaded patterns may be the same or different. If the base matrices of multiple circulant matrices with the same dimensions are the same and the offset values ​​are the same, the numerical sequence of the positions of the continuous same shaded patterns is the same. If the base matrices of multiple circulant matrices with the same dimensions are the same but the offset values ​​are different, the numerical sequence of the positions of the continuous same shaded patterns is different.

[0143] Regarding the above three forms of offset value structures, specific calculation examples will be given later.

[0144] 603. The transmitter encodes the information bits to be encoded according to the first LDPC code to obtain first data.

[0145] In some embodiments, the base matrix of the first LDPC code is a core matrix of a base graph of the LDPC code, for example, the core matrix is ​​a high code rate region of the base graph.

[0146] Exemplarily, the base matrix of the first LDPC code is a high code rate region of the base graph of BG1 or BG2. When the transmitter needs to encode the information bits to be encoded, a submatrix in BG1 or BG2 can be selected for encoding according to indicators such as code length or code rate, and the submatrix includes the base matrix of the first LDPC code in this application.

[0147] 604. The sender sends first data.

[0148] It should be understood that the first data sent by the transmitting end is data processed by processes such as rate matching on the encoded first data.

[0149] Similar to the encoding process at the transmitting end, the decoding process at the receiving end may also first calculate the base matrix and offset value of the first LDPC code, and then decode the received data according to the base matrix and offset value of the first LDPC code.

[0150] Therefore, if Figure 6 As shown, the decoding method of the present application includes the following process.

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

[0152] The second data may be data obtained after the first data has been rate matched and transmitted through a wireless channel.

[0153] 606. The receiving end obtains a basis matrix of a first LDPC code, where the basis matrix of the first LDPC code is generated according to basis matrices of multiple circulant matrices.

[0154] The implementation of step 606 may refer to the implementation of step 501 .

[0155] 607. The receiving end obtains an offset value of a base matrix of the first LDPC code, wherein the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of one row in the base matrix of the first LDPC code; or, the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of each of the multiple circulant matrices.

[0156] The implementation of step 607 may refer to the implementation of step 602 .

[0157] 608. The receiving end decodes the second data according to the first LDPC code to obtain decoded information bits.

[0158] In some embodiments, if the base matrix of the first LDPC code is the core matrix of the base graph of the LDPC code, for example, the core matrix is ​​a high code rate region of the base graph, the base matrix of the first LDPC code can be used as a high code rate region in a submatrix of the base graph used by the receiving end for decoding. For example, the base matrix of the first LDPC code is a high code rate region of the base graph of BG1 or BG2. When the receiving end needs to decode the received second data, a submatrix in BG1 or BG2 can be selected for encoding based on indicators such as code length or code rate, and the submatrix includes the base matrix of the first LDPC code in the present application.

[0159] In this way, for the transmitter and the receiver, compared with the prior art that relies on a large number of random searches to obtain offset values, which may produce short-loop bad structures, the present application can obtain the offset values ​​through certain calculations, such as looping and shifting the offset values ​​of the first row in the base matrix of the first LDPC code to obtain the offset values, or looping and shifting the offset values ​​of at least one row in the base matrix of each of the multiple circulant matrices to obtain the offset values. There is no need to randomly search to obtain the offset values, thereby reducing the probability of producing short-loop bad structures.

[0160] The following is an exemplary introduction to the three forms of offset value designs of the present application.

[0161] For form 1, it is assumed that the base matrix of the first LDPC code is a matrix of size m×N, m represents the number of rows of the base matrix, N represents the number of columns of the base matrix, N≥m, and m and N are positive integers. The base matrix of the first LDPC code is obtained by horizontally splicing and truncating multiple circulant matrices, and the offset value of the base matrix of the first LDPC code is obtained by the n-dimensional offset value vector A n =(a 1 ,a 2 ,…a n-1 ,a n ) is looped and shifted, and the m×N matrix operation is intercepted, the relationship between N and n can be , m and n are positive integers, and n can also be understood as the total number of columns of multiple circulant matrices of the base matrix of the first LDPC code. n It can be an offset value vector of one row after multiple circulant matrices are horizontally spliced, for example, an offset value vector of the first row of a base matrix of a first LDPC code. In this case, in some embodiments, the offset value vector A n The jth offset value a j It can be determined according to j and the number of rows m of the basis matrix of the first LDPC code. j can also be understood as the offset value vector A nThe column number of the matrix after the circulation and shifting. In the case of N=n, j can also be understood as the jth element / position of any row (eg, the first row) of the basis matrix of the first LDPC code.

[0162] In some embodiments, a j The relationship shown in formula (1) can be satisfied.

[0163]

[0164] In this application, the offset value -1 indicates that the element position in the base matrix is ​​0. The offset value -1 may also be other values ​​or empty, that is, the position of element 0 is not connected to an edge and there is no offset value.

[0165] After getting the vector A n In the case of a numerical sequence, the offset value vector A can be used n Perform inner loop and shift of the vector block to obtain an offset value matrix of (n+m-1)×n dimensions, and intercept any adjacent m rows and N columns in the offset value matrix as the offset values ​​of the base matrix of the first LDPC code here.

[0166] Here we get a (n+m-1)×n dimensional matrix, that is, for the offset value vector A n The loop and displacement of the vector block exceeds n×n dimensions because we need to intercept the matrix area of ​​m rows and N columns. If we only shift to get an n×n dimensional matrix, some loop and displacement matrix cases will not be covered. If we get a (n+m-1)×n dimensional matrix, we can cover the offset value vector A. n All matrix cases after vector block inner loop and shifting.

[0167] In some embodiments, a (n+m-1)×n dimensional offset value matrix may be pre-stored in the transmitting end or the receiving end. When the offset value is to be configured for the base matrix of an LDPC code of size m×N, any adjacent m rows and N columns in the offset value matrix may be intercepted as the offset value of the base matrix of the first LDPC code here.

[0168] For example, for a 3×N-dimensional basis matrix of the first LDPC code, that is, when m=3, the offset value vector A n The offset value a of the jth position j The relationship shown in formula (2) can be satisfied.

[0169]

[0170] Thus, if a=1, n=18, for the offset value vector A nBy performing a cycle and shift, and shifting by one position each time, a 20×18-dimensional offset value matrix can be obtained. The 20×18-dimensional offset value matrix can be pre-stored in the transmitting end or the receiving end. If N=n=18, the continuous 3 rows and 18 columns in the offset value matrix can be intercepted as the offset value of the base matrix of the first LDPC code. For example, the offset value of the base matrix of the first LDPC code obtained here is as follows Fig.10 An offset value of a base matrix of a first LDPC code is shown.

[0171] Of course, any Fig.10 Any matrix of the offset value isomorphic to the base matrix of the first LDPC code shown in FIG. 1 (i.e., any matrix after performing row-column transformation on the offset value matrix of the base matrix of the first LDPC code) can be understood as the matrix of the first LDPC code shown in FIG. Fig.10 The offset value of the base matrix of the first LDPC code is shown.

[0172] As you can see, Fig.10 The offset values ​​of the base matrix of the first LDPC code shown are equivalent to the offset values ​​of the base matrix of the first LDPC code of 3×18 dimension obtained by rotating and shifting the offset values ​​of the first row (-1, 0, 1, -1, 0, 2, -1, 0, 3, -1, 0, 4, -1, 0, 5, -1, 0, 6) to the right by one position.

[0173] In this design of offset value, for any value of N, in the offset value vector A n In this case, the lifting factor of the basis matrix of the first LDPC code is greater than or equal to In the case of, the base matrix of the first LDPC code designed with this offset value can avoid the appearance of a short cycle (C4) of length 4 in the Tanner graph. The lifting factor of the base matrix of the first LDPC code is greater than or equal to In the case of , the base matrix of the first LDPC code designed with such offset value can avoid the appearance of short cycles of length 4 and short cycles of length 6 (C6) in the Tanner graph. In addition, a fine granularity of a lifting factor interval of 1 can be achieved, that is, when the value of the lifting factor is accumulated by 1 or subtracted by 1, as long as the lifting factor condition here is met, short cycles of length 4 or short cycles of length 4 and short cycles of length 6 can be avoided. In this way, if the base matrix of the first LDPC code is used as the core matrix of BG1 or BG2, it can be achieved to avoid the appearance of short cycles of length 4 or short cycles of length 4 and short cycles of length 6 in the core matrix.

[0174] For form 1, an example of designing offset values ​​of a base matrix of a first LDPC code with m=4, 4×N dimensions (4 rows and N columns) is given here.

[0175] Assume that the basis matrix of the first LDPC code of 4×N dimension is as follows Fig.11 The non-fully connected basis matrix shown in (a) (including Fig.11 A matrix isomorphic to the non-fully connected basis matrix shown in (a) in FIG. 1 ).

[0176] For any given N, when N ≥ 4, the relationship between N and n can be In the n-dimensional vector A n =(a 1 ,a 2 ,…a n-1 ,a n ), the offset value vector A n The jth offset value a j It can be based on j and the offset value vector A n The number of values ​​n of is determined. For example, a j The relationship shown in formula (3) can be satisfied.

[0177]

[0178] In this way, we get vector A n In the case of a numerical sequence, the offset value vector A can be used n Perform a vector block inner loop and shift, shifting 1 position each time in the loop, to obtain an (n+3)×n dimensional offset value matrix. The (n+3)×n dimensional offset value matrix may be pre-stored in the transmitting end or the receiving end. When configuring offset values ​​for the base matrix of the first LDPC code of 4×N dimensions, any adjacent 4 rows and N columns in the (n+3)×n dimensional offset value matrix may be intercepted as the offset values ​​of the base matrix of the first LDPC code here.

[0179] In this case, for any value N, in the offset value vector A n In this case, when the lifting factor of the base matrix of the first LDPC code is greater than or equal to When all odd numbers of d are used, the base matrix of the first LDPC code designed with this offset value can avoid the appearance of short cycles of length 4 in the Tanner graph. For example, when d i When (i≥2)=d, the lifting factor of the basis matrix of the first LDPC code is greater than or equal to All odd numbers.

[0180] For example, when a=1, d=2, k=0, Fig.11 (b) and (c) in FIG. Fig.11Two examples of offset values ​​of a non-fully connected base matrix are shown in (a) of FIG. Both examples of offset values ​​can be understood as continuous 4 rows and 24 columns intercepted from a pre-stored (n+3)×n dimensional offset value matrix. In the offset value, the offset value of the next row can be obtained by circling the offset value of the previous row to the right and shifting it by one position.

[0181] For form 1, here is another example of an offset value design of a base matrix of the first LDPC code with m=4, 4×N dimensions (4 rows and N columns). In this design, N≥4, For the offset value vector A n , exemplary, a j The relationship shown in formula (4) can be satisfied.

[0182]

[0183] In this way, we get vector A n In the case of a numerical sequence, the offset value vector A can be used n Perform a vector block inner loop and shift to obtain an offset value matrix of (n+3)×n dimensions. For example, when n=24, the offset value vector A n For example, A n =(-1,0,1,9,-1,0,2,11,-1,0,3,13,-1,0,4,15,-1,0,5,17,-1,0,6,19), if Fig.12 (a) in FIG. 1 is a schematic diagram of a circulant matrix 120 of offset values ​​of (n+3)×n dimensions (27×24 dimensions). When the offset values ​​are to be configured for the base matrix of the first LDPC code of 4×24 dimensions, any adjacent 4 rows and 24 columns in the 27×24-dimensional circulant matrix can be intercepted as the offset values ​​of the base matrix of the first LDPC code. For example, Fig.12 The matrix area 121, 122, 123, 124 or 125 shown in (a) is used as the offset value of the base matrix of the first LDPC code. In some scenarios, when configuring the offset value for the base matrix of the first LDPC code of 4×21 dimensions, 4×22 dimensions and 4×23 dimensions, any adjacent 4 rows and 21 columns, 4 rows and 22 columns and 4 rows and 23 columns in the 27×24-dimensional circulant matrix are intercepted as the offset value of the base matrix of the first LDPC code.

[0184] For example, in a j If the relationship shown in formula (4) can be satisfied, Fig.12 (b) and (c) in FIG. 1 show two possible offset values ​​of the base matrix of the first LDPC code of 4×24 dimensions. Fig.12 The offset value shown in (b) can be understood as the offset value vector A n=(-1,0,0,7,-1,0,1,9,-1,0,2,11,-1,0,3,13,-1,0,4,15,-1,0,5,17) is obtained by looping and shifting to the right 3 times, shifting 1 position in each loop. Similarly, Fig.12 The offset value shown in (c) can be understood as the offset value vector A n It is obtained by performing three cycles and shifting to the right, with a shift of 1 position in each cycle. Fig.12 (c) in FIG. 1 extracts 4 rows and 24 columns of offset values ​​as offset values ​​of the base matrix of the first LDPC code.

[0185] Of course, any Fig.12 Any matrix of the offset value isomorphic to the base matrix of the first LDPC code shown in FIG. 1 (i.e., any matrix after performing row-column transformation on the offset value matrix of the base matrix of the first LDPC code) can be understood as the matrix of the first LDPC code shown in FIG. Fig.12 The offset value of the base matrix of the first LDPC code is shown.

[0186] In the offset value vector A n In this case, when the relationship of formula (4) is satisfied, for any value N, when the lifting factor of the basis matrix of the first LDPC code is greater than or equal to When all odd numbers are used, the base matrix of the first LDPC code designed with this offset value can avoid the appearance of short cycles of length 4 in the Tanner graph.

[0187] For form 1, here is another example of an offset value design of a base matrix of the first LDPC code with m=4, 4×N dimensions (4 rows and N columns). In this design, N≥4, For the offset value vector A n , exemplary, a j The relationship shown in formula (4a) can be satisfied.

[0188]

[0189] In this way, we get vector A n In the case of a numerical sequence, the offset value vector A can be used n Perform inner loop and shift of the vector block to obtain an (n+3)×n dimensional offset value matrix and store it at the transmitting end or receiving end. When the offset value is to be configured for the base matrix of the first LDPC code of 4×N dimensions, any adjacent 4 rows and N columns in the (n+3)×n dimensional offset value matrix can be intercepted as the offset value of the base matrix of the first LDPC code.

[0190] In the offset value vector A n In this case, for any value N, when the lifting factor of the base matrix of the first LDPC code is greater than or equal to When all odd numbers are used, the base matrix of the first LDPC code designed with this offset value can avoid the appearance of short cycles of length 4 in the Tanner graph.

[0191] For form 1, it is assumed that the base matrix of the first LDPC code is a matrix of size m×N, m represents the number of rows of the base matrix, N represents the number of columns of the base matrix, and m and N are positive integers. In the case where the density of the base matrix of the first LDPC code is (m-1) / m, a design of an offset value of the base matrix of the first LDPC code is given below.

[0192] For any given positive integers N and m, when N≥m, m≥3, similar to the above case, the base matrix of the first LDPC code is obtained by horizontally splicing and truncating multiple circulant matrices, and the offset value of the base matrix of the first LDPC code is obtained by the n-dimensional offset value vector A n =(a 1 ,a 2 ,…a n-1 ,a n ) is looped and shifted, and the m×N matrix operation is intercepted, the relationship between N and n can be Among them, the offset value vector A n It can be the offset value vector of one row after multiple circulant matrices are horizontally spliced, for example, the offset value vector of the first row. In this case, in some embodiments, the offset value vector A n The jth offset value a j It can be determined according to j, the number of rows m of the base matrix of the first LDPC code and the number n of numerical values ​​of the preset offset value vector.

[0193] In some embodiments, a j The relationship shown in formula (5) can be satisfied.

[0194]

[0195] After getting the vector A n In the case of a numerical sequence, the offset value vector A can be used n Perform inner loop and shift of the vector block to obtain an offset value matrix of (n+m-1)×n dimensions. Similarly, a (n+m-1)×n dimensional offset value matrix may be stored in the transmitting end or the receiving end. When configuring offset values ​​for the base matrix of the first m×N LDPC code, any adjacent m rows and N columns in the offset value matrix may be intercepted as the offset values ​​of the base matrix of the first LDPC code here.

[0196] This kind of jIn the design of the offset value that satisfies the relationship shown in formula (5), for any value of N, that is, for any code length, the lifting factor of the basis matrix of the first LDPC code is greater than or equal to In the case of , the base matrix of the first LDPC code designed with this offset value can avoid the appearance of a short cycle of length 4 in the Tanner graph.

[0197] For example, in the offset value design based on formula (5), Fig.13 (a) shows a schematic diagram of offset values ​​of a base matrix of a first LDPC code with m=4 and N=9, where the base matrix may be obtained by concatenating three 4×3 circulant matrices, or the base matrix may be obtained by concatenating and truncating multiple circulant matrices of other sizes; Fig.13 (b) shows a schematic diagram of offset values ​​of a base matrix of a first LDPC code with m=4 and N=12, where the base matrix may be obtained by concatenating three 4×4 circulant matrices, or the base matrix may be obtained by concatenating and truncating multiple circulant matrices of other sizes; Fig.13 (c) in the figure shows a schematic diagram of offset values ​​of a base matrix of a first LDPC code with m=5 and N=15. The base matrix may be obtained by concatenating three 5×5 circulant matrices, or the base matrix may be obtained by concatenating and truncating multiple circulant matrices of other sizes; Fig.13 (d) in FIG. 1 shows a schematic diagram of the offset values ​​of the base matrix of the first LDPC code with m=6 and N=24. The base matrix can be obtained by concatenating three 6×6 circulant matrices, or the base matrix can be obtained by concatenating multiple circulant matrices of other sizes and then truncating them. It can be seen that in form 1, among the offset values ​​of the base matrix of the first LDPC code, the offset values ​​of the latter row are obtained by circulating and shifting the offset values ​​of the previous row by 1 position. Fig.13 The offset values ​​of the base matrices of the various LDPC codes shown in the figure can be pre-stored in at least one device in the transmitting end and the receiving end after calculation.

[0198] Of course, any Fig.13 Any matrix of the offset value isomorphic to the base matrix of the first LDPC code shown in (i.e., any matrix after the row-column transformation of the offset value matrix of the base matrix of the first LDPC code) can be understood as the matrix of the first LDPC code shown in Fig.13 Shown are offset values ​​of the base matrix of the first LDPC code.

[0199] For the second form, it is assumed that the base matrix of the first LDPC code is a matrix of size m×N, m represents the number of rows of the base matrix, N represents the number of columns of the base matrix, N≥m, and N is a positive integer. The base matrix of the first LDPC code is obtained by horizontally splicing and truncating multiple circulant matrices, and the offset value of the base matrix of the first LDPC code is obtained by the n-dimensional offset value vector A n =(a 1 ,a 2 ,…a n-1 ,a n ) is looped and shifted, and the m×N matrix operation is intercepted, the relationship between N and n can be n is a positive integer. Among them, the offset value vector A n It can be the offset value vector of one row after multiple circulant matrices are horizontally spliced, for example, the offset value vector of the first row. In this case, in some embodiments, the offset value vector A n The jth offset value a j It can be determined according to j and the number of rows m of the base matrix of the first LDPC code.

[0200] In some embodiments, a j The relationship shown in formula (6) can be satisfied.

[0201]

[0202] Among them, x(j), y(j) are functions of column number j, which can be determined by n, m and column number j.

[0203] In this way, we get vector A n In the case of a numerical sequence, the offset value vector A can be n Performing intra-block circulation and shifting with the circulant matrix as a unit, that is, cyclically shifting the offset value of the first row of the base matrix of each circulant matrix in the multiple circulant matrices by one position each time, obtaining an m-row N-column offset value matrix, and using the m-row N-column offset value matrix as the offset value of the base matrix of the first LDPC code. The m-row N-column offset value matrix may be pre-stored in the transmitting end or the receiving end.

[0204] Let's take m=4 as an example. j The implementation method and a j Examples are given to illustrate the options in the implementation method.

[0205] When m=4, a j The relationship shown in formula (6a) can be satisfied.

[0206]

[0207] In this way, we get vector A n In the case of a numerical sequence, the offset value vector A can be used n Perform intra-block loops and shifts in units of circulant matrices, that is, cyclically shift the offset value of the first row of the base matrix of each circulant matrix in multiple circulant matrices by one position each time to obtain an offset value matrix with 4 rows and N columns, and use the 4 rows and N columns offset value matrix as the offset value of the base matrix of the first LDPC code.

[0208] Among them, for the options in formula (6) and formula (6a), the implementation of j(mod4)=0 can have the following three options A, B and C.

[0209] Options

[0210] Options

[0211] Options

[0212] For option A, the parameter d in option A is 1 and d i To meet the conditions: d 1 =0,d i ≥2(i≥2), a, k≥0. i When (i≥2)=d, j(mod4)=0, d and k are any numbers satisfying the conditions d≥2, a, k≥0.

[0213] It should be noted that when j(mod4)=0, d 1 =0,d i ≥2(i≥2) can be understood as: a j The value of can be Initially, the interval between two adjacent positions is a single increasing sequence that is arbitrarily greater than or equal to 2.

[0214] In the design of this offset value, for any value of N, when the lifting factor of the base matrix of the first LDPC code is greater than or equal to When all odd numbers are used, the base matrix of the first LDPC code designed with this offset value can avoid the appearance of a short cycle (C4) of length 4 in the Tanner graph. For example, when d i When (i≥2)=d, the lifting factor of the base matrix of the first LDPC code is greater than or equal to All odd numbers.

[0215] For example, based on option A, when a=0, d=2, k=0, Fig.14(a) in FIG. 1 shows an example of the offset value of the base matrix of the first LDPC code of 4×24 dimensions. In the offset value, in the base matrix (4 rows and 4 columns) of each circulant matrix, for any two consecutive rows, the offset value of the latter row is obtained by circulating and shifting the offset value of the previous row by one element position. Moreover, it can be seen that in the base matrices of multiple circulant matrices, the offset values ​​of the same element position are the same, or the offset values ​​of the same element position are an arithmetic progression.

[0216] Of course, any Fig.14 (a) in the figure shows a matrix isomorphic to the offset value matrix of the first LDPC code base matrix (i.e., any matrix after the row-column transformation of the offset value matrix of the first LDPC code base matrix) which can be understood as Fig.14 (a) in FIG. 1 shows the offset value of the base matrix of the first LDPC code.

[0217] For option B, when parameters t, a and k satisfy the condition When a≥0, k≥0 is any constant, if the lifting factor of the base matrix of the first LDPC code is greater than or equal to The base matrix of the first LDPC code designed with this offset value can avoid the appearance of a short cycle (C4) of length 4 in the Tanner graph.

[0218] For example, based on option B, when a=0, k=0, Fig.14 (b) in FIG. 4 shows two examples of offset values ​​of the base matrix of the first LDPC code of 4×12 dimensions, such as Fig.14 (c) in FIG. 1 shows two examples of offset values ​​of the base matrix of the first LDPC code of 4×20 dimensions. In the offset value design, in the base matrix (4 rows and 4 columns) of each circulant matrix, when the offset value of the base matrix of the circulant matrix is ​​circulated separately, for any two consecutive rows, the offset value of the latter row is obtained by circulating the offset value of the previous row and shifting it by one element position.

[0219] Among them, if Fig.14 (c) in FIG. 1 shows an example of the offset value of the base matrix of the first LDPC code. The columns with the same edge relationship are continuously changed to obtain the following Fig.14When the offset value of the base matrix of the first LDPC code is shown in (d), the offset value of the base matrix of the transformed first LDPC code includes multiple groups of identical offset value sequences. For example, the offset value of the base matrix of the transformed first LDPC code includes multiple groups of numerical sequences (0, 1, 2, 3, 4), and also includes multiple groups of numerical sequences (5, 7, 9, 2, 1). In some scenarios, in this offset value design, if N = 20, the lifting factor that can avoid the appearance of short cycles of length 4 in the Tanner graph can be 13, 15, 17, and values ​​greater than or equal to 19.

[0220] For option C, when parameters t and a satisfy the condition For any constant a≥0, for any value N, if the lifting factor of the basis matrix of the first LDPC code is equal to arrive When any value is between , or the lifting factor of the basis matrix of the first LDPC code is greater than or equal to When is any value of , the base matrix of the first LDPC code designed with this offset value can avoid the appearance of a short cycle of length 4 in the Tanner graph.

[0221] For example, based on option C, when a=0, Fig.14 (e) in FIG. 1 shows an example of an offset value of the base matrix of the first LDPC code of 4×24 dimensions, such as Fig.14 (f) in FIG. 1 shows an example of an offset value of the base matrix of the first LDPC code of 4×28 dimensions. In the offset value design, in the base matrix (4 rows and 4 columns) of each circulant matrix, for any two consecutive rows, the offset value of the latter row is obtained by circulating and shifting the offset value of the previous row by one element position. Moreover, it can be seen that in the base matrices of multiple circulant matrices, the offset values ​​of the same element position are the same, or the offset values ​​of the same element position are an arithmetic progression.

[0222] For form 2, another example of a possible offset value design is given here.

[0223] Assume that the base matrix of the first LDPC code is a matrix of size m×N, where m represents the number of rows of the base matrix, and N represents the number of columns of the base matrix, and N≥m, where N is a positive integer. Figure 8 In the case of the non-fully connected base matrix shown in FIG. 1 , the offset value of the base matrix of the first LDPC code can also be an n-dimensional offset value vector A n =(a 1 ,a 2 ,…a n-1 ,a n ) is looped and shifted, and the m×N matrix operation is intercepted, the relationship between N and n can be n is a positive integer. Among them, the offset value vector A n It can be the offset value vector of one row after multiple circulant matrices are horizontally spliced, for example, the offset value vector of the first row. In this case, in some embodiments, the offset value vector A n The jth offset value a j It can be determined according to j and the number of rows m of the base matrix of the first LDPC code.

[0224] In some embodiments, a j The relationship shown in formula (7) can be satisfied.

[0225]

[0226] Where a is an arbitrary constant of a≥0. In this way, we get vector A n In the case of a numerical sequence, the offset value vector A can be used n Perform intra-block loops and shifts in units of circulant matrices, that is, shift the offset value of the first row of the base matrix of each circulant matrix in multiple circulant matrices by one position each time the loop is performed to obtain an offset value matrix of m rows and N columns, and use the offset value matrix of m rows and N columns as the offset value of the base matrix of the first LDPC code.

[0227] For any value of N, in this offset value design, when the lifting factor of the base matrix of the first LDPC code takes any value greater than or equal to a+n / 3, the base matrix of the first LDPC code designed with this offset value can avoid the appearance of short cycles of length 4 in the Tanner graph, and can achieve a fine granularity of a lifting factor interval of 1. When the lifting factor of the base matrix of the first LDPC code takes any value of 3(a+n / 3-1)+1, the base matrix of the first LDPC code designed with this offset value can avoid the appearance of short cycles of length 6 in the Tanner graph, and can achieve a fine granularity of a lifting factor interval of 1.

[0228] In some embodiments, such an offset value design based on formula (7) may be applicable to a base matrix of the first LDPC code where m=3, ie, the size is 3×N.

[0229] It should be noted that when j(mod3)=1, a j Any different non-zero elements can be taken. In this offset value design, when the lifting factor of the base matrix of the first LDPC code is greater than or equal to max{a j ,j=1,…n}+1, the base matrix of the first LDPC code designed with this offset value can avoid the appearance of short cycles of length 4 in the Tanner graph. When the lifting factor of the base matrix of the first LDPC code is greater than or equal to 1+3×max{a j,j=1,…n}, the base matrix of the first LDPC code designed with such offset value can avoid the appearance of short cycles of length 6 in the Tanner graph. In some scenarios, when the offset value in each circulant matrix is ​​not limited to a cyclic form, the non-zero position in each circulant matrix that satisfies j(mod3)=1 can take any non-zero offset value, as long as the non-zero elements in each row are different from each other.

[0230] For example, when a=0 and n=18, Fig.15 (a) in FIG. 1 shows an example of an offset value of the base matrix of the first LDPC code. In the offset value design, in the base matrix (3 rows and 3 columns) of each circulant matrix, for any two consecutive rows, the offset value of the latter row is obtained by circulating and shifting the offset value of the previous row by one element position. Moreover, it can be seen that in the base matrices of multiple circulant matrices, the offset values ​​of the same element position are the same, or the offset values ​​of the same element position are an arithmetic progression. If Fig.15 (a) in FIG. 1 shows an example of the offset value of the base matrix of the first LDPC code. When the columns with the same edge relationship are continuous, the offset value of the base matrix of the first LDPC code after the transformation includes multiple groups of the same offset value sequences, which can be obtained as follows: Fig.15 The offset value of form three is shown in (b). Of course, Fig.15 In the offset values ​​shown in (b), the continuous elements 0 and the sequence of non-0 elements that are an arithmetic progression can be arranged arbitrarily, as long as each matrix region includes a row of elements 0 and a sequence of non-0 elements that are an arithmetic progression.

[0231] When a=1, n=18, Fig.15 (c) in FIG. 1 shows an example of an offset value of the basis matrix of the first LDPC code. In the offset value design, in the basis matrix (3 rows and 3 columns) of each circulant matrix, for any two consecutive rows, the offset value of the latter row is obtained by circulating and shifting the offset value of the previous row by one element position. Moreover, it can be seen that in the basis matrices of multiple circulant matrices, the offset values ​​of the same element position are the same, or the offset values ​​of the same element position are an arithmetic progression.

[0232] For form 2, another possible offset value design is given here.

[0233] Assume that the base matrix of the first LDPC code is a matrix of size m×N, m represents the number of rows of the base matrix, N represents the number of columns of the base matrix, and m and N are positive integers. In the case where the base matrix of the first LDPC code is a base matrix of a single circulant matrix, or a circulant square matrix truncated from a base matrix of a single circulant matrix, the offset value of the base matrix of the first LDPC code can also be an n-dimensional offset value vector A n =(a 1 ,a2 ,…a n-1 ,a n ) to perform loop and shift, and intercept the m×N matrix. For any code length N, the relationship between N and n can be N≥m,m≥3. Among them, the offset value vector A n It can be the offset value vector of one row of the basis matrix of a single circulant matrix or the truncated circulant matrix of the basis matrix of a single circulant matrix, for example, the offset value vector of the first row. In this case, in some embodiments, the offset value vector A n The jth offset value a j It can be determined according to j, the number of rows m of the base matrix of the first LDPC code, and the number of columns n of the base matrix of the first LDPC code.

[0234] In some embodiments, a j The relationship shown in formula (8) can be satisfied.

[0235]

[0236] In this way, we get vector A n In the case of a numerical sequence, the offset value vector A can be used n Perform intra-block loop and shift of the circulant matrix, that is, shift the offset value of the first row of the base matrix of the circulant matrix by 1 position each time it is looped, to obtain an (n+m-1)×n offset value matrix, and intercept any continuous m rows and N columns in the (n+m-1)×n offset value matrix as the offset value of the base matrix of the first LDPC code.

[0237] For example, Fig.16 The figure shows an example of the offset value characteristic of the base matrix of the first LDPC code obtained based on the relationship of formula (8), and the offset values ​​of the elements with the same identifier are the same. It can be seen that when the base matrix of the first LDPC code is the base matrix of a single circulant matrix, or a circulant square matrix intercepted from the base matrix of a single circulant matrix, the offset value of the base matrix of the first LDPC code can be obtained by cycling the offset value of one row of the base matrix of the first LDPC code multiple times, and cycling and shifting 1 bit to the right each time.

[0238] Exemplarily, formula (8) may be specifically implemented as formula (9).

[0239]

[0240] In this offset value design, for any code length N, when the lifting factor of the base matrix of the first LDPC code is When is any value of , the base matrix of the first LDPC code designed with this offset value can avoid the appearance of a short cycle (C4) of length 4 in the Tanner graph.

[0241] For form three, an exemplary description is given below on how to implement the offset value of the base matrix of the first LDPC code of size m×N.

[0242] In some embodiments, the example description of form three here is applicable to the above-mentioned Figure 8 The base matrix of the first LDPC code with a density of m-1 / m is shown. It should be noted that the design of the offset value in form three also conforms to the offset value characteristics of form two.

[0243] For any given positive integer N, it is assumed that the base matrix of the first LDPC code is a matrix of size m×N, where m represents the number of rows of the base matrix and N represents the number of columns of the base matrix. The base matrix of the first LDPC code is obtained by horizontally splicing and truncating multiple circulant matrices, and the offset value of the base matrix of the first LDPC code is obtained by the n-dimensional offset value vector A 1n =(a 11 ,a 12 ,…a 1n-1 ,a 1n ), and A 2n =(a 21 ,a 22 ,…a 2n-1 ,a 2n ) is looped and shifted, and the m×N matrix operation is intercepted, the relationship between N and n can be N≥m. Among them, the offset value vector A 1n is the offset value vector of one row after multiple circulant matrices are horizontally spliced, for example, the offset value vector of the first row, the offset value vector A 2n It is the offset value vector of another row after the multiple circulant matrices are horizontally spliced, for example, the offset value vector of the second row. In this way, the offset value vector of the first row can be used for circulation and displacement to generate the offset value of the third row, and the offset value vector of the second row can be used for circulation and displacement to generate the offset value of the fourth row.

[0244] In some embodiments, the offset value vector A 1n The jth offset value a 1j It can be determined according to j, the number of rows m of the base matrix of the first LDPC code, and the number of columns N of the base matrix of the first LDPC code. The offset value vector A 2n The jth offset value a 2j It can be determined according to j, the number of rows m of the base matrix of the first LDPC code, and the number of columns N of the base matrix of the first LDPC code.

[0245] In some embodiments, a 1j It can satisfy the relationship shown in formula (10), a 2j The relationship shown in formula (11) can be satisfied.

[0246]

[0247] Among them, the options in formula (10) and formula (11) can be any one of the following options A′ to D′.

[0248]

[0249] In this way, we get vector A 1n and A 2n In the case of a numerical sequence, the offset value vector A can be used 1n and A 2n Perform intra-block loops and shifts in units of circulant matrices. For example, formula (10) is used to obtain the offset value of the first row of each circulant matrix in multiple circulant matrices, and formula (10) is used to obtain the offset value of the second row of each circulant matrix in multiple circulant matrices. For each of the multiple circulant matrices, the offset values ​​of the first two rows of the base matrix of each circulant matrix can be shifted by 2 positions each time the loop is performed to obtain m rows and N columns as the offset values ​​of the base matrix of the first LDPC code. The m rows and N columns of the offset value matrix can be pre-stored in the transmitting end or the receiving end.

[0250] In some embodiments, the above formula (10) and formula (11) are applicable to obtain the offset value of the base matrix of the first LDPC code of size 4×N. Accordingly, the value of m in formula (10) and formula (11) can be 4.

[0251] Therefore, in this offset value design based on formula (10) and formula (11):

[0252] In the case of option A′, for any value of N, when the lifting factor of the basis matrix of the first LDPC code is greater than or equal to When is any value of , the base matrix of the first LDPC code designed with this offset value can avoid the appearance of short cycles of lengths 4 and 6 in the Tanner graph, and can achieve a fine granularity with a lifting factor interval of 1.

[0253] In the case of Option B′ or Option C′, for any value of N, when the lifting factor of the basis matrix of the first LDPC code is greater than or equal to When is any value of , the base matrix of the first LDPC code designed with this offset value can avoid the appearance of short cycles of lengths 4 and 6 in the Tanner graph, and can achieve a fine granularity with a lifting factor interval of 1.

[0254] In the case of option D′, for any value of N, when the lifting factor of the basis matrix of the first LDPC code is greater than or equal to When is any value, the base matrix of the first LDPC code designed with this offset value can avoid the appearance of short cycles of length 4 and 6 in the Tanner graph, and can achieve a fine granularity with a lifting factor interval of 1.

[0255] Exemplarily, in this offset value design based on formula (10) and formula (11) and option A′, Fig.17 (a) in the figure shows a schematic diagram of the offset values ​​of the base matrix of the first LDPC code with N=24, 4 rows and 24 columns. It can be seen that the offset values ​​of the base matrix of the first LDPC code are equivalent to the offset values ​​of the first two rows in the base matrix of each circulant matrix circulated and shifted by 2 positions to the right, and the offset values ​​of the last two rows in each circulant matrix are obtained. Moreover, in the base matrices of these 6 circulant matrices, the offset values ​​at the same position are also in an arithmetic progression. For example, the offset values ​​(42, 48, 54, 60, 66, 72) of the second position of the first row in the base matrix of these 6 circulant matrices are an arithmetic progression, and the offset values ​​(11, 17, 23, 29, 35, 41) of the third position of the second row are an arithmetic progression. If the offset values ​​of the base matrix of the first LDPC code with 4 rows and 24 columns are transformed into columns, and the columns with the same edge relationship are continuous, it can be seen that the offset values ​​of the base matrix of the first LDPC code include multiple groups of numerical sequences with the same offset values, for example, there are two groups of numerical sequences of offset values ​​(11, 17, 23, 29, 35, 41), and there are two groups of numerical sequences (42, 48, 54, 60, 66, 72). In some embodiments, when the lifting factor of the base matrix of the first LDPC code is greater than or equal to 176, this design can avoid short cycles of lengths 4 and 6.

[0256] In this offset value design based on formula (10) and formula (11) and option B′, Fig.17(b) in the figure also shows a schematic diagram of the offset value of the base matrix of the first LDPC code with N=24, 4 rows and 24 columns. It can be seen that the offset value of the base matrix of the first LDPC code is equivalent to the offset value of the first two rows in the base matrix of each circulant matrix being circulated and shifted by 2 positions to the right, thereby obtaining the offset value of the last two rows in each circulant matrix. Moreover, in the base matrices of these 6 circulant matrices, the offset values ​​at the same position are also in an arithmetic progression. For example, the offset values ​​(47, 53, 59, 66, 71, 77) of the second position of the first row in the base matrix of these 6 circulant matrices are an arithmetic progression, and the offset values ​​(11, 17, 23, 29, 35, 41) of the third position of the second row are an arithmetic progression. If the offset values ​​of the base matrix of the first LDPC code with 4 rows and 24 columns are transformed into columns and the columns with the same edge relationship are connected, it can be seen that the offset values ​​of the base matrix of the first LDPC code include multiple groups of numerical sequences with the same offset values, for example, there are two groups of numerical sequences of offset values ​​(11, 17, 23, 29, 35, 41) and two groups of numerical sequences (42, 53, 59, 65, 71, 77).

[0257] In this offset value design based on formula (10) and formula (11) and option C′, Fig.17 (c) in the figure also shows a schematic diagram of the offset values ​​of a base matrix of a first LDPC code with N=24, 4 rows and 24 columns. Fig.17 The offset value shown in (c) can be understood as the offset value after column transformation of the offset value after circulation and shifting. When the columns with the same edge relationship are continuous, it can be seen that the offset value of the base matrix of the first LDPC code also includes multiple groups of numerical sequences with the same offset values, for example, there are two groups of numerical sequences of offset values ​​(41, 35, 29, 23, 17, 11) and two groups of numerical sequences (47, 53, 59, 65, 71, 77).

[0258] In this offset value design based on formula (10) and formula (11) and option D′, Fig.17 (d) in the figure also shows a schematic diagram of the offset values ​​of a base matrix of a first LDPC code with N=24, 4 rows and 24 columns. Fig.17 The offset value shown in (d) can be understood as the offset value after column transformation of the offset value after circulation and shifting. When the columns with the same edge relationship are continuous, it can be seen that the offset value of the base matrix of the first LDPC code also includes multiple groups of numerical sequences with the same offset values, for example, there are two groups of numerical sequences of offset values ​​(41, 35, 29, 23, 17, 11) and two groups of numerical sequences (77, 71, 65, 59, 53, 47).

[0259] Therefore, in the present application, for the base matrix of the non-fully connected first LDPC code, the granularity of the offset value design of the present application is finer. Compared with the fully connected i×j base matrix design method, short cycles of length 4 can be avoided at a smaller level. This is because, for the construction method of the fully connected base matrix based on the finite field, the offset value of the i-row and j-column is the construction method of S_i×S_j, and the lifting factor lifting size is at least n (number of columns), and it is required to be a prime number. However, the offset value in the construction method of the offset value design of the present application can be jointly optimized with the non-fully connected base matrix, and the code length n is not required to be a prime number, so the minimum lifting factor to avoid short cycles of length 4 is smaller.

[0260] In addition, if Fig.18 A schematic diagram showing a comparison of block error rates (BLER) based on a random search offset value and an offset value designed in the present application is shown. Fig.18 In (a), the horizontal axis represents the signal-to-noise ratio (SNR) and the vertical axis represents the BLER. When the code length N=312 and the information length K=260, and under the same SNR, the offset value design of the present application has a lower BLER than the offset value design based on random search. Fig.18 In (b), when N=384, K=320, and at the same SNR, the BLER of the offset value design of the present application is lower than that of the offset value design based on random search.

[0261] like Fig.19 A schematic diagram showing the performance comparison between a current BG1 and a core matrix of BG1 using the offset value design of the present application. Fig.19 In the example, the horizontal axis represents the information length to be encoded, and the vertical axis represents the signal-to-noise ratio. When the same offset value is used, the present application can support fine-grained simulations with different boost factors. Since the offset value design of the present application supports fine-grained simulations, such as Fig.19 As shown, the signal-to-noise ratio of the present application is lower, with more stable performance and fewer performance transition points.

[0262] It is understandable that, in order to implement the functions in the above-mentioned embodiments, the transmitting end and the receiving end include hardware structures and / or software modules corresponding to the execution of each function. It should be easily appreciated by those skilled in the art that, in combination with the units and method steps of each example described in the embodiments disclosed in this application, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.

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

[0264] like Fig. 20 As shown, the communication device 2000 includes a processing unit 2010 and a transceiver unit 2020. The communication device 2000 is used to implement the above Figure 6 The functions of the sending end or the receiving end in the method embodiment shown in FIG.

[0265] When the communication device 2000 is used to implement Figure 6 The functions of the transmitting end in the method embodiment shown are: the processing unit 2010 is used to obtain the base matrix of the first LDPC code, the offset value of the base matrix of the first LDPC code, and encode the information bits according to the first LDPC code to obtain the first data. The transceiver unit 2020 is used to send the first data;

[0266] When the communication device 2000 is used to implement Figure 6 The functions of the receiving end in the method embodiment shown are: the transceiver unit 2020 is used to receive the second data; the processing unit 2010 is used to obtain the base matrix of the first LDPC code, the offset value of the base matrix of the first LDPC code, and decode the second data according to the first LDPC code.

[0267] For a more detailed description of the processing unit 2010 and the transceiver unit 2020, please refer to Figure 6 The method embodiment shown is described in detail.

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

[0269] When the communication device 210 is used to implement Figure 6When the method is shown, the processor 2110 is used to implement the functions of the above-mentioned processing unit 2010, and the interface circuit 2120 is used to implement the functions of the above-mentioned transceiver unit 2020.

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

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

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

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

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

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

Claims

1. A coding method, characterized in that: The method includes: Acquire a base matrix of a first low-density parity-check (LDPC) code, wherein the base matrix of the first LDPC code is generated according to base matrices of a plurality of circulant matrices; Obtaining an offset value of a base matrix of the first LDPC code, wherein the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of the first LDPC code; or, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in the base matrix of each of the multiple circulant matrices; Encoding the information bits to be encoded according to the first LDPC code to obtain first data; The first data is sent.

2. A decoding method, characterized in that: The method includes: receiving second data; Acquire a base matrix of a first low-density parity-check (LDPC) code, wherein the base matrix of the first LDPC code is generated according to base matrices of a plurality of circulant matrices; Obtaining an offset value of a base matrix of the first LDPC code, wherein the offset value of the base matrix of the first LDPC code is obtained by circulating and shifting the offset value of at least one row in the base matrix of the first LDPC code; or, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in the base matrix of each of the multiple circulant matrices; The second data is decoded according to the first LDPC code to obtain decoded information bits.

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

4. The method according to any one of claims 1 to 3, characterized in that: The base matrix of the first LDPC code is obtained by concatenating the multiple circulant matrices; or, the base matrix of the first LDPC code is obtained by concatenating and truncating the base matrices of the multiple circulant matrices; The splicing operation includes at least one of row splicing and column splicing, and the intercepting operation includes at least one of row intercepting and column intercepting.

5. The method according to any one of claims 1 to 4, characterized in that: The number of elements 1 in the base matrix of the first LDPC code accounts for (m-1) / m of the total number of elements in the base matrix, where m is the number of rows of the base matrix of the first LDPC code.

6. The method according to any one of claims 1 to 5, characterized in that: In a case where the offset value of the base matrix of the first LDPC code is obtained by looping and shifting the offset value of at least one row in the base matrix of the first LDPC code, for any two consecutive rows in the base matrix of the first LDPC code, the offset value of the latter row is obtained by looping and shifting the offset value of the previous row by one element position.

7. The method according to any one of claims 1 to 5, characterized in that: In the case where the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in the base matrix of each of the multiple circulant matrices, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of one row in the base matrix of each of the multiple circulant matrices.

8. The method according to claim 7, characterized in that In the basis matrix of each circulant matrix, for any two consecutive rows, the offset value of the latter row is obtained by circulating the offset value of the previous row and shifting it by one element position.

9. The method according to claim 8, characterized in that In the base matrices of the multiple circulant matrices, the offset values ​​of the same element positions are the same, or the offset values ​​of the same element positions are an arithmetic progression.

10. The method according to any one of claims 1 to 5, characterized in that: In the case where the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset value of at least one row in the base matrix of each of the multiple circulant matrices, the offset value of the base matrix of the first LDPC code is obtained by respectively circulating and shifting the offset values ​​of two consecutive rows in the base matrix of each of the multiple circulant matrices.

11. The method according to claim 10, characterized in that In the basis matrix of each circulant matrix, for any four consecutive rows, the offset value of the third row is obtained by circulating the offset value of the first row and shifting it by two element positions, and the offset value of the fourth row is obtained by circulating the offset value of the second row and shifting it by two element positions.

12. The method according to claim 11, characterized in that When the base matrix of the first LDPC code is transformed into columns to make columns with the same edge relationship continuous, the offset values ​​of the base matrix of the first LDPC code after the transformation include multiple groups of the same offset value sequences.

13. The method according to any one of claims 3 to 12, characterized in that: The displacement direction of the offset value is consistent with the displacement direction of the elements of the base matrix of the circulant matrix.

14. The method according to any one of claims 1 to 13, characterized in that: The base matrix of the first LDPC code is a core matrix of a base graph of the LDPC code.

15. The method according to any one of claims 1 to 14, characterized in that: For the j-th offset value of one row of the base matrix of the first LDPC code, j is an integer greater than or equal to 1: The j-th offset value is determined according to j and the number of rows of the base matrix of the first LDPC code; Alternatively, the j-th offset value is determined according to j and the number of values ​​of a preset offset value vector; Alternatively, the j-th offset value is determined according to j and the number of rows of the base matrix of the first LDPC code and the number of numerical values ​​of a preset offset value vector; Alternatively, the j-th offset value is determined according to j, the number of rows of the base matrix of the first LDPC code, and the number of columns of the base matrix of the first LDPC code.

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

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

18. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and when the computer instructions are executed on a communication device, the communication device is caused to execute the method according to any one of claims 1 to 15.

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

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

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