Decoding and parameter training method and device
Through weight training and packet processing, the problem of high coding complexity of LDPC code BP is solved, and more efficient decoding performance and flexibility are achieved, and efficient channel encoding is suitable for communication systems.
Patent Information
- Application Number
- CN202311020949.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-26
- Filing Date
- 2023-08-14
- Publication Date
- 2024-12-27
AI Technical Summary
The BP decoding process of LDPC code is very complex, resulting in low decoding efficiency and high performance requirements for decoding devices, making it difficult to meet the efficient needs of communication systems.
Through weight training and grouping processing, the computational complexity is reduced, the decoding flexibility and performance is improved, the weight is used as compensation to reduce the computational amount, and the packet is processed in parallel to accelerate iterative convergence.
It effectively reduces the complexity of LDPC decoding, improves the decoding performance and efficiency, makes the decoding device more applicable and universal, and enhances the decoding flexibility and performance.
Smart Images

Figure CN119210467A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to a Chinese patent application filed with the State Intellectual Property Office of China on June 26, 2023, with application number 202310762257.X and application name “A channel decoding method and decoding circuit”, the entire contents of which are incorporated by reference in this application. Technical Field
[0003] The present application relates to the field of communication technology, and in particular to a decoding and parameter training method and device. Background Art
[0004] Low density parity check (LDPC) code is a type of linear block code with a sparse check matrix, which has the characteristics of flexible structure and low decoding complexity. Because it uses a partially parallel iterative decoding algorithm, it has a higher throughput than traditional Turbo codes. LDPC codes can be used as error correction codes in communication systems, thereby improving the reliability and power utilization of channel transmission. LDPC codes can also be widely used in space communications, fiber-optic communications, personal communication systems, asymmetric digital subscriber lines (ADSL) or magnetic recording equipment. At present, LDPC codes have been considered as one of the channel coding methods in the fifth generation (5G) mobile communications.
[0005] There are many encoding and decoding methods for LDPC. The essence of the belief propagation (BP) decoding process is the process of iteratively transmitting belief information between variable nodes and check nodes in the LDPC check matrix. BP decoding may go through multiple iterations. In one iteration, the information of each variable node and each check node in the LDPC check matrix is calculated. The calculation process is highly complex, has high requirements on the performance of the decoding device, and may also lead to low decoding efficiency. Summary of the invention
[0006] The embodiments of the present application provide a decoding and parameter training method and apparatus for reducing the complexity of LDPC decoding and improving the performance of LDPC decoding.
[0007] In a first aspect, a first decoding method is provided, for example, the decoding method is a channel decoding method. The method may be performed by a second device, or by other devices including a decoding function, or by a chip system (or, chip) or other functional module, the chip system or functional module can realize the function of the second device, the chip system or functional module is, for example, arranged in the second device. The second device may also be called a decoding device, etc., the second device may be a network device or a terminal device, or the second device may be arranged in a network device or a terminal device. The method comprises: receiving a first sequence; determining a group of weights from at least one group of weights according to parameters of the first sequence, wherein the at least one group of weights is determined through training, the group of weights comprises weights corresponding to K iterative decodings of the first sequence, at least two weights in the group of weights are different, wherein the number of weights corresponding to one iterative decoding in the K iterative decodings is greater than or equal to 1, and K is a positive integer less than or equal to a maximum number of iterative decodings; in a process of performing one iterative decoding in the K iterative decodings on the first sequence, determining information of N variable nodes and information of M check nodes corresponding to the first sequence according to the weights corresponding to the one iterative decoding, wherein both M and N are positive integers.
[0008] The embodiment of the present application can determine the information of the variable node and the information of the check node by weight, which is equivalent to adding weight as compensation, thereby reducing the complexity of calculation and the performance requirements of the decoding device, making the technical solution of the embodiment of the present application more universal. In addition, the embodiment of the present application can train at least one set of weights. If the number of at least one set is greater than 1, one set of weights can be used in a round of decoding (including multiple iterative decoding), and different sets of weights can be used in different rounds of decoding; different weights in a set of weights can also be used in different iterative decoding processes in a round of decoding; in addition, if the number of weights corresponding to an iterative decoding is greater than 1, different calculations can also use different weights even in an iterative decoding process. It can be seen that the embodiment of the present application can apply corresponding weights to different calculation processes in the decoding process, so that the weights are more consistent with the corresponding calculation process, thereby improving the decoding flexibility and enhancing the decoding performance.
[0009] In an optional embodiment, the weight corresponding to the one-time iterative decoding includes a first weight, and the first weight is used to determine the information of the first connection, and the first connection is a connection between a check node among the M check nodes and a variable node among the N variable nodes, wherein when the first weight is less than a first threshold, the information of the one check node or the information of the one variable node does not include the information of the first connection. If the weight used to calculate the information of a certain connection is less than the first threshold, the effect of the connection may be small, so it is not necessary to calculate the information of the connection, thereby reducing the amount of calculation and reducing the decoding complexity. The first threshold is, for example, 0.05, or it can be other values.
[0010] In an optional embodiment, during the iterative decoding process, the information of the N variable nodes and the information of the M check nodes are determined in a serial manner; or, the N variable nodes and the M check nodes belong to at least one group, wherein each group includes one or more variable nodes of the N variable nodes, and / or includes one or more check nodes of the M check nodes, and during the iterative decoding process, any two groups in the at least one group are processed in parallel, wherein when processing a group, the information of the variable nodes and / or check nodes in the group is determined in a serial manner. During the iterative decoding process, the calculation process between any two groups in the at least one group can be performed in parallel, and the calculation process within a group can be performed in a serial manner. Since the groups can be processed in parallel, the decoding efficiency is improved and the speed of iterative convergence is accelerated.
[0011] In an optional implementation, the at least one group is determined according to an LDPC check matrix, and each group in the at least one group includes one or more rows in the LDPC check matrix, or includes one or more columns in the LDPC check matrix, wherein a row of the LDPC check matrix corresponds to a check node in the M check nodes, and a column of the LDPC check matrix corresponds to a variable node in the N variable nodes. A grouping method is given, that is, grouping is implemented according to the LDPC check matrix. In addition, other grouping methods can also be used, and there is no limitation on this.
[0012] In an optional embodiment, the method further includes: when the result of the iterative decoding is judged to be 0, outputting the result of the iterative decoding and ending the decoding; or, when the result of the iterative decoding is judged not to be 0, performing the next iterative decoding of the K iterative decodings on the first sequence.
[0013] In a second aspect, a parameter training method is provided, which can be performed by a third device, or by other devices including a parameter training function, or by a chip system (or, chip) or other functional module, which can realize the function of the third device, and the chip system or functional module is, for example, set in the third device. The third device can also be called a decoding device, etc., and the third device can be a network device or a terminal device, or a third-party device (such as a server, etc.), or the third device can be set in a network device or a terminal device or a third-party device. The method comprises: performing L iterative decoding on first training data using an LDPC check matrix, and in the process of performing one iterative decoding of the L iterative decoding on the first training data, determining information of N variable nodes and M check nodes corresponding to the first training data according to second weights, wherein the second weights belong to a first weight group, the first weight group includes weights corresponding to the L iterative decodings, the second weights correspond to the one iterative decoding, the second weights include one or more weights, L, N and M are all positive integers, and L is a positive integer less than or equal to the maximum number of iterative decodings; after the L iterative decodings are completed, if the obtained decoding results make the loss function corresponding to the decoding results meet the performance requirements, then the training is completed and the first weight group is obtained, otherwise, the first weight group is updated, and the second training data is iteratively decoded according to the updated first weight group.
[0014] In an optional implementation, the LDPC check matrix is determined according to a circulant permutation matrix, the circulant permutation matrix is obtained by circulantly shifting a unit matrix according to an offset value, and the number of rows of the unit matrix is a first expansion factor.
[0015] In an optional implementation, the first expansion factor is Zc.
[0016] In an optional implementation, among the one or more weights, the weights corresponding to the connections in the same circulant permutation matrix are the same, and the weights corresponding to different circulant permutation matrices are different, thereby improving the generalization capability.
[0017] In an optional implementation, the i-th row and j-th column of the LDPC check matrix correspond to a first index, the first index corresponds to one or more values of a first expansion factor, one of which corresponds to a cyclic permutation matrix, the weight corresponding to the first cyclic permutation matrix corresponding to the first index includes the weight corresponding to the second cyclic permutation matrix corresponding to the first index, and the value of the first expansion factor corresponding to the first cyclic permutation matrix is greater than the value of the first expansion factor corresponding to the second cyclic permutation matrix. This reduces the number of weights to be trained and can reduce training complexity.
[0018] In a third aspect, a communication device is provided. The communication device may be the second device described in any one of the first aspect to the second aspect. The communication device has the decoding function described in the embodiment of the present application. The communication device is, for example, a terminal device or a network device, or a larger device including a terminal device or a network device, or a functional module in a terminal device or a network device, such as a baseband device or a chip system. In an optional implementation, the communication device includes a baseband device and a radio frequency device. In another optional implementation, the communication device includes a processing unit (sometimes also referred to as a processing module) and a transceiver unit (sometimes also referred to as a transceiver module). The transceiver unit can implement a sending function and a receiving function. When the transceiver unit implements the sending function, it can be called a sending unit (sometimes also referred to as a sending module), and when the transceiver unit implements the receiving function, it can be called a receiving unit (sometimes also referred to as a receiving module). The sending unit and the receiving unit can be the same functional module, which is called a transceiver unit, and the functional module can implement a sending function and a receiving function; or, the sending unit and the receiving unit can be different functional modules, and the transceiver unit is a general term for these functional modules.
[0019] In an optional embodiment, the transceiver unit (or, the receiving unit) is used to receive a first sequence; the processing unit is used to determine a group of weights from at least one group of weights according to the parameters of the first sequence, the at least one group of weights is determined through training, the group of weights includes weights corresponding to K iterative decoding of the first sequence, at least two weights in the group of weights are different, wherein the number of weights corresponding to one iterative decoding in the K iterative decodings is greater than or equal to 1, and K is a positive integer less than or equal to the maximum number of iterative decodings; the processing unit is also used to determine the information of N variable nodes and M check nodes corresponding to the first sequence according to the weights corresponding to the one iterative decoding during one iterative decoding of the K iterative decodings of the first sequence, where M and N are both positive integers.
[0020] In an optional embodiment, the communication device also includes a storage unit (sometimes also referred to as a storage module), and the processing unit is used to couple with the storage unit and execute the program or instructions in the storage unit, so that the communication device can perform the function of the second device described in any one of the first aspect to the second aspect above.
[0021] In a fourth aspect, a communication device is provided. The communication device may be the third device described in any one of the first to second aspects above. The communication device has a parameter training function. The communication device is, for example, a terminal device or a network device, or a larger device including a terminal device or a network device, or a functional module in a terminal device or a network device, such as a baseband device or a chip system. In an optional implementation, the communication device includes a baseband device and a radio frequency device. In another optional implementation, the communication device includes a processing unit (sometimes also referred to as a processing module) and a transceiver unit (sometimes also referred to as a transceiver module). For the implementation of the transceiver unit, reference may be made to the introduction of the third aspect.
[0022] In an optional implementation, the processing unit is used to perform L iterative decoding on the first training data using an LDPC check matrix. During one of the L iterative decodings of the first training data, information of N variable nodes and information of M check nodes corresponding to the first training data are determined according to second weights, wherein the second weights belong to a first weight group, the first weight group includes weights corresponding to the L iterative decodings, the second weights correspond to the one iterative decoding, the second weights include one or more weights, L, N and M are all positive integers, and L is a positive integer less than or equal to the maximum number of iterative decodings; the processing unit is also used to, after the L iterative decodings are completed, if the obtained decoding results make the loss function corresponding to the decoding results meet the performance requirements, then the training is terminated and the first weight group is obtained; otherwise, the first weight group is updated, and the second training data is iteratively decoded according to the updated first weight group.
[0023] In an optional embodiment, the communication device also includes a storage unit (sometimes also referred to as a storage module), and the processing unit is used to couple with the storage unit and execute the program or instructions in the storage unit, so that the communication device can perform the function of the third device described in any one of the first to second aspects above.
[0024] In a fifth aspect, a communication device is provided, which may be a terminal device or a network device, or a chip or chip system used in a terminal device or a network device. The communication device includes a communication interface and a processor, and optionally, a memory. The memory is used to store a computer program, and the processor is coupled to the memory and the communication interface. When the processor reads the computer program or instruction, the communication device executes the method executed by the second device in the above aspects.
[0025] In a sixth aspect, a communication device is provided, which may be a terminal device or a network device, or a chip or chip system used in a terminal device or a network device. The communication device includes a communication interface and a processor, and optionally, a memory. The memory is used to store a computer program, and the processor is coupled to the memory and the communication interface. When the processor reads the computer program or instruction, the communication device executes the method executed by the third device in the above aspects.
[0026] In a seventh aspect, a communication device is provided, which may be a terminal device or a network device, or a chip or a chip system used in a terminal device or a network device. The communication device may include a control unit, a storage unit and an LDPC decoding unit, and the control unit is connected to the storage unit and the LDPC decoding unit, respectively. Optionally, the storage unit is connected to the LDPC decoding unit. The control unit may be implemented by a hardware circuit or a software module; the storage unit may be implemented by a hardware circuit or a software module; the LDPC decoding unit may be implemented by a hardware circuit or a software module. Optionally, the control unit and the storage unit may be integrated on a chip system. The control unit, the storage unit and the LDPC decoding unit are coupled to execute the method performed by the second device in the above aspects.
[0027] In an eighth aspect, a communication system is provided, comprising a second device and a third device, wherein the second device is used to execute the method executed by the second device described in the above aspects, and / or the third device is used to execute the method executed by the third device described in the above aspects. For example, the second device can be implemented by the communication device described in the third aspect, the fifth aspect, or the seventh aspect; the third device can be implemented by the communication device described in the fourth aspect or the sixth aspect.
[0028] In a ninth aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium is used to store a computer program or instruction, and when the computer-readable storage medium is executed, the method executed by the second device or the third device in the above aspects is implemented.
[0029] According to a tenth aspect, a computer program product comprising instructions is provided, which, when executed on a computer, enables the methods described in the above aspects to be implemented.
[0030] In an eleventh aspect, a chip system is provided, comprising a processor and an interface, wherein the processor is used to call and execute instructions from the interface so that the chip system implements the methods of the above aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 A schematic diagram of a network architecture applicable to an embodiment of the present application;
[0032] Figure 2 A flowchart of a decoding method provided in an embodiment of the present application;
[0033] Figure 3 A schematic diagram of the decoding process in the embodiment of the present application;
[0034] Figure 4 A schematic diagram of the structure of the second device in the embodiment of the present application;
[0035] Figure 5 A flow chart of a parameter training method provided in an embodiment of the present application;
[0036] Figure 6 A schematic diagram of a device provided in an embodiment of the present application;
[0037] Figure 7 A schematic diagram of another device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0038] In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the embodiments of the present application will be further described in detail below with reference to the accompanying drawings.
[0039] In the embodiments of the present application, the number of nouns, unless otherwise specified, means "singular noun or plural noun", that is, "one or more". "At least one" means one or more, and "plural" means two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. For example, A / B means: A or B. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c means: a, b, c, a and b, a and c, b and c, or a and b and c, where a, b, c can be single or multiple.
[0040] The ordinal numbers such as "first" and "second" mentioned in the embodiments of the present application are used to distinguish multiple objects, and are not used to limit the size, content, order, timing, priority or importance of multiple objects. For example, the first weight and the second weight can be the same weight or different weights, and this name does not indicate the difference in the number of weights, values, application scenarios, priorities or importance included in the two weights. In addition, the numbering of the steps in the various embodiments introduced in the present application is only to distinguish different steps, and is not used to limit the order of the steps. For example, S201 may occur before S202, or may occur after S202, or may occur at the same time as S202.
[0041] Below, some terms or concepts in the embodiments of the present application are explained to facilitate understanding by those skilled in the art.
[0042] In the embodiment of the present application, the terminal device is a device with wireless transceiver function, which can be a fixed device, a mobile device, a handheld device (such as a mobile phone), a wearable device, a vehicle-mounted device, or a wireless device built into the above device (for example, a communication module, a modem, or a chip system, etc.). The terminal device is used to connect people, objects, machines, etc., and can be widely used in various scenarios, such as but not limited to the following scenarios: perception scenarios, cellular communications, device-to-device communications (device-to-device, D2D), vehicle to everything (vehicle to everything, V2X), machine-to-machine / machine-type communications (machine-to-machine / machine-type communications, M2M / MTC), Internet of Things (Internet of Things, IoT), virtual reality (virtual reality, VR), augmented reality (augmented reality, AR), industrial control (industrial control), self-driving, remote medical, smart grid (smart grid), smart furniture, smart office, smart wear, smart transportation, smart city (smart city), drones, robots and other scenarios of terminal devices. The terminal device may sometimes be referred to as user equipment (UE), terminal, access station, UE station, remote station, wireless communication device, or user device, etc.
[0043] In the embodiment of the present application, the communication device for implementing the function of the terminal device may be a terminal device, or may be a device capable of supporting the terminal device to implement the function, such as a chip system, which may be installed in the terminal device. In the technical solution provided in the embodiment of the present application, the technical solution provided in the embodiment of the present application is described by taking the device for implementing the function of the terminal device as an example, and the terminal device is used as an example. In addition, for the convenience of description, the terminal device is described in the embodiment of the present application by taking the UE as an example.
[0044] The network equipment in the embodiment of the present application, for example, includes access network equipment, and / or core network equipment. The access network equipment is a device with wireless transceiver function, which is used to communicate with the terminal device. The access network equipment includes but is not limited to base stations (base transceiver station (BTS), Node B, evolved node B (eNodeB) / eNB, or next generation node B (gNodeB) / gNB), transceiver points (transmission reception point, TRP), base stations of subsequent evolution of the third generation partnership project (3rd generation partnership project, 3GPP), access nodes in wireless fidelity (Wi-Fi) systems, wireless relay nodes, wireless backhaul nodes, etc. The base station can be: a macro base station, a micro base station, a micro-micro base station, a small station, a relay station, etc. Multiple base stations can support networks with the same access technology, or networks with different access technologies. The base station can include one or more co-station or non-co-station transmission and receiving points. The access network device may also be a wireless controller, a centralized unit (CU), and / or a distributed unit (DU) in a cloud radio access network (CRAN) scenario. The access network device may also be a server, etc. For example, the network device in the V2X technology may be a road side unit (RSU). The following describes the access network device using a base station as an example. The base station can communicate with a terminal device, or it can communicate with the terminal device through a relay station. The terminal device can communicate with multiple base stations in different access technologies. The core network device is used to implement functions such as mobility management, data processing, session management, policy and billing. The names of the devices that implement core network functions in systems with different access technologies may be different, and the embodiments of the present application do not limit this. Taking the fifth generation mobile communication technology (5G) system as an example, the core network equipment includes: access and mobility management function (AMF), session management function (SMF), policy control function (PCF) or user plane function (UPF), etc.
[0045] In the embodiment of the present application, the communication device for realizing the function of the network device may be a network device, or may be a device capable of supporting the network device to realize the function, such as a chip system, which may be installed in the network device. In the technical solution provided in the embodiment of the present application, the technical solution provided in the embodiment of the present application is described by taking the device for realizing the function of the network device as an example that the network device is used as the device.
[0046] There are many encoding and decoding methods for LDPC. The essence of the BP decoding process is the process of iteratively transferring the confidence information between the variable nodes and the check nodes in the LDPC check matrix. BP decoding may go through multiple iterations. In one iteration, the information of each variable node and each check node in the LDPC check matrix is calculated. The following formula can be used to calculate the information of the check node and the information of the variable node in the iteration process.
[0047]
[0048] Formula 1 is used to calculate the information of the check node.
[0049]
[0050] Formula 2 is used to calculate the information of the variable node. For example, in one iteration, the information of each variable node can be calculated using Formula 2, and the information of each check node can be calculated using Formula 1.
[0051] In the above formula, r nk The log-likelihood ratio (LLR) of the probability that check node n satisfies the check when the kth information bit in check node n is 0 and the probability that check node n satisfies the check when the kth information bit is 1; q nk represents the log-likelihood ratio of the probability that the kth information bit in check node n is equal to 0 to the probability that it is equal to 1. The set of all information bits contained in check node n is The set of all check nodes containing the kth information bit is As in the above formula, q nk (0) represents the x that satisfies the conditions of the nth check equation (check node n) and other check equations (check nodes) k =0, which can be regarded as the information transmitted from variable node k to check node n; nk (1) represents the x that satisfies the conditions of all check equations except the nth check equation. k =1; it can be regarded as the information transmitted from variable node k to check node n; p k (0) indicates the initial transmission bit x k = 0; pk (1) represents the initial transmission bit x k =1; r n′k (0) means in x k = 0, the probability that the nth check equation satisfies the check can be regarded as the information passed from the check node n to the variable node k; n′k (1) indicates that at x k =1, the probability that the nth check equation satisfies the check can be regarded as the information passed from the check node n to the variable node k; n′ represents a set The check nodes n′, k′ in the set The k′th information bit in tanh -1 represents the inverse function of tanh(x), and ∏x represents a continuous multiplication operation.
[0052] It can be seen that there are a large number of multiplication operations and tanh(x) operations in the calculation process, which is highly complex and has high requirements on the performance of the decoding device, and may also lead to low decoding efficiency.
[0053] To this end, a minimum sum (min-sum, MS) decoding method is currently proposed. The formula used in this decoding method is as follows:
[0054]
[0055]
[0056] Formula 3 is used to calculate the information of the check node, and Formula 4 is used to calculate the information of the variable node. nk represents all q of all variable nodes (except variable node k) connected to check node n nk The product of the signs of nk′ Represents variable node q nk′ The probability of (0) and q nk′ (1) The log-likelihood ratio of the probability; min k′ |q nk′ | represents all q of all variable nodes (except variable node k) connected to check node n nk The minimum absolute value of , |x| means finding the absolute value of x.
[0057] In the MS decoding process, although there are no large number of multiplications and tanh(x) operations when calculating the information of the check node, the obtained r nk The calculated result is too large. Currently, there are two ways to compensate. One of the compensation methods can refer to formula 5:
[0058] rnk =α*s nk ·min k′ |q nk′ | (Formula 5)
[0059] In Formula 5, α represents a compensation coefficient, and its value is greater than 0 and less than 1.
[0060] Another compensation method can refer to formula 6:
[0061] r nk =s nk ·max{min k′ |q nk′ |-β,0} (Formula 6)
[0062] In Formula 6, β represents a compensation coefficient, and its value is greater than 0 and less than 1.
[0063] It can be seen that in MS decoding, the compensation coefficient can be used to adjust r nk The compensation coefficients α and β are generally obtained through simulation. During the decoding process, the values of α and β are fixed, which limits the decoding process and reduces the decoding performance.
[0064] In view of this, the embodiment of the present application can determine the information of the variable node and the information of the check node by weight, which is equivalent to adding weight as compensation, thereby reducing the complexity of calculation and the performance requirements of the decoding device, making the technical solution of the embodiment of the present application more universal. In addition, the embodiment of the present application can train at least one set of weights. If the number of at least one set is greater than 1, one set of weights can be used in a round of decoding (including multiple iterative decoding), and different sets of weights can be used in different rounds of decoding; different weights in a set of weights can also be used in different iterative decoding processes in a round of decoding; in addition, if the number of weights corresponding to an iterative decoding is greater than 1, different calculations can also use different weights even in an iterative decoding process. It can be seen that the embodiment of the present application can apply corresponding weights to different calculation processes in the decoding process, so that the weights are more consistent with the corresponding calculation processes, thereby improving the decoding flexibility and enhancing the decoding performance.
[0065] Figure 1 A communication network architecture applicable to the embodiments of the present application. Figure 1The invention comprises a first device and a second device. The first device is a sequence transmitting end, which may also be called an encoding end, and may perform an encoding process. The first device may be a network device or a terminal device. The second device is a sequence receiving end, which may also be called a decoding end, and may perform a decoding method provided in an embodiment of the present application. The second device may be a network device or a terminal device. The weights used in the embodiment of the present application may be obtained through training. The device used to train the weights may be the second device, or may be the first device or a third-party device (e.g. Figure 1 After the training is completed, the first device or the third-party device can send the obtained weights to the second device.
[0066] In order to better introduce the embodiments of the present application, the methods provided by the embodiments of the present application are described below in conjunction with the accompanying drawings. In the various embodiments of the present application, "weight" may also be referred to as "compensation coefficient" or "coefficient", or may have other names. Unless otherwise specified in the following text, in the accompanying drawings corresponding to the various embodiments of the present application, all steps represented by dotted lines are optional steps. The methods provided by the various embodiments of the present application can be applied to Figure 1 The network architecture shown in FIG. 1 is a first device according to various embodiments of the present application. Figure 1 The first device in the embodiment of the present application may be Figure 1 The second device in the embodiment of the present application may be Figure 1 The third device in.
[0067] This application embodiment provides a decoding method, see Figure 2 , which is a flow chart of the method.
[0068] S201: A first device sends a first sequence, and a second device receives the first sequence accordingly.
[0069] For example, the first device encodes original information using an LDPC code to obtain a first sequence, and sends the first sequence. Then, the first sequence received by the second device is a sequence encoded by LDPC.
[0070] S202: The second device determines a set of weights from at least one set of weights according to the parameters of the first sequence. For example, the set of weights determined by the second device is referred to as weight set A.
[0071] First, the decoding process is introduced. The second device can use the LDPC check matrix to decode the received sequence, wherein the LDPC code can generally be represented by a parity check matrix H, which can also be called an LDPC check matrix. The LDPC check matrix can be obtained through a basegraph and a shift value. The basegraph can generally include m*n matrix elements (entries), which can be represented in the form of a matrix with m rows and n columns. The values of the matrix elements are 0 or 1, and the elements with a value of 0 are sometimes also called zero elements, indicating that the element can be replaced by a Zc×Zc all-zero matrix (zero matrix); the elements with a value of 1 are sometimes also called non-zero elements, indicating that the element can be replaced by a Zc×Zc circulant permutation matrix (circulant permutation matrix). It can be understood that each element in the matrix of m rows and n columns represents an all-zero matrix or a circulant permutation matrix. Refer to Table 1 for an example of a basegraph. In this article, the row and column numbers of the base graph and matrix are numbered starting from 0, just for the convenience of explanation. For example, column number 0 represents the first column of the base graph and matrix, column number 1 represents the second column of the base graph or matrix, row number 0 represents the first row of the base graph or matrix, row number 1 represents the second row of the base graph or matrix, and so on.
[0072] Table 1
[0073]
[0074] In Table 1, values such as 9 and 174 represent offset values. For example, if the value of the element in the i-th row and j-th column of the base graph is 1, its offset value is Q i,j , Q i,j is an integer greater than or equal to 0, which means that the element with a value of 1 in the i-th row and j-th column can be i,j The corresponding Z×Z circulant permutation matrix is replaced by the circulant permutation matrix, which can be obtained by Q-ing the Z×Z identity matrix i,j It is obtained by cyclically shifting to the right times. It can be seen that by replacing each element with a value of 0 in the base graph with a Z×Z all-zero matrix, and replacing each element with a value of 1 with a Z×Z cyclic permutation matrix corresponding to its offset value, the LDPC check matrix can be obtained. Z is a positive integer, which can also be called a lifting size, indicating the number of rows or columns of the unit matrix (since the cyclic permutation matrix is obtained by cyclically shifting the unit matrix, the cyclic permutation matrix has the same number of rows and columns as the unit matrix, so Z also represents the number of rows or columns of the cyclic permutation matrix), which can be determined according to the code block size supported by the system and the size of the information data. For example, in the embodiment of the present application, the expansion factor used by the second device is the first expansion factor Zc.
[0075] It can be seen that the size of the LDPC check matrix H is (m×Z)×(n×Z). For example, if the expansion factor Z=4, each zero element in the base graph is replaced by a 4×4 all-0 matrix, and each non-zero element in the base graph is replaced by a 4×4 circulant permutation matrix, which is a 4×4 identity matrix after Q i,j It is obtained by circularly shifting right times.
[0076] Among them, under the same set index, one or more values of Z can be corresponding, or the same set index can correspond to one or more Z. That is, the number of rows and columns of the unit matrix applied by the same set index may be different. For example, refer to Table 2, which is an example of different values of Z that the same set index can correspond to. In Table 2, a set index can correspond to a set of values of Z.
[0077] Table 2
[0078] set index Z 0 {2,4,8,16,32,64,128,256} 1 {3,6,12,24,48,96,192,384} 2 {5,10,20,40,80,160,320} 3 {7,14,28,56,112,224} 4 {9,18,36,72,144,288} 5 {11,22,44,88,176,352} 6 {13,26,52,104,208} 7 {15,30,60,120,240}
[0079] A row of the LDPC check matrix represents a check node (or check equation), and a column represents a variable node. The decoding process is the process of iteratively calculating the information of each node in the LDPC check matrix. For example, the LDPC check matrix is regarded as a neural network, which includes an input layer, a hidden layer, and an output layer. Figure 3 The following combination Figure 3 The decoding process of the second device is introduced, wherein: Figure 3 The dot in the figure represents r nk or q nk .
[0080] After receiving the first sequence, the second device can group the variable nodes in the LDPC check matrix according to the first expansion factor, and the number of variable nodes included in each group is the value of the first expansion factor. The first expansion factor is, for example, Zc, Figure 3 Take Zc=2 as an example, Figure 3 The input v1, v2, v3, etc. in the LDPC check matrix represent different groups of variable nodes. At this time, each node in the check matrix has not been assigned a value. After the grouping, the second device can initialize the information of all variable nodes included in the LDPC check matrix (the information before initialization is as follows: Figure 3 q11, q12, q13, etc. in the input layer of ), and obtain the updated information of all variable nodes, such as the information A of the variable node, such as Figure 3w11, w12, w13, etc. in the input layer in the LDPC matrix. In the initialization process, the process of obtaining the circulant permutation matrix according to the unit matrix is completed. The second device can calculate the information of all check nodes in the LDPC check matrix according to the information A of the variable node, for example, using the information A of the variable node as q nk Substituting into formula 3, the information of the check node, such as the information A of the check node, can be calculated. Figure 3 As shown in r11, r12, etc. in the hidden layer 1 of the LDPC matrix. And, the second device can calculate the information of all variable nodes in the LDPC check matrix according to the information A of the check node, for example, using the information A of the check node as r nk Substituting into formula 4, we can obtain the information of the variable node updated again, such as the information B of the variable node. Figure 3 As shown in q11, q12, etc. in the hidden layer 1. At this point, the second device has completed an iterative decoding process. Among them, each variable node in the LDPC check matrix can be connected to some or all of the check nodes in the LDPC check matrix, and each check node in the LDPC check matrix can be connected to some or all of the variable nodes in the LDPC check matrix. The information of a variable node includes the information of the connection between the variable node and all the check nodes that have a connection relationship with the variable node. Therefore, calculating the information of a variable node is to calculate the information of all connections corresponding to the variable node, that is, to calculate the information of the connection between the variable node and each check node connected to the variable node. For example, if variable node 1 is connected to both check node 1 and check node 2, the information of variable node 1 includes the information of the connection between variable node 1 and check node 1, and includes the information of the connection between variable node 1 and check node 2. The same is true for the information of the check node. The information of a check node includes the information of the connection between the check node and all the variable nodes connected to the check node. Therefore, calculating the information of a check node is to calculate the information of all the connections corresponding to the check node, that is, to calculate the information of the connection between the check node and each variable node connected to the check node. For example, if check node 1 is connected to both variable node 1 and variable node 2, the information of check node 1 includes the information of the connection between check node 1 and variable node 1, and the information of the connection between check node 1 and variable node 2. Among them, when calculating the information of each connection corresponding to the variable node, the formula 4 described above can be applied; when calculating the information of each connection corresponding to the check node, the formula 3 described above can be applied.
[0081] The second device calculates the variable node information B and the check node information A, which is equivalent to completing one iteration of decoding. Optionally, after one iteration of decoding is completed, the second device can obtain the result of the iteration of decoding based on the variable node information and the check node information obtained by the iteration of decoding, and can make a judgment on the result of the iteration of decoding. If the judgment is 0, the result of the iteration of decoding can be output (for example Figure 3 The decoding is completed, and the result of the iterative decoding is the final decoding result; or, if the judgment is not 0, the second device can perform the next iterative decoding until the judgment of a certain iterative decoding result is 0, or until the maximum number of iterative decoding times is reached. For example, the second device can obtain the result of the iterative decoding according to the information B of the variable node and the information A of the check node, and the second device can make a judgment on the result of the iterative decoding. Taking the judgment not being 0 as an example, the second device can continue to perform the next iterative decoding.
[0082] In the next iterative decoding process, the second device can calculate the information of all check nodes in the LDPC check matrix according to the information B of the variable node, for example, using the information B of the variable node as q nk Substituting into Formula 3, the updated information of the check node, such as the check node information B, can be calculated. Figure 3 As shown in r11, r12, etc. in the hidden layer 2 of . And, the second device can calculate the information of all variable nodes in the LDPC check matrix according to the information B of the check node, for example, using the information B of the check node as r nk Substituting into Formula 4, we can obtain the updated information of the variable node, such as the variable node information C. Figure 3 The second device calculates the variable node information C and the check node information B, and then another iterative decoding is completed. The second device can make a decision according to the method described above, and so on. For example, the second device obtains the final decoding result after one or more iterative decodings, such as Figure 3 This is shown as the rightmost output layer in .
[0083] In the above decoding process, when the second device calculates the information of the check node (or when calculating the information of each connection corresponding to the check node), the calculated r nk For example, the weights include α and / or β, or may include other types of weights. In the embodiment of the present application, after receiving the first sequence, the second device may select a set of weights corresponding to K iterative decodings for decoding the first sequence from at least one set of weights. For example, referring to Figure 4, is a structural diagram of a second device, the second device includes a control unit, a storage unit and an LDPC decoding unit, the control unit is connected to the storage unit, and the control unit is connected to the LDPC decoding unit. At least one set of weights is stored in the storage unit included in the second device. After the second device receives the first sequence, it can select a set of weights from the storage unit (for example, selected by the control unit included in the second device). The control unit can input the set of weights and the first sequence into the LDPC decoding unit, and the LDPC decoding unit performs decoding. In this way, there may be no connection between the LDPC decoding unit and the storage unit, or there may be a connection; or, the control unit can instruct the storage unit to input the set of weights into the LDPC decoding unit, and the control unit can input the first sequence into the LDPC decoding unit, and the LDPC decoding unit performs decoding. In this way, there may be a connection between the LDPC decoding unit and the storage unit, Figure 4 Take this as an example. The LDPC decoding unit can input the information of the check nodes and the variable nodes obtained by the iterative decoding into the control unit after each iterative decoding, and the control unit obtains the decoding result of the iterative decoding based on this, and makes a judgment based on this to determine whether the decoding is successful; or, the LDPC decoding unit can obtain the decoding result of the iterative decoding based on the information of the check nodes and the variable nodes obtained by the iterative decoding after each iterative decoding, and then input the decoding result into the control unit, and the control unit makes a judgment based on the decoding result to determine whether the decoding is successful; or, the LDPC decoding unit can obtain the decoding result of the iterative decoding based on the information of the check nodes and the variable nodes obtained by the iterative decoding after each iterative decoding, and make a judgment based on the decoding result, and then input the judgment result (for example, the judgment result is 0 or non-0) into the control unit, and the control unit determines whether the decoding is successful based on the judgment result. Figure 4 Take this as an example. If the decoding fails, the control unit can determine whether the number of decodings has reached K times. If it has reached K times, the decoding ends and the control unit can output the decoding result; or, if the number of decodings is less than K times, the control unit can instruct the LDPC decoding unit to perform the next iterative decoding.
[0084] Among them, the control unit can be implemented by a software module, or it can also be implemented by a hardware circuit, for example, it can also be called a controller, including a general central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the embodiment of the present application; the storage unit can be implemented by a software module, or it can be implemented by a hardware circuit, for example, including a read-only memory (ROM) and / or a random access memory (RAM); the LDPC decoding unit can be implemented by a software module, or it can also be implemented by a hardware circuit, for example, it can also be called an LDPC decoder, etc. The control unit, the storage unit and the LDPC decoding unit can be three independent functional units, implemented by different hardware circuits or software modules; or, the control unit and the storage unit can also be integrated in a chip, and the chip and the LDPC decoding unit can be two independent functional units.
[0085] K is a positive integer less than or equal to the maximum number of iterative decoding times. The maximum number of iterative decoding times may be predefined by the protocol, or configured by the first device or the second device. For example, K is the maximum number of iterative decoding times. According to the foregoing, the number of times the first sequence is decoded may not reach the maximum number of iterative decoding times. For example, after a certain number of iterative decodings of the first sequence, if the judgment is not 0, the decoding is terminated. If the number of times the first sequence is decoded does not reach the maximum number of iterative decodings, some weights in the group of weights (i.e., weights corresponding to one or more iterative decodings that have not been performed) are not used. For example, the second device may select a group of weights applicable to the first sequence from at least one group of weights according to the parameters of the first sequence. The parameters of the first sequence include, for example, one or more of the following: information of the basemap corresponding to the first sequence, the code rate of the first sequence, the modulation parameters of the first sequence, or the channel state information of the first sequence. Among them, there are currently two optional basemaps (Table 1 shows part of the content of one of the basemaps), and the information of the basemap corresponding to the first sequence may indicate which basemap is used. The channel state information of the first sequence includes, for example, information such as the maximum delay spread and / or power delay profile (PDP) of the first sequence.
[0086] At least one set of weights may be obtained through neural network training. For example, during training, the parameters of the sequences (or training samples) involved in the training may be different, thereby obtaining at least one set of weights through training, wherein each set of weights may correspond to different parameters of the sequence, or to different values of the sequence parameters. In at least one set of weights, each set of weights may include one or more weights, and each set of weights may include weights corresponding to K iterative decoding of the first sequence, wherein in each set of weights, the number of weights corresponding to one iterative decoding in the K iterative decoding is greater than or equal to 1. Optionally, one set of weights in at least one set of weights may include α and / or β, or may also include other weights. For example, one set of weights may include α and / or β; or one set of weights may include α but not β, and another set of weights may include β but not α. For another example, in one set of weights, the weights corresponding to one iterative decoding may include α and / or β; or one set of weights corresponding to one iterative decoding may include α but not β, and another set of weights may include β but not α. For another example, in one set of weights, the weights corresponding to one iterative decoding may include α and / or β; or one set of weights corresponding to one iterative decoding may include α but not β, and another set of weights corresponding to one iterative decoding may include β but not α. For example, if the weights corresponding to one iterative decoding include α and β, then when calculating the information of a connection corresponding to the check node, only one of α and β may be applied, or both weights may be applied simultaneously.
[0087] At least one group of weights may satisfy one or more of the following relationships: in each group of weights in at least one group of weights, at least one weight corresponding to at least two iterative decodings is different; in each group of weights in at least one group of weights, at least two weights corresponding to the same iterative decoding are different; or, if the number of at least one group of weights is greater than 1, then in at least one group of weights, at least one weight in at least two groups of weights is different.
[0088] Among them, at least one of the weights corresponding to at least two iterative decodings is different, which may include that the number of weights corresponding to the two iterative decodings is different, for example, the number of weights corresponding to one iterative decoding is P1, and the number of weights corresponding to the other iterative decoding is P2, and P1 is not equal to P2; and / or, among the weights corresponding to the two iterative decodings, two corresponding weights are different, for example, among the weights corresponding to one iterative decoding, weight 1 participates in calculation 1, and among the weights corresponding to the other iterative decoding, weight 2 participates in calculation 1, and weight 1 is different from weight 2.
[0089] Among the weights corresponding to the same iterative decoding, at least two weights are different. For example, the weights corresponding to the same iterative decoding can be used for different calculation processes, and then at least two calculation processes have different weights.
[0090] S203, during one of the K iterative decodings performed by the second device on the first sequence, information of N variable nodes and information of M check nodes corresponding to the first sequence are determined according to the weight corresponding to the iterative decoding, where both M and N are positive integers. For example, the N variable nodes are all variable nodes in the LDPC check matrix; the M check nodes are all check nodes in the LDPC check matrix.
[0091] This process has been introduced in S202, and the contents of S202 can be referred to.
[0092] Optionally, when the second device decodes the first sequence, the weights corresponding to the connections within the same cyclic permutation matrix in the LDPC check matrix are the same. Because the same cyclic permutation matrix corresponds to the same edge of the LDPC check matrix, the weights can be the same. That is, for the connections within the same cyclic permutation matrix (for example, including the connections between the check nodes in the cyclic permutation matrix and the variable nodes in the cyclic permutation matrix), the second device can use the same weights when calculating the information of different connections therein, or it can be understood that the same cyclic permutation matrix can correspond to the same weight. This can reduce the number of weights and simplify the training process.
[0093] Optionally, when the second device decodes the first sequence, different cyclic permutation matrices in the LDPC check matrix correspond to different weights. Because different cyclic permutation matrices correspond to different edges of the LDPC check matrix, the weights may be different. That is, for connections within different cyclic permutation matrices, the second device may use different weights when calculating their information. For example, according to the introduction in the previous paragraph, cyclic permutation matrix 1 may correspond to weight 1, cyclic permutation matrix 2 may correspond to weight 2, and weight 1 and weight 2 may be different.
[0094] In addition, as described above, the same set index can correspond to one or more values of the expansion factor, as shown in Table 2. For the embodiment of the present application, the same set index can correspond to one or more values of the first expansion factor, or the same set index can correspond to one or more expansion factors. For example, the set index is referred to as an index, and the i-th row and the j-th column of the LDPC check matrix correspond to the first index, for example, and the first index can correspond to one or more values of the first expansion factor. For the i-th row and the j-th column, a value of the first expansion factor can correspond to a cyclic permutation matrix. Optionally, for the i-th row and the j-th column, the weights corresponding to different cyclic permutation matrices corresponding to the first index can be an inclusion relationship. For example, for the i-th row and the j-th column, when the first index is a certain value, different values of the first expansion factor will correspond to different cyclic permutation matrices, for example, the first value of the first expansion factor corresponds to the first cyclic permutation matrix, and the second value of the first expansion factor corresponds to the second cyclic permutation matrix. For example, if the first value is greater than the second value, then the weight corresponding to the first cyclic permutation matrix may include the weight corresponding to the second cyclic permutation matrix. For example, for the i-th row and the j-th column, the first index is 0, and the first expansion factor is 256, which corresponds to the first circulant permutation matrix, and the first expansion factor is 128, which corresponds to the second circulant permutation matrix. For example, the first circulant permutation matrix corresponds to K1 weights, and the second circulant permutation matrix corresponds to K2 weights. Then, the K1 weights corresponding to the first circulant permutation matrix may include the K2 weights corresponding to the second circulant permutation matrix. That is, for a row and a column in the LDPC check matrix, under a certain set index, the weights of the circulant permutation matrix corresponding to the smaller value of the first expansion factor may be included in the weights of the circulant permutation matrix corresponding to the larger value of the first expansion factor, thereby reducing the number of weights to be trained and reducing the training complexity.
[0095] The weight corresponding to one iterative decoding includes, for example, a first weight, which can be used to determine the information of the first connection. The first connection can be a connection between a variable node A among N variable nodes and a check node A among M check nodes, where variable node A is any variable node among the N variable nodes, and check node A is any check node among the M check nodes. The first connection is, for example, a connection corresponding to check node A, and / or a connection corresponding to variable node A. Optionally, if the first weight is less than the first threshold, the information of check node A may not include the information of the first connection, and / or the information of variable node A may not include the information of the first connection. It can be understood that if the weight used to calculate the information of a certain connection is less than the first threshold, the effect of the connection may be small, so it is not necessary to calculate the information of the connection, thereby reducing the amount of calculation and reducing the decoding complexity. The first threshold is, for example, 0.05, or it can be other values.
[0096] Optionally, during an iterative decoding process, the second device may sequentially calculate the information of each variable node in the N variable nodes and the information of each check node in the M check nodes in a serial manner, which may also be referred to as a flooding decoding method. Since it is a serial calculation process, the information of a node obtained in a certain calculation may be used in the next iterative update of the node.
[0097] Alternatively, optionally, the N variable nodes and the M check nodes may be grouped, or the nodes included in the LDPC check matrix may be grouped, and decoding may be performed according to the groups. This method may also be called a layered decoding method. The grouping method may be determined by the second device, or the grouping method may be predefined by the protocol. For example, each group includes one or more variable nodes among the N variable nodes, and / or one or more check nodes among the M check nodes. For example, the number of variable nodes included in a group is less than N, and / or the number of check nodes included in a group is less than M. In an iterative decoding process, the calculation process between any two groups in at least one group can be performed in parallel, and the calculation process within a group can be performed in serial. Since the groups can be processed in parallel, the decoding efficiency is improved and the speed of iterative convergence is accelerated.
[0098] After the iterative decoding of S203 is completed, the second device can obtain the result of the iterative decoding according to the information of the N variable nodes and the information of the M check nodes obtained by the iterative decoding, and can make a judgment on the result of the iterative decoding. If the judgment is 0, the result of the iterative decoding can be output, the decoding is completed, and the result of the iterative decoding is the final decoding result; or, if the judgment is not 0, the second device can perform the next iterative decoding in the K iterative decoding, until the judgment of the iterative decoding result of a certain iterative decoding in the K iterative decoding is 0, or until the number of iterative decoding reaches K times.
[0099] In summary, the embodiment of the present application can determine the information of the variable node and the information of the check node by weight, which is equivalent to adding weight as compensation, thereby reducing the complexity of calculation and the performance requirements of the decoding device, making the technical solution of the embodiment of the present application more universal. In addition, the embodiment of the present application can train at least one set of weights. If the number of at least one set is greater than 1, one set of weights can be used in a round of decoding (including multiple iterative decoding), and different sets of weights can be used in different rounds of decoding; different weights in a set of weights can also be used in different iterative decoding processes in a round of decoding; in addition, if the number of weights corresponding to an iterative decoding is greater than 1, different calculations can also use different weights even in an iterative decoding process. It can be seen that the embodiment of the present application can apply corresponding weights to different calculation processes in the decoding process, so that the weights are more consistent with the corresponding calculation processes, thereby improving the decoding flexibility and enhancing the decoding performance.
[0100] exist Figure 2 The embodiment shown in the figure applies the weights obtained by training. The following describes a parameter training method provided in the embodiment of the present application, through which the method is described how to train the weights obtained by training. Figure 2 At least one set of weights described in the embodiment shown. Figure 5 , which is a flow chart of the method. In the following description, the second device is used for training as an example, but as mentioned above, the first device or the third device may also be used for training.
[0101] S501, the second device uses the LDPC check matrix to perform L iterative decoding on the first training data, wherein in each iterative decoding process of the L iterative decoding on the first training data, the information of the N variable nodes and the information of the M check nodes corresponding to the first training data are determined according to the first weight group. For example, the LDPC check matrix can be regarded as a neural network, so Figure 5 The illustrated embodiment relates to a process for training parameters according to a neural network.
[0102] L, M and N are all positive integers, where L is a positive integer less than or equal to the maximum number of iterative decoding times. Figure 2 The K described in the illustrated embodiment may be the same or different. L in the embodiment of the present application may be the number of iterative decodings actually performed on the first training data. For example, the maximum number of iterative decodings is 10, and the loss function can meet the performance requirements after 8 iterative decodings of the first training data, then L may be equal to 8; and if the loss function can meet the performance requirements only after 10 decodings of the first training data, or the loss function cannot meet the performance requirements after 10 iterative decodings of the first training data, then L may be equal to 10.
[0103] In the training process of the embodiment of the present application, the whole group of weights can be trained. A group of weights may include one or more weights. The first weight group is one of the weights, and the first weight group may include weights corresponding to L iterative decodings. For example, it is understood that the first weight group includes L subgroups, where each subgroup is used for one iterative decoding in the L iterative decodings. For example, the subgroup corresponding to a certain iterative decoding in the L iterative decodings is called the second weight, and the second weight can be used in the iterative decoding process. Each of the L subgroups may include one or more weights. For example, the weights in a subgroup may include α and / or β; or, a certain subgroup includes α but not β, and another subgroup includes β but not α; or, a certain weight group includes α and / or β; or, a certain weight group includes α but not β, and another weight group includes α but not β. Among them, the training samples used to train a group of weights may include one or more, and the one or more training samples may have the same or similar parameters; the parameters corresponding to the training samples used to train different groups of weights may be different, so that different groups of weights can be applied to sequences with different parameters. Among them, the training samples are, for example, sequences after LDPC encoding of the original data. For example, the first training data is any training sample used to train a certain set of weights, and the first training data may be a sequence obtained by performing LDPC encoding on certain original data.
[0104] For example, the second device uses a set of weights corresponding to the parameters of the first training data (referred to as the first weight group) and uses the LDPC check matrix to perform L iterative decoding on the first training data. In each iterative decoding process in the L training, the weight corresponding to the iterative decoding in the first weight group can be used. The first weight group may include weights corresponding to the L iterative decodings, for example, it is understood that the first weight group includes L subgroups, each of which is used for one iterative decoding in the L iterative decodings. For example, a subgroup corresponding to a certain iterative decoding in the L iterative decodings is called a second weight, and the second weight can be used in the iterative decoding process.
[0105] S502. After L iterative decoding is completed, if the obtained decoding result makes the loss function meet the performance requirements, the training is completed and the first weight group is obtained; otherwise, the first weight group is updated, and the second training data is trained according to the updated first weight group, or the first training data is retrained according to the updated first weight group.
[0106] After each iterative decoding is completed, the second device can obtain the decoding result (for the process of obtaining the decoding result, please refer to Figure 2The embodiment shown in the figure) is judged, if the judgment is 0, the iterative decoding of the first training data is ended, and the decoding result is output; or, if the judgment is not 0, and the number of iterative decoding is less than K, the first training data can be subjected to the next iterative decoding; or, if the judgment is not 0, but the number of iterative decoding is K, the decoding is ended, and the decoding result is output. Among them, the embodiment of the present application assumes that the actual number of iterative decoding of the first training data is L (that is, when the number of iterative decoding is less than L, the judgment result of the decoding result is not 0), so after the L iterative decoding is completed, the second device will obtain the decoding result, and the decoding result is the decoding result output after the last iterative decoding in the L iterative decoding is completed. After outputting the decoding result, the second device can determine whether the loss function meets the performance requirements, wherein the loss function is, for example, a function between the original data corresponding to the training sample and the decoding result of the training sample. If the loss function meets the performance requirements, indicating that the decoding performance is good, the training process can be ended, and the second device can record the first weight group, which can be used as one of at least one group of weights. Alternatively, if the loss function does not meet the performance requirements, the second device can update some or all of the weights in the first weight group and retrain the first training data based on the updated first weight group, or train the second training data based on the updated first weight group, and the second training data and the first training data are used to train the same set of weights.
[0107] Optionally, the LDPC check matrix can be determined according to a cyclic permutation matrix, and the cyclic permutation matrix can be obtained by cyclically shifting the unit matrix according to the offset value. For example, the number of rows and columns of the unit matrix is the first expansion factor. For this, please refer to Figure 2 Description of the illustrated embodiment.
[0108] Optionally, when the second device decodes the first training data, the weights corresponding to the connections in the same cyclic permutation matrix in the LDPC check matrix are the same. Figure 2 Description of the illustrated embodiment.
[0109] Optionally, when the second device decodes the first training data, different circulant permutation matrices in the LDPC check matrix have different corresponding weights. Figure 2 Description of the illustrated embodiment.
[0110] The i-th row and j-th column of the LDPC check matrix correspond to the first index, for example. Optionally, for the i-th row and j-th column in the LDPC check matrix, the weights corresponding to different circulant permutation matrices corresponding to the first index are the same. Figure 2 Description of the illustrated embodiment.
[0111] Figure 5The embodiment shown introduces the training obtained Figure 2 The manner in which the weights are applied in the illustrated embodiment is therefore optional. Figure 5 The illustrated embodiment can be used with Figure 2 The illustrated embodiment combines, for example Figure 5 The characteristics satisfied by the weights in the embodiment shown may also be Figure 2 Features satisfied by the weights in the illustrated embodiment.
[0112] The embodiment of the present application can obtain at least one set of weights through training. If the number of at least one set is greater than 1, one set of weights can be used in a round of decoding (including multiple iterative decoding), and different sets of weights can be used in different rounds of decoding; different weights in a set of weights can also be used in different iterative decoding processes in a round of decoding; in addition, if the number of weights corresponding to one iterative decoding is greater than 1, different weights can be used for different calculations even in one iterative decoding process. It can be seen that the embodiment of the present application can apply corresponding weights to different calculation processes in the decoding process, so that the weights are more consistent with the corresponding calculation processes, thereby improving the decoding flexibility and enhancing the decoding performance.
[0113] Figure 6 A schematic diagram of the structure of a communication device provided in an embodiment of the present application is given. The communication device 600 may be Figure 2 or Figure 5 The second device or the circuit system of the second device described in any of the embodiments shown in the accompanying drawings is used to implement the method corresponding to the second device in the above method embodiment. Alternatively, the communication device 600 may be Figure 2 or Figure 5 The third device or the circuit system of the third device described in any of the embodiments shown in the accompanying drawings is used to implement the method corresponding to the third device in the above method embodiment. For example, one circuit system is a chip system.
[0114] The communication device 600 includes at least one processor 601. The processor 601 can be used for internal processing of the device to implement certain control processing functions. Optionally, the processor 601 includes instructions. Optionally, the processor 601 can store data. Optionally, different processors can be independent devices, can be located in different physical locations, and can be located on different integrated circuits. Optionally, different processors can be integrated into one or more processors, for example, integrated on one or more integrated circuits.
[0115] Optionally, the communication device 600 includes one or more memories 603 for storing instructions. Optionally, data may also be stored in the memory 603. The processor and memory may be provided separately or integrated together.
[0116] Optionally, the communication device 600 includes a communication line 602 and at least one communication interface 604. Since the memory 603, the communication line 602 and the communication interface 604 are all optional, Figure 6 Indicated by dotted lines.
[0117] Optionally, the communication device 600 may further include a transceiver and / or an antenna. The transceiver may be used to send information to other devices or receive information from other devices. The transceiver may be referred to as a transceiver, a transceiver circuit, an input / output interface, etc., and is used to implement the transceiver function of the communication device 600 through an antenna. Optionally, the transceiver includes a transmitter and a receiver. Exemplarily, the transmitter may be used to generate a radio frequency signal from a baseband signal, and the receiver may be used to convert the radio frequency signal into a baseband signal.
[0118] The processor 601 may include a general-purpose central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the present application.
[0119] The communication link 602 may include a pathway to transmit information between the above-mentioned components.
[0120] The communication interface 604 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area networks (WLAN), wired access networks, etc.
[0121] The memory 603 may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 603 may exist independently and be connected to the processor 601 via the communication line 602. Alternatively, the memory 603 may also be integrated with the processor 601.
[0122] The memory 603 is used to store computer-executable instructions for executing the solution of the present application, and the execution is controlled by the processor 601. The processor 601 is used to execute the computer-executable instructions stored in the memory 603, thereby realizing Figure 2 or Figure 5 The steps performed by the second device or the third device described in the embodiments shown in any of the accompanying drawings.
[0123] Optionally, the computer-executable instructions in the embodiments of the present application may also be referred to as application code, which is not specifically limited in the embodiments of the present application.
[0124] In a specific implementation, as an embodiment, the processor 601 may include one or more CPUs, such as Figure 6 CPU0 and CPU1 in.
[0125] In a specific implementation, as an embodiment, the communication device 600 may include multiple processors, such as Figure 6 601 and processor 605 in the embodiment of the present invention. Each of these processors may be a single-CPU processor or a multi-CPU processor. The processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).
[0126] when Figure 6When the device shown is a chip, for example, a chip of the third device or a chip of the second device, the chip includes a processor 601 (may also include a processor 605), a communication line 602 and a communication interface 604, and optionally, may include a memory 603. Specifically, the communication interface 604 may be an input interface, a pin or a circuit, etc. The memory 603 may be a register, a cache, etc. The processor 601 and the processor 605 may be a general-purpose CPU, a microprocessor, an ASIC, or one or more integrated circuits for controlling the execution of the program of the method of any of the above embodiments.
[0127] The embodiment of the present application can divide the functional modules of the device according to the above method example. For example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated modules can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical functional division. There may be other division methods in actual implementation. For example, in the case of dividing each functional module according to each function, Figure 7 A schematic diagram of a device is shown, and the device 700 may be the third device or the second device involved in each of the above method embodiments, or a chip in the third device or a chip in the second device. The device 700 includes a sending unit 701, a processing unit 702 and a receiving unit 703.
[0128] It should be understood that the device 700 can be used to implement the steps performed by the second device or the third device in the method provided in the embodiment of the present application, and the relevant features can refer to the above Figure 2 or Figure 5 The embodiments shown in any of the accompanying drawings will not be described in detail here.
[0129] Optional, Figure 7 The functions / implementation processes of the sending unit 701, the receiving unit 703 and the processing unit 702 can be Figure 6 The processor 601 in the embodiment calls the computer execution instructions stored in the memory 603 to implement. Or, Figure 7 The function / implementation process of the processing unit 702 in Figure 6 The processor 601 in the embodiment calls the computer execution instruction stored in the memory 603 to implement, Figure 7 The functions / implementation processes of the sending unit 701 and the receiving unit 703 can be Figure 6 It is implemented by the communication interface 604 in.
[0130] Optionally, when the device 700 is a chip or a circuit, the functions / implementation processes of the sending unit 701 and the receiving unit 703 can also be implemented through pins or circuits.
[0131] The present application also provides a computer-readable storage medium, which stores a computer program or instruction. When the computer program or instruction is run, the method performed by the second device or the third device in the above method embodiment is implemented. In this way, the functions described in the above embodiments can be implemented in the form of software functional units and sold or used as independent products. Based on this understanding, the technical solution of the present application can be essentially or in other words, the part that contributes or the part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium, including several instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a ROM, a RAM, a magnetic disk, or an optical disk.
[0132] The present application also provides a computer program product, which includes: a computer program code, when the computer program code is run on a computer, the computer executes the method executed by the second device or the third device in any of the aforementioned method embodiments.
[0133] An embodiment of the present application also provides a processing device, including a processor and an interface; the processor is used to execute the method executed by the second device or the third device involved in any of the above method embodiments.
[0134] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using 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 instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions 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 instructions may be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium, (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)), etc.
[0135] The various illustrative logic units and circuits described in the embodiments of the present application can be implemented or operated by a general-purpose processor, a digital signal processor (DSP), an ASIC, a field-programmable gate array (FPGA), or other programmable logic devices, discrete gates or transistor logic, discrete hardware components, or any combination of the above. The general-purpose processor can be a microprocessor, and optionally, the general-purpose processor can also be any conventional processor, controller, microcontroller or state machine. The processor can also be implemented by a combination of computing devices, such as a digital signal processor and a microprocessor, a plurality of microprocessors, one or more microprocessors combined with a digital signal processor core, or any other similar configuration.
[0136] The steps of the method or algorithm described in the embodiments of the present application can be directly embedded in the hardware, the software unit executed by the processor, or the combination of the two. The software unit can be stored in RAM, flash memory, ROM, erasable programmable read-only memory (erasable programmable read-only memory, EPROM), EEPROM, register, hard disk, removable disk, CD-ROM or other storage media of any form in the art. Exemplarily, the storage medium can be connected to the processor so that the processor can read information from the storage medium and can write information to the storage medium. Optionally, the storage medium can also be integrated into the processor. The processor and the storage medium can be arranged in an ASIC, and the ASIC can be arranged in a terminal device. Optionally, the processor and the storage medium can also be arranged in different components in the terminal device.
[0137] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0138] The contents of the various embodiments of the present application may refer to each other. If there is no special explanation and logical conflict, the terms and / or descriptions between different embodiments are consistent and can be referenced to each other. The technical features in different embodiments can be combined to form new embodiments according to their internal logical relationships.
[0139] It is understandable that in the embodiment of the present application, the second device and / or the third device can perform some or all of the steps in the embodiment of the present application, and these steps or operations are only examples. In the embodiment of the present application, other operations or variations of various operations can also be performed. In addition, the various steps can be performed in different orders presented in the embodiment of the present application, and it is possible that not all operations in the embodiment of the present application need to be performed.
Claims
1. A decoding method, characterized in that: The method comprises: receiving a first sequence; Determine, according to the parameters of the first sequence, a group of weights from at least one group of weights, wherein the at least one group of weights is determined through training, the group of weights includes weights corresponding to K iterative decodings of the first sequence, at least two weights in the group of weights are different, wherein the number of weights corresponding to one iterative decoding in the K iterative decodings is greater than or equal to 1, and K is a positive integer less than or equal to a maximum number of iterative decodings; During one iterative decoding of the K iterative decodings on the first sequence, information of N variable nodes and information of M check nodes corresponding to the first sequence are determined according to a weight corresponding to the one iterative decoding, where M and N are both positive integers.
2. The method according to claim 1, characterized in that The weight corresponding to one iterative decoding includes a first weight, and the first weight is used to determine information of a first connection, and the first connection is a connection between a check node in the M check nodes and a variable node in the N variable nodes, wherein, When the first weight is less than a first threshold, the information of the one check node or the information of the one variable node does not include the information of the first connection.
3. The method according to claim 1 or 2, characterized in that: In the process of one iterative decoding, the information of the N variable nodes and the information of the M check nodes are determined in a serial manner; or, The N variable nodes and the M check nodes belong to at least one group, wherein each group includes one or more variable nodes among the N variable nodes, and / or includes one or more check nodes among the M check nodes, and during the iterative decoding process, any two groups among the at least one group are processed in parallel, wherein when processing a group, information of the variable nodes and / or check nodes within the group is determined in a serial manner.
4. The method according to claim 3, characterized in that The at least one group is determined based on a low-density parity-check code LDPC check matrix, and each group in the at least one group includes one or more rows in the LDPC check matrix, or includes one or more columns in the LDPC check matrix, wherein a row of the LDPC check matrix corresponds to one check node among the M check nodes, and a column of the LDPC check matrix corresponds to one variable node among the N variable nodes.
5. The method according to any one of claims 1 to 4, characterized in that: The method further comprises: When the result of the iterative decoding is judged to be 0, the result of the iterative decoding is output, and the decoding ends; or, When the result of the iterative decoding is not 0, the next iterative decoding of the K iterative decodings is performed on the first sequence.
6. A parameter training method, characterized in that: The method comprises: Performing L iterative decoding on the first training data using an LDPC check matrix, and in a process of performing one iterative decoding of the L iterative decoding on the first training data, determining information of N variable nodes and M check nodes corresponding to the first training data according to a second weight, wherein the second weight belongs to a first weight group, the first weight group includes weights corresponding to the L iterative decodings, the second weight corresponds to the one iterative decoding, the second weight includes one or more weights, L, N and M are all positive integers, and L is a positive integer less than or equal to a maximum number of iterative decodings; After the L iterative decoding is completed, if the obtained decoding result makes the loss function corresponding to the decoding result meet the performance requirements, the training is completed and the first weight group is obtained; otherwise, the first weight group is updated, and the second training data is iteratively decoded according to the updated first weight group.
7. The method according to claim 6, characterized in that The LDPC check matrix is determined according to a circulant permutation matrix, which is obtained by circulantly shifting a unit matrix according to an offset value, and the number of rows of the unit matrix is a first expansion factor.
8. The method according to claim 7, characterized in that The first expansion factor is Zc.
9. The method according to claim 7, characterized in that: Among the one or more weights, the weights corresponding to the connections within the same circulant permutation matrix are the same, and the weights corresponding to different circulant permutation matrices are different.
10. The method according to claim 7 or 8, characterized in that: The i-th row and j-th column of the LDPC check matrix correspond to a first index, the first index corresponds to one or more values of a first expansion factor, one of which corresponds to a cyclic permutation matrix, the weight corresponding to the first cyclic permutation matrix corresponding to the first index includes the weight corresponding to the second cyclic permutation matrix corresponding to the first index, and the value of the first expansion factor corresponding to the first cyclic permutation matrix is greater than the value of the first expansion factor corresponding to the second cyclic permutation matrix.
11. A communication device, characterized in that: It includes a control unit, a storage unit and an LDPC decoding unit, wherein the control unit is connected to the storage unit and the LDPC decoding unit respectively, wherein: The control unit is configured to receive a first sequence, determine a set of weights from at least one set of weights stored in the storage unit according to a parameter of the first sequence, and input the set of weights into an LDPC decoding unit, wherein the at least one set of weights is determined through training, the set of weights includes weights corresponding to K iterative decodings of the first sequence, at least two weights in the set of weights are different, wherein the number of weights corresponding to one iterative decoding in the K iterative decodings is greater than or equal to 1, and K is a positive integer less than or equal to a maximum number of iterative decodings; The LDPC decoding unit is used to receive the set of weights, and during one iterative decoding of the K iterative decodings of the first sequence, determine information of N variable nodes and information of M check nodes corresponding to the first sequence according to the weights corresponding to the one iterative decoding, where M and N are both positive integers.
12. The device according to claim 11, characterized in that The weight corresponding to one iterative decoding includes a first weight, and the first weight is used to determine information of a first connection, and the first connection is a connection between a check node in the M check nodes and a variable node in the N variable nodes, wherein, When the first weight is less than a first threshold, the information of the one check node or the information of the one variable node does not include the information of the first connection.
13. The device according to claim 11 or 12, characterized in that In the process of one iterative decoding, the information of the N variable nodes and the information of the M check nodes are determined in a serial manner; or, The N variable nodes and the M check nodes belong to at least one group, wherein each group includes one or more variable nodes among the N variable nodes, and / or includes one or more check nodes among the M check nodes, and during the iterative decoding process, any two groups among the at least one group are processed in parallel, wherein when processing a group, information of the variable nodes and / or check nodes within the group is determined in a serial manner.
14. The device according to claim 13, characterized in that The at least one group is determined based on an LDPC check matrix, and each group in the at least one group includes one or more rows in the LDPC check matrix, or includes one or more columns in the LDPC check matrix, wherein a row of the LDPC check matrix corresponds to one check node among the M check nodes, and a column of the LDPC check matrix corresponds to one variable node among the N variable nodes.
15. The device according to any one of claims 11 to 14, characterized in that: The control unit is also used for: When the result of the iterative decoding is judged to be 0, the result of the iterative decoding is output, and the decoding ends; or, When the result of the iterative decoding is not 0, the next iterative decoding of the K iterative decodings is performed on the first sequence.
16. A communication device, characterized in that: The communication device comprises a processing unit and a transceiver unit, wherein the processing unit is coupled to the transceiver unit to execute the method according to any one of claims 1 to 5, or execute the method according to any one of claims 6 to 10.
17. A communication device, characterized in that: The communication device includes a processor and a memory, the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that the communication device performs the method as described in any one of claims 1 to 5, or the communication device performs the method as described in any one of claims 6 to 10.
18. A computer-readable storage medium, characterized in that: The computer-readable storage medium is used to store a computer program, and when the computer program is run on a computer, the computer is caused to execute the method according to any one of claims 1 to 5, or the computer is caused to execute the method according to any one of claims 6 to 10.
19. A computer program product, characterized in that The computer program product comprises a computer program, and when the computer program is run on a computer, the computer is caused to execute the method according to any one of claims 1 to 5, or the computer is caused to execute the method according to any one of claims 6 to 10.
20. A chip system, characterized in that: The chip system comprises: A processor and an interface, wherein the processor is used to call and run instructions from the interface, and when the processor executes the instructions, the method according to any one of claims 1 to 5 is implemented, or the method according to any one of claims 6 to 10 is implemented.
21. A communication system, characterized in that: The communication system includes a second device and a third device, wherein: The second device is used to execute the method according to any one of claims 1 to 5; and / or, The third device is used to execute the method according to any one of claims 6 to 10.
