
related topics 
{math, number, function} 
{system, computer, user} 
{rate, high, increase} 
{area, part, region} 
{math, energy, light} 

In telecommunication, a convolutional code is a type of errorcorrecting code in which
 each mbit information symbol (each mbit string) to be encoded is transformed into an nbit symbol, where m/n is the code rate (n ≥ m) and
 the transformation is a function of the last k information symbols, where k is the constraint length of the code.
Contents
Where convolutional codes are used
Convolutional codes are used extensively in numerous applications in order to achieve reliable data transfer, including digital video, radio, mobile communication, and satellite communication. These codes are often implemented in concatenation with a harddecision code, particularly Reed Solomon. Prior to turbo codes, such constructions were the most efficient, coming closest to the Shannon limit.
Convolutional encoding
To convolutionally encode data, start with k memory registers, each holding 1 input bit. Unless otherwise specified, all memory registers start with a value of 0. The encoder has n modulo2 adders (a modulo 2 adder can be implemented with a single Boolean XOR gate, where the logic is: 0+0 = 0, 0+1 = 1, 1+0 = 1, 1+1 = 0), and n generator polynomials — one for each adder (see figure below). An input bit m_{1} is fed into the leftmost register. Using the generator polynomials and the existing values in the remaining registers, the encoder outputs n bits. Now bit shift all register values to the right (m_{1} moves to m_{0}, m_{0} moves to m_{1}) and wait for the next input bit. If there are no remaining input bits, the encoder continues output until all registers have returned to the zero state.
Full article ▸


related documents 
List of computing topics 
Macro (computer science) 
Java Database Connectivity 
Vi 
Bzip2 
Object database 
Objectrelational mapping 
Prototypebased programming 
Conway's Game of Life 
Linear feedback shift register 
Emacs Lisp 
GNU Compiler Collection 
Infinite loop 
Comparison of Java and C++ 
VBScript 
.NET Framework 
Berkeley sockets 
Bresenham's line algorithm 
Interpreter (computing) 
NaN 
Linear 
DocBook 
Generating trigonometric tables 
List of programming languages by category 
Mersenne twister 
Controllability 
Discriminant 
Isomorphism theorem 
Monotonic function 
Generalized Riemann hypothesis 
