Explore chapters and articles related to this topic
Force-System Resultants and Equilibrium
Published in Richard C. Dorf, The Engineering Handbook, 2018
Error correction coding involves adding redundant symbols to a data stream in order to allow for reliable transmission in the presence of channel errors. Error correction codes fall into two main classes: block codes and convolutional codes. In block codes, the code word is only a function of the current data input, whereas in convolutional codes the current output is a function of not only the current data input but also of previous data inputs. Thus, a convolutional code has memory, whereas a block code is memoryless. Codes can also be classified according to their code rate, symbol alphabet size, error detection/correction capability, and complexity. The code rate determines the extra bandwidth needed and also the reduction in energy per transmitted symbol relative to an uncoded system. The alphabet size is usually either two (binary) or a power of two. When the alphabet size is binary, the symbol is called a bit. Codes can be made either to detect or to correct errors or some combination of both and also can be made to detect/ correct either random errors or burst errors. The complexity of a code is usually a function of the decoding procedure that is used, so the most popular codes are those that can be decoded in a relatively simple manner and still provide good error correction capability.
Systems
Published in Sibley Martin, Modern Telecommunications, 2018
Error correcting codes are used in DAB. The DAB service in use in Europe and the United Kingdom uses a system known as punctured convolutional coding. We have already encountered convolutional codes in Section 3.4.4 and the puncturing simply means extracting some of the parity bits, in a predetermined sequence, from a coded data stream. For instance, the puncturing sequence might be 0 1 1 0 0 1 where data is transmitted when there is a 1 and removed when there is a 0. De coding is by use of the Viterbi decoder. There is a new standard for DAB which is not backwards compatible. The new standard is DAB+ and it uses an audio codec, HE-AACv2, that is more efficient than MPEG-2 giving a bit rate of 64 kbit/s. This reduction in coding leads to a reduction in bit rate and more complex error correction. Indeed, DAB+ uses RS and convolutional coding to generate a low error rate given a poor S/N. OFDM is used to reduce the bit rate per sub-carrier. The bandwidth between each sub-carrier is 1 kHz (corresponding to 1 kbit/s) and this gives a bandwidth of approximately 1.5 MHz.
Noise in digital communications systems
Published in J. Dunlop, D. G. Smith, Telecommunications Engineering, 2017
Convolutional codes are an alternative to block codes which are more suited to correcting errors in environments in which errors occur in bursts. In a block code the codeword depends only on the m information digits being coded and is therefore memoryless. In convolutional codes a continuous stream of information digits is processed to produce a continuous stream of encoded digits each of which has a value depending on the value of several previous information digits, implying a form of memory. In practice, convolutional codes are generated using a shift register of specified length L, known as the constraint length, and a number of modulo 2 adders (exclusive OR gates). An encoder with a constraint length of 3 and two exclusive OR gates is shown in Fig. 5.13. Clearly, in this example, the output digit rate is double the input digit rate and the code is known as a 12 rate code. (In general the code may be a m/n rate code where m is the number of input digits and n is the number of output digits.)
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).
Series concatenation of 2D convolutional codes by means of input-state-output representations
Published in International Journal of Control, 2018
Joan-Josep Climent, Diego Napp, Raquel Pinto, Rita Simões
Convolutional codes are one-dimensional (1D) convolutional codes and can be seen as a generalisation of block codes in the sense that a block code is a convolutional code with no delay; i.e. block codes are basically zero-dimensional (0D) convolutional codes. In same way, two-dimensional (2D) convolutional codes extend the 1D convolutional codes. These codes have a practical potential in applications as they are very suitable to encode data recorded in two dimensions, e.g. pictures, storage media, wireless applications, etc. Despite the recent increasing interest (Almeida, Napp, & Pinto, 2016; Climent, Napp, Perea, & Pinto, 2016; Climent, Napp, & Pinto, 2012; Lobo, Bitzer, & Vouk, 2012; Napp, Pinto, & Simões, 2016; Ozkaya, 2014), in comparison with 1D convolutional codes, little research has been done in the area of 2D convolutional codes and much more needs to be done to make it attractive for real-life applications.
Performance of Soft Viterbi Decoder enhanced with Non-Transmittable Codewords for storage media
Published in Cogent Engineering, 2018
Kilavo Hassan, Kisangiri Michael, Salehe I. Mrutu
Convolutional code consists of (n, k, m) and typically k and n are small integers with k < n, but the memory order m can vary and as you increase the memory, the low error probability can be achieved (Marazin, Gautier, & Burel, 2011). Convolutional codes are different from the block codes in such a way that the encoder contains the memory and the n encoder at any time unit and depends not only on the k input but also on the previous input block (Wicker, 1995). The encoding process used in this paper is locked Convolutional encoding and the decoding process used is the enhanced Soft decision Viterbi Decoding. Figure 1 is a state diagram for (2, 1, 2) binary Convolutional encode, where we have one bit as an input and then we get two bits as output.