Lecture Notes on: Convolutional Code Paper: Information ...

27
Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6 th Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology Convolutional codes 1. Introduction A convolutional encoder processes the information sequence continuously. The n-bit encoder output at a particular time depends not only on the k-bit information sequence, but also on m previous input blocks, i.e., a convolutional encoder has a memory order of m. The set of sequences produced by a k-input, n- output encoder of memory order m is called an (n, k,m) convolutional code.The values of n and k are much smaller for convolutional codes compared to the block codes. Let k = 1, n = 2 and m = 2. The following circuit generates a (2, 1, 2) convolutional code. Input: u l Outputs: v (1 ) l = u l + u l2 v (2) l = u l + u l1 + u l2 If νi is the length of the i th shift register in a convolutional encoder with k input sequences, i = 1, 2, , k, then m= max νi 1ik The parameter m is known as memory order of the code. The ratio R = k/n is known as the code rate. The overall constraint length ν of the encoder is defined as ν = 1≤≤ 2. Encoding of (n, 1,m) convolutional code In this case, a single information sequence u = (u0, u1, , ul , ) is encoded into n output sequences.

Transcript of Lecture Notes on: Convolutional Code Paper: Information ...

Page 1: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Convolutional codes

1. Introduction

A convolutional encoder processes the information sequence continuously. The n-bit encoder output at a

particular time depends not only on the k-bit information sequence, but also on m previous input blocks, i.e., a convolutional encoder has a memory order of m. The set of sequences produced by a k-input, n-

output encoder of memory order m is called an (n, k,m) convolutional code.The values of n and k are

much smaller for convolutional codes compared to the block codes.

Let k = 1, n = 2 and m = 2. The following circuit generates a (2, 1, 2) convolutional code.

Input: ul

Outputs: v

(1)l = ul + ul−2

v(2)

l = ul + ul−1 + ul−2

If νi is the length of the i th shift register in a convolutional encoder with k input sequences, i = 1, 2, ・ ・

・ , k, then

m= max νi 1≤i≤k

The parameter m is known as memory order of the code.

The ratio R = k/n is known as the code rate.

The overall constraint length ν of the encoder is defined as ν = 𝑣𝑖1≤𝑖≤𝑘

2. Encoding of (n, 1,m) convolutional code

In this case, a single information sequence

u = (u0, u1, ・ ・ ・ , ul , ・ ・ ・ ) is encoded into n output sequences.

Page 2: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Consider a rate R = 1/2, (2, 1, 2) convolutional code specified by the following generator sequences g(1)

= (101), g

(2) = (111),

Let the information sequence u = (1 0 1 1 1 0 0 ・ ・ ・ ).

The output sequences are given by

v(1)

= (1 0 0 1 0 1 1 ・ ・ ・ )

v(2)

= (1 1 0 0 1 0 1 ・ ・ ・ )

The code sequence can be written as v = (11, 01, 00, 10, 01, 10, 11, ・ ・ ・ )

3. Encoding of Convolutional code using generator matrix

Page 3: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

4. Encoding of Convolutional code using polynomial multiplication method:

Page 4: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

5. State Diagram

Since a convolutional encoder is a sequential circuit, it can be described by a state diagram.

The state of the encoder is defined as its shift register contents. For a

(n, 1,m) code at time instant l , the state is defined by the m−tuple Sl = (xl−1, xl−2, · · ·, xl−m) where (xl−1, xl−2, · · ·, xl−m) are the m bits stored in the shift register.

There are 2m number of possible states for a (n, 1,m) convolutional code.

The output of a convolutional code at each time instant l , depends on the input and the current state. vl = f (ul , Sl)

Page 5: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

6. Trellis Diagram

The trellis diagram of a convolutional code includes a time-dimension. In each trellis section, the states are represented twice, once at time l , and another at time l + 1. There is a branch

connecting the state Sl at time l to the state Sl+1 at time l + 1 if there exists an input ul

at time l that drives the encoder to state Sl+1 from state Sl . A trellis diagram for a convolutional code is obtained by joining the trellis sections at different time units. Each code word is made up

of the labels on the trellis transitions that correspond to a specific path through the trellis.

Page 6: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

State diagram:

Trellis diagram

Page 7: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

7. Classification of convolutional encoder

Classification of convolutional encoder

Feedforward encoder

Feedback encoder Equivalent encoder

Catastrophic encoder

Controller canonical form realization Observer canonical form realization

Minimal encoder

Feedforward Encoder:

The encoder corresponding to a polynomial generator matrix does not contain any feedback path, and

hence it is known as a feedforward encoder.

The output of a feedforward encoder can be represented as a linear combination of the current input and a finite number of past inputs. This is also referred as nonrecursive encoder.

In figure, the encoder diagram of a rate R = 1, 2-state feedforward encoder with generator matrix G(D) =

[1+D] is shown using a shift register implementation.

Feedback Encoder:

Page 8: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

The encoder corresponding to a rational generator matrix with atleast one nonpolynomial transfer

function contains a feedback path and is known as a feedback encoder. The output of a feedback encoder can be represented as a linear combination of past inputs as well as past outputs. Hence the output

depends on infinite number of past inputs. This is also sometimes referred as recursive encoder.

In figure, the encoder diagram of a rate R = 1/2, 2-state feedback encoder with generator matrix G(D) =

