CN107302372B - Fast path searching method for Viterbi decoding - Google Patents

Fast path searching method for Viterbi decoding Download PDF

Info

Publication number
CN107302372B
CN107302372B CN201710384176.5A CN201710384176A CN107302372B CN 107302372 B CN107302372 B CN 107302372B CN 201710384176 A CN201710384176 A CN 201710384176A CN 107302372 B CN107302372 B CN 107302372B
Authority
CN
China
Prior art keywords
path
branch
state
decoding
sequence
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.)
Expired - Fee Related
Application number
CN201710384176.5A
Other languages
Chinese (zh)
Other versions
CN107302372A (en
Inventor
王一歌
吴桂龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201710384176.5A priority Critical patent/CN107302372B/en
Publication of CN107302372A publication Critical patent/CN107302372A/en
Application granted granted Critical
Publication of CN107302372B publication Critical patent/CN107302372B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management

Abstract

The invention discloses a fast path searching method for Viterbi decoding, which comprises a slave state S0Starting, extending a branch to the right each time, firstly directly selecting a branch with the same output subgroup and the receiving sequence of the current time node as a path of the current segment, if the branch with the same receiving sequence can not be found, retaining all branches from the current state to the secondary state, then continuously searching the branch with the same output subgroup and the corresponding receiving sequence from the branches extending to the right of all the secondary states, finding the branch with the same output subgroup and the corresponding receiving sequence in the selection as a path of the secondary segment, then deleting other paths retained before, and retaining the branch reaching the secondary state connected with the decoding path of the secondary segment as a decoding path of the front segment, and searching the path in such a way until the fence diagram returns to the all 0 state, wherein the obtained path is the optimal path of the algorithm.

Description

Fast path searching method for Viterbi decoding
Technical Field
The invention relates to the technical field of digital information transmission, in particular to a fast path searching method for Viterbi decoding.
Background
Channel coding is an important research field in digital information transmission technology, in which convolutional codes are widely researched and applied due to their excellent anti-noise characteristics, flexible coding and decoding methods, and small time delay. There are many decoding methods for convolutional codes, and the more common method is the Viterbi decoding method.
The Viterbi decoding method can be used for both hard decision decoding and soft decision decoding. Viterbi hard decision decoding is an algorithm that finds a coded bit sequence on a trellis diagram of a code based on a received hard decision bit sequence with the smallest hamming distance accumulated with it. Is (n)0,k0M) the number of segments of the convolutional code information sequence is L, where m is the code storage of the convolutional code, then the convolutional code encoder has 2^ (k)0m) states, L + m +1 time unit nodes, are numbered 0 to L + m. So all paths that may be present in the trellis diagram also have 2^ (k)0L) bars, but the Viterbi decoding method does not compare all possible paths but receives a segment, calculates and compares the segment, and selects a segment of the most likely branch, so that the entire codeword sequence is a sequence of the maximum likelihood function. The decoder is selected from a certain oneStates, e.g. slave state S0Starting from this, one branch is extended to the right at a time and compared with the corresponding branch of the received sequence, the distance between them is calculated, and then the calculated distance is added to the cumulative distance value of the extended path. For each path to each state (with 2^ k)0Bars) are compared, and one path with the smallest distance value is reserved, called a survivor path, and when more than two paths take the minimum value, one path can be selected. And finally, returning the fence diagram to a full 0 state, so that a survivor path is left, namely the path is obtained, and the information bit corresponding to the path backtracking is the decoding output sequence.
Although the Viterbi decoding algorithm is a high-performance algorithm, the complexity of the path search process is relatively large. For (n)0,k0M) convolutional codes, which do 2^ (k) for each time0m) times of 'add-compare-store' operations, each operation comprising 2^ k0The sum of sub-addition 2^ k01 comparison while retaining 2^ (k)0m) survivor paths. The complexity of the visible algorithm is independent of the channel quality, and the calculated amount and the storage amount are stored m and the information element group k along with the coding0Increase exponentially, so if m and k0Larger, Viterbi decoding is not applicable. Under the premise of better channel condition, in order to further reduce the computational complexity and memory capacity of the Viterbi decoding algorithm, we will fully utilize the channel information and seek an improved path search method in the Viterbi decoding algorithm.
Disclosure of Invention
To overcome the disadvantages and shortcomings of the prior art, the present invention provides a fast search path method for Viterbi decoding.
Aiming at the problem of path selection in the Viterbi decoding process of the convolutional code, the method adds a path selection scheme with high certainty under the premise of a better channel, so that the calculation complexity and the storage capacity of path searching are greatly reduced, and the method has higher practical significance.
The path searching method of Viterbi decoding proposed by the invention is from state S0Starting with a branch extending to the right one at a time, the output subgroup is first selected directlyIf the branch same as the received sequence of the current time node, that is, the branch satisfying the hamming distance of 0, is found out as the path of the current segment, then all branches from the current state to the sub-state are retained, then the branches extending rightwards from all sub-states continue to search the branches of which the output subgroup is the same as the corresponding received sequence, and in the channel which only has random errors and has better conditions, generally 2 errors do not continuously appear, so that the branch which has the output subgroup same as the corresponding received sequence can be found out in the selection of the branch of the current segment as the path of the sub-segment, then other paths retained before are deleted, and the path is searched in such a way until the fence diagram returns to the state of all 0, and the obtained path is the optimal path of the algorithm. If more than two continuous errors occur, the path search of the continuous error part searches for the intermediate path with the minimum Hamming distance between the coded output sequence and the received sequence according to the traditional method.
The invention adopts the following technical scheme:
a fast path search method for Viterbi decoding, comprising the following steps:
s1 pairs (n)0,k0M) convolutional codes, starting from the unit time node j equal to 0, i.e. from the state S0Starting, extending a branch to the right, finding out a branch with an output subgroup identical to the receiving sequence of the current time node from the branch as a decoding path of the segment, if no branch meeting the condition can be found, entering S2, otherwise, entering S4 if j is j + 1;
s2 retains all branches from the previous state to the next state, then extends a branch to the right for all the next states, then j equals j +1, selects a branch with the same output subgroup as the received sequence of the current time node from the branches extending to the right as the next segment decoding path, and proceeds to S3;
s3 reserving the branch of the arrival secondary state connected with the secondary decoding path as the front-stage decoding path, deleting other branches of the arrival secondary state, and entering S4;
and S4, if j is less than L + m, returning to S1, otherwise, stopping, and obtaining the maximum likelihood path with the precondition by the decoder, wherein L is the number of information sequence segments in the convolutional code, and m is the coding storage of the convolutional code.
If more than two continuous errors appear in the received sequence, the path search of the continuous error part searches for the middle path with the minimum Hamming distance between the coded output sequence and the received sequence according to the traditional method.
Said (n)0,k0M) convolutional codes have 2^ (k)0m) states, which will have L + m +1 time unit nodes, numbered 0 to L + m, to ensure that the trellis diagram eventually returns to the all 0 state.
The fact that the output subgroup is identical to the receiving sequence of the current time node means that the hamming distance between the output subgroup and the receiving sequence of the current time node is 0.
The invention has the beneficial effects that:
(1) the Viterbi decoding fast searching path method is suitable for the channel with more practical applications and better conditions, and has the same best effect as the traditional Viterbi decoding path searching method.
(2) Compared with the traditional decoding path searching method, the method has lower calculation complexity and less path memory space, only one optimal path needs to be stored, and therefore the path searching speed is greatly improved.
Drawings
FIG. 1 is a flow chart of the operation of the present invention;
fig. 2 shows (2, 1, 2) convolutional code g (D) (1+ D) in an embodiment of the present invention2,1+D2) A fence diagram representation of;
FIG. 3 is a diagram illustrating an exemplary implementation of a fast search path method for Viterbi decoding of (2, 1, 2) convolutional codes according to the present invention.
Detailed Description
The present invention will be described in further detail with reference to examples and drawings, but the present invention is not limited to these examples.
Examples
Referring to FIGS. 1-3, a fast search path method for Viterbi decoding, which is suitable for receiving a sequence without two consecutive errors, is implemented by using a simple (2, 1, 2) convolutional code, i.e., the convolutional codeThe code has an information element packet length of 1, an output subgroup symbol length of 2, and a code memory of 2. The generator polynomial of the convolutional code is G (D) ═ 1+ D2,1+D2) Fig. 2 is a fence diagram representation of the convolutional code. In the trellis diagram of fig. 2, each state has two input and two output branches, and at a certain unit time node j, the dashed branch leaving each state, i.e. the lower branch, represents the information subgroup m input into the encoderi1 is ═ 1; while the solid branch, the upper branch, represents the information subgroup m input to the encoder at this moment i0; the 2 numbers on each branch represent a subset of the encoder outputs at time j, so that each path in the trellis diagram corresponds to a different input information sequence. We also assume that the encoded information sequence is m (1011100), and the received codeword is R (10,10,01,01,10,01,11,00 …), where the second bits of the first sequence segment and the third sequence segment in R are both in error, i.e., the original correct codeword is C (11,10,00,01,10,01,11,00 …).
Based on the simple convolutional code, for example, fig. 3 is a schematic diagram of the fast search path implementation of Viterbi decoding of the convolutional code of the present embodiment. The following describes a specific embodiment of the fast search path method for Viterbi decoding:
s1: for the (2, 1, 2) convolutional code, starting from the unit time node j equal to 0, i.e. from the state S0Starting, extending a branch to the right, finding out a branch with an output subgroup which is the same as the receiving sequence (10) of the current time node from the branch as a decoding path of the section, finding out that the branch which meets the condition can not be found, and entering the step 2;
s2: reservation state S0To a secondary state, S0And S1Then extending a branch to the right for all sub-states, j is incremented by 1, and selecting a branch with the same output subset as the received sequence (10) of the current time node from the branches, e.g., branch ② in fig. 3, as the sub-segment decoding path, and proceeding to step 3;
step 3, keeping the branch of the arriving secondary state connected with the secondary decoding path as the front-end decoding path, such as the branch ① connected with the branch ② in FIG. 3, deleting other branches of the arriving secondary state, such as another branch ① not connected with the branch ② in FIG. 3, and entering step 4;
and 4, if j <7, returning to the step 1, otherwise, stopping, and obtaining the maximum likelihood path under the precondition by the decoder, such as a path ① → ② → ③ → ④ → ⑤ → ⑥ → ⑦ in fig. 3, wherein the information sequence obtained by backtracking according to the path is consistent with the encoder information sequence m (1011100), which indicates that the decoding is successful.
The number of information sequence segments in the (2, 1, 2) convolutional code is 5, wherein the code memory of the convolutional code is 2.
The (2, 1, 2) convolutional code has 4 states, which are S respectively0、S1、S2、S3To ensure that the fence graph eventually returns to the all 0 state, there will be 8 time unit nodes, numbered 0 to 7.
In a channel with only random errors and good conditions, 2 errors generally do not occur continuously, on the premise of the channel, a search path of Viterbi decoding is performed according to the method, namely, a branch with an output subgroup identical to a received sequence is directly searched in the process of searching the path, namely, a branch with a Hamming distance of 0 between the output subgroup and the received sequence is directly searched, and the obtained path is a maximum likelihood path and is an optimal decoding path under the precondition.
If more than two continuous errors occur, the path search of the continuous error part searches for the intermediate path with the minimum Hamming distance between the coded output sequence and the received sequence according to the traditional method.
For (n)0,k0M) convolutional code, n0Denotes the length of the symbol, k0Indicating the length of information element, when using the conventional decoding path searching method, it needs to do 2^ (k) for each time0m) times of 'add-compare-store' operations, each operation comprising 2^ k0The sum of sub-addition 2^ k01 comparison while retaining 2^ (k)0m) survivor paths. In the embodiment, it can be seen that the method has lower computational complexity and less complexity than the conventional decoding path searching methodThe path memory capacity is 2^ k at each time0The next match compare operation does not require the temporary path to be stored. In the worst case, only 2^ k needs to be stored0A temporary path, needs to be made 2^ (2 k)0) The next match comparison operation. And only one optimal path needs to be stored as a whole, so that the path searching speed is greatly improved. Meanwhile, the method has the same best effect as the traditional Viterbi decoding path searching method.
The above embodiments are preferred embodiments of the present invention, but the present invention is not limited to the above embodiments, and any other changes, modifications, substitutions, combinations, and simplifications which do not depart from the spirit and principle of the present invention should be construed as equivalents thereof, and all such changes, modifications, substitutions, combinations, and simplifications are intended to be included in the scope of the present invention.

