0% found this document useful (0 votes)
16 views9 pages

Convolutional Coding Techniques Explained

Convolutional coding is a digital communication technique that enhances data transmission reliability by processing data bit by bit and generating redundant bits through modulo-2 convolution. The encoder operates as a finite-state machine with memory elements and produces output bits based on input bits, defined by a code rate and constraint length. The Viterbi algorithm is used for decoding by evaluating the Hamming distance to determine the most likely transmitted sequence from the received data.

Uploaded by

Shanti Trivedi
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views9 pages

Convolutional Coding Techniques Explained

Convolutional coding is a digital communication technique that enhances data transmission reliability by processing data bit by bit and generating redundant bits through modulo-2 convolution. The encoder operates as a finite-state machine with memory elements and produces output bits based on input bits, defined by a code rate and constraint length. The Viterbi algorithm is used for decoding by evaluating the Hamming distance to determine the most likely transmitted sequence from the received data.

Uploaded by

Shanti Trivedi
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Module -4

Convolutional codes

Convolutional coding is a technique used in digital communication to make data transmission


more reliable, especially in noisy environments. Instead of sending data as large blocks, it
processes data bit by bit in a continuous stream.

Why is it called "Convolutional" Coding?

The name comes from the fact that redundant (extra) bits are generated using a mathematical
operation called modulo-2 convolution. This operation ensures that even if some bits get
corrupted during transmission, the receiver can still recover the original data.

How Does a Convolutional Encoder Work?

A convolutional encoder can be thought of as a finite-state machine, which consists of:

●​ Shift registers (memory elements) that store previous bits.


●​ Modulo-2 adders (XOR gates) that generate redundant bits.
●​ Multiplexers that select and process the bits.

The code rate of the encoder is defined as:

Code Rate=k/n

where:

●​ k = Number of input bits (original data bits)


●​ n = Number of output bits (encoded bits)

For example, if k=1 and n=2, it means that for every 1 input bit, the encoder produces 2
output bits.

Constraint Length (L):

The constraint length (L) represents how many previous bits influence the current output bit.
It tells us how much "memory" the encoder has. A larger constraint length means stronger error
correction but increases complexity.
State diagram:
Each branch in the state diagram has a label of the form X=YYY...; where X is the
input bit that causes the state transition and YYY... is the corresponding output bits.
The encoder consists of two memory elements and hence the two binary elements can assume
any one of the four states designated by
S0 00; state a
S2 01; state b
S2 01; state c
S3 11: state d

Trellis Diagram
The state diagram does not contain time information required in decoding. Hence, trellis
diagram is developed to overcome the disadvantage. The trellis diagram is an expansion of
state diagram by adding a time axis for time information.

Example 5.6 The impulse responses of a convolutional encoder are given by


g1 =[1 0 1 ]; g2 = [1 1 1 ]
1. Draw the encoder
[Link] the tree diagram
3. Draw the state diagram
4. Draw the trellis diagram for the first three stages.
Encoder:

𝑋1 = 𝑚0 + 𝑚1 + 𝑚2
𝑋2 = 𝑚0 + 𝑚2

𝑠𝑡
1 𝑀𝑒𝑡ℎ𝑜𝑑:
for given input: 1011

i/0 m0 m1 m2 x1 x2
0 0 0 0 0

1 1 0 0 1 1

1 1 1 0 0 1

0 0 1 1 0 1

1 1 0 1 0 0

0 1 0 1 0
0 0 1 1 1
1 1 1 1 0
Tree Diagram:

for given input: 1011 (Take LSB First)

Encoded sequence: 11 01 10 11
𝑛𝑑
2 𝑀𝑒𝑡ℎ𝑜𝑑: (we use this to make a state diagram)

m0 m1 m2 x1 x2 Current Next state


state
0 0 0 0 0 a (00)a
1 0 0 1 1 a (10)c
0 0 1 1 1 b (00)a
1 0 1 0 0 b (10)c
0 1 0 1 0 c (01)b
1 1 0 0 1 c 11(d)
0 1 1 0 1 d 01(b)
1 1 1 1 0 d 11(d)