[1 1/1+D ] is shown.

Systematic Encoder:

A rate R = k/n convolutional encoder whose k information sequences appear unchanged among the n code sequences is called a systematic encoder, and its generator matrix is called a systematic

generator matrix. In figure, a systematic rate R = 1/2 feedback convolutional encoder is shown.

Nonsystematic Encoder:

In a nonsystematic convolutional encoder, the k information sequences do not appear unchanged in the n code sequences. In figure, a nonsystematic rate R = 1/2 feedforward convolutional encoder is shown.

Equivalent Encoder

‘ Two convolutional generator matrices G(D) and G’(D) are equivalent if they encode the same code.

Two convolutional encoders are equivalent if their generator matrices are equivalent.

Two generator matrices G(D) and G’(D) are equivalent if and only

if there exists a rational invertible matrix T(D) such that G’(D) = T(D)G(D) Example: The generator matrix, G(D) = [1 1/1+D] and G’(D) = [1+D 1] are equivalent.

Page 9: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Catastrophic Encoder

A convolutional encoder is catastrophic if it encodes some information sequence with infinitely many

non-zero symbols into a code sequence with finitely many non-zero symbols.This means that a finite number of channel errors may result in infinitely many errors in the receiver.

Example:

G(D) =[1 + D 1 + D2]

If the input sequence u(D) =[1/ 1+D]= 1+D + D2 + ・ ・ ・ , then the output sequence, [1 1 + D] has

only weight 3, even thought the information sequence has infinite weight.

Realization of Convolutional encoder

8. Controller Canonical Form Realization

In controller canonical form realization, to realize a rate R = k/n convolutional encoder, k shift register are

used for input sequences, and n adders are used to form the output sequences. the k input sequences enter the shift registers at the left end of each shift register.

The n adders used to obtain output sequences are external to the shift register.

In Figure a rate R = 1, nonsystematic convolutional encoder with following generator function G(D) is

implemented in controller canonical form realization.

Page 10: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Observer Canonical Form Realization

In observer canonical form realization, to realize a rate R = k/n convolutional encoder, n shift register are

used for output sequences. The k input sequences enter the adders internal to the shift registers. The

lowest degree term in the generator polynomial represent the connections to the right hand side of the shift registers. In Figure a rate R = 1, nonsystematic convolutional encoder with following generator

function G(D) is implemented in observer canonical form realization.

Page 11: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Example:

Let’s consider a rate R = 2/3 systematic feedforward encoder with enerator matrix G(D) =[1 0 1+D + D2

0 1 1+D]

The parity check matrix can be written as

H(D) =[h(0)

(D) h(1)

(D) 1] =[1+ D + D2 1 + D 1] The controller canonical form realization results in (3, 2, 3) encoder.

The observer canonical form realization results in (3, 2, 2) encoder.

Minimal encoder A generator matrix of a convolutional code is minimal if its number of states is minimal over all equivalent generator matrices. A minimal encoder is a realization of a minimal encoding matrix

G(D) with the minimal number of memory elements over all realizations of G(D).

Page 12: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

9. Distance properties

The minimum free distance of a convolutional code

dfree≜ (𝑣, 𝑣): 𝑢 ≠ 𝑢 𝑢 ,𝑢

𝑚𝑖𝑛

where v and 𝑣 are the codewords corresponding to the information

sequences u and 𝑣 respectively.

dfree is the minimum Hamming distance between any two code

sequences in the code.

Weight enumerating function calculation

The performance of a convolutional code depends on its weight

distribution.

The weight distribution of a convolutional code is obtained by

modifying the state diagram as follows: All zero state is split into two states; initial state and final state and self loop around the all zero state is removed. Each branch is then labeled with a branch gain Xi, where i is the weight of the n output bits on that branch. Each path connecting the initial state to the final state is a non-zero code sequence. The path gain is the product of the branch gains along a path. The weight of a code sequence is the power of X in the path gain of

the corresponding path.

Page 13: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 14: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 15: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 16: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 17: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 18: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 19: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Decoding of convolutional codes-I: Viterbi algorithm

Viterbi decoding of (n, 1,m) code A convolutional code can be represented by its trellis diagram. Usually, the initial state of a convolutional

code is a all-zero state. For time, l ≤ m, as information bits are shifted into the encoder, the number of states are doubled. At time l = m, the number of states reaches 2

m. Since one information bit enters the

encoder at each time instant, there are two branches leaving each state in the trellis diagram.

For time, l > m, there are also two branches merging into each state.

The encoding of a information sequence is equivalent to tracing a path through a trellis.

The encoder is returned to all zero sequence after an L bit information sequence,

u = (u0, u1, u2, ・ ・ ・ , uL−1)

During the termination process, the number of states are reduced by half until all trellis paths converge back to the all-zero state.

For l ≤ m, there is exactly one path of length l, entering each node at level(time) l .

For l > m, there are exactly 2l−m

paths of length l, entering each node at level(time) l .

There are total 2l paths of length l .

Page 20: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 21: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 22: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 23: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 24: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 25: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 26: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology

Page 27: Lecture Notes on: Convolutional Code Paper: Information ...

Lecture Notes on: Convolutional Code Paper: Information Theory & Coding Code:EC604B Semester:6th

Provided By: Raj Kumar Maity, Assistant Professor, Department of ECE, Haldia Institute of Technology