Claims (4)

1. A fast path search method for Viterbi decoding, comprising the steps of:
s1 pairs (n)0,k0M) convolutional codes, starting from the unit time node j equal to 0, i.e. from the state S0Starting from the branch, extending a branch to the right, finding out the branch with the output subgroup same as the receiving sequence of the current time node from the branch as the decoding path of the segment, if no branch meeting the condition can be found, entering S2, otherwise, entering S4 when j is j +1, and n0Denotes the length of the symbol, k0Indicating an information element length;
s2 retains all branches from the previous state to the next state, then extends a branch to the right for all the next states, then j equals j +1, selects a branch with the same output subgroup as the received sequence of the current time node from the branches extending to the right as the next segment decoding path, and proceeds to S3;
s3 reserving the branch of the arrival secondary state connected with the secondary decoding path as the front-stage decoding path, deleting other branches of the arrival secondary state, and entering S4;
and S4, if j is less than L + m, returning to S1, otherwise, stopping, and obtaining the maximum likelihood path with the precondition by the decoder, wherein L is the number of information sequence segments in the convolutional code, and m is the coding storage of the convolutional code.
2. The method as claimed in claim 1, wherein if more than two consecutive errors occur in the received sequence, the path search of consecutive error portions finds the intermediate path with the minimum hamming distance between the coded output sequence and the received sequence according to the conventional method.
3. The method of claim 1, wherein (n) is equal to0,k0M) convolutional codes have 2^ (k)0m) states, which will have L + m +1 time unit nodes, numbered 0 to L + m, where n is the number of time unit nodes, to ensure that the trellis diagram eventually returns to the all 0 state0Denotes the length of the symbol, k0Indicating the information element length.
4. The method of claim 1, wherein the output subset being identical to the received sequence of the current time node means that the hamming distance between the output subset and the received sequence of the current time node is 0.
CN201710384176.5A 2017-05-26 2017-05-26 Fast path searching method for Viterbi decoding Expired - Fee Related CN107302372B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710384176.5A CN107302372B (en) 2017-05-26 2017-05-26 Fast path searching method for Viterbi decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710384176.5A CN107302372B (en) 2017-05-26 2017-05-26 Fast path searching method for Viterbi decoding

