A kind of low density parity check code decoding methodTechnical field
The present invention relates to the channel decoding technical field, be specifically related to a kind of low density parity check code decoding method.
Background technology
In communication system, received signal tends to be subjected to the influence that declines in noise, interference and the wireless channel, occurs mistake sometimes.For fear of the received signal mistake, in communication system, adopt the method for chnnel coding usually.At transmitting terminal raw symbol being encoded obtains sending code element, at receiving terminal receiving symbol is deciphered to estimate to send code element.Low density parity check code (LDPC) is because its excellent performance has obtained application more and more widely in practice.LDPC has the following advantages: decoding complexity is lower, and because the computation complexity of an iteration is very low in the LDPC decoding algorithm, therefore can be by changing the optimal compromise that maximum iteration time obtains complexity and performance, and the decoding of LDPC still is highly-parallel; 1 probability is linear to be increased the minimum range of binary system LDPC to approach along with code length; Be easy to the superior LDPC of design performance according to any code length and encoding rate; LDPC does not have " mistake floor " phenomenon, and this is suitable for using the occasion of short frame.
LDPC is a kind of linear block codes, and its name derives from the sparse property of its check matrix, that is: in its check matrix in every row and the every row number of nonzero element very rare, and the position of nonzero element is random distribution.For code length is that n, information bit number are the LDPC of k, and this LDPC can be by its check matrix H(n-k) * nAll code element X of LDPC are described1 * n, satisfy XHT=0.Each line display of check matrix verification constraint, wherein the code element variable x of all nonzero element correspondencesj(j=1,2 ..., n) constitute a checksum set, represent with a check equations; The verification constraint that a code element variable participates in is shown in each tabulation of check matrix, when column element is non-vanishing, represents that this code element variable has participated in the verification constraint of this row.
LDPC is divided into canonical LDPC and non-canonical LDPC.The check matrix H of canonical LDPC satisfies following three conditions: every row of (1) H has λ 1, and λ 〉=3; (2) H's whenever shows ρ 1; (3) compare with the line number (n-k) of code length n and matrix, the value of ρ and λ is all very little.Canonical LDPC can with (n, λ ρ) represent, as: if a canonical LDPC code table is shown (8,4,2), then its check matrix H is:
If the number of " 1 " is not identical entirely in each row of the check matrix H of LDPC or each row, then this LDPC is non-canonical LDPC.Usually, for the convenience that studies a question, the check matrix H of LDPC can utilize the Tanner graph model to be expressed as a bigraph (bipartite graph), as shown in Figure 1, circle point expression variable node among the figure, square dot is represented constraint, that is: every row of the corresponding check matrix H of circular point, every row of the corresponding check matrix H of square dot, the line between circular point and the square dot is represented non-0 element in the check matrix H.
A kind of interpretation method that the LDPC sign indicating number is commonly used is based on the iterative decoding scheme of probability, is exactly in fact belief propagation (BeliefPropagation) iterative decoding algorithm of attention extremely at present, also claims and amasss (Sum-Product) iterative decoding algorithm (SPA).With long-pending iterative decoding algorithm be a kind of iterative decoding algorithm, take turns in the iterative process in each of this algorithm, need between variable node and check-node, transmit about the confidential information of each node.For example: the confidential information combined calculation that the code element variable that is based on the variable node correspondence by variable node to the confidential information of check-node transmission passes in last once iterative process through the observed value behind the channel with by the check-node of adjacency.
For check matrix is HM * nThe LDPC sign indicating number, for convenience, provide as giving a definition:
The transmission code element is: U=[u1, u2..., un];
Receiving symbol is: Y=[y1, y2..., yn];
M (j) ≡ { i:HI, j=1} is illustrated in the set of the check-node that links to each other with variable node j on the bigraph (bipartite graph);
N (i) ≡ { j:HI, j=1} is illustrated in the set of the variable node that links to each other with check-node i on the bigraph (bipartite graph);
M (j) i represent to gather the subclass of removing among the M (j) behind the check-node i;
N (i) j represent to gather the subclass of removing among the N (i) behind the variable node j;
qJ → i(x), { 0,1} represents that expression variable node j that variable node j sends to check-node i is 0 or 1 probabilistic information to x ∈;
rI → j(x), { 0,1} represents that expression variable node j that check-node i sends to variable node j is 0 or 1 probabilistic information to x ∈;
The log-likelihood ratio LLR of binary system stochastic variable A is defined as:
Wherein, P (A=x), { 0,1} represents that stochastic variable A gets the probability of x value to x ∈.In addition, also be defined as follows LLRs:
Variable node j is to the likelihood ratio of check-node i:
Check-node i is to the likelihood ratio of variable node j:
In above each definition, i=1,2 ..., m, j=1,2 ..., n, and m is the number of check-node, n is the number of variable node.
LDPC decoding is promptly by receiving symbol Y=[y1, y2..., yn] and obtain sending the estimated value of code element according to the LDPC decoding algorithmFig. 2 is existing LDPC decoding flow chart, and as shown in Figure 2, its concrete steps are as follows:
Step 201: set maximum iteration time K, to each variable node j (j=1,2 ..., likelihood ratio n) is carried out initialization, simultaneously variable node is carried out initialization to likelihood ratio, the check-node of check-node to the likelihood ratio of variable node.
Particularly, variable node j (j=1,2 ..., likelihood ratio n) can be initialized as: L (u0, j)=log{P (u0, j=0|yj)/P (u0, j=1|yj); Simultaneously, to satisfying HI, j=1 (i, j), variable node j (j=1,2 ..., n) to check-node i (i=1,2 ..., likelihood ratio m) can be initialized as: λ0, j → i(u0, j)=L (u0, j), check-node i (i=1,2 ..., m) to variable node j (j=1,2 ..., likelihood ratio n) can be initialized as: Λ0, i → j(u0, j)=0.
Step 202: record current iteration number of times k.
Step 203: calculate current check-node i (i=1,2 ..., m) to variable node j (j=1,2 ..., likelihood ratio n).
Particularly, for i, j ∈ N (i), current check-node i (i=1,2 ..., m) to variable node j (j=1,2 ..., the computing formula of likelihood ratio n) is:
Wherein, λK-1, j ' → i(uK-1, j ') be the variable node j ' that obtains in the k-1 time iterative process likelihood ratio to check-node i.
Step 204: calculate current variable node j (j=1,2 ..., n) to check-node i (i=1,2 ..., likelihood m) when variable node j (j=1,2 ..., n) from likelihood ratio.
Particularly, for i, j ∈ M (j), variable node j (j=1,2 ..., n) to check-node i (i=1,2 ..., the computing formula of likelihood ratio m) is:
Variable node j (j=1,2 ..., the computing formula from likelihood ratio n) is:
Wherein, L (uK-1, j) be the likelihood ratio of the variable node j that obtains in the k-1 time iterative process, ΛK-1, i ' → j(uK-1, j) be the check-node i ' that obtains in the k-1 time iterative process likelihood ratio to variable node j.
Step 205: according to variable node j (j=1,2 ..., n) calculate to send the current estimated value of code element U from likelihood ratio
Particularly, if λK, j(uK, j) 〉=0 (j=1,2 ..., n) set up, then uK, jEstimated valueOtherwise,
Step 206: judge check equationsWhether set up, if,This flow process finishes; Otherwise, execution instep 207.
Step 207: judge the maximum iteration time K whether current iteration number of times k equals to set, if,This flow process finishes; Otherwise, execution instep 208.
Step 208: go tostep 202 after iterations k added 1.
Find by l-G simulation test: in signal to noise ratio one regularly,, proceed iteration again the error rate is obviously reduced, even the situation of error rate fluctuation can occur when through after the iteration of certain number of times to flow process shown in Figure 2.Therefore, in check equationsBe false and the error rate when fluctuation occurring,, not only can not improve the decoding precision, can increase decoding delay on the contrary if proceed iteration.
Summary of the invention
In view of this, main purpose of the present invention is to provide a kind of LDPC interpretation method, deciphers precision to improve, and reduces decoding delay.
For achieving the above object, technical scheme of the present invention is achieved in that
A kind of LDPC interpretation method, this method preestablishes maximum iteration time, calculates the initialization value of iterative decoding likelihood ratio, comprising:
A, record current iteration number of times according to the iterative decoding likelihood that obtains in the preceding iterative process initialization value of iterative decoding likelihood ratio when, calculate current iteration decoding likelihood ratio; Calculate the estimated value of current transmission code element according to current iteration decoding likelihood ratio;
B, judge whether the estimated value of current transmission code element satisfies check equations, if satisfy execution in step C; If do not satisfy, judge whether the current iteration number of times equals maximum iteration time, if equal, execution in step C if be not equal to, judges whether the current error rate fluctuation occurs, if occur, execution in step C if do not occur, goes to steps A;
C, with the estimated value of current transmission code element as sending code element, this flow process finishes.
The described judgement current iteration of step B number of times is not equal to and further comprises after the maximum iteration time: calculate and preserve the number of the nonzero element in the estimated value of current transmission code element,
Step B is described to judge whether the current error rate fluctuation occurs and be specially: judge (Zk-ZK-1) * (ZK-1-ZK-2Whether set up)<0, if set up, judges that fluctuation appears in the error rate; If be false, judge that fluctuation does not appear in the error rate,
Wherein, ZkBe the number of nonzero element in the estimated value of described current transmission code element, ZK-1Be the number of nonzero element in the estimated value of the transmission code element that obtains in the preceding iterative process, ZK-2Be the number of nonzero element in the estimated value of the transmission code element that obtains in preceding twice iterative process, k is current iteration number of times and k 〉=3.
The described judgement current iteration of step B number of times is not equal to and further comprises after the maximum iteration time: preserves the estimated value of current transmission code element, calculates the Hamming distance of the estimated value of the transmission code element that obtains in the estimated value of current transmission code element and the preceding iterative process,
Step B is described to judge whether the current error rate fluctuation occurs and be specially: judge (Dk-DK-1) * (DK-1-DK-2Whether set up)<0, if set up, judges that fluctuation appears in the error rate; If be false, judge that fluctuation does not appear in the error rate,
Wherein, DkBe the Hamming distance of the estimated value of the transmission code element that obtains in the estimated value of described current transmission code element and the preceding iterative process, DK-1Be the Hamming distance of the estimated value of the transmission code element that obtains in the estimated value of the transmission code element that obtains in the preceding iterative process and preceding twice iterative process, DK-2Be the Hamming distance of the estimated value of the transmission code element that obtains in the estimated value of the transmission code element that obtains in preceding twice iterative process and first three time iterative process, k is current iteration number of times and k 〉=4.
The initialization value of described calculating iterative decoding likelihood ratio is specially: the initialization value of the initialization value, variable node that calculates the likelihood ratio of each variable node to the initialization value of the likelihood ratio of check-node and check-node to the likelihood ratio of variable node;
Steps A is described according to the iterative decoding likelihood that obtains in the preceding iterative process initialization value of iterative decoding likelihood ratio when, calculates current iteration decoding likelihood ratio and is specially: calculate the likelihood ratio of current check-node to variable node according to the preceding variable node that once obtains to the likelihood ratio of check-node; According to the preceding check-node that once obtains to the likelihood of the variable node initialization value of variable node likelihood ratio when, calculate current variable node to the likelihood of check-node when current variable node from likelihood ratio;
The described estimated value of calculating current transmission code element according to current iteration decoding likelihood ratio of steps A is specially: calculate the estimated value of current transmission code element according to current variable node from likelihood ratio.
The initialization value of the likelihood ratio of described each variable node of calculating is specially:
L(u0,j)=log{P(u0,j=0|yj)/P(u0,j=1|yj)},j=1,2,...,n,
Wherein, L (u0, j) be the initialization value of the likelihood ratio of variable node j, yjBe j receiving symbol value, P (u0, j=0|yj) represent that j receiving symbol value is yjThe time j to send symbol value be 0 probability, P (u0, j=1|yj) represent that j receiving symbol value is yjThe time j to send symbol value be 1 probability, n is the number of variable node.
Described calculating variable node is specially to the initialization value of the likelihood ratio of check-node:
To satisfying HI, j=1 i, j, variable node j to the initialization value of the likelihood ratio of check-node i is: λ0, j → i(u0, j)=log{P{u0, j=0|yj)/P (u0, j=1|yj, i=1,2 ..., m, j=1,2 ..., n,
Wherein, HI, jBe capable j the element of i of check matrix, λ0, j → i(u0, j) be the initialization value of variable node j to the likelihood ratio of check-node i, yjBe j receiving symbol value, P (u0, j=0|yj) represent that j receiving symbol value is yjThe time j to send symbol value be 0 probability, P (u0, j=1|yj) represent that j receiving symbol value is yjThe time j to send symbol value be 1 probability, n is the number of variable node, m is the number of check-node.
Described calculation check node is specially to the initialization value of the likelihood ratio of variable node:
To satisfying HI, j=1 i, j, check-node i to the initialization value of the likelihood ratio of variable node j is: Λ0, i → j(u0, j)=0,
Wherein, HI, jBe capable j the element of i of check matrix, Λ0, i → j(u0, j) being the initialization value of check-node i to the likelihood ratio of variable node j, m is the number of check-node, n is the number of variable node, i=1,2 ..., m, j=1,2 ..., n.
The current check-node of the described calculating of steps A is specially to the likelihood ratio of variable node:
Wherein, ΛK, i → j(uK, j) be the likelihood ratio of current check-node i to variable node j, λK-1, j ' → i(uK-1, j ') the variable node j ' that obtains in the preceding iterative process of expression is to the likelihood ratio of check-node i, N (i) is illustrated in the set of the variable node that links to each other with check-node i on the bigraph (bipartite graph), and N (i) j is illustrated in the subclass of removing in the set of the variable node that links to each other with check-node i on the bigraph (bipartite graph) behind the variable node j, m is the number of check-node, and n is the number of variable node, and k is the current iteration number of times, k-1 is a preceding iterations, i=1,2, ..., m, j=1,2, ..., n.
The current variable node of the described calculating of steps A is specially to the likelihood ratio of check-node:
Wherein, λK, j → i(uK, j) be the likelihood ratio of current variable node j to check-node i, L (uK-1, j) likelihood ratio of the variable node j that obtains in the preceding iterative process of expression, ΛK-1, i ' → j(uK-1, j) the check-node i ' that obtains in the preceding iterative process of expression is to the likelihood ratio of variable node j, M (j) is illustrated in the set of the check-node that links to each other with variable node j on the bigraph (bipartite graph), and M (j) i is illustrated in the subclass of removing in the set of the check-node that links to each other with variable node j on the bigraph (bipartite graph) behind the check-node i, n is the number of variable node, and m is the number of check-node, and k is the current iteration number of times, k-1 is a preceding iterations, i=1,2, ..., m, j=1,2, ..., n.
Being specially of the steps A current variable node of described calculating from likelihood ratio:
The estimated value of the current transmission code element of described calculating is specially:
Judge λ
K, j(u
K, j) 〉=0, j=1,2 ..., whether n sets up, if,
Otherwise,
Wherein, λK, j(uK, j) expression current variable node j from likelihood ratio, L (uK-1, j) likelihood ratio of the variable node j that obtains in the preceding iterative process of expression, ΛK-1, i → j(uK-1, j) the check-node i that obtains in the preceding iterative process of expression is to the likelihood ratio of variable node j, M (j) is illustrated in the set of the check-node that links to each other with variable node j on the bigraph (bipartite graph),Be current j estimated value that sends code element, n is the number of variable node, and k is the current iteration number of times, and k-1 is a preceding iterations.
Compared with prior art, provided by the present inventionly in the current iteration process, obtain sending the symbol estimation value, and judging that current transmission symbol estimation value does not satisfy after check equations and current iteration number of times be not equal to maximum iteration time, judge further whether the current error rate fluctuation occurs, if occur, as sending code element, this flow process finishes with the estimated value of current transmission code element; Otherwise, proceed the next iteration process, make when fluctuation appears in the error rate, in time stop iterative process, improved the decoding precision, reduced decoding delay.Particularly, can judge whether the error rate fluctuation occurs by the difference of nonzero element number in the transmission symbol estimation value that obtains in adjacent twice iterative process, the difference of Hamming distance that also can be by the transmission symbol estimation value that obtains in the adjacent iterative process in twos judges whether the error rate fluctuation occurs.
Description of drawings
Fig. 1 is the Tanner schematic diagram of the check matrix of LDPC;
Fig. 2 is existing LDPC decoding flow chart;
Fig. 3 is the flow chart of LDPC decoding provided by the invention;
Fig. 4 is the flow chart of the specific embodiment one of LDPC decoding provided by the invention;
Fig. 5 is the flow chart of the specific embodiment two of LDPC decoding provided by the invention.
Embodiment
The present invention is further described in more detail below in conjunction with drawings and the specific embodiments.
Fig. 3 is the flow chart of LDPC decoding provided by the invention, and as shown in Figure 3, its concrete steps are as follows:
Step 301: set maximum iteration time K, according to receiving symbol Y=[y1, y2..., yn] to each variable node j (j=1,2 ..., likelihood ratio n) is carried out initialization, simultaneously variable node is carried out initialization to likelihood ratio, the check-node of check-node to the likelihood ratio of variable node.
Here, initializing variable node j (j=1,2 ..., likelihood ratio n), variable node j (j=1,2, ..., n) to check-node i (i=1,2 ..., likelihood m) is check-node i (i=1,2 when, ..., m) to variable node j (j=1,2 ..., likelihood ratio n) is same as the prior art.
Step 302: record current iteration number of times k.
Step 303: calculate current check-node i (i=1,2 ..., m) to variable node j (j=1,2 ..., likelihood ratio n).
This step is same as the prior art.
Step 304: calculate current variable node j (j=1,2 ..., n) to check-node i (i=1,2 ..., likelihood m) when variable node j (j=1,2 ..., n) from likelihood ratio.
This step is same as the prior art.
Step 305: according to variable node j (j=1,2 ..., n) calculate to send the current estimated value of code element U from likelihood ratio
This step is same as the prior art.
Step 306: judgeWhether set up, if,This flow process finishes; Otherwise, execution in step 307.Wherein, HTTransposed matrix for check matrix H.
Step 307: judge whether current iteration number of times k equals maximum iteration time K, if,This flow process finishes; Otherwise, execution in step 308.
Step 308: judge whether the current error rate fluctuation occurs, if,This flow process finishes; Otherwise, execution instep 309.
Step 309: k adds 1 with iterations, goes to step 302 then.
Fig. 4 is the flow chart of the specific embodiment one of LDPC decoding provided by the invention, and as shown in Figure 4, its concrete steps are as follows:
Step 401~405 are identical with step 301~305.
Step 406: judgeWhether set up, if,This flow process finishes; Otherwise, execution instep 407.
Step 407: judge whether current iteration number of times k equals maximum iteration time K, if,This flow process finishes; Otherwise, execution instep 408.
Step 408: recordThe number Z of middle nonzero elementk
Step 409: judge (Zk-ZK-1) * (ZK-1-ZK-2)<0, whether set up k 〉=3, if,This flow process finishes; Otherwise, execution instep 410.
Here, Z
K-1Represent to obtain in the k-1 time iterative process
The number of middle nonzero element, Z
K-2Represent to obtain in the k-2 time iterative process
The number of middle nonzero element.
Step 410: go to step 402 after iterations k added 1.
When k<3, execution instep 409 is not promptly: after the execution ofstep 408, and direct execution instep 410.
Fig. 5 is the flow chart of the specific embodiment two of LDPC decoding provided by the invention, and as shown in Figure 5, its concrete steps are as follows:
Step 501~505 are identical with step 301~305.
Step 506: judgeWhether set up, if,This flow process finishes; Otherwise, execution instep 507.
Step 507: judge whether current iteration number of times k equals maximum iteration time K, if,This flow process finishes; Otherwise, execution instep 508.
Step 508: calculate and preserve
With
Hamming distance D
kStep 509: judge (Dk-DK-1) * (DK-1-DK-2)<0, whether set up k 〉=4, if,This flow process finishes; Otherwise, execution instep 510.
Here, D
K-1Expression
With
Hamming distance, D
K-2Expression
With
Hamming distance.
Step 510: go to step 502 after iterations k added 1.
When k<4, execution instep 509 is not promptly: after the execution ofstep 508, and direct execution instep 510.
The above only is process of the present invention and method embodiment, in order to restriction the present invention, all any modifications of being made within the spirit and principles in the present invention, is not equal to replacement, improvement etc., all should be included within protection scope of the present invention.