Convolutional Code
Convolutional Codes
- In convolutional codes, redundancy is added continuously to the whole stream.
- They depend upon the previous input.
- The encoder keeps M previous input bits in memory.
- Each output bit of the encoder then depends on the current input bit as well as the Mstored bits.
- Convolutional codes are referred to as continuous codes as they operate on a certain number of bits continuously.
A convolutional code is a type of error-correcting code in which
- each m-bit information symbol (each m-bit string) to be encoded is transformed into an n-bit 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.
Convolutional codes are commonly specified by three parameters; (n,k,m).
- n = number of output bits
- k = number of input bits
- m = number of memory registers
The quantity k/n called the code rate, is a measure of the efficiency of the code. Commonly k and n parameters range from 1 to 8, m from 2 to 10 and the code rate from 1/8 to 7/8 except for deep space applications where code rates as low as 1/100 or even longer have been employed.
- Often the manufacturers of convolutional code chips specify the code by parameters (n,k,L), The quantity L is called the constraint length of the code and is defined by Constraint Length, L = k (m-1).
- The constraint length L represents the number of bits in the encoder memory that affect the generation of the n output bits.
- The constraint length L is also referred to by the capital letter K, which can be confusing with the lower case k, which represents the number of input bits.
- Sometimes K is defined as equal to product the of k and m.
- Often in commercial spec, the codes are specified by (r, K), where r = the code rate k/n and K is the constraint length.
- The constraint length K however is equal to L – 1.
- Convolutional codes represent one technique within thegeneral class of channel codes.
- Channel codes (also callederror-correction codes) permit reliable communication of an information sequence over a channel that adds noise, introduces bit errors, or otherwise distorts the transmitted signal.
- Elias introduced convolutional codes in 1955.
- These codes have found many applications, including deep-space communications and voice band modems.
- Convolutional codes continue to play a role in low latency applications such as speech transmission and as constituent codes in Turbo codes.
Encoder Representations
The encoder can be represented in several different but equivalent ways. They are
- Connection Representation
- Polynomial Representation
- State Diagram Representation
- Tree Diagram Representation
- Trellis Diagram Representation
1. Connection Representation:
2. Polynomial Representation:
For Connection representation above we can have following Generator polynomials:
g1(x) = 1 + x + x^2
g2(x) = 1 + x^2
The output Sequence is found as follows:
U(x) = m(x) g1(x) interlaced with m(x) g2(x)
3. State Diagram Representation:
- A convolution encoder belongs to class of devices known as Finite State Machines, Which the general name is given to machines that have a memory of past signals.
- The adjective “Finite” refers to the fact that there are only finite Number of unique states that the machine can encounter,
What is meant by the state of the machine? - In most general sense the state consist of the smallest information that, together with current input to machine can predict the output of the machine.
4. The Tree Digram:
- The Tree Diagram adds the dimension of time to state diagram.
- At each input bit time the encoding process can be described by traversing the diagram left to right with each tree branch describing an output branch word.
- For K=3 and Code rate= ½ we have
5. The Trellis Diagram:
The Trellis Diagram exploits a repetitive structure and a more manageable encoder description than that of Tree Diagram. See figure, the dotted line shows input bit 1 and solid line shows input bit 0.
Reference: