+ All Categories
Home > Documents > Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3...

Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3...

Date post: 06-Feb-2018
Category:
Upload: truongphuc
View: 235 times
Download: 2 times
Share this document with a friend
50
Chapter 3 Convolutional Codes and Trellis Coded Modulation 3.1 Encoder Structure and Trellis Representation 3.2 Systematic Convolutional Codes 3.3 Viterbi Decoding Algorithm 3.4 BCJR Decoding Algorithm 3.5 Trellis Coded Modulation
Transcript
Page 1: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

Chapter 3 Convolutional Codes and

Trellis Coded Modulation

• 3.1 Encoder Structure and Trellis Representation• 3.2 Systematic Convolutional Codes• 3.3 Viterbi Decoding Algorithm• 3.4 BCJR Decoding Algorithm• 3.5 Trellis Coded Modulation

Page 2: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

• Introduction– Encoder: contains memory (order m: m memory units);– Output: encoder output at time unit t depends on the input and the

memory units status at time unit t;– By increasing the memory order m, one can increase the convolutional

code’s minimum distance (dmin) and achieve low bit error rate performance (Pb);

– Decoding Methods:• Viterbi algorithm [1]: Maximum Likelihood (ML) decoding algorithm;• Bahl, Cocke, Jelinek, and Raviv (BCJR) [2] algorithm: Maximum A

Posteriori Probability (MAP) decoding algorithm, used for iterative decoding process, e.g. turbo decoding.

[1] A. J. Viterbi, “Error bounds for convolutional codes and an asymptotically optimum decoding algorithm,” IEEE Trans. Inform. Theory, IT-13, 260-269, April, 1967.

[2] L. R. Bahl, J. Cocke, F. Jelinek, and J. Raviv, “Optimal decoding of linear codes for minimizing symbol error rate,” IEEETrans, Inform. Theory, IT-20; 284-287, March, 1974.

§3.1 Encoder Structure and Trellis Representation

Page 3: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

• Encoder structure:

• Encoding Process:

S0 S1

c1

c2

Input a

Code rate: ½;

Memory: m = 2;

Constraint length: m + 1 = 3

0 0

1

1 00 0 11

1

1

1

0

0

0

At time t1

At time t2At time t3

(Initialised state s0s1 = 00)

- The (7, 5)8 conv. code

§3.1 Encoder Structure and Trellis Representation

Output calculation:

c1 = a S0 S1;

c2 = a S1;

Registers update:

S1’ = S0.

S0’ = a.

Page 4: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

Input sequence [m1 m2 m3 m4 m5 m6] = [1 0 1 0 0 0]

0

1

0

0

At time t4

1 0

0

0

0

At time t6

0

1

1

0

1

At time t5

0

§3.1 Encoder Structure and Trellis Representation

Page 5: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

11

1001

00

a

c b

d

1/10

1/010/01

0/11 1/11

0/00

0/10

1/00

State definition (s0 s1)

a = 00

b = 10

c = 01

d = 11

Interpretation of the state diagram

01

c

00

aInput bit (0) / output bits (11)

The current state of the encoder is c. If the input bit is 0, it will output 11

and the next state of the encoder is a.

A state transition diagram of the (7, 5)8 conv. code

§3.1 Encoder Structure and Trellis Representation

Page 6: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

Tree Representation of the (7, 5)8 conv. code

00

00

00

00

11

11

11

11

10

10

10

01

01

01

Initialised state:

Time unit: 1 2 3 4

Input bit as 0

Input bit as 1State after transitionOutput from transition

a

a

b

a

b

c

d

a

b

c

da

b

c

d

Tree diagram interpretation:The current state of the encoder is b. If the input bit is 0, the output will be 10, and the next state of the encoder is c.

Example 3.1 Determine the codeword that corresponds to message [0 1 1 0 1]

§3.1 Encoder Structure and Trellis Representation

Page 7: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

Trellis of the (7, 5)8 conv. codeState Table

IN Current State Next State Out ID01010101

0000010110101111

0010001001110111

0011110010010110

00

01

