Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
5 views16 pages

Convolutional Codes 2

Convolutional codes encode information bits into code bits using a shift register and generator sequences, characterized by parameters (n, k, m) which define output bits, input bits, and memory registers. The document discusses the encoding process, representation through trellis diagrams, and decoding algorithms like the Viterbi algorithm, which ensures maximum likelihood performance. Additionally, it covers punctured convolutional codes, which enhance efficiency by selectively deleting output bits to create codes of different rates.

Uploaded by

Lee
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)
5 views16 pages

Convolutional Codes 2

Convolutional codes encode information bits into code bits using a shift register and generator sequences, characterized by parameters (n, k, m) which define output bits, input bits, and memory registers. The document discusses the encoding process, representation through trellis diagrams, and decoding algorithms like the Viterbi algorithm, which ensures maximum likelihood performance. Additionally, it covers punctured convolutional codes, which enhance efficiency by selectively deleting output bits to create codes of different rates.

Uploaded by

Lee
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
You are on page 1/ 16

Convolutional codes

FEE522 1
Convolutional Codes

•Convolutional codes map information bits to code bits by sequentially interleaving a sequence of
information bits with “generator” sequences
•Convolutional encoding of data is achieved using a shift register and some combinatorial logic
performing modulo 2 addition
•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..

FEE522 2
Convolutional Encoder Example

• Consider the convolutional encoder shown in figure 1.


• The first output bit has a generator polynomial of
(1,1,1).
• The output bit 2 has a generator polynomial of (1,0,1)
• The output bits are the modulo-2 sum of these bits.

• v1 = mod2 (u0+ u1+ u2)

• v2 = mod2 (u0+u2)

FEE522 3
2,1,3 Convolutional Encoder(figure 1)

FEE522 4
Representation of convolutional encoder
by a Trellis diagram
•A convolutional encoder is a finite state machine, which can
be represented in many ways including state diagram(figure 2)
and tree diagram(figure 3) but the most commonly used for
encoding and decoding convolutional codes is the trellis.
•To create a trellis one needs to first create a state table for the
encoder.
•A state table for all possible states and transitions for the
encoder above is shown below.

FEE522 5
Convolutional Code State diagram(figure 2)

FEE522 6
Convolutional Code Tree diagram(Figure 3)

FEE522 7
State Table for the (2,1,3) Encoder

Input bit Register contents State at time ti State at time ti+1 Output at time ti

V1 V2

0 000 00 (a) 00(a) 0 0

1 100 00 (a) 10(c) 1 1

0 001 01 (b) 00(a) 1 1

1 101 01 (b) 10(c) 0 0

0 010 10 (c) 01(b) 1 0

1 110 10 (c) 11(d) 0 1

0 011 11 (d) 01(b) 0 1

1 111 11 (d) 11(d) 1 0

FEE522 8
Trellis for the (2,1,3) encoder(figure 4)

FEE522 9
Trellis for the (2,1,3) encoder(figure 4)
•Let's consider the encoder and the state table of the encoder shown in figure 1.
•In this diagram, transitions caused by an input 0 are indicated by solid branches,
while transitions caused by a 1 are indicated by solid branches.
•The symbols indicated on each branch are the output symbols generated by the
encoder.
• For example from the state table it is seen that, if the state of the encoder at time t is
00 and the input symbol 1 is fed into the encoder, then the encoder generates the
output symbols (11) and the state changes to 10. This is represented by the dashed
branch from state 00 to state 10 in the trellis diagram.
•If an input sequence 101101 is given to the encoder with state 00, the output sequence
is 11 10 00 01 01 00

FEE522 10
Decoding Algorithms

•If the received sequence doesn't fit into the graph then
it is considered to have been received with errors, and
the nearest correct sequence can be determined.
• Several algorithms exist for decoding convolutional
codes.
• These include sequential decoding and Viterbi
algorithm.
• Viterbi algorithm is provides maximum likelihood
performance and also easy to implement

FEE522 11
Viterbi Decoding

•Suppose the sequence 11 11 00 01 01 00 was received(figure 5)


•Each time a pair of symbols is received , the distance between what is received and all of the possible
symbol pairs is computed.
•From t = 0 to t = 1, there are only two possible channel symbol pairs we could have received: 00 and 11.
•The Hamming distance can be zero, one, or two.
•Since 11 was received the distance to ‘c’ at t=1 is 0 and to ‘a’ is 2
•The Hamming distance between the previous time instant and current time instant is called branch
metric.
•The current branch metric is added to the accumulated error metric at every transition.
•The path that gives the lowest accumulated error metric is the correct path.

FEE522 12
Viterbi Decoding(figure 5)

FEE522 13
Punctured Convolutional Codes

•Puncturing is a technique where an m/n rate code is created by


using two or more single input codes(e.g., 1/n code) by deletion
of some encoder output bits according to some puncturing matrix.
•Punctured convolutional codes have low complexity compared
to their non-punctured counterpart for the same level of
performance
•Eg a code with a 2/3 can be created using 2 1/2 rate codes
•Punctured convolutional codes are also called "perforated".

FEE522 14
Punctured Convolutional codes(figure 6)

FEE522 15
Punctured convolutional codes

•Figure 6 shows a punctured convolutional encoder.


•Two rate ½ codes encoders are used together to
produce a 2/3 rate code.
•one of the output bits is not transmitted
•Through puncturing codes of different rates can be
produced using simple hardware.

FEE522 16

You might also like