Publications (2)

Publication Number Publication Date
CN107302372A CN107302372A (en) 2017-10-27
CN107302372B true CN107302372B (en) 2020-06-19

Family

ID=60137408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710384176.5A Expired - Fee Related CN107302372B (en) 2017-05-26 2017-05-26 Fast path searching method for Viterbi decoding

Country Status (1)

Country Link
CN (1) CN107302372B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11777533B2 (en) 2018-11-27 2023-10-03 Telefonaktiebolagget LM Ericsson (Publ) Method for polar decoding with dynamic successive cancellation list size and polar decoder

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000188554A (en) * 1998-12-21 2000-07-04 Japan Radio Co Ltd Receiver for convolution coding signal
CN1376342A (en) * 1998-12-31 2002-10-23 三星电子株式会社 Device and method for determining maximum likelihood state in a decoding device
CN1434594A (en) * 2002-01-19 2003-08-06 华为技术有限公司 Shortened viterbi decoding method and decoder thereof
CN102142849A (en) * 2011-02-15 2011-08-03 无锡物联网产业研究院 Viterbi decoding method and Viterbi decoder
CN103634015A (en) * 2012-08-28 2014-03-12 上海无线通信研究中心 Maximum likehood decoding algorithm of tail biting code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000188554A (en) * 1998-12-21 2000-07-04 Japan Radio Co Ltd Receiver for convolution coding signal
CN1376342A (en) * 1998-12-31 2002-10-23 三星电子株式会社 Device and method for determining maximum likelihood state in a decoding device
CN1434594A (en) * 2002-01-19 2003-08-06 华为技术有限公司 Shortened viterbi decoding method and decoder thereof
CN102142849A (en) * 2011-02-15 2011-08-03 无锡物联网产业研究院 Viterbi decoding method and Viterbi decoder
CN103634015A (en) * 2012-08-28 2014-03-12 上海无线通信研究中心 Maximum likehood decoding algorithm of tail biting code

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MAXIMUM LIKELIHOOD DE CODING OF CONVOLUTIONAL CODES USING VITERBI ALGORITHM WITH IMPROVED ERROR CORRECTION CAPABILITY;Abubeker K.M 等;《Proceedings of 2013 IEEE Conference on Information and Communication Technologies》;20131230;全文 *
一种自适应Viterbi译码算法的研究与实现;银庆宏;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150215;全文 *