10

11

00

01

10

11

0011

1100

1001

0110

Trellis

Remark: A trellis tells the state transition and IN/OUT relationship. It can be used to yield a convolutional codeword of a sequential input.

Example 3.2 Use the above trellis to determine the codeword that corresponds to message [0 1 1 0 1].

IN: 0 IN: 1

§3.1 Encoder Structure and Trellis Representation

OUT12345678

13

5

2

68

47

Page 8: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

A number of conv. codes(7, 5)8 conv. code (15, 13)8 conv. code

(23, 35)8 conv. code

Remark: A convolutional code’s error-correction capability improves by increasing the number of the encoder states.

(171, 133)8 conv. code

16 states 64 states

4 states 8 states

§3.1 Encoder Structure and Trellis Representation

Page 9: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

Remark: The encoder structure can also be represented by generator

sequences or transfer functions.

§3.1 Encoder Structure and Trellis Representation

Example 3.3:

Page 10: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.2 Systematic Convolutional Codes

- The (7, 5)8 conv. code’s systematic counterpart is:

S1S0

(7, 5)8 conv. code

S1S0

(1, 5/7)8 conv. code

Nonsystematic code Systematic code

Encoding and Registers’ updating rules:[S0 S1] are initialization as [0 0];c1 = a ; (systematic feature) feedback = S0 S1 ;c2 = a feedback S1 ; S1

’ = S0 ; S0’ = a feedback;

c1

c2

c1c2

a

a

Remark: Systematic encoding structure is important for iterative decoding, e.g., the decoding of turbo codes.

Page 11: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

For the (1, 5/7)8 conv. code

State Table

IN Current State Next State Out ID01010101

0000010110101111

0010100011010111

0011001101100110

00

01

10

11

00

01

10

11

0011

1100

1001

0110

Trellis

IN: 0 IN: 1

§3.2 Systematic Convolutional Codes

OUT

1

2

3

4

5

6

7

8

12436578

Page 12: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Let us extend the trellis of the (7, 5)8 conv. code as if there is a sequential input.

00

01

10

11

00

11

00

1110

01

0011

110010

1001

01

0011

110010

0101

10

0011

110010

0101

10

- Such an extension results in a Viterbi trellis

- A path in the Viterbi trellis represents a convolutional codeword that corresponds to a sequential input (message).

……

Page 13: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

00

01

10

11

00

11

00

1110

01

0011

110010

1001

01

0011

110010

0101

10

0011

110010

0101

10

- Branch metrics: Hamming distance between a transition branch’s output and the corresponding received symbol (or bits).

- Path metrics: Accumulated Hamming distance of the previous branch metrics.

……

Page 14: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Example 3.4. Given the (7, 5)8 conv. code as in Examples 3.1-3.3. The transmittedcodeword is

00

01

10

11

00

11

00

1110

01

0011

110010

1001

01

0011

110010

0101

10

0011

110010

0101

10

Step 1: Calculate all the branch metrics.

00 11 11 01 00

0

2

2

0

1

1

20

02

11

1

1

11

1

12

0

0

2

02

2

01

1

1

1

……

Page 15: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Step 2: Calculate the path metrics.

00

01

10

11

00

11

00

1110

01

0011

110010

1001

01

0011

110010

0101

10

0011

110010

0101

10

00 11 11 01 00

0

2

2

0

1

1

20

02

11

1

1

11

1

12

0

0

2

02

2

01

1

1

1

0

2

2

3

0

3 1

2

1

3 2

1

2

2 3

1

3

2

When the two joining paths give the same accumulated Hamming distance, pick up one randomly.

……

When two paths joinin a node, keep thesmaller accumulatedHamming distance.

0

Page 16: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Step 3: Pick up the minimal path metric and trace back to determinethe message.

Tracing rules: (1) Trellis connection;(2) The previous path metric should NOT be greater than the

current path metric;(3) The tracing route should match the trellis transition ID.

00

01

10

11

00

11

00

1110

01

0011

110010

1001

01

0011

110010

0101

10

0011

110010

0101