State diagram:
Here state (𝑚1𝑚2) is inside the circle which is represented by
𝑚1𝑚2= 00; state a
𝑚1𝑚2=01; state b
𝑚1𝑚2= 01; state c
𝑚1𝑚2= 11: state d

0/00= input/output or 𝑚0/𝑥1𝑥2


0: move downward or same level
1: move upward or same level

0=solid line
1=dashed line
Trellis diagram:

Decoding the received sequence 11 01 01 00 using Viterbi


algorithm
Viterbi algorithm:

•​ It is also known as maximum likelihood decoding


•​ The algorithm operates by computing a metric or discrepancy for every possible path in
the trellis.
•​ The metric for a particular path is defined as the hamming distance between the code
sequence represented by the path and received sequences.
•​ This for each node (state) in trellis , the algorithm compares two paths entering the node.
•​ The path with lower metric is retained and other is discarded.
Decoding the received sequence 11 01 10 using Viterbi algorithm

•​

Decoding:

•​
Q.3
Below figure depicts a rate ½, constraint length L = 1, convolutional encoder. Sketch the Tree
diagram. Also find encoder output for input data: 11101

Q.4

a)​ Draw the state diagram, trellis diagram for this encoder.
b)​ Find the outputsequences corresponding to the input msg sequence 1101.
c)​ Assume that the received sequence is r=10 11 11 10 using the viterbi algorithm find the
transmitted bit sequence. Ans 1001

Common questions

Powered by AI

The constraint length in a convolutional encoder represents how many previous bits influence the current output bit and indicates the "memory" of the encoder. A larger constraint length provides stronger error correction capabilities as it allows more bits to be considered in the decoding process, but it also increases the complexity of the encoding and decoding processes .

To construct a tree diagram for a convolutional encoder given an input bit sequence, list the states with their transitions connecting each state based on the input sequence. For example, with input 1011 coded as 11 01 10 11, track how each input bit maps the transitions from one state to another, illustrating each path from initial state through successive states, linked by encoded output bits .

The code rate of a convolutional encoder, defined as k/n where k is the number of input bits and n is the number of output bits, affects the complexity and output by dictating how many redundant bits are generated per input bit. A lower code rate (more output bits per input bit) typically enhances error correction capability but also increases the size of the encoded data and the complexity of processing .

With a constraint length L of 3 in a convolutional encoder, an input bit would affect the next three output bits, as the encoder considers the input bit along with two previous bits to generate each new output bit through modulo-2 convolution. This increases redundancy, enhancing error correction by utilizing these and preceding input bits to form complex combinations for output .

Maximum likelihood decoding using trellis diagrams involves calculating metrics for each possible path through the trellis based on the Hamming distance between the received sequence and the path’s code sequence. It systematically evaluates paths to retain those with the least metric at each node, seamlessly handling error correction by opting for the most probable path, thus ensuring accurate data recovery .

Shift registers in a convolutional encoder store previous bits, providing temporal data memory for generating output bits influenced by past inputs. Multiplexers select and process these bits alongside current inputs through operations defined by the encoder’s parameters to produce the encoded output, ensuring robust data encoding against errors .

In a convolutional encoder, redundant bits are generated using modulo-2 adders (XOR gates) which operate on the input bit and several previous bits stored in shift registers as part of the finite-state machine design. This process is influenced by the specific logical connections and the encoder’s structure, defined by parameters such as the constraint length and code rate .

Convolutional coding is used in digital communication to make data transmission more reliable, particularly in noisy environments, by continuously processing data and generating redundant bits using modulo-2 convolution. This ensures that even if some bits are corrupted during transmission, the receiver can still recover the original data .

The Viterbi algorithm is significant in decoding convolutionally encoded sequences because it performs maximum likelihood decoding by calculating a metric, such as Hamming distance, for each possible path in a trellis diagram and retains paths with lower metrics. This ensures optimized decoding by selecting the path most likely representing the transmitted data, hence improving error correction .

State diagrams depict the state transitions of a convolutional encoder, but they lack time information necessary for decoding. Trellis diagrams expand upon state diagrams by adding a time axis, allowing representation of the encoder's operation and showing all possible transitions and paths through states over time, which is essential for applying algorithms like the Viterbi algorithm .

You might also like