Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Constraint length of the Convolutional Code
Convolutional codes are error correcting codes where data streams of indefinite lengths are encoded before transmission over noisy channels. The message streams are encoded by the sliding application of Boolean functions that generate a sequence of output bits.
Convolutional codes were first introduced in 1955 by Elias. After extensive research by mathematicians, Viterbi developed an algorithm for maximum likelihood decoding in 1973, called the Viterbi algorithm, which led to modern convolutional codes.
Parameters in Convolutional Codes
For generating a convolutional code, information is passed sequentially through a linear finite-state shift register. The shift register comprises of K-bit stages and Boolean function generators.
A convolutional code can be represented as (n, k, K) where:
-
k is the number of bits shifted into the encoder at one time. Generally, k = 1.
-
n is the number of encoder output bits corresponding to k information bits.
-
The code rate, Rc = k/n.
-
The encoder memory, a shift register of size K, defines the constraint length.
-
The output n is a function of the present input bits and the contents of K.
-
The state of the encoder is given by the value of (K - 1) bits.
Constraint Length of Convolutional Code
Constraint length (K) is the size of the shift register in the memory encoder without feedback. It determines how many stages are needed for the combinational logic that produces the output bits.
The shift register of size K stores the present bit and the past (K - 1) bits. The Boolean function generators operate upon these bits to generate the unique output pattern. Thus, the constraint length represents the number of input bits required to generate the output pattern.
For example, a constraint length K = 3 denotes that the output pattern is obtained by operation of Boolean functions on the present input bit and the two previous input bits.
Selection of Constraint Length
The constraint length significantly influences the performance of convolutional codes. The choice involves a trade-off between error correction capability and implementation complexity.
Advantages of Long Constraint Length
-
More powerful error correction − Better error detection and correction capabilities
-
Higher coding gain − Better signal-to-noise ratio improvement
-
Lower bit error rates − More reliable communication over noisy channels
Disadvantages of Long Constraint Length
-
Complex decoder − Exponential increase in decoder complexity
-
Higher computational cost − More processing power required
-
Increased delays − Longer encoding and decoding times
-
Memory requirements − More storage needed for decoder states
Comparison of Constraint Lengths
| Constraint Length (K) | Number of States | Decoding Complexity | Performance |
|---|---|---|---|
| 3 | 4 | Low | Basic |
| 7 | 64 | Moderate | Good |
| 9 | 256 | High | Excellent |
Conclusion
Constraint length is a critical parameter in convolutional codes that determines the memory depth of the encoder. While longer constraint lengths provide better error correction performance, they require more complex implementation and higher computational resources, making the selection a careful balance between performance and complexity.
