Sie sind auf Seite 1von 45

Overview

Channel Coding
Convolutional Codes
Convolutional Encoding

Convolutional Decoding

Merits and Demerits

Applications

Conclusions

What is Channel Coding?


Channel Coding refers to the class of signal transmission
designed to
Improve communication performance
better withstand the effects of various channal
impairments, such as noise, interference and fading

Structured Sequences
Structured sequences deals with transforming data
sequences into better sequences, having structured
redundancy. The redundant bits can then be used for the
detection and correction of errors

Convolutional Codes
Convolutional codes offer an approach to error control
coding
Sequentially convolves the sequence of information bits
with generator sequences according to some rule
It is a channal coding scheme with memory

Convolutional Codes Specifications


Convolutional code is specified by 3 parameters n, k and K
where,
k = inputs
n = outputs
K = constraint length of the convolutinal code
n-tuple emitted by convolutional encoding procedure is not only
a function of an input k-tuple, but is also a function of the
previous k-1 input k-tuple

Code Rate
code rate = ratio k/n determine the number of data bits per
coded bit.

Convolutional Codes Performance


Criteria
The performance of a convolutional code depends on
coding rate
constraint length
Smaller coding rate k/n
More powerful code due to extra redundancy
Less bandwidth efficiency
Longer constraint length K
More powerful code
More coding gain

Convolutional Encoding

A General Convolutional Encoder

Convolutional Encoder Representation


Methods
Connection Representation
Impulse Response of Encoder
Polynomial Representation
Tree Diagram
State Diagram
The Trellis Diagram

Connection Representation
Convolutional encoder
(rate , K=3)
3 shift-registers, where the first one takes the incoming
data bit and the rest form the memory of the encoder

Connection Representation Contd.


Periodic Truncation

Adds number of zero bits to the input data sequence for


the purpose of clearing or flushing the encoding shift
register

Connection Vectors
Describes the connection of the encoding shift register to
that of module 2 adder
If connection exists = connection vector is 1
If no connection = connection vector is 0

Connection Representation Example


Connection vector g1 for the upper connection = 111
Connection vector g2 for the lower connection = 101

Example Contd.

Impulse Response of Encoder


Response of the encoder to a single one bit that moves through
register
The output sequence for the Input one is called impulse response
of the encoder

Example
Consider input sequence m = 101. We generate output by the
convolution of the input sequence with the impulse response of
the encoder, that we drive the name convolutional encoder

Polynomial Representation
Represent a convolutional encoder with a set of n generator
polynomial, one for each of the n module-2 adder and
describes the connection of the encoding shift register to that
module-2 adder like connection vector
Generator polynomial for upper and lower connection

Express m=101 as a polynomial

The output sequence is found as

Polynomial Representation Contd.

State Diagram
A state diagram is simply a graph of the possible states
of the encoder and the possible transitions from one
state to another
It is not possible in a single transition to move form a
given state to an arbitrary state
It can be used to show the relationship between the
encoder state, input, and output
Nodes are connected by branches

State Diagram Contd...

Tree Diagram
Tree diagram adds the dimension of time to the state
diagram
If the input bit is 0, its associated branch word is found by
moving to the next rightmost branch in the upward direction
If the input bit is 1, its associated branch word is found by
moving to the next rightmost branch in the downward
direction

Tree Diagram Contd.

The branching rule for finding a codeword sequence is


If the input bit is 0 = output
branch word is 00
If the input bit is 1 = output
branch word is 11
If the first input bit is 1 &
2nd input bit is 1 = output
branch word is 01
If the first input bit is 1 &
2nd input bit is 0 = output
branch word is 10

Trellis Diagram
Trellis diagram is an extension of state diagram which
explicitly shows the passage of time
All the possible states are shown for each instant of time
Time is indicated by a movement to the right
The input data bits and output code bits are represented
by a unique path through the trellis
Blue line indicates that the input bit is 1. Red line
indicates that the input bit is 0