10

0

2

2

0

1

1

20

02

11

1

1

11

1

12

0

0

2

02

2

01

1

1

1

0,1

2,2

2,1

3,5

0,2

3,6 1,6

2,2

1,5

3,3 2,3

1,7

2,4

2,6 3,8

1,4

3,5

2,1

00 11 11 01 00

Decoding output: 0 1 1 0 1

……

0

Page 17: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Branch Metrics Table

20021111

11112002

02201111

Path Metrics Table

2303

3121

2122

2313

Trellis Transition ID Table

1

2

3526

3746

1548

Page 18: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Soft-decision Viterbi decoding • While we are performing the hard-decision Viterbi decoding, we have the scenario that two joining paths yield the same accumulated Hamming distance. This would cause decoding ‘ambiguity’ and performance penalty;• Such a performance loss can be compensated by utilizing soft-decision decoding, e.g., soft-decision Viterbi decoding

Modulation

01

Modulation and Demodulation (e.g., BPSK)• Modulation: mapping binary information into a transmitted symbol;• Demodulation: determining the binary information with a received symbol;

information

(1, 0)(-1, 0)

Transmitted symbolDemodulation

01

(1, 0)(-1, 0)Channel

(0.5, 0.9)Received symbol

Page 19: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Definition: The Euclidean distance between points p and q is the length of the linesegment connecting them.

p(x1, y1)q(x2, y2)

Modulation and Demodulation (e.g., BPSK)

Demodulation

01

(1, 0)(-1, 0)

(0.5, 0.9)Received symbol Hard-decision: the information bit is 0. The

Hamming distance becomes the Viterbi decoding metrics;

Soft-decision: the information bit has Pr. of 0.7 being 0 and Pr. of 0.3 bing 1. The Euclidean

distance (or probability) becomes the Viterbi decoding metrics;

Euclidean Distance

221