Also Published As

Publication number Publication date
CN107302372A (en) 2017-10-27

Similar Documents

Publication Publication Date Title
KR101143695B1 (en) Trellis-based receiver
CN100544213C (en) A kind of interpretation method of tail-biting convolutional code and decoder thereof
CN107911195B (en) CVA-based tail-biting convolutional code channel decoding method
US8566683B2 (en) Power-reduced preliminary decoded bits in viterbi decoders
EP3996285A1 (en) Parallel backtracking in viterbi decoder
CN107302372B (en) Fast path searching method for Viterbi decoding
CN100499379C (en) A coding method of convolution code
CN108134612B (en) Iterative decoding method for correcting synchronous and substitute error cascade code
US9160399B2 (en) System and apparatus for decoding tree-based messages
CN108471341B (en) Method for convolutional encoding and decoding
EP2605410B1 (en) Channel decoding method and tail biting convolutional decoder
CN105721104B (en) A kind of Viterbi decoding implementation method
CN108768412B (en) Low-delay Viterbi decoding method and system
CN102291198A (en) channel decoding method and device
Bourichi A low power parallel sequential decoder for convolutional codes
KR101714009B1 (en) Apparatus and method of traceback having minimized decoding delay time
KR100564757B1 (en) Low power Viterbi decoder and trace-back method
Li et al. Efficient implementation of the decoder for tail biting convolutional codes
KR100491016B1 (en) Trace-Back Viterbi Decoder with Consecutive Control of Backward State Transition and Method thereof
Sood et al. Implementation of forward error correction technique using Convolutional Encoding with Viterbi Decoding
NIHARIKA et al. Implementation of Encoder and Viterbi Decoder for Lossless Applications
YASMINE et al. RTL Design and Implementation of TCM Decoders using Viterbi Decoder
Reddy et al. An Efficient Low Power Viterbi Decoder Design using T-algorithm
CN117060933A (en) Parallel shared information-based viterbi decoder and decoding method
JP3120342B2 (en) Viterbi decoder

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200619