WO2019230371A1 - Adaptive linear programming decoding method - Google Patents
Adaptive linear programming decoding method Download PDFInfo
- Publication number
- WO2019230371A1 WO2019230371A1 PCT/JP2019/019128 JP2019019128W WO2019230371A1 WO 2019230371 A1 WO2019230371 A1 WO 2019230371A1 JP 2019019128 W JP2019019128 W JP 2019019128W WO 2019230371 A1 WO2019230371 A1 WO 2019230371A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- decoding
- matrix
- variable node
- parity check
- factor graph
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
Definitions
- the present invention relates to an adaptive linear programming decoding method, and more particularly to a decoding technique using an adaptive linear programming method for a Hamming code.
- Low density parity check code (Low Density Parity Check Code, hereinafter referred to as “LDPC”) is a code correction method first discovered by Gallarger and then developed by MacKay (see Non-Patent Document 2). This code correction is characterized in that a matrix called a sparse matrix is used as a check matrix.
- FIG. 33 shows an example of the parity check matrix.
- a sparse matrix hereinafter referred to as “H”
- H a sparse matrix
- a matrix format often used in the case of 100 rows and 200 columns includes three “1” s contained in one column and one row.
- the number of “1” s is six. Since the number of “1” is sparse, it is called a sparse matrix.
- the probability q x mn is multiplied by the matrix element m and set as q x n .
- the calculation of the probabilities q x mn and r x mn is called a probability propagation (hereinafter referred to as “BP”) method as if the probability density is propagated.
- BP probability propagation
- Non-Patent Document 1 Feldman proposed a decoding method using linear programming (hereinafter referred to as “LP”) in 2005. This obtains a log-likelihood ratio (hereinafter sometimes referred to as “LLR”) for each bit to be decoded, and creates a linear function with LLR as a coefficient and a code component as a variable.
- LLR log-likelihood ratio
- the log likelihood ratio is a logarithm of the ratio obtained by obtaining the probability that the bit is “0” and the probability that the bit is “1”.
- LLR log likelihood ratio
- Non-Patent Document 3 discloses adaptive linear programming (Adaptive LP, hereinafter referred to as “ALP”), which is a further development of this LP.
- ALP adaptive linear programming
- RPC redundant parity check
- the present invention has been made to solve the above-described problem, and realizes adaptive Hamming code decoding by ALP, and as a result, can reduce the implementation load of the decoding method and reduce the calculation time.
- An object is to provide a decryption method.
- an adaptive linear program decoding method is an adaptive linear program decoding method executed by a decoding device including an arithmetic device, a storage device, and a communication control device.
- a constraint condition deriving step for deriving a constraint condition of a variable node corresponding to each column based on a conditional expression to be satisfied by a variable node stored in the storage device; and the arithmetic device is stored in the storage device.
- the Hamming code is an extended Hamming code based on the parity check matrix
- the restriction adding step is performed on the isolated variable node and the extended Hamming code of the parity check matrix. You may add the restriction
- the decoding result calculation step uses the mixed integer linear programming method by using a row of the parity check matrix and an arbitrary new row obtained by linear combination of the rows. You may calculate the solution by.
- an isolated variable node connected to only one check node among variable nodes connected to a check node from a factor graph of a Hamming code defined by a predetermined check matrix is an integer value. Therefore, the decoding result is calculated by the mixed integer linear programming, so that the decoding by the ALP of the Hamming code can be realized, the mounting load of the decoding method can be reduced, and the calculation time can be shortened.
- FIG. 1 is a block diagram showing a hardware configuration of a decoding apparatus that performs an ALP decoding method according to an embodiment of the present invention.
- FIG. 2 is a diagram showing a parity check matrix according to the embodiment of the present invention.
- FIG. 3 is a diagram illustrating a factor graph corresponding to FIG.
- FIG. 4 is a diagram showing an example of the cost vector according to the embodiment of the present invention.
- FIG. 5 is a diagram showing expressions to be satisfied by variable nodes belonging to the check node according to the embodiment of the present invention.
- FIG. 6A is a diagram showing an example of an LP decoding program according to the embodiment of the present invention.
- FIG. 6B is a diagram showing an example of an LP decoding program according to the embodiment of the present invention.
- FIG. 6A is a diagram showing an example of an LP decoding program according to the embodiment of the present invention.
- FIG. 6B is a diagram showing an example of an LP decoding program according to the embodiment of the
- FIG. 7 is a diagram for explaining a procedure for deleting a variable node having an integer value in the factor graph of FIG. 3 by “x” and obtaining a circle formed by other variable nodes and check nodes.
- FIG. 8 is a diagram illustrating a determinant that should be satisfied by the parity check of the sum of the first and third rows of the parity check matrix in FIG.
- FIG. 9 is a factor graph showing the result of Step 2.
- FIG. 10 is a factor graph showing the result of Step 3.
- FIG. 11 is a factor graph showing the result of Step 4.
- FIG. 12 is a diagram illustrating a matrix in which the parity check matrix of FIG. 2 is rearranged.
- FIG. 13 is a diagram for explaining a reduction matrix of the matrix of FIG. FIG.
- FIG. 14 is a diagram for explaining replacement of columns of the parity check matrix in FIG.
- FIG. 15 is a diagram for explaining the simplification matrix of FIG.
- FIG. 16 is a diagram illustrating a factor graph reflecting the values of variable nodes in iteration 2-1 in Table 1.
- FIG. 17 is a flowchart for explaining the ALP decoding method according to the present embodiment.
- FIG. 18 is a diagram illustrating a parity check matrix of a shortened Hamming code.
- FIG. 19 is a diagram illustrating a factor graph corresponding to FIG.
- FIG. 20 is a diagram illustrating a factor graph reflecting the decoding result by LP.
- FIG. 21 is a diagram illustrating a factor graph reflecting a decoding result obtained by adding check nodes A + C.
- FIG. 22 is a diagram illustrating a matrix in which the columns of the check matrix in FIG. 18 are replaced.
- FIG. 23 is a diagram for explaining a reduction matrix of the matrix of FIG.
- FIG. 24A is a diagram illustrating a parity check matrix of an extended Hamming code.
- FIG. 24B is a diagram for explaining an expanded Hamming code.
- FIG. 25 is a diagram illustrating a factor graph corresponding to FIG. 24A.
- FIG. 26 is a diagram illustrating a factor graph reflecting the evaluation result.
- FIG. 27 is a diagram illustrating a matrix in which the parity check matrix in FIG. 24A is rearranged according to the decoding result.
- FIG. 28 is a diagram for explaining a reduction matrix of the matrix of FIG. FIG.
- FIG. 29 is a diagram illustrating a matrix in which the parity check matrix in FIG. 24A is rearranged according to the decoding result.
- FIG. 30 is a diagram for explaining a simplification matrix of the parity check matrix of FIG.
- FIG. 31 is a diagram illustrating a matrix in which the parity check matrix in FIG. 24A is rearranged according to the decoding result.
- FIG. 32 is a diagram for explaining a reduction matrix of the matrix of FIG.
- FIG. 33 is a diagram for explaining a conventional LDPC method.
- FIG. 34 is a diagram illustrating a check matrix for explaining a conventional decoding method.
- a code word of a Hamming code having a code length of 7, a signal length of 4 and a parity check length of 3 is written as C (7, 4, 3), and the check matrix is as shown in FIG.
- Elements 7, 4, and 3 indicate a minimum number having different elements, that is, a minimum distance, in comparison between the entire code length, signal length, and parity check matrix row to be transmitted.
- the Hamming code is decoded according to the Feldman method.
- simulation was performed in matlab (registered trademark) using the parity check matrix shown in FIG. 2 and the vector having the LLR shown in FIG. 4 as a component (hereinafter referred to as “cost vector”). .
- the cost vector ⁇ used in the LP shown in FIG. 4 corresponds to the variable nodes x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 from the left.
- x 1 1
- the coefficient (LLR) is ⁇ 7/4, and other values are zero, so the LLR is “1”.
- x n is a variable node (a node indicated by “circle” in FIG. 3 described later) connected to a check node (a node indicated by “square” in FIG. 3 described later).
- n (m) is a collection of all variable nodes connected to the check node, and V is a subset of n (m).
- check node A ⁇ 1, 2, , 4, 5 ⁇ .
- V ⁇ 1 ⁇ and the element is x 1 .
- x 1 is replaced with x 2 , x 4 , and x 5 to obtain the same equation.
- x 2 , x 4 , and x 5 are reflected in the matrix A and the matrix b (arrows in FIG. 6A) in the example of the decoding program shown in FIG. 6A.
- the minimum value of the objective function shown in FIG. 6A is obtained under the conditions of the matrix A and the matrix b. If all the found solutions are integers, that is the sign.
- FIG. 3 is a diagram illustrating a factor graph corresponding to the parity check matrix illustrated in FIG.
- the rows of the check matrix shown in FIG. 2 are the check nodes A, B, and C from the top, and the columns are the variable nodes x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 from the left.
- the relationship between the check node and the variable node is shown.
- the factor graph is configured as shown in FIG. 7 when the variable node is deleted.
- “x” is shown in the node of the integer part.
- Step 2 when a cycle (cycle) formed by parity check A (hereinafter referred to as “chk (A)”) and parity check C (hereinafter referred to as “chk (C)”) is employed, chk (A) + chk
- x 3 is zero for both chk (A) and chk (C)
- x 4 and x 5 are zero because they are the same number of binary additions.
- step 1 a parity check that is a cycle is searched using the factor graph shown in FIG.
- Step 3 there are two cycles in FIG.
- FIG. 10 is a factor graph showing the above results.
- “x” is shown in the node of the integer part.
- Non-Patent Document 5 Using the conventional RPC search method described in Non-Patent Document 5, it can be seen that the result obtained in step 3 does not produce an RPC that is a redundant parity check. Details of the RPC search method described in Non-Patent Document 5 will be described later.
- Step 4 select another cycle.
- x [1, 1/2, 0, 0, 1/2, 1/2, 0].
- This factor graph is shown in FIG.
- the parity check in the cycle is chk (A) + chk (B) + chk (C). Further, in FIG. 11, “ ⁇ ” is shown in the node of the integer part.
- Step 5 [1, 1/2, 0, 0, 1/2, 1/2, 0] calculated in step 4 does not satisfy the constraint condition x 1 ⁇ x 3 ⁇ x 4 ⁇ x 7 ⁇ 0.
- the results calculated in the same manner as in Step 4 are as follows.
- x [0.2161, 0.0806, 0.0834, 0.0683, 0.0806, 0.0717, 0.0834] ⁇ 10 ⁇ 8
- Table 1 shows the simulation results from Step 1 to Step 5 above. Further, Table 2 shows the calculation results obtained by performing the ALP decoding of the Hamming code (7, 4, 3) using the technique described in Non-Patent Document 4 under the same conditions as in the simulation.
- Table 1 and Table 2 respectively show iteration (i), a parity check that is a cycle, a constraint condition (cut) of a redundant parity check (RPC), and a solution x that indicates a decoding result.
- the matrix A and the matrix b shown in the program example of FIG. 6A are manually set.
- a program is selected to select an arbitrary row of the check matrix to create a linear combination, and the calculation is performed. Do.
- the RPC search method described in Non-Patent Document 5 is used.
- the RPC search method described in Non-Patent Document 5 first, components of the vector x of the obtained solution are classified according to the order of (a) non-integer, zero, and 1. However, only non-integer elements are rearranged in order from the smaller element according to the absolute value of the distance from 1/2; (b) Next, the columns of the check matrix are arranged in the same order as in (a); (c) Then, the matrix portion of the non-integer elements is made into an echelon shape. At that time, when the weight of the row of the echeloon is only one (there is only one element in the row), the RPC exists.
- FIG. 12 shows a matrix A 1 obtained as a result of performing the above steps (a) and (b). It should be noted that
- 1/6.
- FIG. 13 shows the matrix A 1 shown in FIG. 12 converted into a reduced matrix (hereinafter referred to as “rref”) according to the procedure (c).
- rref a reduced matrix
- FIG. 14 shows a matrix A 1 in which the columns of the check matrix are exchanged according to the procedures (a) and (b). Further, when the rref is obtained, the matrix rref (A 1 ) shown in FIG. 15 is obtained, and it can be seen that there is no RPC since every matrix has two or more elements of “1” in the echeloon part.
- the fractional area is an area from 1 to 5 columns.
- FIG. 16 is a diagram in which the value of the variable node of iteration 2-1 in Table 1 is displayed on the factor graph.
- each common variable node is a fraction in order to satisfy the parity check.
- the variable node that becomes a fraction also occurs in the variable node (here, x 7 ) connected only to its own parity check.
- variable node (x 5 ) is not needed, and the other variable nodes (x 4 , x 6 ) are not processed.
- variable node (x 2 ) of other check nodes is a fraction.
- the number of variable nodes having fractions increases and the condition for generating RPC (in this case, the number of nodes of fractional variables ⁇ 3) is not satisfied.
- MILP mixed integer linear programming
- the decoding device 1 includes a computing device 102 having a CPU 103 and a main storage device 104 connected via a bus 101, a communication control device 105, an external storage device 106, and a computer having a display device 107. It can be realized by a program for controlling these hardware resources.
- the CPU 103 and the main storage device 104 constitute an arithmetic device 102.
- a program for the CPU 103 to perform various controls and calculations is stored in the main storage device 104 in advance.
- the decoding device 1 may be configured with dedicated hardware for executing the decoding process.
- an integrated circuit such as a graphic processor, an ASIC (Application Specific Integrated Circuit), or an FPGA (Field Programmable Gate Array) can be employed.
- the communication control device 105 is a control device for connecting the decryption device 1 and various external electronic devices via the communication network NW.
- the communication control device 105 receives encoded data to be decoded via the communication network NW.
- the external storage device 106 includes a readable / writable storage medium and a drive device for reading / writing various information such as programs and data from / to the storage medium.
- the external storage device 106 can use a semiconductor memory such as a hard disk or a flash memory as a storage medium.
- the external storage device 106 is a data storage unit 106a, a setting information storage unit 106b, a program storage unit 106c, and other storage devices (not shown), and for example, backs up programs and data stored in the external storage device 106.
- the data storage unit 106 a stores encoded data and decoded data received via the communication control device 105.
- the setting information storage unit 106b stores setting information such as information related to the check matrix, information related to the constraint conditions, predetermined conditional expressions, and information related to variable nodes that are integers.
- the program storage unit 106c stores various programs for executing processing necessary for Hamming code decoding, such as matrix calculation processing, factor graph generation processing, constraint condition derivation processing, and RPC search processing in the present embodiment. Yes.
- the display device 107 constitutes the display screen of the decryption device 1.
- the display device 107 is realized by a liquid crystal display or the like. On the display device 107, for example, the calculation result by the decoding device 1 such as a factor graph is displayed on the screen.
- ALP decoding process of Hamming code Next, the ALP decoding process of the Hamming code according to the present embodiment will be described with reference to the flowchart of FIG.
- a Hamming code (7, 4, 3) having a code length of 7, a signal length of 4, and a parity check length of 3 is subject to decoding, similar to the code used in [Principle of the Invention].
- the parity check matrix shown is used.
- the computing device 102 generates the factor graph shown in FIG. 3 from the parity check matrix shown in FIG. 2 (step S1).
- the generated factor graph is stored in the data storage unit 106a.
- the variable nodes x 1 to x 7 are represented by “circles”, and the check nodes A, B, and C are represented by “squares”.
- the arithmetic unit 102 reads an expression (conditional expression) that the variable node x n belonging to the check node stored in the setting information storage unit 106b should satisfy and an inequality that the Hamming code (7, 4, 3) should satisfy. Is derived (step S2). As a constraint condition, the above-described formula (1) (x 1 ⁇ (x 2 + x 4 + x 5 ) ⁇ 0) is obtained. The arithmetic device 102 stores the derived constraint condition in the setting information storage unit 106b.
- the arithmetic unit 102 obtains a matrix A and a matrix b for setting conditions in the decoding process in the decoding program (FIG. 6A) stored in the program storage unit 106c (step S3).
- the computing device 102 sets, for example, the matrix A and the matrix b shown in FIG. 6B.
- 1 in the last row [1, 0, 0, 0, 0, 0, 0] and the rightmost column of the matrix b represents x 1 ⁇ 1.
- the arithmetic unit 102 loads the obtained matrix A and matrix b in the decoding program.
- the arithmetic unit 102 uses mixed integer linear programming (MILP), in the decoding program shown in FIG. 6A, the linear program (LP) function “linprob” to the MILP function “ Change to "intlinprob”.
- MILP mixed integer linear programming
- the computing device 102 refers to a variable node connected to only one check node (hereinafter referred to as an “isolated variable node”) among the variable nodes connected to the check node in the factor graph generated in step S1. ) Is detected (step S4).
- the arithmetic device 102 detects isolated variable nodes x 1 , x 3 , and x 7 .
- the arithmetic device 102 temporarily stores information on the detected isolated variable node in the main storage device 104.
- the arithmetic device 102 performs decoding by MILP to obtain a solution (step S6). More specifically, the arithmetic unit 102 determines the MILP based on the constraint condition derived in step S2, the matrix A and the matrix b obtained in step S3, and the information on the isolated variable node to which the restriction to be an integer is added. And the calculation result is stored in the data storage unit 106a as a Hamming code decoding result.
- the values were the same as the solution x indicating the decoding results of iterations 3 and 4 shown in Table 2.
- any combination of check nodes can be obtained by finding a solution by linear programming under the condition that an independent variable node of the check matrix is an integer. But it can be seen that RPC exists. Therefore, in this case, the RPC search process according to Non-Patent Document 5 is unnecessary, the implementation of the decoding method is simplified, and the calculation time can be shortened. That is, the Hamming code can be decoded by applying the check node combinations in Table 2 in order.
- Modification 1 of the ALP decoding method for the Hamming code according to the present embodiment will be described.
- the decoding of the shortened Hamming code (8, 4, 4) generated from the parity check matrix (15, 11, 3) shown in FIG. 18 (the parity check matrix of Example 2.20 of Non-Patent Document 6) will be described. To do.
- the arithmetic unit 102 performs the decoding process from step S1 to step S6 shown in the flowchart of FIG. 17 on the shortened Hamming code as in the above-described embodiment.
- FIG. 19 shows a factor graph generated in step S1 by the arithmetic device 102 based on the parity check matrix.
- FIG. 20 shows a factor graph reflecting the decoding result. Integer nodes are indicated by “x”. Further, as shown in FIG. 20, it can be seen that there are five types of check node loops created from the variable nodes x 2 , x 3 , and x 4 .
- a circle composed of check nodes A and C (hereinafter referred to as “AC”); a circle of check nodes composed of B and C (hereinafter referred to as “BC”); a loop of check nodes Is a circle composed of C and D (hereinafter referred to as “CD”); a circle of check nodes is composed of A, B, and C (hereinafter referred to as “ABC”); and a loop of check nodes is There are five types of circles composed of A, B, and D (hereinafter referred to as “ABD”). In the following, some cases will be considered.
- FIG. 21 shows a factor graph of the decryption result obtained by adding the circles AC of check nodes represented by the above equation (3). As shown in FIG. 21, the circle created by each check node is the same as that shown in the factor graph of FIG.
- FIG. 22 shows a matrix A 1 in which the columns of the parity check matrix shown in FIG. 18 are replaced by a solution x indicating the decoding result represented by the above equation (3)
- FIG. 23 shows a matrix rref (A 1 ) in the form of rref. Show.
- the numbers in the lower column of the matrix rref (A 1 ) shown in FIG. 23 indicate the columns of A 1 .
- the first row is taken.
- this is confirmed by a factor graph reflecting the decoding result obtained by adding the check nodes (circles AC) shown in FIG. 21, it becomes a circle CD.
- One of the parity checks made from this RPC is x 1 ⁇ x 2 ⁇ x 7 ⁇ x 8 ⁇ 0, which does not satisfy the solution of the decoding result shown in the above equation (3). From this, [1, -1,0,0,0, -1, -1] is inserted into the matrix A shown in FIGS. 6A and 6B, and “0” is inserted into the matrix b. The solution x is calculated.
- isolated variable nodes x 5 , x 6 , x 7 , and x 8 connected to only one check node are integers.
- Tables 3 to 8 show the decoding results of “no integer designation” and “integer designation” when the linear combination of the first and third rows of the parity check matrix is selected as the parity check, respectively.
- Tables 5 and 6 show the decoding results of “no integer designation” and “integer designation”, respectively, when a linear combination of two and three rows of the parity check matrix is selected as the parity check.
- Tables 7 and 8 show the decoding results of “no integer designation” and “integer designation”, respectively, when linear combination of 1 row, 2 rows, and 4 rows of the parity check matrix is selected as the parity check.
- the decoding of the shortened Hamming code is also performed by obtaining the MILP solution by adding the restriction that designates an isolated variable node as an integer, so that the RPC search process becomes unnecessary, and the implementation of the ALP decoding method becomes easier. Further, by performing the evaluation under the condition that the isolated variable node is an integer, it is possible to reach the solution with a small number of evaluations, so that the calculation time in the decoding by LP can be shortened.
- the expanded Hamming code is a Hamming code in which the parity check matrix is extended by adding 1 row and 1 column to the parity check matrix shown in FIG.
- 1 row and 8 columns in which all elements are “1” are added to the last row of the check matrix (FIG. 2) of the Hamming code (7, 4, 3) (arrow of FIG. 24B), and the last 3 rows and 1 column in which all elements are "0" are added to the column (arrow in FIG. 24B).
- FIG. 25 shows a factor graph generated by the arithmetic unit 102 in step S1 based on the check matrix.
- the dotted line represents the connection by the new check node D in the expanded Hamming code.
- a solution x indicating a decoding result by LP executed by the arithmetic device 102 according to the decoding program shown in FIG. 6A is expressed by the following equation (5).
- x [1, 1/3, 0, 1/3, 1/3, 0, 0, 0] (5)
- the factor graph of the decryption result is shown in FIG. Integer nodes are indicated by “x”.
- the check nodes forming the circle are AB, AC, AD, CBD, CBA, and CBDA.
- Non-Patent Document 5 the RPC search described in Non-Patent Document 5 is performed.
- the columns of the parity check matrix shown in FIG. 24 are rearranged in the order of fraction; zero; 1 in accordance with the solution x by LP shown in the above equation (5).
- the rearranged matrix A 1 is shown in FIG.
- FIG. 28 shows a matrix rref (A 1 ) obtained from the rearranged matrix A 1 .
- the numbers shown above the matrix correspond to the columns of the parity check matrix in FIG. 24A.
- the solution x indicating the decoding result by LP shown in the above equation (5) does not satisfy the above condition.
- RPC (corresponding to circles AC)
- [1, -1,0,0,0, -1, -1,0] is inserted into the matrix A shown in FIGS. 6A and 6B, and the matrix b is inserted. Inserts “0” and performs LP decoding.
- FIG. 24 shows the columns of the parity check matrix shown in FIG. 24 in the order of fraction; zero; 1 in accordance with the decoding result represented by the above equation (6).
- the rearranged matrix A 1 is shown in FIG.
- rref of the matrix A 1 is obtained.
- FIG. 30 shows the matrix rref (A 1 ). The numbers shown above the matrix in FIG. 30 correspond to the columns of the parity check matrix in FIG.
- [1, -1, -1,0,0,0, -1] is inserted into the matrix A shown in FIGS. 6A and 6B, and “0” is inserted into the matrix b, and the evaluation is performed again. Note that adding [1, -1, -1, 0, 0, 0, -1] to the matrix A is equivalent to adding check nodes A + C and A + D.
- a matrix rref (A 1 ) shown in FIG. 32 is obtained.
- the numbers shown above the matrix in FIG. 32 correspond to the columns of the check matrix in FIG. As shown in FIG. 32, it is indicated that there is no RPC, and the solution of the decoding result represented by the above equation (7) is determined.
- the factor graph (FIG. 25) of the parity check matrix shown in FIG. 24A
- the integer variable nodes are “ ⁇ ” in the RPC search. It cannot be contributed to the circle.
- the factor graph substantially includes, for example, check nodes D at variable nodes x 2 , x 4 , x 5, and x 6 of the factor graph in the Hamming code (7, 4 , 3 ) shown in FIG. It has a connected structure.
- the decryption result [1, 2/3, 0, 1/3, 0, 1/3, 0, 0]
- the decryption result [0,0,0,0,0,0,0] and the correct answer was reached.
- variable nodes that satisfy the expression to be satisfied by the variable nodes belonging to the check node shown in FIG. 5 has no effect on the decoding result. That is, even if the effect of such a combination of variable nodes is taken in and decoding by LP, the decoding result does not change at all.
- DESCRIPTION OF SYMBOLS 1 ... Decoding device, 101 ... Bus, 102 ... Arithmetic unit, 103 ... CPU, 104 ... Main storage device, 105 ... Communication control device, 106 ... External storage device, 106a ... Data storage unit, 106b ... Setting information storage unit, 106c ... Program storage unit 107 ... Display device, NW ... Communication network.
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
The purpose of the present invention is to provide an ALP decoding method in which decoding by ALP of a hamming code is achieved, and as a result, implementation load of the decoding method can be reduced and computation time can be shortened. An ALP decoding method, provided with: a factor graph generation step for generating a factor graph of a hamming code defined by a prescribed check matrix; a constraint condition derivation step for deriving a constraint condition of a number node on the basis of a condition expression that a variable node ought to satisfy; an isolated variable node detection step for detecting an isolated variable node connected to a check node, from among variable nodes connected to a plurality of check nodes from the generated factor graph; a restriction addition step for adding a restriction in that the isolated variable node is an integer value; and a decoding result calculation step for calculating, on the basis of the constraint condition and information relating to the isolated variable node to which the restriction has been added, a solution by MILP and deeming the solution to be the result of decoding the hamming code.
Description
本発明は、適応的線形計画復号方法に関し、特にハミング符号の適応的線形計画法による復号技術に関する。
The present invention relates to an adaptive linear programming decoding method, and more particularly to a decoding technique using an adaptive linear programming method for a Hamming code.
低密度パリティ検査符号(Low Density Parity Check Code、以下、「LDPC」という。)は、Gallargerにより最初に発見され、その後MacKayにより発展させられた符号訂正の方法である(非特許文献2参照)。この符号訂正は、スパース行列と呼ばれる行列を検査行列に用いることを特徴とする。
Low density parity check code (Low Density Parity Check Code, hereinafter referred to as “LDPC”) is a code correction method first discovered by Gallarger and then developed by MacKay (see Non-Patent Document 2). This code correction is characterized in that a matrix called a sparse matrix is used as a check matrix.
図33にその検査行列の一例を示す。スパース行列(以下、「H」と表現する。)において、例えば、100行200列の場合によく用いられる行列形式は、1列に含まれる「1」の数が3個、そして1行に含まれる「1」の数が6個である。「1」の数がまばらであることからスパース(sparse)行列と呼ばれる。
FIG. 33 shows an example of the parity check matrix. In a sparse matrix (hereinafter referred to as “H”), for example, a matrix format often used in the case of 100 rows and 200 columns includes three “1” s contained in one column and one row. The number of “1” s is six. Since the number of “1” is sparse, it is called a sparse matrix.
図33に示す従来のLDPCの検査行列の例において、破線の円で囲まれた「1」の配置からなる四角形ループは禁止されている。したがって、この場合、4つの破線で囲まれた「1」のうちの1つは削除される。
33. In the example of the conventional LDPC parity check matrix shown in FIG. 33, a square loop having an arrangement of “1” surrounded by a broken-line circle is prohibited. Therefore, in this case, one of “1” surrounded by four broken lines is deleted.
ここではMackayの方法により従来のLDPCによる符号訂正法を説明する。まず、スパース行列のすべての行について、その「1」の配列要素に対応する符号ビットに対して、「1」か「0」であるかの確率rx
mn、(ただしmnは行列要素を表し、xは「0」か「1」をとる。)を計算する。その後、検査行列のすべての列の「1」の要素について、その計算した確率rx
mnを用いてその列に対応する符号のビット位置が「1」か「0」かの確率qx
mnを計算する。
Here, a conventional code correction method using LDPC will be described using the Mackay method. First, for all the rows of the sparse matrix, the probability r x mn of whether it is “1” or “0” for the sign bit corresponding to the array element of “1” (where mn represents a matrix element) , X takes "0" or "1"). Thereafter, for the elements of “1” in all columns of the parity check matrix, using the calculated probability r x mn , the probability q x mn that the bit position of the code corresponding to that column is “1” or “0” is obtained. calculate.
確率qx
mnを行列要素mについて乗算し、それをqx
nとおく。qx
nが0.5より大きい場合には「1」、小さい場合には「0」とする。qをqx
nを成分とするベクトルとするとq×HT=0を満たせば、そのqが求める符号となる。確率qx
mn、rx
mnの計算はあたかも確率密度が伝搬するようなので、確率伝搬(Belief Propagation、以下「BP」いう。)法と呼ばれる。
The probability q x mn is multiplied by the matrix element m and set as q x n . When q x n is larger than 0.5, it is “1”, and when it is smaller, it is “0”. If q is a vector having q x n as a component, if q × H T = 0 is satisfied, q is a code to be obtained. The calculation of the probabilities q x mn and r x mn is called a probability propagation (hereinafter referred to as “BP”) method as if the probability density is propagated.
このような従来の復号方法に対して、非特許文献1に記載されているように、2005年にFeldmanによって線形計画(Linear Programming、以下「LP」という。)による復号法が提案された。これは復号すべきビット(bit)それぞれに対数尤度比(以下「LLR」ということがある。)を求め、LLRを係数、符号成分を変数とする線形関数をつくる。
In contrast to such a conventional decoding method, as described in Non-Patent Document 1, Feldman proposed a decoding method using linear programming (hereinafter referred to as “LP”) in 2005. This obtains a log-likelihood ratio (hereinafter sometimes referred to as “LLR”) for each bit to be decoded, and creates a linear function with LLR as a coefficient and a code component as a variable.
なお、対数尤度比(LLR)とは、ビットが「0」になる確率と「1」となる確率を求めて、その比の対数をとったものである。LPによりその線形関数の最小値を求めると、そのときの成分が復号すべき符号となっているというものである。
The log likelihood ratio (LLR) is a logarithm of the ratio obtained by obtaining the probability that the bit is “0” and the probability that the bit is “1”. When the minimum value of the linear function is obtained by LP, the component at that time is a code to be decoded.
非特許文献3には、このLPをさらに発展させた適応的線形計画(Adaptive LP、以下「ALP」という。)が開示されている。図34の検査行列を用いて説明すると、これまでのパリティチェックは検査行列の行の個数に対応して3個しかなかったが、それにさらに行同士を足し算したものもパリティチェックに加えたものである。
Non-Patent Document 3 discloses adaptive linear programming (Adaptive LP, hereinafter referred to as “ALP”), which is a further development of this LP. Explaining using the parity check matrix in FIG. 34, there have been only three parity checks so far corresponding to the number of rows in the parity check matrix, but the addition of the rows is also added to the parity check. is there.
この新たに生成されたパリティチェックを冗長パリティチェック(Redundant Parity Check、以下「RPC」という。)と呼ぶ。このRPCを用いて復号を行うと復号特性(すなわち、Ber(Bit Error rate:符号誤り率)v.s.SNR(Signal Noise Ratio:SN比)特性)は向上する。
This newly generated parity check is referred to as a redundant parity check (hereinafter referred to as “RPC”). When decoding is performed using this RPC, decoding characteristics (that is, Ber (Bit Error rate) vs. SNR (Signal Noise Ratio: SN ratio) characteristics) are improved.
しかし、従来のALP復号方法をハミング符号の復号に用いると、検査行列(図34)の本来のパリティチェックによる線形結合のパリティチェックの下、うまくLPが働かずに解が求まらない場合がある。そのため、復号方法の実装負荷が大きく、計算時間が長くなってしまう問題があった。
However, when the conventional ALP decoding method is used for decoding the Hamming code, there is a case where LP does not work well and a solution cannot be obtained under the parity check of the linear combination by the original parity check of the check matrix (FIG. 34). is there. For this reason, there has been a problem that the load for implementing the decoding method is large and the calculation time becomes long.
本発明は、上述した課題を解決するためになされたものであり、ハミング符号のALPによる復号を実現し、結果として、復号方法の実装負荷を低減し、かつ計算時間を短縮できる適応的線形計画復号方法を提供することを目的とする。
The present invention has been made to solve the above-described problem, and realizes adaptive Hamming code decoding by ALP, and as a result, can reduce the implementation load of the decoding method and reduce the calculation time. An object is to provide a decryption method.
上述した課題を解決するために、本発明に係る適応的線形計画復号方法は、演算装置と、記憶装置と、通信制御装置とを備える復号装置によって実行される適応的線形計画復号方法であって、前記通信制御装置を介して受信される所定の検査行列で定義されるハミング符号のファクターグラフを生成して前記記憶装置に記憶するファクターグラフ生成ステップと、前記演算装置が、前記検査行列の複数列にそれぞれ対応する変数ノードの拘束条件を、前記記憶装置に記憶されている変数ノードが満たすべき条件式に基づいて導出する拘束条件導出ステップと、前記演算装置が、前記記憶装置に記憶されている前記ファクターグラフから前記検査行列の複数行にそれぞれ対応する複数のチェックノードに接続している前記変数ノードのうち、1つのチェックノードに接続している孤立変数ノードを検出する孤立変数ノード検出ステップと、前記演算装置が、前記孤立変数ノードを整数の値とする制限を加える制限付加ステップと、前記演算装置が、前記拘束条件と前記制限が加えられた前記孤立変数ノードに関する情報とに基づいて、混合整数線形計画法により解を算出して算出結果を前記ハミング符号の復号結果として前記記憶装置に記憶する復号結果算出ステップとを備えることを特徴とする。
In order to solve the above-described problem, an adaptive linear program decoding method according to the present invention is an adaptive linear program decoding method executed by a decoding device including an arithmetic device, a storage device, and a communication control device. A factor graph generation step of generating a factor graph of a Hamming code defined by a predetermined parity check matrix received via the communication control device and storing the factor graph in the storage device; and the arithmetic device includes a plurality of the parity check matrices. A constraint condition deriving step for deriving a constraint condition of a variable node corresponding to each column based on a conditional expression to be satisfied by a variable node stored in the storage device; and the arithmetic device is stored in the storage device. Among the variable nodes connected to a plurality of check nodes respectively corresponding to a plurality of rows of the parity check matrix from the factor graph An isolated variable node detecting step for detecting an isolated variable node connected to two check nodes, a restriction adding step for adding a restriction in which the arithmetic device sets the isolated variable node to an integer value, and the arithmetic device comprises the Decoding result calculation that calculates a solution by mixed integer linear programming based on the constraint condition and the information on the isolated variable node to which the restriction is added, and stores the calculation result in the storage device as the decoding result of the Hamming code And a step.
また、本発明に係る適応的線形計画復号方法において、前記ハミング符号は、前記検査行列に基づく拡大ハミング符号であり、前記制限付加ステップは、前記検査行列の前記孤立変数ノードおよび前記拡大ハミング符号について前記孤立変数ノード検出ステップで検出された孤立変数ノードを整数の値とする制限を加えてもよい。
In the adaptive linear programming decoding method according to the present invention, the Hamming code is an extended Hamming code based on the parity check matrix, and the restriction adding step is performed on the isolated variable node and the extended Hamming code of the parity check matrix. You may add the restriction | limiting which makes the isolated variable node detected at the said isolated variable node detection step an integer value.
また、本発明に係る適応的線形計画復号方法において、前記復号結果算出ステップは、前記検査行列の行、およびその行の線形結合により得られる任意の新たな行を用いて前記混合整数線形計画法による解を算出してもよい。
Also, in the adaptive linear programming decoding method according to the present invention, the decoding result calculation step uses the mixed integer linear programming method by using a row of the parity check matrix and an arbitrary new row obtained by linear combination of the rows. You may calculate the solution by.
本発明によれば、所定の検査行列で定義されるハミング符号のファクターグラフからチェックノードに接続している変数ノードのうち、1つのチェックノードのみに接続している孤立変数ノードを整数の値とする制限を加えて混合整数線形計画法により復号結果を算出するので、ハミング符号のALPによる復号を実現し、復号方法の実装負荷を低減し、かつ計算時間を短縮することができる。
According to the present invention, an isolated variable node connected to only one check node among variable nodes connected to a check node from a factor graph of a Hamming code defined by a predetermined check matrix is an integer value. Therefore, the decoding result is calculated by the mixed integer linear programming, so that the decoding by the ALP of the Hamming code can be realized, the mounting load of the decoding method can be reduced, and the calculation time can be shortened.
以下、本発明の好適な実施の形態について、図1から図32を参照して詳細に説明する。
[発明の原理]
はじめに、本発明の原理について説明する。
まず、前述したように、ALPを用いたハミング符号の復号ができない場合があることが、以下に示すシミュレーションにより見出された。 Hereinafter, a preferred embodiment of the present invention will be described in detail with reference to FIGS.
[Principle of the Invention]
First, the principle of the present invention will be described.
First, as described above, it has been found by the simulation shown below that the Hamming code may not be decoded using ALP.
[発明の原理]
はじめに、本発明の原理について説明する。
まず、前述したように、ALPを用いたハミング符号の復号ができない場合があることが、以下に示すシミュレーションにより見出された。 Hereinafter, a preferred embodiment of the present invention will be described in detail with reference to FIGS.
[Principle of the Invention]
First, the principle of the present invention will be described.
First, as described above, it has been found by the simulation shown below that the Hamming code may not be decoded using ALP.
以下において、符号長7、信号長4、パリティ検査長3のハミング符号の符号語をC(7,4,3)と書くことにし、検査行列は図2に示したものとする。要素7,4,3は、それぞれ送信する全体の符号長、信号長、検査行列の行同士の比較において異なった要素を持つ最小数、すなわち最小の距離を示している。
In the following, a code word of a Hamming code having a code length of 7, a signal length of 4 and a parity check length of 3 is written as C (7, 4, 3), and the check matrix is as shown in FIG. Elements 7, 4, and 3 indicate a minimum number having different elements, that is, a minimum distance, in comparison between the entire code length, signal length, and parity check matrix row to be transmitted.
まずFeldmanの方法にしたがってハミング符号の復号を行う。非特許文献4の第5章にしたがって図2に示す検査行列、および図4に示すLLRを成分とするベクトル(以下「コストベクトル」という。)を用いてmatlab(登録商標)においてシミュレーションを行った。
First, the Hamming code is decoded according to the Feldman method. In accordance with Chapter 5 of Non-Patent Document 4, simulation was performed in matlab (registered trademark) using the parity check matrix shown in FIG. 2 and the vector having the LLR shown in FIG. 4 as a component (hereinafter referred to as “cost vector”). .
図4に示すLPで用いられるコストベクトルλの一例において、左から変数ノードx1,x2,x3,x4,x5,x6,x7に対応している。この場合は、x1=1なので、その係数(LLR)は、-7/4であり、それ以外はゼロなので、LLRは「1」となっている。なお、目的関数fを、f=(-7/4)x1+x2+x3+x4+x5+x6+x7として、目的関数fの最小値をLPにより求め、その結果を復号結果とする。
In the example of the cost vector λ used in the LP shown in FIG. 4, it corresponds to the variable nodes x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 from the left. In this case, since x 1 = 1, the coefficient (LLR) is −7/4, and other values are zero, so the LLR is “1”. The objective function f is set to f = (− 7/4) x 1 + x 2 + x 3 + x 4 + x 5 + x 6 + x 7 , and the minimum value of the objective function f is obtained by LP, and the result is set as a decoding result.
この場合、送信したビットのデータが符号であるための条件が図5に示す式で与えられる。ここで、xnはチェックノード(後述する図3の「四角」で示されているノード。)につながっている変数ノード(後述する図3の「丸」で示されているノード。)である。
In this case, a condition for the transmitted bit data to be a code is given by the equation shown in FIG. Here, x n is a variable node (a node indicated by “circle” in FIG. 3 described later) connected to a check node (a node indicated by “square” in FIG. 3 described later). .
ここで具体的な例を用いて図5に示す式を説明する。n(m)はチェックノードに接続している変数ノードの全体の集まり、Vはn(m)の部分集合である。
Here, the formula shown in FIG. 5 will be described using a specific example. n (m) is a collection of all variable nodes connected to the check node, and V is a subset of n (m).
上記式はn(m)の要素からVの要素を除いた集合を表し、|V|はその要素数を表す。変数ノードxnが符号であるためには図5に示す式が成り立ち、そのとき|V|が奇数でなければならないということを意味している。
The above expression represents a set obtained by excluding elements of V from elements of n (m), and | V | represents the number of elements. In order for the variable node x n to be a sign, the equation shown in FIG. 5 is established, which means that | V | must be an odd number.
検査行列の第1行(以下、「チェックノードA」と呼び、「chk(A)」と略す。)を例にとると、要素をその列数で表すとn(m)={1,2,4,5}である。ここでV={1}として、その要素がx1とすると、満たすべき式の1つは次式(1)で表される。
x1-(x2+x4+x5)≦0 ・・・(1) Taking the first row of the check matrix (hereinafter referred to as “check node A” and abbreviated as “chk (A)”) as an example, n (m) = {1, 2, , 4, 5}. Here, assuming that V = {1} and the element is x 1 , one of the expressions to be satisfied is represented by the following expression (1).
x 1 − (x 2 + x 4 + x 5 ) ≦ 0 (1)
x1-(x2+x4+x5)≦0 ・・・(1) Taking the first row of the check matrix (hereinafter referred to as “check node A” and abbreviated as “chk (A)”) as an example, n (m) = {1, 2, , 4, 5}. Here, assuming that V = {1} and the element is x 1 , one of the expressions to be satisfied is represented by the following expression (1).
x 1 − (x 2 + x 4 + x 5 ) ≦ 0 (1)
上式(1)において、x1をx2,x4,x5に置き換えて同様に式を求める。これらは、図6Aに示す復号プログラムの例における行列Aおよび行列b(図6Aの矢印)に反映される。また、図6Aに示すプログラム例においては、図6Bの中で要素数|V|=3の場合についても反映されている。そして、行列Aおよび行列bの条件のもと、図6Aに示す、目的関数の最小値を求める。求めた解がすべて整数なら、それが符号である。
In the above equation (1), x 1 is replaced with x 2 , x 4 , and x 5 to obtain the same equation. These are reflected in the matrix A and the matrix b (arrows in FIG. 6A) in the example of the decoding program shown in FIG. 6A. In the program example shown in FIG. 6A, the case of the number of elements | V | = 3 in FIG. 6B is also reflected. Then, the minimum value of the objective function shown in FIG. 6A is obtained under the conditions of the matrix A and the matrix b. If all the found solutions are integers, that is the sign.
復号過程の具体例を以下に示す。ここでは簡単のため符号[0,0,0,0,0,0,0]を取り上げ、その第1ビットが反転したとして、送信語として[1,0,0,0,0,0,0]を送りLPにより復号を行う。
A specific example of the decryption process is shown below. Here, for the sake of simplicity, the code [0, 0, 0, 0, 0, 0, 0] is taken, and the first bit is inverted, and the transmission word is [1, 0, 0, 0, 0, 0, 0]. ] Is sent and decrypted by LP.
[ステップ1]
前述した行列Aの最後の行でx1=1のとき、それに対応する行列bの値が「1」となっているのはx1の最大値を決めるためである。反転ビットのLLRは図4に示したように負なので、上記のように行列bの対応する値を「1」としないとx1は無限に大きくなる。
結果はx=[1,1/3,0,1/3,1/3,0,0]となり、非特許文献4の結果と一致した。 [Step 1]
When x 1 = 1 in the last row of the matrix A, the value of the corresponding matrix b is “1” because the maximum value of x 1 is determined. Since the LLR of the inversion bit is negative as shown in FIG. 4, x 1 becomes infinitely large unless the corresponding value of the matrix b is set to “1” as described above.
The result was x = [1, 1/3, 0, 1/3, 1/3, 0, 0], which was consistent with the result ofNon-Patent Document 4.
前述した行列Aの最後の行でx1=1のとき、それに対応する行列bの値が「1」となっているのはx1の最大値を決めるためである。反転ビットのLLRは図4に示したように負なので、上記のように行列bの対応する値を「1」としないとx1は無限に大きくなる。
結果はx=[1,1/3,0,1/3,1/3,0,0]となり、非特許文献4の結果と一致した。 [Step 1]
When x 1 = 1 in the last row of the matrix A, the value of the corresponding matrix b is “1” because the maximum value of x 1 is determined. Since the LLR of the inversion bit is negative as shown in FIG. 4, x 1 becomes infinitely large unless the corresponding value of the matrix b is set to “1” as described above.
The result was x = [1, 1/3, 0, 1/3, 1/3, 0, 0], which was consistent with the result of
その後、非特許文献3、4にしたがってALPにより復号を行う。今回、ステップ1では整数ではない要素が得られたので、整数の要素部分を切り取るためのファクターグラフ(図3)が必要となる。
Thereafter, decoding is performed by ALP according to Non-Patent Documents 3 and 4. At this time, since a non-integer element is obtained in Step 1, a factor graph (FIG. 3) for cutting out the integer element portion is required.
図3は、図2に示す検査行列に対応するファクターグラフを示す図である。ファクターグラフは、図2に示す検査行列の行を上からチェックノードA,B,Cとし、列を左から変数ノードx1,x2,x3,x4,x5,x6,x7とした場合におけるチェックノードと変数ノードとの関係を示している。
FIG. 3 is a diagram illustrating a factor graph corresponding to the parity check matrix illustrated in FIG. In the factor graph, the rows of the check matrix shown in FIG. 2 are the check nodes A, B, and C from the top, and the columns are the variable nodes x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 from the left. The relationship between the check node and the variable node is shown.
要素1,3,6,7が整数なのでその部分の変数ノードを削除するとファクターグラフは図7に示す構成となる。図7のファクターグラフでは、整数部分のノードに「×」と示している。
Since the elements 1, 3, 6, and 7 are integers, the factor graph is configured as shown in FIG. 7 when the variable node is deleted. In the factor graph of FIG. 7, “x” is shown in the node of the integer part.
[ステップ2]
ここでは、パリティチェックA(以下「chk(A)」と示す。)とパリティチェックC(以下「chk(C)」と示す。)で作られるサイクル(cycle)を採用すると、chk(A)+chk(C)の満たすべき条件は図8に示す行列式で表現されている。この場合x3はchk(A), chk(C)ともゼロであり、またx4、x5は、同じ数の2進法による足し算なのでゼロとなる。 [Step 2]
Here, when a cycle (cycle) formed by parity check A (hereinafter referred to as “chk (A)”) and parity check C (hereinafter referred to as “chk (C)”) is employed, chk (A) + chk The condition to be satisfied by (C) is expressed by a determinant shown in FIG. In this case, x 3 is zero for both chk (A) and chk (C), and x 4 and x 5 are zero because they are the same number of binary additions.
ここでは、パリティチェックA(以下「chk(A)」と示す。)とパリティチェックC(以下「chk(C)」と示す。)で作られるサイクル(cycle)を採用すると、chk(A)+chk(C)の満たすべき条件は図8に示す行列式で表現されている。この場合x3はchk(A), chk(C)ともゼロであり、またx4、x5は、同じ数の2進法による足し算なのでゼロとなる。 [Step 2]
Here, when a cycle (cycle) formed by parity check A (hereinafter referred to as “chk (A)”) and parity check C (hereinafter referred to as “chk (C)”) is employed, chk (A) + chk The condition to be satisfied by (C) is expressed by a determinant shown in FIG. In this case, x 3 is zero for both chk (A) and chk (C), and x 4 and x 5 are zero because they are the same number of binary additions.
図8に示す行列式の1行目を試してみると、1×1+(1/3)×(-1)=2/3≦0となり不等式を満たさない。そのため、この第1行目を拘束条件(以降「cut」ということがある。)として使い、拘束条件の中に加える。そして再びプログラムを走らせて目的関数の最適解を求める。
When the first line of the determinant shown in FIG. 8 is tried, 1 × 1 + (1/3) × (−1) = 2/3 ≦ 0 is satisfied and the inequality is not satisfied. Therefore, this first line is used as a constraint condition (hereinafter sometimes referred to as “cut”) and added to the constraint condition. Then run the program again to find the optimal solution of the objective function.
結果はx=[1,2/3,0,1/3,0,1/3,0]となり非特許文献4の結果と一致した。ステップ1と同様に、図9に示すファクターグラフを使ってサイクルとなるパリティチェックを探す。
The result is x = [1, 2/3, 0, 1/3, 0, 1/3, 0], which is consistent with the result of Non-Patent Document 4. As in step 1, a parity check that is a cycle is searched using the factor graph shown in FIG.
[ステップ3]
この場合、図9においてサイクルが2つ存在する。ここではまずchk(B)とchk(C)とを選択する。chk(B)とchk(C)を選択しても、x=[1,2/3,0,1/3,0,1/3,0]は拘束条件x2-x3-x5-x7≦0を満たさない。図6Aおよび図6Bに示す行列Aおよび行列bにさらに[0,1,-1,0,-1,0,-1]と「0」を追加してシミュレーションを行う。 [Step 3]
In this case, there are two cycles in FIG. Here, first, chk (B) and chk (C) are selected. Even if chk (B) and chk (C) are selected, x = [1, 2/3, 0, 1/3, 0, 1/3, 0] is a constraint condition x 2 −x 3 −x 5 − x 7 ≦ 0 is not satisfied. [0, 1, −1, 0, −1, 0, −1] and “0” are further added to the matrix A and the matrix b shown in FIGS. 6A and 6B, and the simulation is performed.
この場合、図9においてサイクルが2つ存在する。ここではまずchk(B)とchk(C)とを選択する。chk(B)とchk(C)を選択しても、x=[1,2/3,0,1/3,0,1/3,0]は拘束条件x2-x3-x5-x7≦0を満たさない。図6Aおよび図6Bに示す行列Aおよび行列bにさらに[0,1,-1,0,-1,0,-1]と「0」を追加してシミュレーションを行う。 [Step 3]
In this case, there are two cycles in FIG. Here, first, chk (B) and chk (C) are selected. Even if chk (B) and chk (C) are selected, x = [1, 2/3, 0, 1/3, 0, 1/3, 0] is a constraint condition x 2 −x 3 −x 5 − x 7 ≦ 0 is not satisfied. [0, 1, −1, 0, −1, 0, −1] and “0” are further added to the matrix A and the matrix b shown in FIGS. 6A and 6B, and the simulation is performed.
結果は以下のように得られた。
x=[1,1/2,0,169/745,233/853,233/853,169/745]
なお、図6Aに示した復号プログラムの最後で「rats」という命令で小数を分数に変換しているので、上記の結果をもとの小数に直すと次のように表される。
x=[1.0000,0.5000,0.0000,0.2268,0.2732,0.2732,0.2268]
これより、x5+x7=0.5となり、本ステップで付け加えた拘束条件x2-x3-x5-x7≦0を満足することがわかる。 The results were obtained as follows.
x = [1,1 / 2,0,169 / 745,233 / 853,233 / 853,169 / 745]
Since the decimal number is converted into a fraction by the instruction “rats” at the end of the decryption program shown in FIG. 6A, the above result is expressed as follows when converted to the original decimal number.
x = [1.0000, 0.5000, 0.0000, 0.2268, 0.2732, 0.2732, 0.2268]
From this, it can be seen that x 5 + x 7 = 0.5, which satisfies the constraint condition x 2 −x 3 −x 5 −x 7 ≦ 0 added in this step.
x=[1,1/2,0,169/745,233/853,233/853,169/745]
なお、図6Aに示した復号プログラムの最後で「rats」という命令で小数を分数に変換しているので、上記の結果をもとの小数に直すと次のように表される。
x=[1.0000,0.5000,0.0000,0.2268,0.2732,0.2732,0.2268]
これより、x5+x7=0.5となり、本ステップで付け加えた拘束条件x2-x3-x5-x7≦0を満足することがわかる。 The results were obtained as follows.
x = [1,1 / 2,0,169 / 745,233 / 853,233 / 853,169 / 745]
Since the decimal number is converted into a fraction by the instruction “rats” at the end of the decryption program shown in FIG. 6A, the above result is expressed as follows when converted to the original decimal number.
x = [1.0000, 0.5000, 0.0000, 0.2268, 0.2732, 0.2732, 0.2268]
From this, it can be seen that x 5 + x 7 = 0.5, which satisfies the constraint condition x 2 −x 3 −x 5 −x 7 ≦ 0 added in this step.
また、ステップ1およびステップ2と同様にファクターグラフを作成し、サイクルとなるパリティチェックを探す。図10は上記結果を示すファクターグラフである。図10のファクターグラフでは、整数部分のノードに「×」と示している。
Also, as in step 1 and step 2, create a factor graph and search for a parity check that is a cycle. FIG. 10 is a factor graph showing the above results. In the factor graph of FIG. 10, “x” is shown in the node of the integer part.
非特許文献5に記載されている従来のRPC検索法を用いると、ステップ3で得られた結果においては、冗長パリティチェックであるRPCを生み出さないことがわかる。なお、非特許文献5に記載されているRPC検索法の詳細は後述する。
Using the conventional RPC search method described in Non-Patent Document 5, it can be seen that the result obtained in step 3 does not produce an RPC that is a redundant parity check. Details of the RPC search method described in Non-Patent Document 5 will be described later.
[ステップ4]
次に、もうひとつのサイクルを選択する。chk(A)とchk(B)を選択するとx=[1,2/3,0,1/3,0,1/3,0]は拘束条件x1-x3-x5-x6≦0を満たさない。ステップ3と同様に計算すると、x=[1,1/2,0,0,1/2,1/2,0]となった。このファクターグラフを図11に示す。サイクルとなっているパリティチェックはchk(A)+chk(B)+chk(C)である。また、図11において整数部分のノードに「×」と示している。 [Step 4]
Next, select another cycle. When chk (A) and chk (B) are selected, x = [1, 2/3, 0, 1/3, 0, 1/3, 0] satisfies the constraint condition x 1 −x 3 −x 5 −x 6 ≦ Does not satisfy 0. When calculated in the same manner as inStep 3, x = [1, 1/2, 0, 0, 1/2, 1/2, 0]. This factor graph is shown in FIG. The parity check in the cycle is chk (A) + chk (B) + chk (C). Further, in FIG. 11, “×” is shown in the node of the integer part.
次に、もうひとつのサイクルを選択する。chk(A)とchk(B)を選択するとx=[1,2/3,0,1/3,0,1/3,0]は拘束条件x1-x3-x5-x6≦0を満たさない。ステップ3と同様に計算すると、x=[1,1/2,0,0,1/2,1/2,0]となった。このファクターグラフを図11に示す。サイクルとなっているパリティチェックはchk(A)+chk(B)+chk(C)である。また、図11において整数部分のノードに「×」と示している。 [Step 4]
Next, select another cycle. When chk (A) and chk (B) are selected, x = [1, 2/3, 0, 1/3, 0, 1/3, 0] satisfies the constraint condition x 1 −x 3 −x 5 −x 6 ≦ Does not satisfy 0. When calculated in the same manner as in
[ステップ5]
ステップ4で算出されたx=[1,1/2,0,0,1/2,1/2,0]は、拘束条件x1-x3-x4-x7≦0を満たさない。ステップ4と同様に計算した結果は次の通りである。
x=[0.2161,0.0806,0.0834,0.0683,0.0806,0.0717,0.0834]×10-8 [Step 5]
X = [1, 1/2, 0, 0, 1/2, 1/2, 0] calculated instep 4 does not satisfy the constraint condition x 1 −x 3 −x 4 −x 7 ≦ 0. The results calculated in the same manner as in Step 4 are as follows.
x = [0.2161, 0.0806, 0.0834, 0.0683, 0.0806, 0.0717, 0.0834] × 10 −8
ステップ4で算出されたx=[1,1/2,0,0,1/2,1/2,0]は、拘束条件x1-x3-x4-x7≦0を満たさない。ステップ4と同様に計算した結果は次の通りである。
x=[0.2161,0.0806,0.0834,0.0683,0.0806,0.0717,0.0834]×10-8 [Step 5]
X = [1, 1/2, 0, 0, 1/2, 1/2, 0] calculated in
x = [0.2161, 0.0806, 0.0834, 0.0683, 0.0806, 0.0717, 0.0834] × 10 −8
以上のステップ1からステップ5までのシミュレーション結果を、表1に示す。また、非特許文献4に記載の技術を用いてハミング符号(7,4,3)のALPによる復号を上記シミュレーションと同じ条件で行った計算結果を表2に示す。
Table 1 shows the simulation results from Step 1 to Step 5 above. Further, Table 2 shows the calculation results obtained by performing the ALP decoding of the Hamming code (7, 4, 3) using the technique described in Non-Patent Document 4 under the same conditions as in the simulation.
表1および表2は、それぞれイタレーション(i)、サイクルとなるパリティチェック、冗長パリティチェック(RPC)の拘束条件(cut)、および復号結果を示す解xをそれぞれ示している。
Table 1 and Table 2 respectively show iteration (i), a parity check that is a cycle, a constraint condition (cut) of a redundant parity check (RPC), and a solution x that indicates a decoding result.
表1と表2との比較より、(i)互いの最終結果が異なっていることがわかる。また、(ii)上記ステップ1からステップ5までのシミュレーションによる計算結果に示されるイタレーション2-1およびイタレーション2-2におけるチェックノード選択の手順でイタレーション2-1を選んでしまうと解析が止まってしまうことがわかる。(i)の最終結果が互いに異なっていることについては、得られた結果が非常に小さく実質的にゼロとみなせることより、一致すると判断できる。
From the comparison between Table 1 and Table 2, it can be seen that (i) the final results are different from each other. Also, (ii) if iteration 2-1 is selected in the check node selection procedure in iteration 2-1 and iteration 2-2 shown in the calculation results of the simulation from step 1 to step 5 above, the analysis will be performed. You can see that it stops. The fact that the final results of (i) are different from each other can be determined to be coincident because the obtained results are very small and can be regarded as substantially zero.
今回の例では手動で図6Aのプログラム例に示す行列Aおよび行列bの設定を行っているが、実際にはプログラムを組んで検査行列の任意の行を選んで線形結合を作成し、計算を行う。
In this example, the matrix A and the matrix b shown in the program example of FIG. 6A are manually set. However, in actuality, a program is selected to select an arbitrary row of the check matrix to create a linear combination, and the calculation is performed. Do.
ここで、受信した符号の解析からRPCが存在するかどうか判断するには、非特許文献5に記載されているRPC検索法を使う。非特許文献5に記載されているRPC検索法では、まず得られた解のベクトルxの成分を;(a)非整数、ゼロ、1の順にしたがって分類する。ただし非整数要素だけは1/2から距離の絶対値に応じて、小さい方の要素から順に並べ換える;(b)次に、(a)と同じ順序で検査行列の列を並べる;(c)そして、非整数要素の行列部分を行階段(echelon)形にする。そのときechelon部分の行の重みが1つだけ(行の中の要素がただ1つ)のとき、RPCは存在する。
Here, in order to determine whether or not RPC exists from the analysis of the received code, the RPC search method described in Non-Patent Document 5 is used. In the RPC search method described in Non-Patent Document 5, first, components of the vector x of the obtained solution are classified according to the order of (a) non-integer, zero, and 1. However, only non-integer elements are rearranged in order from the smaller element according to the absolute value of the distance from 1/2; (b) Next, the columns of the check matrix are arranged in the same order as in (a); (c) Then, the matrix portion of the non-integer elements is made into an echelon shape. At that time, when the weight of the row of the echeloon is only one (there is only one element in the row), the RPC exists.
上述したシミュレーションの例を用いて、RPC検索を行う。表1のイタレーション1の復号結果を示す解x=[1,2/3,0,1/3,0,1/3,0]を用いる。上記手順(a)および(b)を行った結果得られた行列A1を図12に示す。なお、|2/3-1/2|=|1/3-1/2|=1/6である。
An RPC search is performed using the simulation example described above. The solution x = [1, 2/3, 0, 1/3, 0, 1/3, 0] indicating the decoding result of iteration 1 in Table 1 is used. FIG. 12 shows a matrix A 1 obtained as a result of performing the above steps (a) and (b). It should be noted that | 2 / 3−1 / 2 | = | 1 / 3−1 / 2 | = 1/6.
上記手順(c)に従って、図12に示す行列A1を簡約化行列(reduced row echelon form、以下「rref」と記す。)化したものを図13に示す。この場合、行列rref(A1)は3個のRPCが存在することがわかる。図13に示す行列rref(A1)において、2進法の演算規則(-1=1、2=0)を用いてさらに変換している。
FIG. 13 shows the matrix A 1 shown in FIG. 12 converted into a reduced matrix (hereinafter referred to as “rref”) according to the procedure (c). In this case, it can be seen that the matrix rref (A 1 ) has three RPCs. The matrix rref (A 1 ) shown in FIG. 13 is further converted using binary arithmetic rules (−1 = 1, 2 = 0).
今度は表1のイタレーション2-1の復号結果を示す解x=[1.0000,0.5000,0.0000,0.2268,0.2732,0.2732,0.2268]を使う。上記手順(a)および(b)に従って検査行列の列を入れ替えた行列A1を図14に示す。さらにそのrrefを求めると図15に示す行列rref(A1)となり、どの行列もechelon部分は「1」の要素が2以上なのでRPCはないことがわかる。なお、図15において、分数領域は、1列から5列までの領域である。また、図16は、表1のイタレーション2-1の変数ノードの値をファクターグラフ上に表示した図である。
This time, the solution x = [1.0000, 0.5000, 0.0000, 0.2268, 0.2732, 0.2732, 0.2268] indicating the decoding result of iteration 2-1 in Table 1 is used. FIG. 14 shows a matrix A 1 in which the columns of the check matrix are exchanged according to the procedures (a) and (b). Further, when the rref is obtained, the matrix rref (A 1 ) shown in FIG. 15 is obtained, and it can be seen that there is no RPC since every matrix has two or more elements of “1” in the echeloon part. In FIG. 15, the fractional area is an area from 1 to 5 columns. FIG. 16 is a diagram in which the value of the variable node of iteration 2-1 in Table 1 is displayed on the factor graph.
ここで再び図10に示す上記シミュレーションのステップ3に基づくファクターグラフとその結果図16について立ち返る。図16のファクターグラフを見ると、パリティチェックを満たすため、それぞれの共通の変数ノードを分数としていることがわかる。ここでRPCを満たさないファクターグラフでは、分数になる変数ノードは、それ自身のパリティチェックだけに接続している変数ノード(ここではx7)にも起こっている。
Here, the factor graph based on step 3 of the simulation shown in FIG. Looking at the factor graph of FIG. 16, it can be seen that each common variable node is a fraction in order to satisfy the parity check. Here, in the factor graph that does not satisfy RPC, the variable node that becomes a fraction also occurs in the variable node (here, x 7 ) connected only to its own parity check.
この場合、パリティチェック(x2-x3-x5-x7=0)を満たすためには、1つの変数ノード(x5)では済まず、他の変数ノード(x4,x6)にもおよび、また他のチェックノード(ここではチェックノードAおよびB)の変数ノード(x2)を分数にしている。その結果、分数を持つ変数ノードの数が増えてRPCを発生させる条件(この場合は分数の変数のノードの数≦3)が成り立たなくなってしまう。
In this case, in order to satisfy the parity check (x 2 −x 3 −x 5 −x 7 = 0), one variable node (x 5 ) is not needed, and the other variable nodes (x 4 , x 6 ) are not processed. In addition, the variable node (x 2 ) of other check nodes (here, check nodes A and B) is a fraction. As a result, the number of variable nodes having fractions increases and the condition for generating RPC (in this case, the number of nodes of fractional variables ≦ 3) is not satisfied.
そのため、本発明では、チェックノードに接続している変数ノードのうち、該当するチェックノード以外他にどこにもつながってない変数ノードに対して、整数の値以外とらないという制限を加える構成を採用する。そして、本発明では、LPによる復号方法を拡張した混合整数線形計画(Mixed Integer Linear Programming、以下「MILP」という。)を用いて、変数ノードに整数および実数の値を有する問題の最適解を求めてハミング符号を復号する。
Therefore, in the present invention, a configuration is adopted in which, among the variable nodes connected to the check node, a variable node that is connected to nowhere other than the corresponding check node is added with a restriction that it is not an integer value. . In the present invention, a mixed integer linear programming (hereinafter referred to as “MILP”) obtained by extending a decoding method using LP is used to obtain an optimal solution for a problem having integer and real values in variable nodes. To decode the Hamming code.
[実施の形態]
以下、本発明に係る適応的線形計画(ALP)復号方法を実施するための復号装置1について説明する。 [Embodiment]
Hereinafter, adecoding apparatus 1 for implementing an adaptive linear programming (ALP) decoding method according to the present invention will be described.
以下、本発明に係る適応的線形計画(ALP)復号方法を実施するための復号装置1について説明する。 [Embodiment]
Hereinafter, a
図1に示すように、復号装置1は、バス101を介して接続されるCPU103と主記憶装置104とを有する演算装置102、通信制御装置105、外部記憶装置106、表示装置107を備えるコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。
As shown in FIG. 1, the decoding device 1 includes a computing device 102 having a CPU 103 and a main storage device 104 connected via a bus 101, a communication control device 105, an external storage device 106, and a computer having a display device 107. It can be realized by a program for controlling these hardware resources.
CPU103と主記憶装置104とは、演算装置102を構成する。主記憶装置104には、CPU103が各種制御や演算を行うためのプログラムが予め格納されている。なお、復号装置1は、復号処理を実行する専用のハードウェアで構成されていてもよい。例えば、グラフィックプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmale Gate Array)などの集積回路を採用できる。
The CPU 103 and the main storage device 104 constitute an arithmetic device 102. A program for the CPU 103 to perform various controls and calculations is stored in the main storage device 104 in advance. Note that the decoding device 1 may be configured with dedicated hardware for executing the decoding process. For example, an integrated circuit such as a graphic processor, an ASIC (Application Specific Integrated Circuit), or an FPGA (Field Programmable Gate Array) can be employed.
通信制御装置105は、復号装置1と各種外部電子機器との間を、通信ネットワークNWを介して接続するための制御装置である。通信制御装置105は、通信ネットワークNWを介して復号する符号化データを受信する。
The communication control device 105 is a control device for connecting the decryption device 1 and various external electronic devices via the communication network NW. The communication control device 105 receives encoded data to be decoded via the communication network NW.
外部記憶装置106は、読み書き可能な記憶媒体と、その記憶媒体に対してプログラムやデータなどの各種情報を読み書きするための駆動装置とで構成されている。外部記憶装置106には、記憶媒体としてハードディスクやフラッシュメモリなどの半導体メモリを使用することができる。外部記憶装置106は、データ記憶部106a、設定情報記憶部106b、プログラム格納部106c、図示しないその他の格納装置で、例えば、この外部記憶装置106内に格納されているプログラムやデータなどをバックアップするための格納装置などを有することができる。
The external storage device 106 includes a readable / writable storage medium and a drive device for reading / writing various information such as programs and data from / to the storage medium. The external storage device 106 can use a semiconductor memory such as a hard disk or a flash memory as a storage medium. The external storage device 106 is a data storage unit 106a, a setting information storage unit 106b, a program storage unit 106c, and other storage devices (not shown), and for example, backs up programs and data stored in the external storage device 106. A storage device or the like.
データ記憶部106aには、通信制御装置105を介して受信された符号化データや復号データなどが記憶される。
設定情報記憶部106bには、検査行列に関する情報、拘束条件に関する情報、予め定められている条件式、整数とする変数ノードに関する情報などの設定情報が記憶されている。 The data storage unit 106 a stores encoded data and decoded data received via thecommunication control device 105.
The settinginformation storage unit 106b stores setting information such as information related to the check matrix, information related to the constraint conditions, predetermined conditional expressions, and information related to variable nodes that are integers.
設定情報記憶部106bには、検査行列に関する情報、拘束条件に関する情報、予め定められている条件式、整数とする変数ノードに関する情報などの設定情報が記憶されている。 The data storage unit 106 a stores encoded data and decoded data received via the
The setting
プログラム格納部106cには、本実施の形態における行列演算処理や、ファクターグラフ生成処理、拘束条件導出処理、RPC検索処理などハミング符号の復号に必要な処理を実行するための各種プログラムが格納されている。
The program storage unit 106c stores various programs for executing processing necessary for Hamming code decoding, such as matrix calculation processing, factor graph generation processing, constraint condition derivation processing, and RPC search processing in the present embodiment. Yes.
表示装置107は、復号装置1の表示画面を構成する。表示装置107は液晶ディスプレイなどによって実現される。表示装置107には、例えは、ファクターグラフなど復号装置1による演算結果が画面に表示される。
The display device 107 constitutes the display screen of the decryption device 1. The display device 107 is realized by a liquid crystal display or the like. On the display device 107, for example, the calculation result by the decoding device 1 such as a factor graph is displayed on the screen.
[ハミング符号のALP復号処理]
次に、本実施の形態に係るハミング符号のALP復号処理について、図17のフローチャートを参照して説明する。本実施の形態では、[発明の原理]で用いた符号と同様に、符号長7、信号長4、パリティ検査長3のハミング符号(7,4,3)を復号の対象とし、図2で示す検査行列を用いる。 [ALP decoding process of Hamming code]
Next, the ALP decoding process of the Hamming code according to the present embodiment will be described with reference to the flowchart of FIG. In the present embodiment, a Hamming code (7, 4, 3) having a code length of 7, a signal length of 4, and a parity check length of 3 is subject to decoding, similar to the code used in [Principle of the Invention]. The parity check matrix shown is used.
次に、本実施の形態に係るハミング符号のALP復号処理について、図17のフローチャートを参照して説明する。本実施の形態では、[発明の原理]で用いた符号と同様に、符号長7、信号長4、パリティ検査長3のハミング符号(7,4,3)を復号の対象とし、図2で示す検査行列を用いる。 [ALP decoding process of Hamming code]
Next, the ALP decoding process of the Hamming code according to the present embodiment will be described with reference to the flowchart of FIG. In the present embodiment, a Hamming code (7, 4, 3) having a code length of 7, a signal length of 4, and a parity check length of 3 is subject to decoding, similar to the code used in [Principle of the Invention]. The parity check matrix shown is used.
まず、演算装置102は、図2に示す検査行列より、図3に示すファクターグラフを生成する(ステップS1)。生成されたファクターグラフは、データ記憶部106aに記憶される。図3に示すファクターグラフにおいて、変数ノードx1~x7は「丸」で表され、チェックノードA,B,Cは、「四角」で表されている。
First, the computing device 102 generates the factor graph shown in FIG. 3 from the parity check matrix shown in FIG. 2 (step S1). The generated factor graph is stored in the data storage unit 106a. In the factor graph shown in FIG. 3, the variable nodes x 1 to x 7 are represented by “circles”, and the check nodes A, B, and C are represented by “squares”.
次に、演算装置102は、設定情報記憶部106bに記憶されているチェックノードに属する変数ノードxnが満たすべき式(条件式)を読み出し、ハミング符号(7,4,3)が満たすべき不等式で表される拘束条件を導出する(ステップS2)。拘束条件として、前述した式(1)(x1-(x2+x4+x5)≦0)が得られる。演算装置102は導出した拘束条件を設定情報記憶部106bに記憶する。
Next, the arithmetic unit 102 reads an expression (conditional expression) that the variable node x n belonging to the check node stored in the setting information storage unit 106b should satisfy and an inequality that the Hamming code (7, 4, 3) should satisfy. Is derived (step S2). As a constraint condition, the above-described formula (1) (x 1 − (x 2 + x 4 + x 5 ) ≦ 0) is obtained. The arithmetic device 102 stores the derived constraint condition in the setting information storage unit 106b.
次に、演算装置102は、プログラム格納部106cに格納されている復号プログラム(図6A)において、復号処理における条件を設定する行列Aおよび行列bを求める(ステップS3)。演算装置102は、例えば、図6Bに示す行列Aおよび行列bを設定する。行列Aにおいて最後の行[1,0,0,0,0,0,0]および行列bの一番右の列の1はx1≦1を表す。演算装置102は、求めた行列Aおよび行列bを復号プログラムにおいてロードする。
Next, the arithmetic unit 102 obtains a matrix A and a matrix b for setting conditions in the decoding process in the decoding program (FIG. 6A) stored in the program storage unit 106c (step S3). The computing device 102 sets, for example, the matrix A and the matrix b shown in FIG. 6B. In the matrix A, 1 in the last row [1, 0, 0, 0, 0, 0, 0] and the rightmost column of the matrix b represents x 1 ≦ 1. The arithmetic unit 102 loads the obtained matrix A and matrix b in the decoding program.
また、本実施の形態では、演算装置102は、混合整数線形計画法(MILP)を用いるので、図6Aに示す復号プログラムにおいて、線形計画法(LP)の関数示す「linprob」からMILPの関数「intlinprob」に変更する。
Further, in the present embodiment, since the arithmetic unit 102 uses mixed integer linear programming (MILP), in the decoding program shown in FIG. 6A, the linear program (LP) function “linprob” to the MILP function “ Change to "intlinprob".
次に、演算装置102は、ステップS1で生成したファクターグラフにおいてチェックノードに接続している変数ノードのうち、1つのチェックノードのみに接続している変数ノード(以下、「孤立変数ノード」という。)を検出する(ステップS4)。図3に示す例では、演算装置102は、孤立変数ノードx1、x3、x7を検出する。演算装置102は、検出した孤立変数ノードの情報を主記憶装置104に一時的に記憶する。
Next, the computing device 102 refers to a variable node connected to only one check node (hereinafter referred to as an “isolated variable node”) among the variable nodes connected to the check node in the factor graph generated in step S1. ) Is detected (step S4). In the example illustrated in FIG. 3, the arithmetic device 102 detects isolated variable nodes x 1 , x 3 , and x 7 . The arithmetic device 102 temporarily stores information on the detected isolated variable node in the main storage device 104.
次に、演算装置102は、ステップS4で検出した孤立変数ノードは整数の値のみとする指定を行う(ステップS5)。具体的には、演算装置102は、孤立変数ノードx1,x3,x7に対して整数以外はとらないという制限を加える。より詳細には、演算装置102は、整数とする孤立変数ノードx1,x3,x7の指定をintcon=[1,3,7]で与える。
Next, the arithmetic unit 102 specifies that the isolated variable node detected in step S4 is only an integer value (step S5). Specifically, the arithmetic unit 102 imposes a restriction that an isolated variable node x 1 , x 3 , x 7 can only be an integer. More specifically, the arithmetic unit 102 gives the designation of isolated variable nodes x 1 , x 3 , x 7 as integers by intcon = [1, 3, 7].
その後、演算装置102は、MILPによる復号を行い解を求める(ステップS6)。
より詳細には、演算装置102は、ステップS2で導出された拘束条件、ステップS3で求められた行列Aおよび行列b、および整数とする制限が加えられた孤立変数ノードに関する情報に基づいて、MILPによる解を算出し、算出結果をハミング符号の復号結果としてデータ記憶部106aに記憶する。 Thereafter, thearithmetic device 102 performs decoding by MILP to obtain a solution (step S6).
More specifically, thearithmetic unit 102 determines the MILP based on the constraint condition derived in step S2, the matrix A and the matrix b obtained in step S3, and the information on the isolated variable node to which the restriction to be an integer is added. And the calculation result is stored in the data storage unit 106a as a Hamming code decoding result.
より詳細には、演算装置102は、ステップS2で導出された拘束条件、ステップS3で求められた行列Aおよび行列b、および整数とする制限が加えられた孤立変数ノードに関する情報に基づいて、MILPによる解を算出し、算出結果をハミング符号の復号結果としてデータ記憶部106aに記憶する。 Thereafter, the
More specifically, the
より具体的には、演算装置102が実行したMILPによる表1に示す評価を行うと、表1のイタレーション2-1の復号結果を示す解xは、x=[1,1/2,0,0,1/2,1/2,0]と算出された。また、以降のイタレーションにおいては、表2に示すイタレーション3、4の復号結果を示す解xと同じ値となった。
More specifically, when the evaluation shown in Table 1 by MILP executed by the arithmetic unit 102 is performed, the solution x indicating the decoding result of the iteration 2-1 in Table 1 is x = [1, 1/2, 0 , 0, 1/2, 1/2, 0]. In the subsequent iterations, the values were the same as the solution x indicating the decoding results of iterations 3 and 4 shown in Table 2.
以上、本実施の形態に係るハミング符号のALP復号方法によれば、検査行列の独立した変数ノードを整数にするという条件を加えて線形計画法による解を求めると、どのようなチェックノードの組み合わせでもRPCが存在することがわかる。したがって、この場合には、非特許文献5によるRPC検索過程は不要となり、復号方法の実装が簡単になり、計算時間を短縮することができる。すなわち、表2のチェックノードの組み合わせを順番に作用させればハミング符号の復号ができる。
As described above, according to the ALP decoding method of the Hamming code according to the present embodiment, any combination of check nodes can be obtained by finding a solution by linear programming under the condition that an independent variable node of the check matrix is an integer. But it can be seen that RPC exists. Therefore, in this case, the RPC search process according to Non-Patent Document 5 is unnecessary, the implementation of the decoding method is simplified, and the calculation time can be shortened. That is, the Hamming code can be decoded by applying the check node combinations in Table 2 in order.
[変形例1]
次に、本実施の形態に係るハミング符号のALP復号方法の変形例1について説明する。変形例1では、図18で示す検査行列(15,11,3)(非特許文献6の例題2.20の検査行列)から生成される短縮ハミング符号(8,4,4)の復号について説明する。 [Modification 1]
Next,Modification 1 of the ALP decoding method for the Hamming code according to the present embodiment will be described. In Modification 1, the decoding of the shortened Hamming code (8, 4, 4) generated from the parity check matrix (15, 11, 3) shown in FIG. 18 (the parity check matrix of Example 2.20 of Non-Patent Document 6) will be described. To do.
次に、本実施の形態に係るハミング符号のALP復号方法の変形例1について説明する。変形例1では、図18で示す検査行列(15,11,3)(非特許文献6の例題2.20の検査行列)から生成される短縮ハミング符号(8,4,4)の復号について説明する。 [Modification 1]
Next,
本変形例1においても、演算装置102は、短縮ハミング符号について、上述した実施の形態と同様に図17のフローチャートで示すステップS1からステップS6までの復号処理を実行する。演算装置102が検査行列に基づいてステップS1で生成したファクターグラフを図19に示す。
Also in the first modification, the arithmetic unit 102 performs the decoding process from step S1 to step S6 shown in the flowchart of FIG. 17 on the shortened Hamming code as in the above-described embodiment. FIG. 19 shows a factor graph generated in step S1 by the arithmetic device 102 based on the parity check matrix.
ここで、本発明との比較のため、LPによって導出された復号結果の解について説明する。演算装置102が、図6Aに示す復号プログラムに従ってLPによる復号を実行して得られた解xは、次式(2)となった。
x=[1,1/2,1/2,1/2,0,0,0,0] ・・・(2)
この復号結果を反映したファクターグラフを図20に示す。整数のノードは「×」で示されている。また、図20に示すように、変数ノードx2,x3,x4からつくられるチェックノードのループは5種類存在することがわかる。 Here, for comparison with the present invention, a solution of a decoding result derived by LP will be described. A solution x obtained by thearithmetic unit 102 performing the decoding by LP according to the decoding program shown in FIG. 6A is expressed by the following equation (2).
x = [1, 1/2, 1/2, 1/2, 0, 0, 0, 0] (2)
FIG. 20 shows a factor graph reflecting the decoding result. Integer nodes are indicated by “x”. Further, as shown in FIG. 20, it can be seen that there are five types of check node loops created from the variable nodes x 2 , x 3 , and x 4 .
x=[1,1/2,1/2,1/2,0,0,0,0] ・・・(2)
この復号結果を反映したファクターグラフを図20に示す。整数のノードは「×」で示されている。また、図20に示すように、変数ノードx2,x3,x4からつくられるチェックノードのループは5種類存在することがわかる。 Here, for comparison with the present invention, a solution of a decoding result derived by LP will be described. A solution x obtained by the
x = [1, 1/2, 1/2, 1/2, 0, 0, 0, 0] (2)
FIG. 20 shows a factor graph reflecting the decoding result. Integer nodes are indicated by “x”. Further, as shown in FIG. 20, it can be seen that there are five types of check node loops created from the variable nodes x 2 , x 3 , and x 4 .
具体的には、チェックノードAとCからなるサークル(以下「A-C」という。);チェックノードのループがBとCからなるサークル(以下「B-C」という。);チェックノードのループがCとDからなるサークル(以下「C-D」という。);チェックノードのループがA、B、Cからなるサークル(以下「A-B-C」という。);およびチェックノードのループがA、B、Dからなるサークル(以下「A-B-D」という。)の5種類である。以下、そのいくつかの場合について考察する。
Specifically, a circle composed of check nodes A and C (hereinafter referred to as “AC”); a circle of check nodes composed of B and C (hereinafter referred to as “BC”); a loop of check nodes Is a circle composed of C and D (hereinafter referred to as “CD”); a circle of check nodes is composed of A, B, and C (hereinafter referred to as “ABC”); and a loop of check nodes is There are five types of circles composed of A, B, and D (hereinafter referred to as “ABD”). In the following, some cases will be considered.
(a)サークルA-Cを選択した場合
この場合、符号が満たすべき拘束条件の式の1つは、図5に示す条件式より、|V|=1の場合、x1-x3-x5-x7≦0となる。上式(2)で示すLPによる解xは、この拘束条件を満たさない。ここで、[1,0,-1,0,-1,0,-1,0]を図6Aおよび図6Bの行列Aに、そして「0」を行列bに挿入して、評価を実行してLPによる解を求めると、次の式(3)のような復号結果を示す解xが得られた。
x=[1,1/3,2/3,1/3,1/3,0,0,0]・・・(3) (A) When Circle A-C is Selected In this case, one of the constraint conditions that should be satisfied by the sign is x 1 −x 3 −x when | V | = 1 from the conditional expression shown in FIG. 5 −x 7 ≦ 0. The solution x by LP shown in the above equation (2) does not satisfy this constraint condition. Here, [1, 0, −1, 0, −1, 0, −1, 0] is inserted into the matrix A in FIGS. 6A and 6B, and “0” is inserted into the matrix b, and the evaluation is performed. As a result, a solution x indicating a decoding result such as the following equation (3) was obtained.
x = [1, 1/3, 2/3, 1/3, 1/3, 0, 0, 0] (3)
この場合、符号が満たすべき拘束条件の式の1つは、図5に示す条件式より、|V|=1の場合、x1-x3-x5-x7≦0となる。上式(2)で示すLPによる解xは、この拘束条件を満たさない。ここで、[1,0,-1,0,-1,0,-1,0]を図6Aおよび図6Bの行列Aに、そして「0」を行列bに挿入して、評価を実行してLPによる解を求めると、次の式(3)のような復号結果を示す解xが得られた。
x=[1,1/3,2/3,1/3,1/3,0,0,0]・・・(3) (A) When Circle A-C is Selected In this case, one of the constraint conditions that should be satisfied by the sign is x 1 −x 3 −x when | V | = 1 from the conditional expression shown in FIG. 5 −x 7 ≦ 0. The solution x by LP shown in the above equation (2) does not satisfy this constraint condition. Here, [1, 0, −1, 0, −1, 0, −1, 0] is inserted into the matrix A in FIGS. 6A and 6B, and “0” is inserted into the matrix b, and the evaluation is performed. As a result, a solution x indicating a decoding result such as the following equation (3) was obtained.
x = [1, 1/3, 2/3, 1/3, 1/3, 0, 0, 0] (3)
上式(3)で示すチェックノードのサークルA-Cを追加した復号結果のファクターグラフを図21に示す。図21に示すように、各チェックノードの作るサークルは、図20のファクターグラフに示すものと同じである。
FIG. 21 shows a factor graph of the decryption result obtained by adding the circles AC of check nodes represented by the above equation (3). As shown in FIG. 21, the circle created by each check node is the same as that shown in the factor graph of FIG.
ここで、前述した非特許文献5に記載のRPC検索法を行う。図18に示す検査行列の列を上式(3)で示す復号結果を示す解xによって入れ替えた行列A1を図22に、それをrrefの形にした行列rref(A1)を図23に示す。図23に示す行列rref(A1)の下の列の数字は、A1の列を示している。これより、すべての行がRPCの存在する条件を満たすので、第1行をとる。これを図21に示すチェックノード(サークルA-C)を追加した復号結果を反映したファクターグラフで確認すると、サークルC-Dとなっている。
Here, the RPC search method described in Non-Patent Document 5 is performed. FIG. 22 shows a matrix A 1 in which the columns of the parity check matrix shown in FIG. 18 are replaced by a solution x indicating the decoding result represented by the above equation (3), and FIG. 23 shows a matrix rref (A 1 ) in the form of rref. Show. The numbers in the lower column of the matrix rref (A 1 ) shown in FIG. 23 indicate the columns of A 1 . As a result, since all rows satisfy the condition that RPC exists, the first row is taken. When this is confirmed by a factor graph reflecting the decoding result obtained by adding the check nodes (circles AC) shown in FIG. 21, it becomes a circle CD.
このRPCから作られるパリティチェックの1つがx1-x2-x7-x8≦0であり、これは上式(3)で示す復号結果の解を満たさない。このことから、図6Aおよび図6Bに示す行列Aに[1,-1,0,0,0,0,-1,-1]を挿入し、行列bに「0」を挿入してLPによる解xを算出する。
One of the parity checks made from this RPC is x 1 −x 2 −x 7 −x 8 ≦ 0, which does not satisfy the solution of the decoding result shown in the above equation (3). From this, [1, -1,0,0,0,0, -1, -1] is inserted into the matrix A shown in FIGS. 6A and 6B, and “0” is inserted into the matrix b. The solution x is calculated.
この場合の解xは次の式(4)となる。
x=1.0e-14×[0.7219,0.5291,0.5291,0.1532,0.0469,0.0044,0.1538,0.0469] ・・・(4) The solution x in this case is expressed by the following equation (4).
x = 1.0e-14 × [0.7219, 0.5291, 0.5291, 0.1532, 0.0469, 0.0044, 0.1538, 0.0469] (4)
x=1.0e-14×[0.7219,0.5291,0.5291,0.1532,0.0469,0.0044,0.1538,0.0469] ・・・(4) The solution x in this case is expressed by the following equation (4).
x = 1.0e-14 × [0.7219, 0.5291, 0.5291, 0.1532, 0.0469, 0.0044, 0.1538, 0.0469] (4)
ここで、本変形例1において用いている検査行列のファクターグラフ(図19)の中で、ただ1つのチェックノードに接続している孤立変数ノードx5、x6、x7、x8を整数にするという制限を加えてMILPにより復号を行うと、復号結果の解xは、次のとおりとなった。
x=[1,1/2,1/2,1/2,0,0,0,0]
この結果は、上記孤立変数ノードx5、x6、x7、x8を整数にするという制限を加えていない場合の復号結果の解と同様であった。しかし、サークルA-Cを選択した場合の制約x1-x3-x5-x7≦0を加えてLPによる復号結果を算出すると、
x=[0,0,0,0,0,0,0,0]
が得られた。 Here, in the factor graph (FIG. 19) of the check matrix used in the first modification, isolated variable nodes x 5 , x 6 , x 7 , and x 8 connected to only one check node are integers. When the decoding is performed by MILP with the restriction of, the solution x of the decoding result is as follows.
x = [1, 1/2, 1/2, 1/2, 0, 0, 0, 0]
This result was the same as the solution of the decoding result when the limitation that the isolated variable nodes x 5 , x 6 , x 7 , and x 8 are not integers is added. However, when the decoding result by LP is calculated by adding the constraint x 1 −x 3 −x 5 −x 7 ≦ 0 when the circle AC is selected,
x = [0,0,0,0,0,0,0,0]
was gotten.
x=[1,1/2,1/2,1/2,0,0,0,0]
この結果は、上記孤立変数ノードx5、x6、x7、x8を整数にするという制限を加えていない場合の復号結果の解と同様であった。しかし、サークルA-Cを選択した場合の制約x1-x3-x5-x7≦0を加えてLPによる復号結果を算出すると、
x=[0,0,0,0,0,0,0,0]
が得られた。 Here, in the factor graph (FIG. 19) of the check matrix used in the first modification, isolated variable nodes x 5 , x 6 , x 7 , and x 8 connected to only one check node are integers. When the decoding is performed by MILP with the restriction of, the solution x of the decoding result is as follows.
x = [1, 1/2, 1/2, 1/2, 0, 0, 0, 0]
This result was the same as the solution of the decoding result when the limitation that the isolated variable nodes x 5 , x 6 , x 7 , and x 8 are not integers is added. However, when the decoding result by LP is calculated by adding the constraint x 1 −x 3 −x 5 −x 7 ≦ 0 when the circle AC is selected,
x = [0,0,0,0,0,0,0,0]
was gotten.
(b)サークルB-Cを選択した場合
次に、サークルB-Cを選択した場合、孤立変数ノードを整数にするという制限を加えていない場合のLPによる復号結果の解は、
x=[1,1/3,1/3,2/3,0,1/3,0,0]
が得られたが、孤立変数ノードを整数にする制限を加えた場合のMILPによる復号結果の解xは、
x=[0,0,0,0,0,0,0,0]
となった。 (B) When Circle BC is selected Next, when Circle BC is selected, the solution of the decoding result by LP when the restriction that the isolated variable node is an integer is not added is
x = [1, 1/3, 1/3, 2/3, 0, 1/3, 0, 0]
Is obtained, but the solution x of the decoding result by MILP when the restriction to make the isolated variable node an integer is added is
x = [0,0,0,0,0,0,0,0]
It became.
次に、サークルB-Cを選択した場合、孤立変数ノードを整数にするという制限を加えていない場合のLPによる復号結果の解は、
x=[1,1/3,1/3,2/3,0,1/3,0,0]
が得られたが、孤立変数ノードを整数にする制限を加えた場合のMILPによる復号結果の解xは、
x=[0,0,0,0,0,0,0,0]
となった。 (B) When Circle BC is selected Next, when Circle BC is selected, the solution of the decoding result by LP when the restriction that the isolated variable node is an integer is not added is
x = [1, 1/3, 1/3, 2/3, 0, 1/3, 0, 0]
Is obtained, but the solution x of the decoding result by MILP when the restriction to make the isolated variable node an integer is added is
x = [0,0,0,0,0,0,0,0]
It became.
(c)サークルA-B-Dを選択した場合
次に、サークルA-B-Dを選択した場合、孤立変数ノードを整数にするという制限を加えていない場合のLPによる復号結果の解xは、
x=1.0e-12×[0.6749,0.2305,0.2305,0.2305,0.2297,0.2297,0.0096,0.2297]
となるが、孤立変数ノードを整数にする制限を加えた場合のMILPによる復号結果の解xは、
x=[0,0,0,0,0,0,0,0]
となった。 (C) When Circle ABD is selected Next, when Circle ABD is selected, the solution x of the decoding result by LP when the limitation that the isolated variable node is an integer is not added is ,
x = 1.0e-12 × [0.6749, 0.2305, 0.2305, 0.2305, 0.2297, 0.2297, 0.0096, 0.2297]
However, the solution x of the decoding result by MILP when the restriction that the isolated variable node is an integer is added is
x = [0,0,0,0,0,0,0,0]
It became.
次に、サークルA-B-Dを選択した場合、孤立変数ノードを整数にするという制限を加えていない場合のLPによる復号結果の解xは、
x=1.0e-12×[0.6749,0.2305,0.2305,0.2305,0.2297,0.2297,0.0096,0.2297]
となるが、孤立変数ノードを整数にする制限を加えた場合のMILPによる復号結果の解xは、
x=[0,0,0,0,0,0,0,0]
となった。 (C) When Circle ABD is selected Next, when Circle ABD is selected, the solution x of the decoding result by LP when the limitation that the isolated variable node is an integer is not added is ,
x = 1.0e-12 × [0.6749, 0.2305, 0.2305, 0.2305, 0.2297, 0.2297, 0.0096, 0.2297]
However, the solution x of the decoding result by MILP when the restriction that the isolated variable node is an integer is added is
x = [0,0,0,0,0,0,0,0]
It became.
上記(a)、(b)、(c)の結果を表3~表8に示す。
表3および表4は、パリティチェックとして検査行列の1行と3行の線形結合を選んだ場合の「整数指定なし」および「整数指定あり」の復号結果をそれぞれ示している。
表5および表6は、パリティチェックとして検査行列の2行と3行の線形結合を選んだ場合の「整数指定なし」および「整数指定あり」の復号結果をそれぞれ示している。
表7および表8は、パリティチェックとして検査行列の1行、2行、および4行の線形結合を選んだ場合の「整数指定なし」および「整数指定あり」の復号結果をそれぞれ示している。 The results of the above (a), (b) and (c) are shown in Tables 3 to 8.
Tables 3 and 4 show the decoding results of “no integer designation” and “integer designation” when the linear combination of the first and third rows of the parity check matrix is selected as the parity check, respectively.
Tables 5 and 6 show the decoding results of “no integer designation” and “integer designation”, respectively, when a linear combination of two and three rows of the parity check matrix is selected as the parity check.
Tables 7 and 8 show the decoding results of “no integer designation” and “integer designation”, respectively, when linear combination of 1 row, 2 rows, and 4 rows of the parity check matrix is selected as the parity check.
表3および表4は、パリティチェックとして検査行列の1行と3行の線形結合を選んだ場合の「整数指定なし」および「整数指定あり」の復号結果をそれぞれ示している。
表5および表6は、パリティチェックとして検査行列の2行と3行の線形結合を選んだ場合の「整数指定なし」および「整数指定あり」の復号結果をそれぞれ示している。
表7および表8は、パリティチェックとして検査行列の1行、2行、および4行の線形結合を選んだ場合の「整数指定なし」および「整数指定あり」の復号結果をそれぞれ示している。 The results of the above (a), (b) and (c) are shown in Tables 3 to 8.
Tables 3 and 4 show the decoding results of “no integer designation” and “integer designation” when the linear combination of the first and third rows of the parity check matrix is selected as the parity check, respectively.
Tables 5 and 6 show the decoding results of “no integer designation” and “integer designation”, respectively, when a linear combination of two and three rows of the parity check matrix is selected as the parity check.
Tables 7 and 8 show the decoding results of “no integer designation” and “integer designation”, respectively, when linear combination of 1 row, 2 rows, and 4 rows of the parity check matrix is selected as the parity check.
以上説明したように、短縮ハミング符号の復号についても孤立変数ノードを整数指定する制限を加えてMILPによる解を求めることで、RPC検索過程は不要となり、ALP復号方法の実装がより簡単になる。また、孤立変数ノードを整数にするという条件を加えて評価を行うことで、少ない評価回数で解にたどり着くことが可能となるので、LPによる復号における演算時間の短縮が可能となる。
As described above, the decoding of the shortened Hamming code is also performed by obtaining the MILP solution by adding the restriction that designates an isolated variable node as an integer, so that the RPC search process becomes unnecessary, and the implementation of the ALP decoding method becomes easier. Further, by performing the evaluation under the condition that the isolated variable node is an integer, it is possible to reach the solution with a small number of evaluations, so that the calculation time in the decoding by LP can be shortened.
[変形例2]
次に、本実施の形態に係るハミング符号のALP復号方法の変形例2について説明する。変形例2では、図24Aで示す検査行列(7,4,3)から生成される拡大ハミング符号(8,4,4)の復号について説明する。 [Modification 2]
Next, a second modification of the ALP decoding method for the Hamming code according to the present embodiment will be described. In the second modification, decoding of the extended Hamming code (8, 4, 4) generated from the parity check matrix (7, 4, 3) illustrated in FIG. 24A will be described.
次に、本実施の形態に係るハミング符号のALP復号方法の変形例2について説明する。変形例2では、図24Aで示す検査行列(7,4,3)から生成される拡大ハミング符号(8,4,4)の復号について説明する。 [Modification 2]
Next, a second modification of the ALP decoding method for the Hamming code according to the present embodiment will be described. In the second modification, decoding of the extended Hamming code (8, 4, 4) generated from the parity check matrix (7, 4, 3) illustrated in FIG. 24A will be described.
拡大ハミング符号とは、図24Bに示すように、図2に示した検査行列に1行1列を加えて検査行列を拡張したハミング符号である。図24Bの例では、ハミング符号(7,4,3)の検査行列(図2)の最後の行に全ての要素が「1」である1行8列を加え(図24Bの矢印)、最後の列にすべての要素が「0」である3行1列を加えている(図24Bの矢印)。
As shown in FIG. 24B, the expanded Hamming code is a Hamming code in which the parity check matrix is extended by adding 1 row and 1 column to the parity check matrix shown in FIG. In the example of FIG. 24B, 1 row and 8 columns in which all elements are “1” are added to the last row of the check matrix (FIG. 2) of the Hamming code (7, 4, 3) (arrow of FIG. 24B), and the last 3 rows and 1 column in which all elements are "0" are added to the column (arrow in FIG. 24B).
本変形例2においても、演算装置102は、拡大ハミング符号について、上述した実施の形態と同様に図17のフローチャートで示すステップS1からステップS6までの復号処理を実行する。演算装置102が検査行列に基づいてステップS1で生成したファクターグラフを図25に示す。図25に示すファクターグラフにおいて、点線は、拡大ハミング符号における新たなチェックノードDによる結合を表している。
Also in the second modification, the arithmetic unit 102 executes the decoding process from step S1 to step S6 shown in the flowchart of FIG. 17 for the expanded Hamming code, similarly to the above-described embodiment. FIG. 25 shows a factor graph generated by the arithmetic unit 102 in step S1 based on the check matrix. In the factor graph shown in FIG. 25, the dotted line represents the connection by the new check node D in the expanded Hamming code.
ここで、本発明との比較のため、LPによって導出された解について説明する。演算装置102が、図6Aに示す復号プログラムに従って実行したLPによる復号結果を示す解xは、次式(5)となった。
x=[1,1/3,0,1/3,1/3,0,0,0]・・・(5) Here, a solution derived by LP will be described for comparison with the present invention. A solution x indicating a decoding result by LP executed by thearithmetic device 102 according to the decoding program shown in FIG. 6A is expressed by the following equation (5).
x = [1, 1/3, 0, 1/3, 1/3, 0, 0, 0] (5)
x=[1,1/3,0,1/3,1/3,0,0,0]・・・(5) Here, a solution derived by LP will be described for comparison with the present invention. A solution x indicating a decoding result by LP executed by the
x = [1, 1/3, 0, 1/3, 1/3, 0, 0, 0] (5)
この復号結果のファクターグラフを図26に示す。整数のノードは「×」で示されている。また、サークルを形成するチェックノードはA-B、A-C、A-D、C-B-D、C-B-A、およびC-B-D-Aとなっている。
The factor graph of the decryption result is shown in FIG. Integer nodes are indicated by “x”. The check nodes forming the circle are AB, AC, AD, CBD, CBA, and CBDA.
ここで、非特許文献5に記載のRPC検索を行う。
図24に示す検査行列の列を、上式(5)で示されるLPによる解xに従って、分数;ゼロ;1の順に並べ替える。並べ替えた行列A1を図27に示す。 Here, the RPC search described inNon-Patent Document 5 is performed.
The columns of the parity check matrix shown in FIG. 24 are rearranged in the order of fraction; zero; 1 in accordance with the solution x by LP shown in the above equation (5). The rearranged matrix A 1 is shown in FIG.
図24に示す検査行列の列を、上式(5)で示されるLPによる解xに従って、分数;ゼロ;1の順に並べ替える。並べ替えた行列A1を図27に示す。 Here, the RPC search described in
The columns of the parity check matrix shown in FIG. 24 are rearranged in the order of fraction; zero; 1 in accordance with the solution x by LP shown in the above equation (5). The rearranged matrix A 1 is shown in FIG.
図28は、並べ替えた行列A1より求められた行列rref(A1)を示す。図28において、行列の上に示す数字は図24Aの検査行列の列に対応する。図28に示す行列rref(A1)の第1行目よりチェックノードが満たすべき拘束条件の不等式の1つは、
x1-x2-x6-x7≦0
であり、上式(5)で示されるLPによる復号結果を示す解xは上記条件を満たさない。RPC(サークルA-Cに対応して)として、図6Aおよび図6Bに示す行列Aに[1,-1,0,0,0,-1,-1,0]を挿入し、行列bには「0」を挿入し、LPによる復号を行う。 FIG. 28 shows a matrix rref (A 1 ) obtained from the rearranged matrix A 1 . In FIG. 28, the numbers shown above the matrix correspond to the columns of the parity check matrix in FIG. 24A. From the first row of the matrix rref (A 1 ) shown in FIG.
x 1 −x 2 −x 6 −x 7 ≦ 0
The solution x indicating the decoding result by LP shown in the above equation (5) does not satisfy the above condition. As RPC (corresponding to circles AC), [1, -1,0,0,0, -1, -1,0] is inserted into the matrix A shown in FIGS. 6A and 6B, and the matrix b is inserted. Inserts “0” and performs LP decoding.
x1-x2-x6-x7≦0
であり、上式(5)で示されるLPによる復号結果を示す解xは上記条件を満たさない。RPC(サークルA-Cに対応して)として、図6Aおよび図6Bに示す行列Aに[1,-1,0,0,0,-1,-1,0]を挿入し、行列bには「0」を挿入し、LPによる復号を行う。 FIG. 28 shows a matrix rref (A 1 ) obtained from the rearranged matrix A 1 . In FIG. 28, the numbers shown above the matrix correspond to the columns of the parity check matrix in FIG. 24A. From the first row of the matrix rref (A 1 ) shown in FIG.
x 1 −x 2 −x 6 −x 7 ≦ 0
The solution x indicating the decoding result by LP shown in the above equation (5) does not satisfy the above condition. As RPC (corresponding to circles AC), [1, -1,0,0,0, -1, -1,0] is inserted into the matrix A shown in FIGS. 6A and 6B, and the matrix b is inserted. Inserts “0” and performs LP decoding.
LPによる復号結果を示す解xは、
x=[1,2/3,0,1/3,0,1/3,0,0]・・・(6)
となった。 The solution x indicating the decoding result by LP is
x = [1, 2/3, 0, 1/3, 0, 1/3, 0, 0] (6)
It became.
x=[1,2/3,0,1/3,0,1/3,0,0]・・・(6)
となった。 The solution x indicating the decoding result by LP is
x = [1, 2/3, 0, 1/3, 0, 1/3, 0, 0] (6)
It became.
ここで再び、図24に示す検査行列の列を上式(6)で示される復号結果に従って、分数;ゼロ;1の順に並べ変える。並べ替えた行列A1を図29に示す。さらに、行列A1のrrefを求める。図30に行列rref(A1)を示す。図30の行列の上に示す数字は図24の検査行列の列に対応する。
Here, again, the columns of the parity check matrix shown in FIG. 24 are rearranged in the order of fraction; zero; 1 in accordance with the decoding result represented by the above equation (6). The rearranged matrix A 1 is shown in FIG. Further, rref of the matrix A 1 is obtained. FIG. 30 shows the matrix rref (A 1 ). The numbers shown above the matrix in FIG. 30 correspond to the columns of the parity check matrix in FIG.
この行列rref(A1)の第1行目より、チェックノードが満たすべき拘束条件の不等式の1つは、
x1-x2-x3-x8≦0
であるが、上式(6)で示されるLPによる復号結果を示す解xは、上記条件を満たさない。 From the first row of the matrix rref (A 1 ), one of the constraint inequalities that the check node should satisfy is
x 1 −x 2 −x 3 −x 8 ≦ 0
However, the solution x indicating the decoding result by LP shown in the above equation (6) does not satisfy the above condition.
x1-x2-x3-x8≦0
であるが、上式(6)で示されるLPによる復号結果を示す解xは、上記条件を満たさない。 From the first row of the matrix rref (A 1 ), one of the constraint inequalities that the check node should satisfy is
x 1 −x 2 −x 3 −x 8 ≦ 0
However, the solution x indicating the decoding result by LP shown in the above equation (6) does not satisfy the above condition.
さらに、図6Aおよび図6Bに示す行列Aに[1,-1,-1,0,0,0,-1]を挿入し、行列bに「0」を挿入して再度評価する。なお、行列Aに[1,-1,-1,0,0,0,-1]を加えることは、チェックノードA+CとA+Dを加えたものに等しい。
Further, [1, -1, -1,0,0,0, -1] is inserted into the matrix A shown in FIGS. 6A and 6B, and “0” is inserted into the matrix b, and the evaluation is performed again. Note that adding [1, -1, -1, 0, 0, 0, -1] to the matrix A is equivalent to adding check nodes A + C and A + D.
復号結果を示す解xは、
x=[1,4/3,1/4,1/4,0,1/4,0,0]・・・(7)
となった。上式(7)で示される復号結果にしたがって、図24Aに示す検査行列の列を組み替えると図31に示す行列A1で表される。 The solution x indicating the decryption result is
x = [1, 4/3, 1/4, 1/4, 0, 1/4, 0, 0] (7)
It became. When the columns of the parity check matrix shown in FIG. 24A are rearranged according to the decoding result shown by the above equation (7), the matrix A 1 shown in FIG. 31 is obtained.
x=[1,4/3,1/4,1/4,0,1/4,0,0]・・・(7)
となった。上式(7)で示される復号結果にしたがって、図24Aに示す検査行列の列を組み替えると図31に示す行列A1で表される。 The solution x indicating the decryption result is
x = [1, 4/3, 1/4, 1/4, 0, 1/4, 0, 0] (7)
It became. When the columns of the parity check matrix shown in FIG. 24A are rearranged according to the decoding result shown by the above equation (7), the matrix A 1 shown in FIG. 31 is obtained.
さらに図31に示す行列A1よりrrefを求めると図32に示す行列rref(A1)が得られる。図32において行列の上に示す数字は、図24の検査行列の列に対応する。図32に示すように、RPCは存在しないことが示され、上式(7)で示される復号結果の解が確定される。
Further, when rref is obtained from the matrix A 1 shown in FIG. 31, a matrix rref (A 1 ) shown in FIG. 32 is obtained. The numbers shown above the matrix in FIG. 32 correspond to the columns of the check matrix in FIG. As shown in FIG. 32, it is indicated that there is no RPC, and the solution of the decoding result represented by the above equation (7) is determined.
ここで、図24Aに示す検査行列のファクターグラフ(図25)において、変数ノードx1,x3,x7,x8を整数とする制限を加えると、整数の変数ノードはRPC検索において「×」で示されるため、サークルには寄与できない。このことから、ファクターグラフは、実質的には、例えば、図16に示すハミング符号(7,4,3)におけるファクターグラフの変数ノードx2,x4,x5, x6にチェックノードDを接続した構造となっている。
Here, in the factor graph (FIG. 25) of the parity check matrix shown in FIG. 24A, if the variable nodes x 1 , x 3 , x 7 , x 8 are restricted to be integers, the integer variable nodes are “×” in the RPC search. It cannot be contributed to the circle. From this, the factor graph substantially includes, for example, check nodes D at variable nodes x 2 , x 4 , x 5, and x 6 of the factor graph in the Hamming code (7, 4 , 3 ) shown in FIG. It has a connected structure.
変数ノードを整数とする制限を加えた場合の、1回目のMILPによる復号結果は、
x=[1,1/3,0,1/3,1/3,0,0,0]
となり、変数ノードを整数とする制限を加えていない場合(式(5))と同じ結果となった。同様にRPC検索を行って評価すると、復号結果は、
x=[1,2/3,0,1/3,0,1/3,0,0]
となり、これも変数ノードを整数とする制限を加えていない場合(式(6))と同じ結果となった。再度RPC検索を行って評価すると、復号結果は、
x=[0,0,0,0,0,0,0,0]となり正解に到達した。 When adding the restriction that the variable node is an integer, the decoding result by the first MILP is as follows:
x = [1, 1/3, 0, 1/3, 1/3, 0, 0, 0]
Thus, the same result as in the case where the variable node is not limited to an integer (equation (5)) was obtained. Similarly, when an RPC search is performed and evaluated, the decryption result is
x = [1, 2/3, 0, 1/3, 0, 1/3, 0, 0]
This is also the same result as when the variable node is not limited to an integer (equation (6)). When the RPC search is performed again and evaluated, the decryption result is
x = [0,0,0,0,0,0,0,0] and the correct answer was reached.
x=[1,1/3,0,1/3,1/3,0,0,0]
となり、変数ノードを整数とする制限を加えていない場合(式(5))と同じ結果となった。同様にRPC検索を行って評価すると、復号結果は、
x=[1,2/3,0,1/3,0,1/3,0,0]
となり、これも変数ノードを整数とする制限を加えていない場合(式(6))と同じ結果となった。再度RPC検索を行って評価すると、復号結果は、
x=[0,0,0,0,0,0,0,0]となり正解に到達した。 When adding the restriction that the variable node is an integer, the decoding result by the first MILP is as follows:
x = [1, 1/3, 0, 1/3, 1/3, 0, 0, 0]
Thus, the same result as in the case where the variable node is not limited to an integer (equation (5)) was obtained. Similarly, when an RPC search is performed and evaluated, the decryption result is
x = [1, 2/3, 0, 1/3, 0, 1/3, 0, 0]
This is also the same result as when the variable node is not limited to an integer (equation (6)). When the RPC search is performed again and evaluated, the decryption result is
x = [0,0,0,0,0,0,0,0] and the correct answer was reached.
以上説明した拡大ハミング符号の復号結果について、「整数指定なし」、および「整数指定あり」の場合の結果をそれぞれ表9および表10に示す。
Regarding the decoding results of the extended Hamming code described above, the results for “no integer designation” and “integer designation” are shown in Table 9 and Table 10, respectively.
以上説明したように、変形例2によれば、拡大ハミング符号の復号においても一部の変数ノードを整数とする制限を加えること、すなわち、検査行列の孤立変数ノードと新たに加わったチェックノードの孤立変数ノードを整数とする制限を加えることで、復号結果の解にたどりつくことができる。
As described above, according to the second modification, even in the decoding of the extended Hamming code, a restriction that some variable nodes are integers is added, that is, the isolated variable nodes of the check matrix and the newly added check nodes are added. By adding the restriction that the isolated variable node is an integer, the solution of the decoding result can be reached.
なお、図5に示すチェックノードに属する変数ノードが満たすべき式を満足する変数ノードの組み合わせは復号結果には何ら影響も与えない。つまり、そのような変数ノードの組み合わせの効果を取り入れてLPにより復号しても復号結果は何ら変わらないことを示している。
Note that the combination of variable nodes that satisfy the expression to be satisfied by the variable nodes belonging to the check node shown in FIG. 5 has no effect on the decoding result. That is, even if the effect of such a combination of variable nodes is taken in and decoding by LP, the decoding result does not change at all.
復号結果に影響を与えるのは、図5に示す関係を満たさないパリティチェックの組み合わせだけということができる。変数ノードに対する整数指定はRPCの存在を保証するので、非特許文献5に記載されているRPC検索過程を用いる必要がなく、任意のパリティチェックの組み合わせが図5に示す関係を満足するかを確認するだけで足りる。
It can be said that only the combination of parity checks that do not satisfy the relationship shown in FIG. 5 affects the decoding result. Since the integer specification for the variable node guarantees the existence of RPC, it is not necessary to use the RPC search process described in Non-Patent Document 5, and it is confirmed whether any parity check combination satisfies the relationship shown in FIG. Just do it.
以上、本発明の適応的線形計画復号方法における実施の形態について説明したが、本発明は説明した実施の形態に限定されるものではなく、請求項に記載した発明の範囲において当業者が想定し得る各種の変形を行うことが可能である。
The embodiments of the adaptive linear program decoding method of the present invention have been described above. However, the present invention is not limited to the described embodiments, and those skilled in the art assume the scope of the invention described in the claims. Various modifications can be made.
1…復号装置、101…バス、102…演算装置、103…CPU、104…主記憶装置、105…通信制御装置、106…外部記憶装置、106a…データ記憶部、106b…設定情報記憶部、106c…プログラム格納部、107…表示装置、NW…通信ネットワーク。
DESCRIPTION OF SYMBOLS 1 ... Decoding device, 101 ... Bus, 102 ... Arithmetic unit, 103 ... CPU, 104 ... Main storage device, 105 ... Communication control device, 106 ... External storage device, 106a ... Data storage unit, 106b ... Setting information storage unit, 106c ... Program storage unit 107 ... Display device, NW ... Communication network.
Claims (3)
- 演算装置と、記憶装置と、通信制御装置とを備える復号装置によって実行される適応的線形計画復号方法であって、
前記通信制御装置を介して受信される所定の検査行列で定義されるハミング符号のファクターグラフを生成して前記記憶装置に記憶するファクターグラフ生成ステップと、
前記演算装置が、前記検査行列の複数列にそれぞれ対応する変数ノードの拘束条件を、前記記憶装置に記憶されている変数ノードが満たすべき条件式に基づいて導出する拘束条件導出ステップと、
前記演算装置が、前記記憶装置に記憶されている前記ファクターグラフから前記検査行列の複数行にそれぞれ対応する複数のチェックノードに接続している前記変数ノードのうち、1つのチェックノードに接続している孤立変数ノードを検出する孤立変数ノード検出ステップと、
前記演算装置が、前記孤立変数ノードを整数の値とする制限を加える制限付加ステップと、
前記演算装置が、前記拘束条件と前記制限が加えられた前記孤立変数ノードに関する情報とに基づいて、混合整数線形計画法により解を算出して算出結果を前記ハミング符号の復号結果として前記記憶装置に記憶する復号結果算出ステップと
を備えることを特徴とする適応的線形計画復号方法。 An adaptive linear program decoding method executed by a decoding device including an arithmetic device, a storage device, and a communication control device,
A factor graph generating step of generating a factor graph of a Hamming code defined by a predetermined check matrix received via the communication control device and storing the factor graph in the storage device;
A constraint condition deriving step in which the arithmetic device derives constraint conditions of variable nodes respectively corresponding to a plurality of columns of the parity check matrix based on conditional expressions to be satisfied by the variable nodes stored in the storage device;
The arithmetic device is connected to one check node among the variable nodes connected to a plurality of check nodes respectively corresponding to a plurality of rows of the parity check matrix from the factor graph stored in the storage device. An isolated variable node detecting step for detecting an isolated variable node;
A limit adding step in which the arithmetic unit adds a limit to the isolated variable node as an integer value;
The arithmetic unit calculates a solution by a mixed integer linear programming based on the constraint condition and the information on the isolated variable node to which the restriction is added, and the calculation result is used as the decoding result of the Hamming code. And a decoding result calculation step stored in the adaptive linear programming decoding method. - 請求項1に記載の適応的線形計画復号方法において、
前記ハミング符号は、前記検査行列に基づく拡大ハミング符号であり、
前記制限付加ステップは、前記検査行列の前記孤立変数ノードおよび前記拡大ハミング符号について前記孤立変数ノード検出ステップで検出された孤立変数ノードを整数の値とする制限を加える
ことを特徴とする適応的線形計画復号方法。 The adaptive linear program decoding method according to claim 1,
The Hamming code is an extended Hamming code based on the parity check matrix;
The limit adding step adds a limit with the isolated variable node detected in the isolated variable node detecting step as an integer value for the isolated variable node and the extended Hamming code of the parity check matrix. Planned decryption method. - 請求項1または請求項2に記載の適応的線形計画復号方法において、
前記復号結果算出ステップは、前記検査行列の行、およびその行の線形結合により得られる任意の新たな行を用いて前記混合整数線形計画法による解を算出することを特徴とする適応的線形計画復号方法。 The adaptive linear program decoding method according to claim 1 or 2,
The decoding result calculation step calculates a solution by the mixed integer linear programming using a row of the parity check matrix and an arbitrary new row obtained by linear combination of the rows. Decryption method.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-101371 | 2018-05-28 | ||
JP2018101371A JP2019208097A (en) | 2018-05-28 | 2018-05-28 | Adaptive linear programming decoding method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019230371A1 true WO2019230371A1 (en) | 2019-12-05 |
Family
ID=68697538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/019128 WO2019230371A1 (en) | 2018-05-28 | 2019-05-14 | Adaptive linear programming decoding method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2019208097A (en) |
WO (1) | WO2019230371A1 (en) |
-
2018
- 2018-05-28 JP JP2018101371A patent/JP2019208097A/en active Pending
-
2019
- 2019-05-14 WO PCT/JP2019/019128 patent/WO2019230371A1/en active Application Filing
Non-Patent Citations (4)
Title |
---|
FALSAFAIN HOSSEIN ET AL.: "Stopping Set Elimination by Parity-Check Matrix Extension via Integer Linear Programming", IEEE TRANSACTIONS ON COMMUNICATIONS, vol. 63, no. 5, 31 March 2015 (2015-03-31), pages 1533 - 1540, XP011581511, DOI: 10.1109/TCOMM.2015.2418263 * |
FUJIE TETSUYA: "Introduction to formulation by integer programming", OPERATIONS RESEARCH SOCIETY OF JAPAN, vol. 57, no. 4, 2012, pages 190 - 197 * |
TAGHAVI H. MOHAMMAD ET AL.: "Efficient Implementation of Linear Programming Decoding", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 57, no. 9, 30 August 2011 (2011-08-30), pages 5960 - 5982, XP011382319, DOI: 10.1109/TIT.2011.2161920 * |
ZHANG XIAOJIE ET AL.: "Adaptive cut generation for improved linear programming decoding of binary linear codes", 2011 IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY PROCEEDINGS, vol. 58, no. 10, 3 October 2011 (2011-10-03), pages 1638 - 1642, XP080505324 * |
Also Published As
Publication number | Publication date |
---|---|
JP2019208097A (en) | 2019-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3602423B1 (en) | Magic state distillation with low space overhead and asymptotic input count | |
Zhang et al. | Efficient iterative LP decoding of LDPC codes with alternating direction method of multipliers | |
Giard et al. | Fast low-complexity decoders for low-rate polar codes | |
Morrison | Equivalence for rank-metric and matrix codes and automorphism groups of Gabidulin codes | |
CN1953336B (en) | Method for updating check node in low density parity check decoder | |
TW201933796A (en) | Method for providing soft information with decoder under hard decision hard decoding mode | |
JP2011041256A (en) | Method and decoder for decoding code using message passing shot | |
WO2017113507A1 (en) | Set decoding method and set decoder | |
Huang et al. | Analysis of finite-alphabet iterative decoders under processing errors | |
Dinh et al. | Skew constacyclic codes over finite fields and finite chain rings | |
Horii et al. | Linear programming decoding of binary linear codes for symbol-pair read channel | |
Timokhin et al. | On the improvements of successive cancellation Creeper decoding for polar codes | |
WO2019230371A1 (en) | Adaptive linear programming decoding method | |
Yun et al. | An Alternative Approach Obtaining a Normalization Factor in Normalized Min‐Sum Algorithm for Low‐Density Parity‐Check Code | |
KR102607761B1 (en) | Method and apparatus for generating a decoding position control signal for decoding using polar codes | |
US11201629B2 (en) | Low latency sequential list decoding of polar codes | |
Watanabe et al. | Shortened LDPC codes accelerate OSD decoding performance | |
US20210295153A1 (en) | Learning device | |
JP2010535459A (en) | Coordinate ascent method for linear programming decoding. | |
Süral | An FPGA implementation of successive cancellation list decoding for polar codes | |
KR101976315B1 (en) | Method for constructing polar codes on binary symmetric channel and apparatus therefor | |
CN107534450A (en) | Matrix application device, matrix application method and program | |
JP2008167357A (en) | Decoding method, apparatus and program for decoding low density parity check code data | |
EP4351083A1 (en) | Memory management in a computer system configured for generating a signature and apparatus for implementing the same | |
Alfarano et al. | Construction of LDPC convolutional codes via difference triangle sets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19810396 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19810396 Country of ref document: EP Kind code of ref document: A1 |