221 )()( yyxxdEud

Page 20: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Example 3.5. Given the (7, 5)8 conv. code as in Examples 3.1-3.3. The transmittedcodeword is

After BPSK modulation, the transmitted symbols are: (1, 0), (1, 0), (-1, 0), (-1, 0), (1, 0), (-1, 0), (1, 0), (-1, 0), (1, 0), (1, 0).

After the channel, the received symbols are: (0.8, 0.2), (1.2, -0.4), (-1.3, 0.3), (-0.9, -0.1), (-0.5, 0.4), (-1.0, 0.1), (1.1, 0.4), (-0.7, -0.2), (1.2, 0.2), (0.9, 0.3).

Page 21: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

……

(0.8, 0.2)(1.2, -0.4)

(-1.3, 0.3)(-0.9, -0.1) (-1.0, 0.1) (0.9, 0.3)

(-0.5, 0.4) (1.2, 0.2)(-0.7, -0.2)(1.1, 0.4)

00 00 00 00 0000

01

10

11

Step 1: Calculate all the branch metrics.

11 11 11 11 11

11 11 11

00 00 0010 10 10

0101 01 0110 10 10

01 01 01

0 (1, 0)1 (-1, 0)

0.53

2.88

3

0.45

2.32

2.530.650.65

2.10

2.53

1.56

1.56

2.10

1.76

1.76

2.17

2.74

2.17

1.10

1.10

2.7410

0.42

0.42

1.94

1.94

2.68

2.68

2.932.93

1.95

Page 22: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

……

(0.8, 0.2)(1.2, -0.4)

(-1.3, 0.3)(-0.9, -0.1) (-1.0, 0.1) (0.9, 0.3)

(-0.5, 0.4) (1.2, 0.2)(-0.7, -0.2)(1.1, 0.4)

00 00 00 00 0000

01

10

11

Step 2: Calculate the path metrics.

11 11 11 11 11

11 11 11

00 00 0010 10 10

0101 01 0110 10 10

01 01 01

0.53

2.88

3

0.45

2.32

2.530.650.65

2.10

2.53

1.56

1.56

2.10

1.76

1.76

2.17

2.74

2.17

1.10

1.10

2.7410

0.42

0.42

1.94

1.94

2.68

2.68

2.932.93

1.95

0.53

2.88

3.53

0.98

4.83

5.2 2.54

4.18

3.08

5.48

5.28

4.84

3.64

5.25

4.06

6.78

6.65

5.670

When two paths join in a node, keep the smaller accumulatedEuclidean distance.

Page 23: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Step 3: Pick up the minimal path metric and trace back to determinethe message.

Tracing rules: The same as hard-decision Viterbi decoding algorithm.

Decoding output: 0 1 1 0 1

……

(0.8, 0.2)(1.2, -0.4)

(-1.3, 0.3)(-0.9, -0.1) (-1.0, 0.1) (0.9, 0.3)

(-0.5, 0.4) (1.2, 0.2)(-0.7, -0.2)(1.1, 0.4)

00 00 00 00 0000

01

10

11

11 11 11 11 11

11 11 11

00 00 0010 10 10

0101 01 0110 10 10

01 01 01

0.53

2.88

3

0.45

2.32

2.530.650.65

2.10

2.53

1.56

1.56

2.10

1.76

1.76

2.17

2.74

2.17

1.10

1.10

2.7410

0.42

0.42

1.94

1.94

2.68

2.68

2.932.93

1.95

0.53,1

2.88,2

3.53,1

0.98,2

4.83,5

5.2,6 2.54,6

4.18,2

3.08,5

5.48,3

5.28,6

4.84,4

3.64,7

5.25,3

4.06,4

6.78,8

6.65,5

5.67,10

Page 24: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Branch Metrics Table Path Metrics Table

Trellis Transition ID Table

1

2

3526

3746

1548

Page 25: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Free distance of convolutional code

- A convolutional code’s performance is determined by its free distance.

- Free distance

- With knowing is also a convolutional codeword.

Hence, it is the minimum weight of all finite length paths in the Viterbi trellis that diverge from and emerge with the all zero state.

Page 26: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

Hence, it is the minimum weight of all finite length paths in the Viterbi trellis that diverge from and emerge with the all zero state.

§3.3 Viterbi Decoding Algorithm

00

01

10

11

00

11

00

1110

01

0011

110010

1001

01

0011

110010

0101

10

0011

110010

0101

10

00 11 11 01 00

0

2

2

0

1

1

20

02

11

1

1

11

1

12

0

0

2

02

2

01

1

1

1

……

Page 27: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.3 Viterbi Decoding Algorithm

Remark: Convolutional code is more competent in correcting spread errors, but not bursty errors.

error

Page 28: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

- A Soft-In-Soft-Out (SISO) decoding algorithm that takes probabilities as the input and delivers probabilities as the output.

- Hard-decision Viterbi algorithm: a Hard-In-Hard-Out (HIHO) decoding. Soft-decision Viterbi algorithm: a Soft-In-Hard-Out (SIHO) decoding.BCJR Algorithm: a Soft-In-Soft-Out (SISO) decoding.

Page 29: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

- In a trellis (e.g., trellis of the (7, 5)8 conv. code). 00

01

10

11

00

01

10

11

0011

1100

1001

0110

IN: 0 IN: 1

(a)

(b)

(c)

(d)

(a)

(b)

(c)

(d)

The (IN, OUT, current state, next state) tuple happens as an entity.

θ

θ θ

θ

θ

θ

θ

θ

θ

θ

Page 30: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

00

01

10

11

00

01

10

11

0011

1100

1001

0110

IN: 0 IN: 1

(a)

(b)

(c)

(d)

(a)

(b)

(c)

(d)

- For a rate half conv. code,

- Trellis state transition probability:

§3.4 BCJR Decoding Algorithm

Page 31: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

1 0

BPSK

00

01

10

11

00

01

10

11

0011

1100

1001

0110

IN: 0 IN: 1

(a)

(b)

(c)

(d)

(a)

(b)

(c)

(d)

- Determine the state transition probabilities.

)0|()0( 1'

1' tttch cyPcP

)1|()1( 1'

1' tttch cyPcP

Page 32: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

00 00

11 11

11

0010

010110

0110

a

b

c

d

a

b

c

d

a

b

c

d

IN: 0 IN: 1

- Knowing the Viterbi trellis starts from the all-zero state, we initialize:

- E.g., in the highlighted trellis transition

10

01

11

00

- Determine the probability of each beginning state.

Page 33: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

00 00

11 11

11

0010

010110

0110

a

b

c

d

a

b

c

d

a

b

c

d

IN: 0 IN: 1

- By ensuring after encoding, the shift registers (encoder) are restored to the all zero state (achieved by bit tailing), we can initialize:

- E.g., in the highlighted trellis transition

10

00

11

01

- Determine the probability of each ending state.Ω

Page 34: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

00

01

10

11

00

01

10

11

0011

1100

1001

0110

IN: 0 IN: 1

a

b

c

d

a

b

c

d

State transition indicated by

State transition indicated by

Page 35: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

- E.g.,

- Decision based on the a posteriori probabilities.

Page 36: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

Example 3.6. With the same transmitted codeword and received symbols of Example 3.5,

use the BCJR algorithm to decode it.

With the received symbols, we can determine

Page 37: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

……

(0.8, 0.2)(1.2, -0.4)

(-1.3, 0.3)(-0.9, -0.1) (-1.0, 0.1) (0.9, 0.3)

(-0.5, 0.4) (1.2, 0.2)(-0.7, -0.2)(1.1, 0.4)

00 00 00 00 0000

01

10

11

11 11 11 11 11

11 11 11

00 00 0010 10 10

0101 01 0110 10 10

01 01 01

0.33

0.01

0.01

0.47

0.03

0.020.330.33

0.04

0.02

0.12

0.12

0.04

0.10

0.10

0.05

0.01

0.05

0.41

0.41

0.0110

0.42

0.42

0.07

0.07

0.04

0.04

0.010.01

0.08

a

b

c

d

a

b

c

d

Page 38: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

……

(0.8, 0.2)(1.2, -0.4)

(-1.3, 0.3)(-0.9, -0.1) (-1.0, 0.1) (0.9, 0.3)

(-0.5, 0.4) (1.2, 0.2)(-0.7, -

0.2)

(1.1, 0.4)

00 00 00 00 0000

01

10

11

11 11 11 11 11

11 11 11

00 00 0010 10 10

0101 01 0110 10 10

01 01 01

1.0

100.0

0.0

0.0

0.98

0.0

0.02

0.0

0.01

0.00

0.98

0.00

0.01

0.26

0.02

0.71

0.04

0.84

0.08

0.05

0.05

0.02

0.91

0.02

a

b

c

d

a

b

c

d

Page 39: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

……

(0.8, 0.2)(1.2, -0.4)

(-1.3, 0.3)(-0.9, -0.1) (-1.0, 0.1) (0.9, 0.3)

(-0.5, 0.4) (1.2, 0.2)(-0.7, -0.2)(1.1, 0.4)

00 00 00 00 0000

01

10

11

11 11 11 11 11

11 11 11

00 00 0010 10 10

0101 01 0110 10 10

01 01 01

0.92

100.04

0.02

0.02

0.85

0.07

0.03

0.05

0.05

0.01

0.69

0.25

0.00

0.00

0.03

0.97

0.01

0.99

0.00

0.00

0.00

0.00

1.00

0.00

Assume we know the trellis ends at state c.

a

b

c

d

a

b

c

d

Page 40: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

Step 4: Determine the a posteriori probabilities of each information bit.

Page 41: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

BER performance of (7, 5)8 conv. code over AWGN channel using BPSK.

1.00E-06

1.00E-05

1.00E-04

1.00E-03

1.00E-02

1.00E-01

1.00E+00

0 1 2 3 4 5 6 7 8 9 10 11 12

BER

Eb/N0 (dB)

uncodedHard decision ViterbiSoft decision ViterbiBCJRSNR threshold

Page 42: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.4 BCJR Decoding Algorithm

BER performance of different conv. code over AWGN channel using BPSK.

1.00E-06

1.00E-05

1.00E-04

1.00E-03

1.00E-02

1.00E-01

1.00E+00

0 1 2 3 4 5 6 7 8 9 10

BER

Eb/N0 (dB)

4-state

8-state

16-state

64-state

(7, 5)8 conv. code

(15, 13)8 conv. code

(23, 35)8 conv. code

(171, 133)8 conv. code

Page 43: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.5 Trellis Coded Modulation

- Convolutional code enables reliable communications. But as a channel code, its error-correction function is on the expense of spectral efficiency.

- E.g., an uncoded system using BPSK

A rate 1/2 conv. coded system using BPSK

- Can we achieve reliable and yet spectrally efficient communication?

Solution: Trellis Coded Modulation (TCM) that integrates a conv. code with a high order modulation [3].

[3] G. Ungerboeck, "Channel coding with multilevel/phase signals," IEEE Trans. Inform. Theory, vol. IT-28, pp. 55-67, 1982.

η = 1 info bits/symbol η = 0.5 info bits/symbol

Page 44: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.5 Trellis Coded Modulation

- A general structure of the TCM scheme

Rate k/(k+1) conv.

encoder

Select a subset from

the constellation

Select a point

from the subset

a1a2

ak

c1c2

ck+1

ak+1

ak+v

Output symbol

Page 45: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.5 Trellis Coded Modulation

- A rate 2/3 TCM code.

S1 S2

Select a subsetfrom

8PSK

a1

a2

c1

c2

c3 Output

Rate ½ 4-state Convolutional Code

Select a point fromthe subset

(1)

(7)

(6)(5)

(4)

(3)

8PSK Constellation 000

001010

011

100101

110111

(2)

(0)

Page 46: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.5 Trellis Coded Modulation

- State table of the rate 2/3 TCM code

0101010101010101

0011001100110011

0000000001111111

0000111100001111

0000111100001111

0101010110101010

0000111100001111

0101010101010101

0011001100110011

0246135702461357

a1 a2 S1 S2 S1’ S2

’ c1 c2 c3 8PSK sym

Input Current State Next State Output Symbol

Page 47: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.5 Trellis Coded Modulation

'765.08

sin'20

1

0

7

6

5

4

3

001

111101

011

000

110

100

010

000100

110

010001

101111

011

'22

(0, 4) (2, 6) (1, 5) (3, 7)

'

c3c2c1 = 0 1 0 c1 = 0 c1 = 1

c2 = 0 c2 = 1 c2 = 0 c2 = 1

Original constellation

Subset 1

Subset 2

- Set Partitioning 8PSK2

Page 48: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.5 Trellis Coded Modulation

Original constellation

Subset 1

Subset 2

Set P

artit

ioni

ng

- Set Partitioning 8PSK

By doing set partitioning, the minimum distance between point within a subset is increasing as: Δ0 < Δ1 < Δ2.

Page 49: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.5 Trellis Coded Modulation

00

01

10

11

04

26

2 6

15

37

5

1

73

04 1

2

0 0

Remark: Bit c3 = 0 and c3 = 1 result in two parallel transition branches. By doing set partitioning, we are trying to maximize the Euclidean distance between the two parallel branches. So that the free distance of the TCM code can be maximized.

- Viterbi trellis of the rate 2/3 TCM code

For diverse/remerge transition:

For parallel transition:

Choose the smaller one as the free distance of the code:

Page 50: Chapter 3 Convolutional Codes and Trellis Coded Modulation Coding-CH 3.pdf · Chapter 3 Convolutional Codes and Trellis Coded Modulation • 3.1 Encoder Structure and Trellis Representation

§3.5 Trellis Coded Modulation

- Asymptotic coding gain over an uncoded system.

- Spectral efficiency (η) = 2 info bits/sym.

uncoded QPSK rate 2/3 coded 8PSK

Remark: With the same transmission spectral efficiency of 2 info bits/sym, the TCM coded system achieves 3 dB coding gain over the uncoded system asymptotically.


Recommended