CN107124249B - Method for reducing stack overflow probability of decoder of Fano algorithm - Google Patents
Method for reducing stack overflow probability of decoder of Fano algorithm Download PDFInfo
- Publication number
- CN107124249B CN107124249B CN201710207642.2A CN201710207642A CN107124249B CN 107124249 B CN107124249 B CN 107124249B CN 201710207642 A CN201710207642 A CN 201710207642A CN 107124249 B CN107124249 B CN 107124249B
- Authority
- CN
- China
- Prior art keywords
- node
- fano
- branch
- optimal
- decoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0054—Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
The invention discloses a method for reducing stack overflow probability of a Fano algorithm decoder, which mainly solves the problem that the stack overflow probability of the Fano algorithm decoder is too high. The specific idea of the invention is to increase the observation distance to screen out the optimal node so as to reduce the probability of the decoder entering the wrong path; the second is to determine the reliability of a specific point to modify its Fano metric to reduce the probability of the decoder leaving the correct path. The method comprises the following specific steps: (1) initializing parameters of a decoder; (2) screening out an optimal node; (3) processing the decoding node; (4) judging the shutdown condition; (5) correcting the Fano measurement of a specific point; (6) tightening the threshold; (7) obtaining a backward peeking measurement; (8) reducing the threshold; (9) the observation direction is selected. The invention has the advantages of low complexity of system realization, high decoding speed and low stack overflow probability. The method obviously reduces the stack overflow probability of the Fano algorithm decoder, and improves the decoding speed and the decoding stability of the convolutional code Fano algorithm decoding when the channel is poor.
Description
Technical Field
The invention belongs to the technical field of communication, and further relates to a method for reducing the stack overflow probability of a Fano algorithm decoder in the field of channel coding, which can be used for reducing the stack overflow probability of the Fano algorithm decoder and improving the decoding speed and the decoding stability of the convolutional code Fano algorithm decoding when the channel is poor.
Background
Convolutional codes, proposed by Elias et al in 1955, are a very promising coding method and have found widespread use. The convolutional code decoding method mainly adopts probability decoding. The probability decoding is divided into viterbi decoding and sequence decoding 2 categories.
Viterbi decoding is a maximum likelihood decoding algorithm, which is an optimal probabilistic decoding method. When the constraint length of the code is small, the method has the advantages of high speed, constant calculation amount and simple decoder. Since the introduction, the development has been extremely rapid both theoretically and practically, and the method is widely applied to various data transmission systems, especially satellite communication. However, the complexity of viterbi decoding of convolutional codes increases exponentially and thus cannot be applied to codes that are too large, thereby limiting the error rate of the output of the viterbi decoding to be too low, and thus limiting the applicability of the viterbi decoding method.
The sequence decoding is a quasi-maximum likelihood decoding algorithm, and the decoding complexity is irrelevant to the constraint length of the code, so that the application of a larger code becomes possible, and a lower error rate is obtained. The calculated amount of sequence decoding is changed with the channel interference, so that the average calculated amount is reduced and the decoding speed is accelerated.
The Fano algorithm was proposed by Fano in 1963, and is one of two major algorithms in sequence decoding. The basic principle of decoding is that observation points (branch nodes in the code tree graph) are continuously moved in the code tree graph, Fano metrics of all branches are obtained through comparison calculation of received code groups and code tree branches, the path with the minimum metric on the code tree is selected to advance, and the path with the minimum metric on the code tree is repeatedly searched through front and back detection and advancing and retreating through the total metric value of the path and the preset threshold value, so that an error path is eliminated as early as possible, and the path returns to the correct path as early as possible with the maximum correct probability, and the average calculation amount of a decoder is reduced. Another large algorithm for sequence decoding is the stack decoding algorithm. The Fano algorithm searches for more nodes than the stack decoding algorithm, but the stack decoding algorithm requires a very large amount of storage. In addition, the multi-level decision and nested loop of the Fano algorithm is well suited for hardware implementation.
The disadvantages of the Fano algorithm are: the decoder of the Fano algorithm requires an input buffer to store the received sequence of inputs, to store the later input sequence when the decoder searches for a split point, and to provide the previously received sequence. However, when the channel interference is large, the decoder search time is long, which may cause buffer overflow. Therefore, in the Fano algorithm, the decoding error probability is not a major problem, but the buffer overflow is a major problem.
In the article, "a new convolutional code decoding algorithm based on branch metric" (proceedings of Yunnan university (Nature science edition), 2010,32 (SI): 376-378), gentlewa et al proposed a threshold-adjustable sequence decoding algorithm to overcome the problem of buffer overflow. The algorithm uses the new branch metrics and adjusts the threshold level by transmitting a specific pilot sequence to estimate the noise level. This method has the disadvantage that it inserts pilots, reducing the information rate.
Disclosure of Invention
The present invention is directed to overcome the above-mentioned deficiencies of the prior art, and provides a method for reducing stack overflow probability of a Fano algorithm decoder, which can significantly reduce the average number of searches and the maximum number of searches when channel interference is large in Fano algorithm decoding with only a small amount of calculation and with little performance loss, thereby improving decoding speed and reducing stack overflow probability.
The specific idea for realizing the purpose of the invention is to increase the observation distance to screen out the optimal node so as to reduce the probability of the decoder entering the wrong path; the second is to determine the reliability of a specific point to modify its Fano metric to reduce the probability of the decoder leaving the correct path.
The invention realizes the aim as follows:
(1) decoder parameter initialization:
setting a threshold value of a decoder to be zero, setting Fano measurement of a first node of a code tree to be zero, and setting the first node of the code tree to be a decoding node;
(2) screening out an optimal node:
(2a) reading a code group corresponding to the current decoding node from the sequence buffer;
(2b) respectively calculating Fano measurement of each branch from the current decoding node and Fano measurement of a node reached by each branch from the current decoding node according to the code group corresponding to the current decoding node;
(2c) screening one of the branches as an optimal node according to a candidate point screening method;
(3) and processing the decoding nodes:
(3a) calculating Fano measurement of the optimal node;
(3b) judging whether the Fano metric of the optimal node is larger than or equal to a threshold T, if so, moving the current decoding node to the optimal node, otherwise, executing the step (7);
(4) judging the shutdown condition:
judging whether the current decoding node is the end point of the code tree, if so, stopping the machine, otherwise, continuing to execute the next step;
(5) the Fano metric for a particular point is modified:
correcting Fano measurement of specific points according to a point reliability judging method, wherein the specific points are points appointed in the point reliability judging method;
(6) tightening the threshold:
(6a) judging whether the current decoding node is accessed for the first time, if so, performing tightening threshold processing; otherwise, keeping the current threshold unchanged;
(6b) executing the step (2);
(7) obtain the amount of backward peep:
taking the Fano measurement of the previous node of the current decoding node as the backward peeping measurement of the current decoding node, and if the current decoding node is the initial node, setting the backward peeping measurement of the current node to be minus infinity;
(8) and (3) reducing the threshold:
judging whether the backward peeking measurement is smaller than a threshold, if so, reducing the threshold, then executing the step (2), and if not, returning the decoding node to a previous node of the current decoding node;
(9) selecting an observation direction:
and (4) judging whether the decoding node rollback of the previous step is from the worst branch rollback or not according to a worst branch judging method, if so, executing the step (7), otherwise, forward-peeping the optimal nodes of the rest nodes, and then executing the step (3).
Compared with the prior art, the invention has the following advantages:
firstly, the method for increasing the observation distance and judging the reliability of the specific point is adopted, and the defects of excessive average access times, excessive maximum access times and excessive stack overflow probability of the original Fano algorithm under poor channel conditions are overcome through a small amount of calculation, so that the method has the advantages of high decoding speed, low stack overflow probability and high decoding stability.
Secondly, the invention adopts the method of increasing the observation distance and judging the reliability of the specific point, only adds a small amount of calculation, overcomes the defect that the prior art inserts the training sequence to reduce the information rate, and has the advantages of low complexity of system realization and high information rate.
Drawings
FIG. 1 is a flow chart of the algorithm of the present invention;
FIG. 2 is a flow chart of a candidate point screening method of the present invention;
FIG. 3 is a flow chart of a point reliability determination method of the present invention;
FIG. 4 is a simulation diagram of the average number of accesses to decode a search access state of an encoded information block according to the present invention;
FIG. 5 shows the present invention at Eb/N0Decoding a CCDF simulation graph of the number of times of searching access state of an encoded information block when the number is 0 dB;
FIG. 6 shows the present invention at Eb/N0Decoding a CCDF simulation diagram of the number of times of searching access state of an encoded information block when the decoding is 0.5 dB;
FIG. 7 is a simulation diagram of the bit error rate of the receiving and decoding according to the present invention.
Detailed Description
The implementation of the present invention is further described below with reference to the embodiment shown in fig. 1.
Setting the threshold value of the decoder to be zero, setting the Fano metric of the first node of the code tree to be zero, and setting the first node of the code tree to be a decoding node.
The code tree is an expression mode of convolutional code state transition, nodes of the code tree correspond to the state of the convolutional code, state transitions generated by different inputs of the convolutional code correspond to branches in the code tree, the depth of the code tree is determined by the coding length, and the number of the branches of each node is determined by parameters of the convolutional code.
And 2, screening out the optimal nodes.
First, the code group corresponding to the current decoding node is read from the sequence buffer.
And secondly, respectively calculating Fano measurement of each branch from the current decoding node and Fano measurement of each node reached by each branch from the current decoding node according to the code group corresponding to the current decoding node.
The Fano metric of each branch from the current decoding node is calculated according to the following formula:
wherein log2Denotes the base 2 logarithm, RiIndicating the received i-th code-group vector, ciIndicating the ith code-group vector, P (R), transmittedi|ci) Is shown at ciUnder the condition of RiProbability of occurrence, RcRepresents RiProbability of occurrence, n0Representing the length of the code segment, R, of the convolutional codecRepresenting the code rate, MF(Ri|ci) Representing the Fano metric for the ith branch.
The Fano metric of the node reached by each branch from the current decoding node is calculated according to the following formula:
Mi+1=Mi+MF(Ri|ci)
wherein M isiFano metric for the ith decoding node, Mi+1For Fano metric from the i +1 th decoding node, MF(Ri|ci) Fano metrics for corresponding branches between the ith decoding node and the (i + 1) th decoding node.
And finally, screening one of the branches as an optimal node according to a candidate point screening method.
The following describes specific steps of the candidate point screening method according to the present invention with reference to fig. 2.
Firstly, selecting a branch with the largest Fano measurement as an optimal branch from all branches starting from a current decoding node;
secondly, judging whether the number of the optimal branches is larger than 1, if so, obtaining a plurality of optimal branches, otherwise, determining the branches as the optimal branches, setting the optimal nodes as the next nodes which are reached by the current decoding nodes along the optimal branch direction, and executing the tenth step;
step three, arbitrarily taking an optimal branch, and setting a node reached by the optimal branch as a temporary node;
fourthly, calculating Fano measurement of each branch from the temporary node, and selecting the branch with the maximum Fano measurement as a secondary optimal branch;
fifthly, judging whether the number of the secondary optimal branches is equal to 1, if so, setting the node reached by the secondary optimal branch as a secondary pre-selection node, otherwise, selecting a secondary optimal branch optionally, and setting the node reached by the secondary optimal branch as a secondary pre-selection node;
sixthly, judging whether all the optimal branches are taken or not, if so, obtaining a plurality of secondary preselected nodes, and if not, executing the third step;
seventhly, calculating Fano metrics of a plurality of secondary preselected nodes;
eighthly, selecting the node with the largest Fano metric from all secondary preselected nodes;
and ninthly, judging whether the number of the nodes with the largest Fano metric selected in the previous step is larger than 1, if so, setting the optimal node as the previous node of any one of the nodes, and otherwise, setting the optimal node as the previous node of the node.
And step ten, finishing all the steps to obtain the optimal node.
And 3, processing the decoding node.
First, a Fano metric for the optimal node is calculated.
And then, judging whether the Fano metric of the optimal node is greater than or equal to a threshold T, if so, moving the current decoding node to the optimal node, and otherwise, executing the step 7.
And 4, judging the shutdown condition.
And judging whether the current decoding node is the end point of the code tree, if so, stopping the machine, and if not, continuing to execute the next step.
And correcting Fano measurement of specific points according to a point reliability judging method, wherein the specific points are points appointed in the point reliability judging method.
The following describes specific steps of the point reliability determination method according to the present invention with reference to fig. 3.
The method comprises the steps of firstly, setting a backtracking point number as a certain fixed value, and setting a reliability threshold value as a certain fixed value;
secondly, judging whether the order of the current decoding node in the code tree is less than or equal to the backtracking point number, if so, finishing all the steps, otherwise, continuing to execute the next step;
thirdly, calculating a difference value obtained by subtracting the Fano measurement of a backtracking end point from the Fano measurement of the current decoding node, wherein the backtracking end point represents a node which is reached after the current decoding node backs to backtrack by the backtracking number of nodes;
step four, judging whether the difference value obtained in the previous step is smaller than a reliability threshold value, if so, finishing all the steps, otherwise, continuing to execute the next step;
and fifthly, judging whether the decoder reaches the current node for the first time, if so, resetting the Fano metric of the previous node of the backtracking end point to be minus infinity, and otherwise, finishing all the steps.
And 6, carrying out tightening treatment on the threshold.
Firstly, judging whether a current decoding node is accessed for the first time, and if so, performing tightening threshold processing; otherwise, keeping the current threshold unchanged.
The tightening threshold processing comprises the following specific steps: and circularly executing T ← T + delta until the Fano metric M of the current decoding node meets the condition that T is not less than M and is less than T + delta, wherein T represents a threshold value, delta represents a threshold increment, M represents the Fano metric of the current node, and the threshold increment is usually an integer and ranges from 2 to 8.
Next, step 2 is performed.
And 7, obtaining a backward peep measurement amount.
And taking the Fano measurement of the previous node of the current decoding node as the backward peeping measurement of the current decoding node, and if the current decoding node is the initial node, setting the backward peeping measurement of the current node to be minus infinity.
And 8, reducing the threshold.
And (3) judging whether the backward peeking measurement is smaller than a threshold, if so, reducing the threshold, and then executing the step (2), otherwise, returning the decoding node to the previous node of the current decoding node.
The specific steps for reducing the threshold are as follows: let T ← T-delta, where T represents a threshold value, delta represents a threshold increment, and the threshold increment usually takes an integer in the range of 2-8. .
And 9, selecting the observation direction.
And judging whether the decoding node rollback of the previous step is from the worst branch rollback or not according to a worst branch judging method, if so, executing the step 7, otherwise, forward peeping the optimal nodes of the rest nodes, and then executing the step 3.
The worst branch judgment method comprises the following specific steps: and judging whether the current branch is the branch which is selected to advance from the last branches of all the branches of the current decoding node, if so, the current branch is the worst branch, and if not, the current branch is not the worst branch.
The effect of the present invention will be further explained by the simulation experiment of the present invention.
1. Simulation conditions are as follows:
matlab 8.5.0 is used by simulation software of the invention, a simulation channel is a Gaussian channel, a modulation mode is BPSK modulation, a convolutional code is a (2,1,7) convolutional code, and a generating polynomial is as follows:
G(D)=[1+D2+D3+D5+D6,1+D1+D2+D3+D6]
the length of the coded information block of the sending end is set to be 128 bits, the decoding of the receiving end adopts hard decision decoding, the threshold increment is set to be 3, the backtracking point number is set to be 9, and the reliability threshold value is set to be the sum of Fano measurement of all branches passing backtracking when all the branches have no bit errors.
2. Simulation content:
the simulation experiment of the invention is to decode the convolution code respectively by using the method of the invention and the original Fano algorithm and carry out comparison in multiple aspects.
2.1, average access times comparison:
and (3) simulation results:
FIG. 4 is a graph of the mean number of accesses obtained in simulation, wherein the horizontal axis represents the signal-to-noise ratio Eb/N0In dB. The vertical axis is the average access times for decoding an encoded information block and searching for an access state. Fig. 4 shows a curve with triangular marks representing the average number of accesses to search for access states for decoding an encoded information block using the method proposed by the invention; the curve marked by a circle represents that the original Fano algorithm decodes an encoded information block and searches for the average access times of the access state.
And (3) simulation result analysis:
as can be seen from the simulation results of FIG. 4, the present invention is shown in SNR Eb/N0When the data is close to 0dB, the average access times of the method are less than 2500, and the average access times of the original Fano algorithm are more than 4000. And when the channel condition is good, the two are basically equal. This shows that, when the channel condition is poor, the invention can obviously reduce the average access times and improve the decoding speed compared with the original Fano algorithm.
2.2, comparing CCDF of searching access state times:
and (3) simulation results:
fig. 5 and 6 show a CCDF (Complementary Cumulative Distribution Function) curve obtained by simulation for decoding the number of search access states of an encoded information block, where the abscissa indicates the number of access, the ordinate indicates the probability, and the meaning of a point on the curve is that the probability that the number of search access of an encoded information block is greater than the abscissa indicates the value of the ordinate. The curves marked by triangles in the figure represent the CCDF curves using the method proposed by the present invention; the curve marked with a circle represents the CCDF curve of the original Fano algorithm. FIG. 5 shows the signal-to-noise ratio Eb/N0Is obtained under the condition of 0dB, and the signal-to-noise ratio E is shown in figure 6b/N0Is obtained under the condition of 0.5 dB.
And (3) simulation result analysis:
as can be seen from FIG. 5, at signal-to-noise ratio Eb/N0When the number of times of access is 0dB, the number of times of access of the original Fano algorithm exceeds 105Has a probability of about 1/250, whereas the probability of the present invention is less than 1/5000. As can be seen from FIG. 6, at signal-to-noise ratio Eb/N0At 0.5dB, the access times of the invention are 10 at a probability of 1/10004Magnitude, while the original Fano algorithm is at 105And magnitude, by about an order of magnitude. Since the CCDF is directly related to the stack overflow probability of decoding, it can be seen from fig. 5 and fig. 6 that the present invention can greatly reduce the probability of stack overflow during Fano decoding.
2.3, comparing the decoding bit error rate:
and (3) simulation results:
FIG. 7 is a simulated decoded bit error rate curve with signal-to-noise ratio E on the abscissab/N0The unit is dB, and the ordinate is the bit error rate. The curve marked by a triangle in fig. 7 represents the decoding bit error rate curve using the method proposed by the present invention; the curve marked by a circle represents the decoding bit error rate curve of the original Fano algorithm; the dashed line represents the theoretical bit error rate curve for uncoded BPSK.
As can be seen from the simulation result of FIG. 7, compared with the original Fano algorithm, the loss of the invention is about 0.3dB under the same bit error rate and lower signal-to-noise ratio; and when the signal-to-noise ratio is higher, the bit error rate curves of the two are superposed. It can be seen that the invention significantly improves the decoding speed and greatly reduces the probability of stack overflow with little bit error rate loss. The increased decoding speed makes it possible to apply longer constrained convolutional codes and thus achieve better performance.
The foregoing detailed description of the preferred embodiments of the invention has been presented. It should be understood that numerous modifications and variations could be devised by those skilled in the art in light of the present teachings without departing from the inventive concepts. Therefore, the technical solutions available to those skilled in the art through logic analysis, reasoning and limited experiments based on the prior art according to the concept of the present invention should be within the scope of protection defined by the claims.
Claims (5)
1. A method for reducing the stack overflow probability of a decoder of a Fano algorithm comprises the following steps:
(1) decoder parameter initialization:
setting a threshold value of a decoder to be zero, setting Fano measurement of a first node of a code tree to be zero, and setting the first node of the code tree to be a decoding node;
(2) screening out an optimal node:
(2a) reading a code group corresponding to the current decoding node from the sequence buffer;
(2b) respectively calculating Fano measurement of each branch from the current decoding node and Fano measurement of a node reached by each branch from the current decoding node according to the code group corresponding to the current decoding node; the Fano metric of each branch from the current decoding node is calculated according to the following formula:
wherein log2Denotes the base 2 logarithm, RiIndicating the received i-th code-group vector, ciIndicating the ith code-group vector, P (R), transmittedi|ci) Is shown at ciUnder the condition of RiProbability of occurrence, P (R)i) Represents RiProbability of occurrence, n0Representing the length of the code segment, R, of the convolutional codecRepresenting the code rate, MF(Ri|ci) Representing Fano metrics of corresponding branches between the ith decoding node and the (i + 1) th decoding node;
(2c) screening one of the branches as an optimal node according to a candidate point screening method; the screening method of the candidate points comprises the following specific steps:
firstly, selecting a branch with the largest Fano measurement as an optimal branch from all branches starting from a current decoding node;
secondly, judging whether the number of the optimal branches is larger than 1, if so, obtaining a plurality of optimal branches, otherwise, determining the branches as the optimal branches, setting the optimal nodes as the next nodes which are reached by the current decoding nodes along the optimal branch direction, and executing the tenth step;
step three, arbitrarily taking an optimal branch, and setting a node reached by the optimal branch as a temporary node;
fourthly, calculating Fano measurement of each branch from the temporary node, and selecting the branch with the maximum Fano measurement as a secondary optimal branch;
fifthly, judging whether the number of the secondary optimal branches is equal to 1, if so, setting the node reached by the secondary optimal branch as a secondary pre-selection node, otherwise, selecting a secondary optimal branch optionally, and setting the node reached by the secondary optimal branch as a secondary pre-selection node;
sixthly, judging whether all the optimal branches are taken or not, if so, obtaining a plurality of secondary preselected nodes, and if not, executing the third step;
seventhly, calculating Fano metrics of a plurality of secondary preselected nodes;
eighthly, selecting the node with the largest Fano metric from all secondary preselected nodes;
step nine, judging whether the number of the nodes with the largest Fano metric selected in the previous step is larger than 1, if so, setting the optimal node as the previous node of any one of the nodes, and otherwise, setting the optimal node as the previous node of the node;
step ten, finishing all the steps to obtain an optimal node;
(3) and processing the decoding nodes:
(3a) calculating Fano measurement of the optimal node;
(3b) judging whether the Fano metric of the optimal node is larger than or equal to a threshold T, if so, moving the current decoding node to the optimal node, otherwise, executing the step (7);
(4) judging the shutdown condition:
judging whether the current decoding node is the end point of the code tree, if so, stopping the machine, otherwise, continuing to execute the next step;
(5) the Fano metric for a particular point is modified:
correcting Fano measurement of specific points according to a point reliability judging method, wherein the specific points are points appointed in the point reliability judging method; the point reliability judging method comprises the following specific steps:
the method comprises the steps of firstly, setting a backtracking point number as a certain fixed value, and setting a reliability threshold value as a certain fixed value;
secondly, judging whether the order of the current decoding node in the code tree is less than or equal to the backtracking point number, if so, finishing all the steps, otherwise, continuing to execute the next step;
thirdly, calculating a difference value obtained by subtracting the Fano measurement of a backtracking end point from the Fano measurement of the current decoding node, wherein the backtracking end point represents a node which is reached after the current decoding node backs to backtrack by the backtracking number of nodes;
step four, judging whether the difference value obtained in the previous step is smaller than a reliability threshold value, if so, finishing all the steps, otherwise, continuing to execute the next step;
fifthly, judging whether the decoder reaches the current node for the first time, if so, resetting the Fano measurement of the node before the backtracking end point to be negative infinite, otherwise, finishing all the steps;
(6) tightening the threshold:
(6a) judging whether the current decoding node is accessed for the first time, if so, performing tightening threshold processing; otherwise, keeping the current threshold unchanged;
(6b) executing the step (2);
(7) obtain the amount of backward peep:
taking the Fano measurement of the previous node of the current decoding node as the backward peeping measurement of the current decoding node, and if the current decoding node is the initial node, setting the backward peeping measurement of the current node to be minus infinity;
(8) and (3) reducing the threshold:
judging whether the backward peeking measurement is smaller than a threshold, if so, reducing the threshold, then executing the step (2), and if not, returning the decoding node to a previous node of the current decoding node;
(9) selecting an observation direction:
judging whether the decoding node rollback of the previous step is from the worst branch rollback or not according to a worst branch judgment method, if so, executing the step (7), otherwise, forward-peeping the optimal nodes of the rest nodes, and then executing the step (3);
the worst branch judgment method comprises the following specific steps: and judging whether the current branch is the branch which is selected to advance from the last branches of all the branches of the current decoding node, if so, the current branch is the worst branch, and if not, the current branch is not the worst branch.
2. The method as claimed in claim 1, wherein the code tree in step (1) is an expression of state transition of a convolutional code, wherein nodes of the code tree correspond to states of the convolutional code, state transitions generated by different inputs of the convolutional code correspond to branches of the code tree, the depth of the code tree is determined by a coding length, and the number of branches of each node is determined by parameters of the convolutional code.
3. The method for reducing stack overflow probability of a decoder of a Fano algorithm as claimed in claim 1, wherein the Fano metric of the node reached by each branch from the current decoding node in step (2b) is calculated according to the following formula:
Mi+1=Mi+MF(Ri|ci)
wherein M isiFano metric for the ith decoding node, Mi+1For Fano metric from the i +1 th decoding node, MF(Ri|ci) Fano metrics for corresponding branches between the ith decoding node and the (i + 1) th decoding node.
4. The method according to claim 1, wherein the step (6a) of tightening threshold processing comprises the following steps: and circularly executing T ← T + delta until the Fano metric M of the current decoding node meets the condition that T is not less than M and is less than T + delta, wherein T represents a threshold value, delta represents a threshold increment, M represents the Fano metric of the current node, and the threshold increment is usually an integer and ranges from 2 to 8.
5. The method for reducing the stack overflow probability of a decoder of a Fano algorithm as claimed in claim 1, wherein the step (8) of reducing the threshold comprises the following steps: let T ← T-delta, where T represents a threshold value, delta represents a threshold increment, and the threshold increment usually takes an integer in the range of 2-8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710207642.2A CN107124249B (en) | 2017-03-31 | 2017-03-31 | Method for reducing stack overflow probability of decoder of Fano algorithm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710207642.2A CN107124249B (en) | 2017-03-31 | 2017-03-31 | Method for reducing stack overflow probability of decoder of Fano algorithm |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107124249A CN107124249A (en) | 2017-09-01 |
CN107124249B true CN107124249B (en) | 2020-06-23 |
Family
ID=59724612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710207642.2A Active CN107124249B (en) | 2017-03-31 | 2017-03-31 | Method for reducing stack overflow probability of decoder of Fano algorithm |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107124249B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855732A (en) * | 2005-04-25 | 2006-11-01 | 中兴通讯股份有限公司 | Encoding method and encoder for tailing convolution codes |
CN101997553A (en) * | 2009-08-13 | 2011-03-30 | 中兴通讯股份有限公司 | Method and device for decoding convolution code |
CN102270994A (en) * | 2011-03-30 | 2011-12-07 | 清华大学 | Overflow control method for state metric of Turbo code decoder |
CN103401570A (en) * | 2013-08-14 | 2013-11-20 | 山东大学 | Sequential decoding method for convolutional code with highly-constrained length |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10229072B2 (en) * | 2014-03-19 | 2019-03-12 | Avago Technologies International Sales Pte. Limited | System and method for despreader memory management |
-
2017
- 2017-03-31 CN CN201710207642.2A patent/CN107124249B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855732A (en) * | 2005-04-25 | 2006-11-01 | 中兴通讯股份有限公司 | Encoding method and encoder for tailing convolution codes |
CN101997553A (en) * | 2009-08-13 | 2011-03-30 | 中兴通讯股份有限公司 | Method and device for decoding convolution code |
CN102270994A (en) * | 2011-03-30 | 2011-12-07 | 清华大学 | Overflow control method for state metric of Turbo code decoder |
CN103401570A (en) * | 2013-08-14 | 2013-11-20 | 山东大学 | Sequential decoding method for convolutional code with highly-constrained length |
Non-Patent Citations (1)
Title |
---|
一种基于分支度量标准的新卷积码译码算法;毛淑华等;《云南大学学报(自然科学版)》;20100715;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107124249A (en) | 2017-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9124459B2 (en) | Branch processing of search tree in a sphere decoder | |
CN106803759A (en) | Polar yards of effective adaptive decoding method based on Gauss construction | |
US20070266303A1 (en) | Viterbi decoding apparatus and techniques | |
CN109951190B (en) | Self-adaptive Polar code SCL decoding method and decoding device | |
CN112332864B (en) | Polarization code decoding method and system for self-adaptive ordered mobile pruning list | |
CN103427850A (en) | Multi-mode viterbi decoding apparatus and decoding method thereof | |
CN111726202B (en) | Early termination iteration method for polarization code belief propagation decoding | |
CN103166903A (en) | Soft demapping pretreatment method and soft demapping method for constellation map | |
CN114070331B (en) | Self-adaptive serial offset list flip decoding method and system | |
CN107659318B (en) | Self-adaptive polar code decoding method | |
CN110995279B (en) | Polarization code combined SCF spherical list overturning decoding method | |
US10680749B2 (en) | Early-termination of decoding convolutional codes | |
US9793944B2 (en) | System and apparatus for decoding tree-based messages | |
CN110661535A (en) | Method, device and computer equipment for improving Turbo decoding performance | |
CN107124249B (en) | Method for reducing stack overflow probability of decoder of Fano algorithm | |
CN103220007B (en) | The TPC iterative decoding algorithm of the unreliable figure place of a kind of self-adaptative adjustment subcode | |
US11736126B1 (en) | Double factor correction turbo decoding method based on simulated annealing algorithm | |
CN113114269A (en) | Belief propagation-information correction decoding method | |
KR100362912B1 (en) | Apparatus for stopping recursive decoding and turbo decoder comprising it | |
CN110752852A (en) | BP decoding method, device, system, equipment and storage medium of polarization code | |
US6690752B2 (en) | Sequential decoder for decoding of convolutional codes | |
US6725417B2 (en) | Sequential decoding apparatus and method | |
CN114598334A (en) | Segmented CRC (cyclic redundancy check) assisted convolutional polarization code coding and decoding scheme | |
US7917834B2 (en) | Apparatus and method for computing LLR | |
KR20060103777A (en) | Turbo product decode method of high speed |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |