Home > Documents > Convolutional Codes (1)

Convolutional Codes (1)

Date post: 30-Oct-2014
Author: rahul-kumar
View: 55 times
Download: 1 times
Share this document with a friend
Embed Size (px)
Popular Tags:
of 18 /18
Dr. Muqaibel \ EE430 Convolutional Codes Convolutional Codes

Convolutional Codes

Dr. Muqaibel \ EE430

Convolutional Codes


Basic Definitions

k =1, n = 2 , (2,1) Rate-1/2 convolutional code Two-stage register ( M=2 ) Each input bit influences the output for 3 intervals (K=3) K = constraint length of the code = M + 1Convolutional Codes 2

Dr. Muqaibel \ EE430

Generator Polynomial A convolutional code may be defined by a set of n generating polynomials for each input bit. For the circuit under consideration: g1(D) = 1 + D + D2 g2(D) = 1 + D2 The set {gi(D)} defines the code completely. The length of the shift register is equal to the highest-degree generator polynomial.

Dr. Muqaibel \ EE430

Convolutional Codes


State Diagram Representation The output depends on the current input and the state of the encoder ( i. e. the contents of the shift register).

Dr. Muqaibel \ EE430

Convolutional Codes


Trellis Diagram Representation Expansion of state diagram in time.

Dr. Muqaibel \ EE430

Convolutional Codes


Decoding A message m is encoded into the code sequence c. Each code sequence represents a path in the trellis diagram. Minimum Distance Decoding Upon receiving the received sequence r, search for the path that is closest ( in Hamming distance) to r .

Dr. Muqaibel \ EE430

Convolutional Codes


The Viterbi Algorithm Walk through the trellis and compute the Hamming distance between that branch of r and those in the trellis. At each level, consider the two paths entering the same node and are identical from this node onwards. From these two paths, the one that is closer to r at this stage will still be so at any time in the future. This path is retained, and the other path is discarded. Proceeding this way, at each stage one path will be saved for each node. These paths are called the survivors. The decoded sequence (based on MDD) is guaranteed to be one of these survivors.Dr. Muqaibel \ EE430 Convolutional Codes 7

The Viterbi Algorithm (contd) Each survivor is associated with a metric of the accumulated Hamming distance (the Hamming distance up to this stage). Carry out this process until the received sequence is considered completely. Choose the survivor with the smallest metric.

Dr. Muqaibel \ EE430

Convolutional Codes


6.3 The Viterbi Algorithm:

The viterbi algorithm is used to decode convolutional codes and any structure or system that can be described by a trellis. It is a maximum likelihood decoding algorithm that selects the most probable path that maximizes the likelihood function. The algorithm is based on add-compare-select the best path each time at each state.

Example: For the convolutional code example in the previous lecture, starting from statezero, Decode the following received sequence.

At the end of the trellis, select the path with the minimum cumulative Hamming weight

This is the survival path in this example

Add the weight of the path at each state

Compute the two possible paths at each state and select the one with less cumulative Hamming weight

Decoded sequence is m=[10 1110]This is called the survival path

Distance Properties of Conv. Codes Def: The free distance, dfree, is the minimum Hamming distance between any two code sequences. Criteria for good convolutional codes: Large free distance, dfree. Small Hamming distance (i.e. as few differences as possible ) between the input information sequences that produce the minimally separated code sequences. dinf There is no known constructive way of designing a conv. code of given distance properties. However, a given code can be analyzed to find its distance properties.Dr. Muqaibel \ EE430 Convolutional Codes 11

Distance Prop. of Conv. Codes (contd) Convolutional codes are linear. Therefore, the Hamming distance between any pair of code sequences corresponds to the Hamming distance between the all-zero code sequence and some nonzero code sequence. Thus for a study of the distance properties it is possible to focus on the Hamming distance between the all-zero code sequence and all nonzero code sequences. The nonzero sequence of minimum Hamming weight diverges from the all-zero path at some point and remerges with the all-zero path at some later point.Dr. Muqaibel \ EE430 Convolutional Codes 12

Distance Properties: Illustration

sequence 2: Hamming weight = 5, dinf = 1 sequence 3: Hamming weight = 7, dinf = 3.Dr. Muqaibel \ EE430 Convolutional Codes 13

Modified State Diagram The span of interest to us of a nonzero path starts from the 00 state and ends when the path first returns to the 00 state. Split the 00 state (state a) to two states: a0 and a1. The branches are labeled with the dummy variables D, L and N, where: The power of D is the Hamming weight (# of 1s) of the output corresponding to that branch. The power of N is the Hamming weight (# of 1s) of the information bit(s) corresponding to that branch. The power of L is the length of the branch (always = 1).Dr. Muqaibel \ EE430 Convolutional Codes 14

Modified State Diagram (contd)

Dr. Muqaibel \ EE430

Convolutional Codes


Properties of the PathSequence 2: code sequence: state sequence: Labeled: Prop. : w =5, dinf Sequence 3: code sequence: state sequence: Labeled: Prop. : w =7, dinfDr. Muqaibel \ EE430

.. 00 11 10 11 00 .. a0 b c a1 (D2LN)(DL)(D2L) = D5L3N =1, diverges from the allzero path by 3 branches. .. 00 11 01 01 00 10 11 00 .. a0 b d c b c a1 (D2LN)(DLN)(DL)(DL)(LN)(D2L) = D7L6N3 =3, diverges from the allzero path by 6 branches.Convolutional Codes 16

Transfer Function Input-Output relations: a0 = 1 b = D2LN a0 + LNc c = DLb + DLNd d = DLNb + DLNd a1 = D2Lc The transfer function T(D,L,N) = a1 /a0

D5 L3 T(D, L, N) 1 DNL(1 L)Dr. Muqaibel \ EE430 Convolutional Codes 17

Transfer Function (contd) Performing long division: T = D5L3N + D6L4N2 + D6L5N2 + D7L5N3 + . If interested in the Hamming distance property of the code only, set N = 1 and L = 1 to get the distance transfer function: T (D) = D5 + 2D6 + 4D7 There is one code sequence of weight 5. Therefore dfree=5. There are two code sequences of weight 6, four code sequences of weight 7, .Dr. Muqaibel \ EE430 Convolutional Codes 18