Explore chapters and articles related to this topic
Error Correction
Published in Jerry C. Whitaker, Microelectronics, 2018
Sequential decoding is another method used earlier to decode convolutional codes: its complexity does not increase exponentially with the memory m of the code, but its performance can only approximate that of a true maximum-likelihood decoder, as the Viterbi decoder. Sequential decoding is a procedure for systematically searching through a code tree and using received information as a guide, with the objective of eventually tracing out the path representing the actually transmitted information sequence. The two best known sequential decoding algorithms are the stack algorithm and the Fano algorithm. Sequential decoding is an example of incomplete decoding which yields two types of decoding failure. The first, called an undetected error, occurs when the decoder accepts a number of wrong hypotheses and moves ahead anyway. The second, called a buffer overflow, occurs when the number of computations permitted per block is exceeded. In this case, the frame cannot be decoded, and is considered an erased or deleted frame. Convolutional codes, which are sequentially decoded, typically have a large enough constraint length so that the undetected error probability of the decoder is negligible compared to the probability that a block cannot be successfully decoded in the time allowed.
Optimization–based decoding algorithms for LDPC convolutional codes in communication systems
Published in IISE Transactions, 2019
Banu Kabakulak, Z. Caner Taşkın, Ali Emre Pusane
Convolutional codes, first introduced by Elias in 1955, differ from block codes in that the encoder contains memory and the encoder outputs, at any time unit, depend both on the current inputs and on the previous input blocks (Elias, 1955). Convolutional codes have found application areas such as deep–space and satellite communication starting from the early 1970s. They can be decoded with the Viterbi algorithm, which provides maximum–likelihood decoding by dynamic programming, by dividing the received vector into smaller blocks of bits. Although the Viterbi algorithm has a high decoding complexity for long constraint lengths, it can be easily implemented on hardware, due to its highly repetitive nature (Viterbi, 1967). For long block lengths, sequential decoding algorithms such as the Fano algorithm (Fano, 1963), and later the stack algorithm that was developed by Zigangirov (1966) and independently by Jelinek (1969) fit well. Although the Viterbi algorithm finds the best codeword, sequential decoding is suboptimal, as it focuses on a certain number of likely codewords (Han and Chen, 2003).