Decoding method and apparatus, and parameter training method and apparatus
By using trained weights to determine the information of variable nodes and check nodes during LDPC decoding, the problem of high computational complexity in LDPC decoding is solved, achieving more efficient and flexible decoding performance.
Patent Information
- Application Number
- PCT/CN2024/097094
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-14
- Filing Date
- 2024-06-03
- Publication Date
- 2025-01-02
AI Technical Summary
The high computational complexity of the LDPC decoding process leads to high performance requirements and low efficiency for the decoding device.
By using trained weights to determine the information of variable nodes and check nodes during the decoding process, computational complexity is reduced, and different weights are used in different decoding iterations to improve flexibility and performance.
It reduces the performance requirements of the decoding device, improves decoding efficiency and flexibility, and enhances decoding performance.
Smart Images

Figure CN2024097094_02012025_PF_FP_ABST
Abstract
Description
A decoding and parameter training method and device
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to the 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 into this application; this application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on August 14, 2023, with application number 202311020949.3 and application name “A decoding, parameter training method and device”, the entire contents of which are incorporated by reference into 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) codes are a type of linear block code with a sparse parity check matrix. They are characterized by a flexible structure and low decoding complexity. Because they use a partially parallel iterative decoding algorithm, they have a higher throughput than traditional Turbo codes. LDPC codes can be used as error-correcting codes in communication systems, thereby improving the reliability and power efficiency of channel transmission. 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. Currently, LDPC codes are being considered as one of the channel coding methods in the fifth generation (5G) mobile communications.
[0005] LDPC has multiple encoding and decoding methods. The essence of belief propagation (BP) decoding is the iterative transfer of belief information between variable nodes and check nodes in the LDPC parity check matrix. BP decoding may undergo multiple iterations, with each iteration calculating information for each variable node and each check node in the LDPC parity check matrix. This computational complexity places high demands on the performance of the decoding device and can also result in low decoding efficiency.
[0006] Summary of the Invention
[0007] 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.
[0008] In a first aspect, a first decoding method is provided, for example, a channel decoding method. The method can be performed by a second device, or by another device including a decoding function, or by a chip system (or chip) or other functional module, which can implement the functions of the second device, and the chip system or functional module is, for example, provided in the second device. The second device can also be referred to as a decoding device, etc., and the second device can be a network device or a terminal device, or the second device can be provided in a network device or a terminal device. The method includes: receiving a first sequence; determining a set of weights from at least one set of weights based on parameters of the first sequence, wherein the at least one set of weights is determined through training, the set of weights including weights corresponding to K iterative decodings of the first sequence, at least two weights in the set of weights being 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; and during one iterative decoding in the K iterative decodings of the first sequence, determining information of N variable nodes and information of M check nodes corresponding to the first sequence based on the weights corresponding to the one iterative decoding, where M and N are both positive integers.
[0009] 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 the calculation and reducing 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 of the sets 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 a single iterative decoding process. It can be seen that the embodiment of the present application can apply corresponding weights to different calculation processes during 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.
[0010] In an optional embodiment, the weight corresponding to one iterative decoding includes a first weight, and the first weight is used to determine information about a first connection, where the first connection is a connection between one of the M check nodes and one of the N variable nodes. When the first weight is less than a first threshold, the information about the one check node or the one variable node does not include information about the first connection. If the weight used to calculate information about a connection is less than the first threshold, the role of the connection may be small, and therefore the information about the connection does not need to be calculated, thereby reducing the amount of computation and decoding complexity. The first threshold is, for example, 0.05, or may be other values.
[0011] 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 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 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 within 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, while 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.
[0012] In an optional embodiment, 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 in the M check nodes, and a column of the LDPC check matrix corresponds to one variable node in the N variable nodes. A grouping method is provided, that is, grouping is achieved based on the LDPC check matrix. In addition, other grouping methods can also be used, and this is not limited.
[0013] 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 decoding on the first sequence.
[0014] In a second aspect, a parameter training method is provided. The method can be performed by a third device, or by other devices including parameter training functions, or by a chip system (or chip) or other functional module. The chip system or functional module can implement the functions of the third device, and the chip system or functional module is, for example, provided in the third device. The third device can also be called a decoding device, etc. 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 provided in a network device, a terminal device, or a third-party device. The method includes: performing L iterative decoding on first training data using an LDPC check matrix; during one iterative decoding of the L iterative decoding on the first training data, determining information on 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 a 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 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.
[0015] In an optional implementation, the LDPC check matrix is determined according to a cyclic permutation matrix, the cyclic permutation matrix is obtained by cyclically shifting a unit matrix according to an offset value, and the number of rows of the unit matrix is a first expansion factor.
[0016] In an optional implementation, the first expansion factor is Zc.
[0017] In an optional embodiment, 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, thereby improving generalization capability.
[0018] In an optional embodiment, the i-th row and the 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.
[0019] In a third aspect, a communication device is provided. The communication device may be the second device described in any one of the first to second aspects above. The communication device has the decoding function described in the embodiments of the present application. The communication device is, for example, a terminal device or a network device, or a larger device including the terminal device or the network device, or a functional module in the terminal device or the 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 is capable of performing both transmitting and receiving functions. When the transceiver unit performs the transmitting function, it may be referred to as a transmitting unit (sometimes also referred to as a transmitting module); when the transceiver unit performs the receiving function, it may be referred to as a receiving unit (sometimes also referred to as a receiving module). The transmitting unit and the receiving unit may be the same functional module, which is referred to as a transceiver unit and is capable of performing both transmitting and receiving functions; alternatively, the transmitting unit and the receiving unit may be different functional modules, with the transceiver unit being a general term for these functional modules.
[0020] 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 set of weights from at least one set of weights based on the parameters of the first sequence, the at least one set of weights being determined through training, the set of weights including weights corresponding to K iterative decoding of the first sequence, at least two weights in the set of weights being 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 further used to determine, during one iterative decoding of the K iterative decodings of the first sequence, information of N variable nodes and information of M check nodes corresponding to the first sequence based on the weights corresponding to the one iterative decoding, where both M and N are positive integers.
[0021] 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, enabling the communication device to perform the function of the second device described in any one of the first to second aspects above.
[0022] 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.
[0023] In an optional embodiment, the processing unit is used to perform L iterative decoding on the first training data using the LDPC check matrix. During one of the L iterative decodings of the first training data, information of N variable nodes and 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 ends 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.
[0024] 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, enabling the communication device to perform the function of the third device described in any one of the first to second aspects above.
[0025] In a fifth aspect, a communication device is provided. The communication device may be a terminal device or a network device, or a chip or chip system used in the terminal device or 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. The processor is coupled to the memory and the communication interface. When the processor reads the computer program or instructions, the communication device executes the method performed by the second device in each of the above aspects.
[0026] In a sixth aspect, a communication device is provided. The communication device may be a terminal device or a network device, or a chip or chip system used in the terminal device or 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. The processor is coupled to the memory and the communication interface. When the processor reads the computer program or instructions, the communication device executes the method performed by the third device in the above aspects.
[0027] In a seventh aspect, a communication device is provided. The communication device 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 may include 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. Optionally, the storage unit is connected to the LDPC decoding unit. The control unit may be implemented as a hardware circuit or a software module; the storage unit may be implemented as a hardware circuit or a software module; and the LDPC decoding unit may be implemented as a hardware circuit or a software module. Optionally, the control unit and the storage unit may be integrated into a single chip system. The control unit, storage unit, and LDPC decoding unit are coupled to execute the method performed by the second device in each of the above aspects.
[0028] In an eighth aspect, a communication system is provided, comprising a second apparatus and a third apparatus, wherein the second apparatus is configured to execute the method described in the aforementioned aspects and / or the third apparatus is configured to execute the method described in the aforementioned aspects. For example, the second apparatus may be implemented by the communication apparatus described in the third aspect, the fifth aspect, or the seventh aspect; and the third apparatus may be implemented by the communication apparatus described in the fourth aspect or the sixth aspect.
[0029] In a ninth aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium is used to store computer programs or instructions, which, when executed, enables the method performed by the second device or the third device in the above aspects to be implemented.
[0030] In 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.
[0031] In the eleventh aspect, a chip system is provided, comprising a processor and an interface, wherein the processor is configured 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
[0032] FIG1 is a schematic diagram of a network architecture applicable to an embodiment of the present application;
[0033] FIG2 is a flowchart of a decoding method provided in an embodiment of the present application;
[0034] FIG3 is a schematic diagram of a decoding process in an embodiment of the present application;
[0035] FIG4 is a schematic structural diagram of a second device in an embodiment of the present application;
[0036] FIG5 is a flow chart of a parameter training method provided in an embodiment of the present application;
[0037] FIG6 is a schematic diagram of a device provided in an embodiment of the present application;
[0038] FIG7 is a schematic diagram of another device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0039] 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.
[0040] 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 there may be three relationships. For example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone, 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 items" or similar expressions refers to any combination of these items, including any combination of single items 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.
[0041] The ordinal numbers such as "first" and "second" mentioned in the embodiments of the present application are used to distinguish between 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 that the two weights include different weight quantities, values, application scenarios, priorities or importance, etc. In addition, the numbering of the steps in the various embodiments introduced in this application is only for distinguishing different steps, and is not used to limit the order between the steps. For example, S201 may occur before S202, or may occur after S202, or may occur at the same time as S202.
[0042] Below, some terms or concepts in the embodiments of the present application are explained to facilitate understanding by those skilled in the art.
[0043] 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, an in-vehicle device, or a wireless device built into the above device (such as 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: sensing scenarios, cellular communications, device-to-device communication (D2D), vehicle to everything (V2X), machine-to-machine / machine-type communications (M2M / MTC), Internet of Things (IoT), virtual reality (VR), augmented reality (AR), industrial control, self-driving, remote medical, smart grid, smart furniture, smart office, smart wearable, smart transportation, smart city, drones, robots and other scenarios. The terminal device may sometimes be referred to as user equipment (UE), terminal, access station, UE station, remote station, wireless communication device, or user equipment, etc.
[0044] In the embodiments of the present application, the communication device for implementing the terminal device function 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 solutions provided in the embodiments of the present application, the technical solutions provided in the embodiments of the present application are described by taking the terminal device as an example in which the device for implementing the terminal device function is a terminal device. In addition, for ease of description, the terminal device in the embodiments of the present application is described by taking a UE as an example.
[0045] The network devices in the embodiments of the present application include, for example, access network devices and / or core network devices. The access network device is a device with wireless transceiver functions, which is used to communicate with the terminal device. The access network devices include but are not limited to base stations (base transceiver station (BTS), node B (Node B), evolved node B (eNodeB) / eNB, or the next generation node B (gNodeB) / gNB), transmission reception points (TRP), base stations subsequently evolved by the third 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 pico base station, a small station, a relay station, etc. Multiple base stations can support networks with the same access technology, or they can support networks with different access technologies. The base station can include one or more co-sited or non-co-sited 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 the 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 are not limited to 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.
[0046] In the embodiments of the present application, the communication device for implementing the network device function may be a network device, or may be a device capable of supporting the network device to implement the function, such as a chip system, which may be installed in the network device. In the technical solutions provided in the embodiments of the present application, the technical solutions provided in the embodiments of the present application are described by taking the network device as an example of the device for implementing the network device function being a network device.
[0047] LDPC has multiple encoding and decoding methods. The essence of BP decoding is the iterative transfer of confidence information between variable nodes and check nodes in the LDPC parity check matrix. BP decoding may go through multiple iterations, and during each iteration, information about each variable node and each check node in the LDPC parity check matrix is calculated. The following formula is used to calculate the information about check nodes and variable nodes during the iteration.
[0048] Formula 1 is used to calculate the information of the check node.
[0049] 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.
[0050] As in the above formula, r nk q represents 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; 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. Let the set of all information bits contained in check node n be 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 the 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; k (0) indicates the initial transmission bit x k = 0; p k (1) represents the initial transmission bit x k =1; rn′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 in 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.
[0051] It can be seen that there are a large number of multiplication operations and tanh(x) operations in this calculation process, which is highly complex and places high requirements on the performance of the decoding device, and may also lead to low decoding efficiency.
[0052] To this end, a minimum sum (MS) decoding method has been proposed. The formula used in this decoding method is as follows:
[0053] 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 the 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.
[0054] In the MS decoding process, although there is no large amount of multiplication and tanh(x) operation 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: nk =α*s nk min k′ |q nk′ | (Formula 5)
[0055] In Formula 5, α represents a compensation coefficient, and its value is greater than 0 and less than 1.
[0056] Another compensation method can refer to formula 6: nk =s nk ·max{min k′ |q nk′ |-β,0} (Formula 6)
[0057] In Formula 6, β represents a compensation coefficient, and its value is greater than 0 and less than 1.
[0058] It can be seen that in MS decoding, the compensation coefficient can be used to adjust r nk Compensation is performed. 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.
[0059] 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 the calculation and reducing 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 of the sets 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, even in an iterative decoding process, different calculations can also use different weights. It can be seen that the embodiment of the present application can apply corresponding weights to different calculation processes during 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.
[0060] Figure 1 is a communication network architecture applicable to an embodiment of the present application. Figure 1 includes a first device and a second device. Among them, the first device is a sequence sending end, which can also be called an encoding end, which can execute the encoding process, and the first device can be a network device or a terminal device; the second device is a sequence receiving end, which can also be called a decoding end, which can execute the decoding method provided by an embodiment of the present application, and the second device can be a network device or a terminal device. The weights used in the embodiment of the present application can be obtained through training, and the device for training the weights can be the second device, or it can also be the first device or a third-party device (such as the third device shown in Figure 1). After the training is completed, the first device or the third-party device can send the obtained weights to the second device.
[0061] In order to better introduce the embodiments of the present application, the methods provided by the embodiments of the present application are introduced 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 herein, all steps represented by dotted lines in the accompanying drawings corresponding to the various embodiments of the present application are optional steps. The methods provided by the various embodiments of the present application may be applied to the network architecture shown in Figure 1. For example, the first device involved in the various embodiments of the present application may be the first device in Figure 1; the second device described in the various embodiments of the present application may be the second device in Figure 1; the third device described in the various embodiments of the present application may be the third device in Figure 1.
[0062] An embodiment of the present application provides a decoding method. Please refer to Figure 2, which is a flowchart of the method.
[0063] S201: A first device sends a first sequence, and a second device receives the first sequence.
[0064] For example, the first device encodes original information using an LDPC code to obtain a first sequence and sends the first sequence. The first sequence received by the second device is an LDPC-encoded sequence.
[0065] S202: The second device determines a set of weights from at least one set of weights based on the parameters of the first sequence. For example, the set of weights determined by the second device is referred to as weight set A.
[0066] 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 base graph and a shift value. The base graph 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, where 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); where 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 with m rows and n columns represents an all-zero matrix or a circulant permutation matrix. Please refer to Table 1 for an example of a base graph. 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.
[0067] Table 1
[0068] 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 cyclic shifting to the right. 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 an expansion factor (lifting size), which represents 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.
[0069] 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-zero 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 passed through Q i,j Circular shift to the right.
[0070] The same set index can correspond to one or more values of Z, or the same set index can correspond to one or more Zs. That is, the number of rows and columns of the identity matrix applied to the same set index may be different. For example, refer to Table 2 for examples of how the same set index can correspond to different values of Z. In Table 2, a set index can correspond to a set of Z values.
[0071] Table 2
[0072] 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 continuously 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. Please refer to Figure 3. The decoding process of the second device is described below with reference to Figure 3. The dots in Figure 3 represent r nk or q nk .
[0073] After the second device receives the first sequence, it 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 takes Zc=2 as an example. For example, the input v1, v2, v3, etc. in Figure 3 represent different groups of variable nodes. At this time, the various nodes in the check matrix have not yet been assigned values. After grouping, the second device can initialize the information of all variable nodes included in the LDPC check matrix (the information before initialization is q11, q12, q13, etc. in the input layer of Figure 3), and obtain updated information of all variable nodes, such as the information A of the variable node, such as w11, w12, w13, etc. in the input layer of Figure 3. Among them, during the initialization process, the process of obtaining the circulant permutation matrix based on the unit matrix is completed. The second device can calculate the information of all check nodes in the LDPC check matrix based on the information A of the variable node, for example, using the information A of the variable node as q nkSubstituting into Formula 3, the information of the check node, such as the check node information A, can be calculated, as shown by r11, r12, etc. in the hidden layer 1 of FIG3. Furthermore, the second device can calculate the information of all variable nodes in the LDPC check matrix based on the check node information A, for example, using the check node information A as r nk Substituting into formula 4, we obtain the information updated again for the variable node, such as the variable node information B, as shown in q11, q12, etc. in the hidden layer 1 of Figure 3. At this point, the second device has completed an iterative decoding process. In which, each variable node in the LDPC check matrix can be connected to some or all check nodes in the LDPC check matrix, and each check node in the LDPC check matrix can be connected to some or all variable nodes in the LDPC check matrix. The information of a variable node includes the connection information between the variable node and all 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 connection information 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 connection information between variable node 1 and check node 1, and the connection information between variable node 1 and check node 2. The same principle applies to check node information. A check node's information includes information about the connections between it and all variable nodes connected to it. Therefore, calculating a check node's information involves calculating information about all connections corresponding to that check node—that is, calculating information about the connections between it and each variable node connected to it. For example, if check node 1 is connected to both variable node 1 and variable node 2, then check node 1's information includes information about the connections between check node 1 and variable node 1, as well as information about the connections between check node 1 and variable node 2. When calculating information about each connection corresponding to a variable node, Formula 4, described above, can be applied; when calculating information about each connection corresponding to a check node, Formula 3, described above, can be applied.
[0074] The second device calculates and obtains the information B of the variable node and the information A of the check node, which is equivalent to completing an iterative decoding. Optionally, after an iterative decoding is completed, the second device can obtain the result of the iterative decoding based on the information of the variable node and the information of the check node 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 (for example, the node in the output layer in 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 is reached. For example, the second device can obtain the result of the iterative decoding based on 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 as not 0, the second device can continue to the next iterative decoding.
[0075] 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 can be calculated, such as the check node information B, as shown in r11, r12, etc. in the hidden layer 2 of Figure 3. And, the second device can calculate the information of all variable nodes in the LDPC check matrix based on the check node information B, for example, using the check node information B as r nk Substituting this into Equation 4 yields updated variable node information, such as variable node information C, as shown, for example, in hidden layer 2 of Figure 3, q11 and q12. The second device calculates variable node information C and check node information B, completing another round of iterative decoding. The second device can then make a decision based on the method described above, and so on. For example, after one or more iterative decodings, the second device obtains the final decoding result, as shown in the rightmost output layer of Figure 3.
[0076] 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 nkCompensation is performed, for example, the weights include α and / or β, or may also include other types of weights. In an embodiment of the present application, after receiving the first sequence, the second device can 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, which is a structural diagram of the 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 a 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 a control unit included in the second device). The control unit can input the set of weights and the first sequence into an LDPC decoding unit, which is decoded by the LDPC decoding unit. In this manner, there may be no connection between the LDPC decoding unit and the storage unit, or there may be a connection; alternatively, 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, which is decoded by the LDPC decoding unit. In this manner, there may be a connection between the LDPC decoding unit and the storage unit. Figure 4 takes this as an example. The LDPC decoding unit may input the information of the check nodes and the variable nodes obtained from the iterative decoding into the control unit after each iterative decoding, and the control unit may obtain the decoding result of the iterative decoding based on the information of the check nodes and the variable nodes obtained from the iterative decoding, and then input the decoding result into the control unit, and the control unit may make a judgment based on the decoding result to determine whether the decoding is successful; or, the LDPC decoding unit may obtain the decoding result of the iterative decoding based on the information of the check nodes and the variable nodes obtained from the iterative decoding, and then 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 may determine whether the decoding is successful based on the judgment result. Figure 4 is an example. If the current 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 current 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.
[0077] The control unit may be implemented as a software module or as a hardware circuit, and may be, for example, also referred to as a controller, including 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 in the embodiments of the present application; the storage unit may be implemented as a software module or as a hardware circuit, and may, for example, include a read-only memory (ROM) and / or a random access memory (RAM); the LDPC decoding unit may be implemented as a software module or as a hardware circuit, and may be, for example, also referred to as an LDPC decoder. The control unit, storage unit, and LDPC decoding unit may be three independent functional units, implemented as different hardware circuits or software modules; alternatively, the control unit and storage unit may be integrated into a chip, and the chip and the LDPC decoding unit may be two independent functional units.
[0078] K is a positive integer less than or equal to the maximum number of iterative decoding iterations. The maximum number of iterative decoding iterations 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 iterations. As previously mentioned, the number of decoding iterations of the first sequence may not reach the maximum number of iterative decoding iterations. For example, after a certain number of iterative decoding iterations of the first sequence, if the decision is not 0, the decoding is terminated. If the number of decoding iterations of the first sequence does not reach the maximum number of iterative decoding iterations, some weights in the set of weights (i.e., weights corresponding to one or more unexecuted iterative decoding iterations) may not be used. For example, the second device may select a set of weights applicable to the first sequence from at least one set of weights based on the parameters of the first sequence. The parameters of the first sequence may include, for example, one or more of the following: information about 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. There are currently two optional basemaps (Table 1 shows a portion of one of the basemaps). The information about the basemap corresponding to the first sequence may indicate which basemap was used. The first sequence of channel state information includes, for example, information such as the maximum delay spread and / or power delay profile (PDP) of the first sequence.
[0079] At least one set of weights can be obtained through neural network training. For example, during training, the parameters of the sequences (or training samples) involved in the training can be different, thereby obtaining at least one set of weights. Each set of weights can correspond to different sequence parameters, or to different values of the sequence parameters. Within the at least one set of weights, each set of weights can include one or more weights. Each set of weights can include weights corresponding to K iterative decoding of the first sequence, wherein the number of weights corresponding to one iterative decoding in each set of weights is greater than or equal to 1. Optionally, one set of weights within the at least one set of weights can include α and / or β, or can also include other weights. For example, one set of weights can include α and / or β; or one set of weights can include α but not β, while another set of weights can include β but not α. For another example, within one set of weights, the weights corresponding to one iterative decoding can include α and / or β; or one set of weights can include α but not β, while another set of weights can 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.
[0080] At least one set of weights may satisfy one or more of the following relationships: in each set of weights in at least one set of weights, at least one weight corresponding to at least two iterative decodings is different; in each set of weights in at least one set of weights, at least two weights corresponding to the same iterative decoding are different; or, if the number of at least one set of weights is greater than 1, then in at least one set of weights, at least one weight in at least two sets of weights is different.
[0081] 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 and P2 are not equal; 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.
[0082] 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 the weights corresponding to at least two calculation processes are different.
[0083] S203. During one of the K iterative decodings performed on the first sequence by the second device, information about N variable nodes and information about M check nodes corresponding to the first sequence are determined based on weights corresponding to the iterative decoding, where M and N are both positive integers. For example, the N variable nodes are all variable nodes in an LDPC check matrix, and the M check nodes are all check nodes in an LDPC check matrix.
[0084] This process has been introduced in S202, and you can refer to the content of S202.
[0085] 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 weight 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.
[0086] 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, as described in the previous paragraph, cyclic permutation matrix 1 may correspond to weight 1, and cyclic permutation matrix 2 may correspond to weight 2, and weight 1 and weight 2 may be different.
[0087] In addition, as previously described, the same set index can correspond to one or more values of the expansion factor, as shown in Table 2. For embodiments 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 j-th column of the LDPC check matrix correspond to the first index. The first index can correspond to one or more values of the first expansion factor. For the i-th row and j-th column, one value of the first expansion factor can correspond to a cyclic permutation matrix. Optionally, for the i-th row and 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 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 can include the weight corresponding to the second cyclic permutation matrix. For example, for the i-th row and j-th column, the first index is 0, and the first expansion factor is 256, which corresponds to the first circulant permutation matrix; the first expansion factor is 128, which corresponds to the second circulant permutation matrix. For example, if 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 certain row and a certain 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 training complexity.
[0088] 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 a 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 role 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.
[0089] Optionally, during one iterative decoding process, the second device may sequentially calculate information for each of the N variable nodes and each of the M check nodes in a serial manner. This method is also known as flooding decoding. Because this is a serial calculation process, the information of a node obtained in one calculation can be used in the next iterative update of that node.
[0090] 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 referred to as 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.
[0091] After the iterative decoding in S203 is completed, the second device can obtain the result of the iterative decoding based on the information of the N variable nodes and the information of the M check nodes obtained in 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, and the decoding is completed. The result of the iterative decoding is the final decoding result. Alternatively, 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.
[0092] 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 the calculation and reducing 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 of the sets 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 during 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.
[0093] The embodiment shown in FIG2 utilizes trained weights. The following describes a parameter training method provided by an embodiment of the present application, which illustrates how to train and obtain at least one set of weights described in the embodiment shown in FIG2 . Please refer to FIG5 for a flow chart of this method. In the following description, training is performed by the second device as an example. However, as previously described, training can also be performed by the first device or the third device.
[0094] S501: A second device performs L iterative decoding on first training data using an LDPC check matrix. During each of the L iterative decodings of the first training data, information on N variable nodes and M check nodes corresponding to the first training data is determined based on a first weight group. For example, the LDPC check matrix can be considered a neural network, and thus the embodiment shown in FIG5 relates to a process for training parameters based on the neural network.
[0095] 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. For example, L may be the same as or different from K described in the embodiment shown in FIG2 . In the embodiment of the present application, L may be the number of iterative decodings actually performed on the first training data. For example, if the maximum number of iterative decodings is 10, and the loss function meets the performance requirements after 8 iterative decodings of the first training data, then L may be equal to 8. If the loss function meets the performance requirements only after 10 decodings of the first training data, or if the loss function fails to meet the performance requirements after 10 iterative decodings of the first training data, then L may be equal to 10.
[0096] During the training process, embodiments of the present application can train an entire set of weights. A set of weights can include one or more weights. A first weight group is one of the weight groups. The first weight group can include weights corresponding to L iterative decodings. For example, the first weight group can include L subgroups, each of which is used for one of the L iterative decodings. For example, a subgroup corresponding to a particular iterative decoding in the L iterative decodings is called a second weight group, and the second weight group can be used during that iterative decoding. Each of the L subgroups can include one or more weights. For example, the weights within a subgroup can include α and / or β; or, one subgroup can include α but not β, while another subgroup includes β but not α; or, one weight group can include α and / or β; or, one weight group can include α but not β, while another weight group can include α but not β. The training samples used to train a set of weights can include one or more training samples, and these one or more training samples can have the same or similar parameters. The parameters corresponding to the training samples used to train different weight groups can be different, allowing different weight groups to be applied to sequences with different parameters. The training samples, for example, are sequences resulting from 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 a certain original data.
[0097] For example, the second device uses a set of weights corresponding to the parameters of the first training data (referred to as a first weight group) and performs L iterative decoding on the first training data using an LDPC check matrix. During each iterative decoding process in the L training cycles, the weights in the first weight group corresponding to that iterative decoding process can be used. The first weight group can include weights corresponding to the L iterative decoding processes. For example, the first weight group can be understood to include L subgroups, each of which is used for one of the L iterative decoding processes. For example, if a subgroup corresponding to a particular iterative decoding process in the L iterative decoding processes is referred to as a second weight group, then the second weight can be used during that iterative decoding process.
[0098] S502. After L iterative decodings are completed, if the obtained decoding results make the loss function meet the performance requirements, the training is terminated and the first weight group is obtained; otherwise, the first weight group is updated, and the second training data is trained based on the updated first weight group, or the first training data is retrained based on the updated first weight group.
[0099] After each iterative decoding is completed, the second device can make a judgment on the obtained decoding result (the process of obtaining the decoding result can refer to the embodiment shown in Figure 2). If the judgment is 0, the iterative decoding of the first training data is completed and the decoding result is output; or, if the judgment is not 0 and the number of iterative decoding is less than K, the next iterative decoding can be performed on the first training data; or, if the judgment is not 0, but the number of iterative decoding is K, the decoding is completed 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, which is the decoding result output after the last iterative decoding in the L iterative decoding. 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 satisfies the performance requirement, indicating good decoding performance, the training process may terminate, and the second device may record the first set of weights, which may be used as one of the at least one set of weights. Alternatively, if the loss function does not meet the performance requirement, the second device may update some or all of the weights in the first set of weights and retrain the first training data based on the updated first set of weights, or train second training data based on the updated first set of weights, with the second training data and the first training data being used to train the same set of weights.
[0100] Optionally, the LDPC check matrix can be determined based on a cyclic permutation matrix, which can be obtained by cyclically shifting the identity matrix based on the offset value. For example, the number of rows and columns of the identity matrix is the first expansion factor. For this, reference is made to the description of the embodiment shown in FIG2 .
[0101] 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. For details, please refer to the description of the embodiment shown in FIG2 .
[0102] Optionally, when the second device decodes the first training data, different cyclic permutation matrices in the LDPC check matrix correspond to different weights. For details, please refer to the description of the embodiment shown in FIG2 .
[0103] 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 cyclic permutation matrices corresponding to the first index are the same. For this, reference may be made to the description of the embodiment shown in FIG2 .
[0104] The embodiment shown in Figure 5 introduces a method for training to obtain the weights used in the embodiment shown in Figure 2. Therefore, optionally, the embodiment shown in Figure 5 can be combined with the embodiment shown in Figure 2. For example, the characteristics satisfied by the weights in the embodiment shown in Figure 5 can also be the characteristics satisfied by the weights in the embodiment shown in Figure 2.
[0105] 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, then one of the sets of weights can be used in a decoding process (including multiple iterative decoding), and different sets of weights can be used in different decoding processes; different weights in a set of weights can also be used in different iterative decoding processes in a decoding process; in addition, if the number of weights corresponding to one iterative decoding is greater than 1, then 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 during the decoding process, so that the weights are more consistent with the corresponding calculation processes, thereby improving decoding flexibility and enhancing decoding performance.
[0106] FIG6 shows a schematic diagram of the structure of a communication device provided in an embodiment of the present application. The communication device 600 may be the second device or the circuit system of the second device described in the embodiment shown in any of FIG2 or FIG5 , and is used to implement the method corresponding to the second device in the above method embodiment. Alternatively, the communication device 600 may be the third device or the circuit system of the third device described in the embodiment shown in any of FIG2 or FIG5 , and 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.
[0107] The communication device 600 includes at least one processor 601. Processor 601 can be used for internal processing of the device, implementing certain control processing functions. Optionally, processor 601 includes instructions. Optionally, processor 601 can store data. Optionally, different processors can be independent devices, located in different physical locations, or on different integrated circuits. Optionally, different processors can be integrated into one or more processors, for example, on one or more integrated circuits.
[0108] Optionally, the communication device 600 includes one or more memories 603 for storing instructions. Optionally, data may also be stored in the memories 603. The processor and memory may be provided separately or integrated together.
[0109] 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, they are indicated by dotted lines in FIG6 .
[0110] Optionally, the communication device 600 may further include a transceiver and / or an antenna. The transceiver may be used to send information to 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 via an antenna. Optionally, the transceiver includes a transmitter and a receiver. For example, 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.
[0111] 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.
[0112] Communication link 602 may include a pathway for transmitting information between the aforementioned components.
[0113] The communication interface 604 uses any transceiver or other device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area network (WLAN), wired access network, etc.
[0114] The memory 603 may be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, an optical disc storage (including a compact 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 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 be integrated with the processor 601.
[0115] 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 implementing the steps performed by the second device or the third device described in the embodiment shown in either of Figures 2 or 5.
[0116] 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.
[0117] In a specific implementation, as an embodiment, the processor 601 may include one or more CPUs, such as CPU0 and CPU1 in FIG6 .
[0118] In a specific implementation, as an embodiment, the communication device 600 may include multiple processors, such as processor 601 and processor 605 in FIG6 . Each of these processors may be a single-core (single-CPU) processor or a multi-core (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).
[0119] When the device shown in FIG6 is a chip, such as the chip of the third device or the chip of the second device, the chip includes a processor 601 (and may also include a processor 605), a communication circuit 602, and a communication interface 604. Optionally, the chip may include a memory 603. Specifically, the communication interface 604 may be an input interface, a pin, or a circuit. The memory 603 may be a register, a cache, or the like. 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 any of the above-described embodiments.
[0120] In the embodiment of the present application, the functional modules of the device can be divided according to the above-mentioned method examples. 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-mentioned integrated module 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 function 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 shows a schematic diagram of a device, and the device 700 can be the third device or the second device involved in the above-mentioned various 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.
[0121] 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. The relevant features can refer to the embodiments shown in any of the figures in Figure 2 or Figure 5 above, and will not be repeated here.
[0122] Optionally, the functions / implementation processes of the sending unit 701, the receiving unit 703, and the processing unit 702 in FIG7 may be implemented by the processor 601 in FIG6 calling computer-executable instructions stored in the memory 603. Alternatively, the functions / implementation processes of the processing unit 702 in FIG7 may be implemented by the processor 601 in FIG6 calling computer-executable instructions stored in the memory 603, and the functions / implementation processes of the sending unit 701 and the receiving unit 703 in FIG7 may be implemented by the communication interface 604 in FIG6.
[0123] 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.
[0124] The present application also provides a computer-readable storage medium, which stores a computer program or instruction, and when the computer program or instruction is run, implements the method performed by the second device or the third device in the aforementioned method embodiment. 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 is essentially or 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 and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. Storage media include: various media that can store program codes, such as USB flash drives, mobile hard drives, ROM, RAM, magnetic disks, or optical disks.
[0125] The present application also provides a computer program product, which includes: computer program code, which, when executed on a computer, enables the computer to execute the method executed by the second device or the third device in any of the aforementioned method embodiments.
[0126] An embodiment of the present application further 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.
[0127] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When software is used for implementation, 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 can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can 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 can be transmitted from one website, computer, server or data center to another website, computer, server or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can 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 integrations. The available medium can 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 drive (SSD)).
[0128] 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 device, discrete gate or transistor logic, discrete hardware components, or any combination thereof. 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 in conjunction with a digital signal processor core, or any other similar configuration.
[0129] The steps of the methods or algorithms described in the embodiments of the present application can be directly embedded in hardware, software units executed by a processor, or a combination of the two. The software unit can be stored in RAM, flash memory, ROM, erasable programmable read-only memory (EPROM), EEPROM, registers, hard disks, removable disks, CD-ROMs, or other storage media in any form known 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 write information to the storage medium. Alternatively, the storage medium can also be integrated into the processor. The processor and storage medium can be provided in an ASIC, which can be provided in a terminal device. Alternatively, the processor and storage medium can also be provided in different components in the terminal device.
[0130] 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, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0131] The contents of the various embodiments of this application can 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.
[0132] It is understood that in the embodiments of the present application, the second device and / or the third device can perform some or all of the steps in the embodiments of the present application. These steps or operations are merely examples. In the embodiments of the present application, other operations or variations of various operations can also be performed. In addition, the various steps can be performed in a different order than those presented in the embodiments of the present application, and it is possible that not all operations in the embodiments 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.
Citation Information
Patent Citations
Information processing method, storage device and electronic device
CN105846831A
Confidence coefficient propagation LDPC decoding method based on deep learning
CN109547032A
Improved iterative decoder for LDPC codes with weights and biases
WO2019213947A1
Cited By
Parallel decoding method, decoder, equipment and storage medium
CN120415447A