Trellis
Diagram
Assume that
the state start with Contd.
'a=00 , m = 11011
Step 1
Current status : a = 00
Encoding Rule : 0 --> 00, 1 --> 11
Input to the status : 1 (1 bit)
Output bit (according to Econding
Rule) : 11 (2 bits)
Output Status : b = 10

Step 2
Current status : b = 10 (The result
of Previous Step)
Encoding Rule : 0 --> 10, 1 --> 01
Input to the status : 1 (1 bit)
Output (according to Econding
Rule) : 01 (2 bits)
Output Status : d = 11

Trellis Diagram Contd.

Step 3

Current status : d = 11 (The result of Previous


Step)
Encoding Rule : 0 --> 01, 1 --> 10
Input to the status : 0 (1 bit)
Output (according to Econding Rule) : 01 (2 bits)
Output Status : c = 01

Step 4

Current status : c = 01 (The result of Previous


Step)
Encoding Rule : 0 --> 11, 1 --> 00
Input to the status : 1 (1 bit)
Output (according to Econding Rule) : 00 (2 bits)
Output Status : b = 10

Step 5

Current status : c = 10 (The result of Previous


Step)
Encoding Rule : 0 --> 10, 1 --> 01
Input to the status : 1 (1 bit)
Output (according to Econding Rule) : 01
Output Status : d = 01

Convolutional Decoding
Several decoding algorithm
Viterbi decoding
Sequential decoding

Viterbi decoding algorithm

Used for relatively small values of k


Universally adopted
Provides maximum likelihood
Easily implemented in VLSI

Example of Viterbi Algorithm


Let's assume that we have received a bit stream
'1101010001' and want to decode this to get the original
data (the data before encoding)
Assuming that we have used 2 bit encoder, we split the
received bit stream into multiple groups of two bits
Then we have 11 01 01 00 01
Now we have to do is to back track the trellis diagram to
figure out the input bit stream that would have produced
11 01 01 00 01

Steps in Decoding

Steps in Decoding

Steps in Decoding

Steps in Decoding

Steps in Decoding

Merits and Demerits of Convolutional


Codes
Merits
To correct the errors in noisy channels these convolutional codes are
frequently used
These convolutional codes perform well on very bad conditions also
These convolutional codes are generally used often in satellite
communications
Convolutional codes generally gives good results in lower noise
environments
Convolutional codes are also used in the voice band modems and
also in the GSM mobile phones

Demerits
Even though the convolutional encoder has the simplest procedure,
decoding of it is very complex task.
Convolutional codes cannot provide more protection against noise.

Applications

Digital video
Radio
Mobile communication
Satellite communication

Conclusions
Convolution codes outperform block codes for the same
implementation complexity of encoder -decoder.
Convolutional encoding can be used to improve the
performance of wireless systems.
Viterbi algorithm is an optimum decoding algorithm in the
sense that it always finds the nearest path to the noisy
modification of the encoder output sequence and it is
quite useful when the code has a short memory.

Comparison of Block & Convolutional


Codes?
Not much differernce. As an operation convolutional
codes are called block codes but traditionaly called
convolutional codes because of impulse response
behaviour and memory

Encoder of convolutional codes has memory


Output n-tuple is function of both input k-tuple and
previos k-1 input k-tuple
Encoder of block codes has no memory
Output n-tuple is function of input k-tuple only
Convolution codes perform better than block codes for
the same implementation of encoding and decoding

Viterbi Decoding with Error


Decoding algorithms with errors uses Hamming distance
metric to find the most likely (minimum distance) path
through the trellis
Hamming distance is path between 2 nodes
Path between nodes having shorter hamming distance is
chosen as correct path
State 00 to 00 transition has hamming distance 2
State 00 to 10 transition has hamming distance 0

Decoding with Error


1 Step

Decoding with Error


2 Step

Decoding with Error


3 Step

Decoding with Error


4 Step

Decoding with Error


5 Step

Decoding with Error


6 step

Decoding with Error


7 Step

Das könnte Ihnen auch gefallen