Channel Coding - uni-rostock.de · A. Ahrens, Institute of Communications Engineering, University...

87
Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006 Channel Coding Andreas Ahrens Institute of Communications Engineering University of Rostock, Germany A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 1

Transcript of Channel Coding - uni-rostock.de · A. Ahrens, Institute of Communications Engineering, University...

Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Channel Coding

Andreas Ahrens

Institute of Communications Engineering

University of Rostock, Germany

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 1

Contact information Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Contact

Privatdozent Dr.-Ing. habil. Andreas Ahrens

University of RostockFaculty of Computer Science and Electrical EngineeringInstitute of Communications EngineeringRichard-Wagner-Str. 3118119 Rostock Germany

Phone: (+49) 0381 / 498-7313Fax: (+49) 0381 / 498-7302

Email: [email protected]

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 2

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Contents (1)

I Introduction

• Error-detection and error-correction

• Channel characteristics, error-structures with and without

memory

I Fundamentals of block codes

• Linear block codes (encoding, decoding)

• Systematic and non-systematic codes

• Cyclic codes (encoding, decoding)

I Fundamentals of convolutional codes

• Description (code tree, state diagram, trellis diagram)

• Encoding, Decoding, Termination

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 3

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Contents (2)

I Channel Models

• Analysis of error structures

• Error-gap distribution, error-gap density function

• Generation of error structures with memory

I Code concatenating

I Interleaving

I Coding gain

I Exercises and Consultations

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 4

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Literature (1)

I Anderson, J. B.: Digital Transmission Engineering. Munchen,

New York: IEEE Press, 1999

I Bingham, J. A. C.: The Theory and Practice of Modem Design.

New York: Wiley, 1988

I Bossert, M.: Channel Coding for Telecommunications. New York:

Wiley, 1999

I Bossert, M.: Kanalcodierung. Stuttgart: Teubner, 1998

I Clark, G. C.; Cain, J. B.: Error-Control Coding for digital

Communications. New York: Plenum, 1981

I Friedrichs, B.: Kanalcodierung - Grundlagen und Anwendungen

in Kommunikationssystemen. Berlin: Springer, 1995

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 5

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Literature (2)

I Goldsmith, A.: Wireless Communications. New York: Cambridge,

2005

I Heise, W.; Quattrochi, P.: Informations- und

Codierungstheorie. Berlin, Heidelberg: Springer, 1995

I Huber, J.: Trelliscodierung. Berlin, Heidelberg: Springer, 1992

I Larrson, R.; Stoica, P.: Space-Time Block Coding for Wireless

Communications. New York: Cambridge, 2003

I Oberg, T.: Modulation, Detection and Coding. Chichester: Wiley,

2001

I Paulraj, A.; Nabar, R.; Gore, D.: Introduction to Space-Time

Wireless Communications. New York: Cambridge, 2003

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 6

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Literature (3)

I Proakis, J. G.: Digital communications. Boston: McGraw-Hill,

2000

I Proakis, J. G.; Salehi, M.: Grundlagen der

Kommunikationstechnik. Munchen: Pearson-Education, 2004

I Rohling, H.: Einfuhrung in die Informations- und

Codierungstheorie. Stuttgart: Teubner, 1995

I Schneider-Obermann, H.: Kanalcodierung – Theorie und Praxis

fehlerkorrigierender Codes. Braunschweig/Wiesbaden: Vieweg, 1998

I Hamming, R. W.: Information and Coding, Prentice Hall, 1988

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 7

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

HF-channel characteristic

PSfrag replacements reflectiondispersion (scattering)

direct path

diffraction

Time- and frequency dispersion of wireless transmission channelsthrough multipath propagation and mobile objects.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 8

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Transmission model

PSfrag replacements

analoguesignal

samplingquanti-zation

com-pression

source encoding

channelencoder

baseband-modulation

LP/BP-transform

analoguechannel

BP/LP-transform

Detectorchanneldecoder

decom-pression

DA-converter

signal re-constr.

digital channelsource decoding

binary sequencebinary sequence

disturbances

Likelihoodinformation

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 9

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Source coding (1)

Representation of a message or a signal by a value-discrete and atime-discrete sequence (e. g. a binary sequence) with an as smallas possible bit rate.

a) Speech signal:

• Frequency range: 300 Hz to 3.4 kHz

• Sample rate: 8 kHz

• Quantization: 8 bit/sample

Example:

• 64 kbit/s PCM (Pulse Code Modulation)

Research:

• CELP (Codebook Exited Linear Predictive Coding)

6.8 . . . 4.8 kbit/s with approximately the same quality

• MELP (Mixed Excitation Linear Prediction) 2.4 kbit/s

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 10

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Source coding (2)

b) Audio signal:

• Frequency range: 20 Hz to 20 kHz

• CD (compact disk) sample rate: 44 kHz

• Quantization: 17 bit/sample

Result:

• 700 kbit/s per stereo channel

Research:

• 90 kbit/s per stereo channel for digital broadcast (MPEG4

Audio, DAB (Digital Audio Broadcasting))

Bit stream is highly sensitive against transmission errors →

channel coding.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 11

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Error structures without memory

- - - - - - - - - - - - - - - - x - - - - - - x - - - - x- - - x - - - - x - - - - - - - - - - - x x - - - - - - -- - - - - - - - x - - - - x - - - - - - - - x - - - - - -- - - - - - - - - x x - - - - - - - - - - - - - - - x - -- - - - - - - - - - - - - - - - - x - - - - - - - - - - -- - - - x - - - - - - - - - - - x - - - - - - - - - - - -- - - - - - - - - - x - - - - - - x - - - - - - - - - - -- - - - - - x - - - - - x - - x - - - - - - - - - - - - -- - - - - - - - x - - - - - - x - - - - - - - - - - - - x- - - x - - - - - - - - - - - - - - - - - x x x x x - - -x - - - - - - x - - - - - - - - - - x - - - x - - - - - -- - - - x - - - - - - - - - - - - - - x - - - - - - - - -- x - - - x - - - - - - - - - - - x - x - - - - - - - - -- - - - - - - - x - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - x - - - - - - - - - - - -- - - - - - - - x x - - - - - - - - - - - - - - x - - - -- - - - - - - - - - - - - - - - - - x - - - - - - - - - -- x - - - - - - - - - - - - - x - - x - - - - - - - - - -- - - x - - - - - - - - - - - - - - - - - - - x - - - - -- - - - - - - - - - - x - - - - - - - - - - - x - - - - -- - - - - - - - x - - - - - - - - - - - - - x - - - - - -- x - - - - - - - - - - - - - - - x - - - - - - - - - - -- - - - - - - - x x - - - - - - - - - - - - x - - - - - -

Parameter:

x bit error- correct bit

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 12

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Error structures with memory

x x - x x x - - x x x x x x - x x - - - - - - - - - - - -- - - - - - - x x x x - x - - x x - - x x - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - x x x x- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - x x - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - x x x x - - - - - x - - x x -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - x x x - - - - x x x - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - x x x - - - - - - - - - - - - - - - x x - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -x x x x x - - - - - - - - - - - x x - - x x x x x x - x -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - x x x x x x - - - - - - - - - - - - - - - - - - - -

Parameter:

x bit error- correct bit

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 13

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Channel coding (1)

a) CD (compact disk)

• Interleaved Reed-Solomon codes

• (Protection against error-bursts)

• . . .

b) Coding in data modems:

• Convolutional codes, coded modulation (Ungerboeck 1982),

. . .

• DSL (Digital Subscriber Line): Reed-Solomon forward error

correction and trellis-coded modulation

• . . .

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 14

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Channel coding (2)

c) Coding in satellite communications:

• Convolutional codes, Reed-Solomon codes, Reed-Muller codes

• Block-coded modulation, turbo-codes

• Code concatenating

• . . .

d) Coding in mobile communications:

• Interleaved convolutional codes, fire codes

• Reed-Solomon codes, Hamming codes

• . . .

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 15

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Historical development (1)

Year Development

1948 Shannon founded the information theory

1950 one-bit error correctable Hamming codes

1952 Gilbert specified bounds for block codes

1961/62 sequential decoding (Wozencraft, Fano)

1967 Viterbi decoding

1968/69 Berlekamp-Massey algorithm for decoding of BCH (Bose,

Chaudhuri, Hocquenghem)- and RS (Reed Solomon) codes

1968 convolutional codes in Pioneer spacecraft

...

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 16

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Historical development (2)

Year Development

1974 convolutional codes in Helios spacecraft

1976 Ungerboeck codes (coded modulation)

1982 trellis coded modulation

1985 VLSI (Very Large Scale Integration) realization of RS- and

Viterbi decoder

1988/90 punctured convolutional codes for application in mobile communications

1993 Turbo codes

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 17

Introduction Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Other possibilities of coding

a) Encryption:

• Cryptography, DES (Data Encryption Standard), . . .

b) Codes for spectral adaptation (Line codes):

• Pseudo-ternary codes (e. g. HDB-3, AMI), Manchester code,

. . .

c) Codes for frame synchronization or channel identification:

• Barker codes, m-sequences, CAZAC (Constant Amplitude Zero

Autocorrelation) sequences, . . .

d) Codes for spreading:

• m-sequences, Gold codes, orthogonal Gold codes, . . .

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 18

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Basic terms – Block codes

Parameter Description Meaning

codeword c = (c0, c1, c2, · · · , cn−1) sequence of n bits

(valid codeword, sequence of n binary symbols)

information word i = (i0, i1, i2, · · · , im−1) sequence of m bits

(sequence of m binary information symbols)

number of parity bits k = n − m

weight w{c} non-zero vector coordinates

distance h = d{cµ, cν}

minimum distance hmin = minµ6=ν

d{cµ, cν}

code rate R = m

n= n−k

n= 1 − k

nefficiency of the code

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 19

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Weight, distance

(Hamming) weightThe (Hamming) weight of a vector c is defined as the number ofnon-zero vector coordinates.

(Hamming) distanceThe (Hamming) distance between two vectors cµ and cν is thenumber of coordinates where cµ and cν differ

h = d{cµ, cν} = w{cµ ⊕ cν} .

Minimum distanceThe minimum distance hmin of a code C is the minimum distancebetween two different codewords. For linear codes, the minimumdistance is equal to the minimum weight

hmin = minµ6=ν

d{cµ, cν} = minµ6=ν

w{cµ ⊕ cν} cµ, cν ∈ C .

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 20

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

The finite field GF(2)

Addition table

⊕ 0 1

0 0 1

1 1 0

Multiplication table

� 0 1

0 0 0

1 0 1

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 21

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Linear block codes – Example (1)

The 2m codewords of a (n, m) code arise by linear combination ofthe basic codewords

Basic codewords of a (7, 2) code

a = (1 1 0 0 1 0 1)

b = (1 0 1 0 0 0 1)

The code has 2m = 22 = 4 valid codewords. These are

all-zero codeword : (0 0 0 0 0 0 0)

a : (1 1 0 0 1 0 1)

b : (1 0 1 0 0 0 1)

a ⊕ b : (0 1 1 0 1 0 0)

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 22

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Linear block codes – Example (2)

Basic codewords of a (7, 3) code

a = (1 1 0 0 1 0 1) b = (1 0 1 0 0 0 1) c = (1 1 1 0 0 1 0)

The code has 2m = 23 = 8 valid codewords. These are

all-zero codeword : (0 0 0 0 0 0 0)

a : (1 1 0 0 1 0 1)

b : (1 0 1 0 0 0 1)

c : (1 1 1 0 0 1 0)

a ⊕ b : (0 1 1 0 1 0 0)

a ⊕ c : (0 0 1 0 1 1 1)

b ⊕ c : (0 1 0 0 0 1 1)

a ⊕ b ⊕ c : (1 0 0 0 1 1 0)

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 23

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Generator matrix (1)

The generator matrix is a compact description of how codewordsare generated from information bits in a linear block code.

All basic codewords generate a (m × n) matrix

G =

g0,0 g0,1 · · · g0,n−1

g1,0 g1,1 · · · g1,n−1...

......

...gm−1,0 gm−1,1 · · · gm−1,n−1

=

g0

g1...

gm−1

.

The rows of G are the m linearly independent basic vectors(codewords) g0, g1, · · · , gm−1 of the code. Each codeword c canbe constructed by

c = i · G .

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 24

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Generator matrix (2)

A systematic linear block code is described by a generatormatrix of the form

G =

1 0 · · · 0 a0,0 a0,1 · · · a0,k−1

0 1 · · · 0 a1,0 a1,1 · · · a1,k−1

......

......

......

0 0 · · · 1 am−1,0 am−1,1 · · · am−1,k−1

= (Im|A) .

Note that any generator matrix of a (n, m) linear block code canbe reduced by row operations and column permutations to agenerator matrix in systematic form.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 25

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Parity check matrix (1)

Codewords c = (c0, c1, · · · , cn−1) of a linear code can be definedby the following equation

H · cT = 0(n−m)×1 or c · HT = 01×(n−m)

with H as parity check matrix. The parity check matrix is used todecode linear block codes with generator matrix G.

The ((n − m) × n) parity check matrix H corresponding to agenerator matrix G = (Im|A) is defined as

H =(

AT| I

k

)

.

Between the generator matrix and parity check matrix

G · HT = 0m×(n−m)

is valid.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 26

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Parity check matrix (2)

The ((n − m) × n) parity check matrix H corresponding to agenerator matrix G = (Im|A) is defined as

H =(

AT| I

k

)

.

Parity check matrix of a systematic code

H =

a0,0 a1,0 · · · am−1,0 1 0 · · · 0

a0,1 a1,1 · · · am−1,1 0 1 · · · 0...

......

......

...

a0,k−1 a1,k−1 · · · am−1,k−1 0 0 · · · 1

=(

AT| I

k

)

.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 27

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Syndrome decoding

Let d be the received codeword resulting from the transmission ofthe codeword c. In the absence of channel errors, it yields: d = c.However, if the transmission is corrupted, one or more of thecodeword symbols in d will differ from those in c. It holds

d = c + f ,

where f = (f0, f1, · · · , fn−1) is the error vector indicating whichsymbols are corrupted by the channel.We define the syndrome S as

S = d · HT = (c + f) · HT = f · HT.

Note that the syndrome S1×(n−m) is a function only of the errorpattern f and not the transmitted codeword c.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 28

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Syndrome decoding – Example (1)

(5, 2, 3) code with G and H

G =

(

1 0 1 1 0

0 1 1 0 1

)

H =

1 1 1 0 0

1 0 0 1 0

0 1 0 0 1

.

Syndrome table assuming one bit-error

error position syndromej S

0 (1 1 0)

1 (1 0 1)

2 (1 0 0)

3 (0 1 0)

4 (0 0 1)

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 29

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Syndrome decoding – Example (2)

Syndrome table assuming two bit-errors

error position syndromej k S

0 1 (0 1 1)

0 2 (0 1 0)

0 3 (1 0 0)

0 4 (1 1 1)

1 2 (0 0 1)

1 3 (1 1 1)

1 4 (1 0 0)

2 3 (1 1 0)

2 4 (1 0 1)

3 4 (0 1 1)

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 30

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Cyclic codes (1)

The generator polynomial of a (n, m, hmin) code has the degreek = n − m and is of the form

g(x) = g0 + g1 x1 + · · · + gk xk,

where gµ is binary (0 or 1) and g0 = gk = 1. The m-bitinformation sequence is written in polynomial form as

i(x) = i0 + i1 x1 + · · · + im−1 xm−1.

The codeword c(x) is obtained from

c(x) = i(x) · g(x) = c0 + c1 x1 + · · · + cn−1 xn−1.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 31

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Cyclic codes (2)

A codeword described by a polynomial c(x) is a valid codeword fora cyclic code with the generator polynomial g(x) if and only ifg(x) divides c(x) with no remainder – that is, if and only if

c(x)

g(x)= q(x)

holds.

Cyclic codeA code is cyclic if each cyclic shift of the coordinates in acodeword results in a codeword. A cyclic shift of a codewordc = (c0, c1, · · · , cn−1) over i coordinates results in the followingcodeword

c = (ci , ci+1, · · · , cn−1, c0, c1, · · · , ci−1) .

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 32

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Cyclic codes (3)

Description

1. Cyclic codes can be represented by polynomials.

2. Multiplication and division of polynomials can be realized by

shift register.

Encoder for a cyclic (6, 3) codePSfrag replacements

τ0

∆ τ1

∆ τqk−1

g3 g2 g1 g0

0 0 0 i0 i1 i2

c0 c1 c2 c3 c4 c5

memory elements

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 33

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Cyclic codes (4)

Systematic codes (1)A cyclic code can be put in a systematic form by first multiplyingthe information polynomial i(x) by xn−m = xk , yielding

i(x) · xn−m = im−1 xn−1 + · · · ... + i1 xn−m+1 + i0 · xn−m

. (1)

This shifts the information bits to the m rightmost digits of thecodeword polynomial. If we next divide (1) by g(x), we obtain

i(x) · xn−m

g(x)= q(x) +

r(x)

g(x). (2)

Multiplying (2) by g(x) we obtain

i(x) · xn−m = q(x) · g(x) + r(x) , (3)

where r(x) is the remainder polynomial.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 34

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Cyclic codes (5)

Systematic codes (2)This implies that

i(x) · xn−m− r(x) = q(x) · g(x) = c(x)

is a valid codeword since it is divisible by g(x) with no remainder.In the GF(2) we obtain

r(x) = −r(x) .

The systematic codeword has the first m bits consisting of theinformation bits and the last n − m = k bits consisting of theparity bits, as it is required for the systematic form.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 35

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Cyclic Hamming Codes – Parameter

Parameter Value

block length n = 2k− 1

number of parity bits k

number of information bits m = n − k

minimum Hamming distance hmin = 3

code rate R = n−k

n= 1 −

k

n

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 36

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Cyclic Hamming Codes – Examples

k n n − k generator polynomial g(x)

3 7 4 x3 + x + 1

4 15 11 x4 + x + 1

5 31 26 x5 + x2 + 1

6 63 57 x6 + x + 1

7 127 120 x7 + x + 1

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 37

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

(7, 4) Hamming code – valid codewords (1)

i(x) · g(x) c(x)

1 (1) · g(x) x3 + x + 1

2 (x) · g(x) x4 + x2 + x

3 (1 + x) · g(x) x4 + x3 + x2 + 1

4 (x2) · g(x) x5 + x3 + x2

5 (x2 + 1) · g(x) x5 + x2 + x + 1

6 (x2 + x) · g(x) x5 + x4 + x3 + x

7 (x2 + x + 1) · g(x) x5 + x4 + 1

8 (x3) · g(x) x6 + x4 + x3

9 (x3 + 1) · g(x) x6 + x4 + x + 1

10 (x3 + x) · g(x) x6 + x3 + x2 + x

11 (x3 + x2) · g(x) x6 + x5 + x4 + x2

12 (x3 + x + 1) · g(x) x6 + x2 + 1

13 (x3 + x2 + 1) · g(x) x6 + x5 + x4 + x3 + x2 + x + 1

14 (x3 + x2 + x) · g(x) x6 + x5 + x

15 (x3 + x2 + x + 1) · g(x) x6 + x5 + x3 + 1

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 38

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

(7, 4) Hamming code – valid codewords (2)

c(x)

1 x3 + x + 1 (1) · (x3 + x + 1)

2 x4 + x2 + x (x) · (x3 + x + 1)

4 x5 + x3 + x2 (x2) · (x3 + x + 1)

8 x6 + x4 + x3 (x3) · (x3 + x + 1)

7 x5 + x4 + 1 (x4) · (x3 + x + 1)

14 x6 + x5 + x (x5) · (x3 + x + 1)

12 x6 + x2 + 1 (x6) · (x3 + x + 1)

3 x4 + x3 + x2 + 1 (1) · (x4 + x3 + x2 + 1)

6 x5 + x4 + x3 + x (x) · (x4 + x3 + x2 + 1)

11 x6 + x5 + x4 + x2 (x2) · (x4 + x3 + x2 + 1)

15 x6 + x5 + x3 + 1 (x3) · (x4 + x3 + x2 + 1)

9 x6 + x4 + x + 1 (x4) · (x4 + x3 + x2 + 1)

5 x5 + x2 + x + 1 (x5) · (x4 + x3 + x2 + 1)

10 x6 + x3 + x2 + x (x6) · (x4 + x3 + x2 + 1)

13 (x3 + x2 + 1) · g(x) x6 + x5 + x4 + x3 + x2 + x + 1

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 39

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Cyclic codes (6)

Error detection and error correctionThe codeword polynomial is of the form

c(x) = i(x) · g(x) .

The received codeword can also be written in polynomial form as

d(x) = c(x) + f (x) = i(x) · g(x) + f (x) ,

where f (x) is the error polynomial with coefficients equal to 1where errors occur.

Syndrome polynomialThe syndrome polynomial s(x) for the received codeword is definedas the remainder when d(x) is divided by g(x). The syndromepolynomial s(x) is equivalent to the error polynomial f (x) modulog(x).

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 40

Block codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Transmission system with syndrome decodingPSfrag replacements

i(x)

i(x)

c(x)

d(x) = c(x) + f(x)

d(x) = c(x) + f(x)

f(x)

c(x) + f(x) + f(x)

f(x)

encoder channel

Determination

syndrome

Determination

error-pattern

decoder

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 41

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (1)

Encoder of a convolutional code

PSfrag replacements

information

sequenceencoder

code

sequence

A binary information sequence i is partitioned into blocks iµ with b

bits. Each information block iµ is mapped by the encoder to acode block cµ. It yields

i0, i1, i2, · · · → c0, c1, c2, · · · .

The µth code block cµ depends on the µth information block iµand the m previous information blocks, i. e. the encoder has amemory of m.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 42

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (2)

Convolutional Encoder

Stage 1 Stage 2 Stage K

1

1 11

2

2 22

n

b bb …

… ……PSfrag replacements

to Modulator

b bits

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 43

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes – Example

Encoder of a (2, 1, 2) convolutional code (1)

Stage 1 Stage 2 Stage 3

PSfrag replacements

to Modulator

b = 1 bit

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 44

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes – Example

Encoder of a (2, 1, 2) convolutional code (2)

PSfrag replacementsinformation

sequence

memory elements

codesequence

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 45

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (3)

State diagram of a (2, 1, 2) convolutional code

11

0110

0/00

0/11

1/00

0/10

0/01

1/10

1/01

1/1100

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 46

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (4)

Code tree of a (2, 1, 2) convolutional code

PSfrag

replacem

ents

state

1 0

00

00

00

00

00

00

00

00

00

11

11

11

11

11

11

11

11

10

10

10

10

10

10

10

01

01

01

01

01

01

01

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 47

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (5)

Subtrellis of a (2, 1, 2) convolutional code

state state

00 00

10 10

01 01

11 11

0/00

1/10

1/01

0/11

0/01

1/00

1/11

0/10

PSfrag replacements

input bits/output bits

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 48

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (6)

Trellis diagram of a (2, 1, 2) convolutional code

state

00

10

01

11

0/00

1/11

0/00

1/01

1/11

0/10

0/00

1/10

1/01

0/11

0/01

1/00

1/11

0/10

PSfrag replacements

input bits/output bits

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 49

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (7)

Maximum Likelihood (ML) Detection

ML detection of a convolutional code means finding the most likelysequence of coded symbols given the received sequence of codedsymbols.Solution (hard decision): The coded sequence c(µ) with theminimum Hamming distance to the received sequence dcorresponds to the maximum likelihood sequence

log10 Pr{

d | c(µ)}

= g log10

pe

1 − pe

+ nb log10(1 − pe) . (1)

Since pe � 0.5, (1) is maximized when g is minimized.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 50

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (8)

Maximum Likelihood (ML) Detection – Example

Log likelihood function

log10 Pr{

d | c(µ)}

= g log10

pe

1 − pe

+ nb log10(1 − pe) ,

with nb = 10 and pe = 10−2.

0 2 4 6 8 10−20

−10

0

PSfrag replacements

error-weight g →

log10Pr{

d|c(

µ) }

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 51

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (9)

The difficulty with ML decoding is that the complexity ofcomputing the log likelihood function (1) grows exponentially withthe memory of the code and this computation must be done forevery possible path through the trellis.

Solution: Viterbi-Algorithm

Viterbi-Algorithm reduces the complexity of ML decoding

by taking advantage of the structure of the path metric

computation.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 52

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes – Example

Viterbi decoder (1)

00 11 01receivedSequence

state

00

10

01

11

0/00

1/11

0/00

1/01

1/11

0/10

0/00

1/10

1/01

0/11

0/01

1/00

1/11

0/10

0 0

02

2

3

3

3

3

2

0

4

4

3

5

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 53

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes – Example

Viterbi decoder (2)

10 11 11receivedSequence

state

00

10

01

11

0/00

1/11

0/00

1/01

1/11

0/10

0/00

1/10

1/01

0/11

0/01

1/00

1/11

0/10

0 1

11

3

2

2

5

3

2

2

2

4

3

3

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 54

Convolutional Codes Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Fundamentals of convolutional codes (10)

Termination

state

00

10

01

11

0/00 0/000/00

1/10

1/01

0/11 0/

11

0/11

0/01 0/01

1/00

1/11

0/10

0/10

PSfrag replacements

start termination

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 55

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channels with memory

Received power fluctuations in wireless communication (e. g.caused by mobile transmitter or receiver or constructive anddestructive interference, ...) result in error bursts.

10−2

10−1

100

101

PSfrag replacements rece

ived

pow

er→

time →

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 56

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channels with memory – Basic terms (1)

Structure of a digital channel

PSfrag replacements

digitalchannel

input sequence output sequence

{ek}

error sequence

{xk} {yk}

Example:

{xk} = · · · 1 0 1 1 1 0 1 0 1 1 · · ·

{yk} = · · · 1 0 1 0 0 1 1 0 1 1 · · ·

How can the characteristic of the digital channel be determined?

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 57

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channels with memory – Basic terms (2)

Digital channel modelPSfrag replacements

digital channel

input sequence output sequence

{ek}

error sequence

{xk} {yk}

Example:

{xk} = · · · 1 0 1 1 1 0 1 0 1 1 · · ·

{yk} = · · · 1 0 1 0 0 1 1 0 1 1 · · ·

− − − − −−−−−−−

{ek} = · · · 0 0 0 1 1 1 0 0 0 0 · · ·

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 58

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channels with memory – Basic terms (3)

How can we describe a digital channel with memory?

Parameter:

Error-gap distribution

u(k) = Pr{X ≥ k}

Error-gap density function

v(k) = Pr{X = k}

Definition of an error-gap

PSfrag replacements

k1 k2 k3

bit error

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 59

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channels with memory – Basic terms (4)

Between u(k) and v(k) the following relationship exists:

u(k) = v(k) + v(k + 1) + v(k + 2) + · · ·

u(k + 1) = v(k + 1) + v(k + 2) + · · · ,

which leads tov(k) = u(k) - u(k+1) . (1)

The digital channel characteristic can be completely defined by the

error gap distribution u(k) if we assume that the distances (gaps)

between neighbouring errors are statistically independent form each

other.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 60

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channels with memory – Basic terms (5)

How can we determine v(k) or u(k)?

Solution: Analyzing of error structures of real communication links

Thereby the following relationship was found (Wilhelm 1976)

pb(n) = pe · nα (with pe · n

α� 1).

The block-error rate pb(n) can be described as a function of thebit-error rate pe and the block-length n. Alternatively therelationship

log10 pb(n) = log10 pe + α log10 n . (2)

is valid. The value α describes the linear dependency betweenlog10 pb(n) and log10 n.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 61

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channels with memory – Basic terms (6)

The block-error rate pb(n) can be described (in a digital channel)

as a function of the bit-error rate pe and the block-length n.

Example:

0 0.5 1 1.5 2 2.5 310

−2

10−1

100

PSfrag replacements

(1 − α) = 0.0(1 − α) = 0.3(1 − α) = 0.5

blo

ck-e

rror

rate

log10 n →

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 62

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Error structures with memory

x x - x x x - - x x x x x x - x x - - - - - - - - - - - -- - - - - - - x x x x - x - - x x - - x x - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - x x x x- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - x x - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - x x x x - - - - - x - - x x -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - x x x - - - - x x x - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - x x x - - - - - - - - - - - - - - - x x - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -x x x x x - - - - - - - - - - - x x - - x x x x x x - x -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - x x x x x x - - - - - - - - - - - - - - - - - - - -

Parameter:

x bit error- correct bit

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 63

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Error structures without memory

- - - - - - - - - - - - - - - - x - - - - - - x - - - - x- - - x - - - - x - - - - - - - - - - - x x - - - - - - -- - - - - - - - x - - - - x - - - - - - - - x - - - - - -- - - - - - - - - x x - - - - - - - - - - - - - - - x - -- - - - - - - - - - - - - - - - - x - - - - - - - - - - -- - - - x - - - - - - - - - - - x - - - - - - - - - - - -- - - - - - - - - - x - - - - - - x - - - - - - - - - - -- - - - - - x - - - - - x - - x - - - - - - - - - - - - -- - - - - - - - x - - - - - - x - - - - - - - - - - - - x- - - x - - - - - - - - - - - - - - - - - x x x x x - - -x - - - - - - x - - - - - - - - - - x - - - x - - - - - -- - - - x - - - - - - - - - - - - - - x - - - - - - - - -- x - - - x - - - - - - - - - - - x - x - - - - - - - - -- - - - - - - - x - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - x - - - - - - - - - - - -- - - - - - - - x x - - - - - - - - - - - - - - x - - - -- - - - - - - - - - - - - - - - - - x - - - - - - - - - -- x - - - - - - - - - - - - - x - - x - - - - - - - - - -- - - x - - - - - - - - - - - - - - - - - - - x - - - - -- - - - - - - - - - - x - - - - - - - - - - - x - - - - -- - - - - - - - x - - - - - - - - - - - - - x - - - - - -- x - - - - - - - - - - - - - - - x - - - - - - - - - - -- - - - - - - - x x - - - - - - - - - - - - x - - - - - -

Parameter:

x bit error- correct bit

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 64

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Analysis of error structures (1)

Analysis of error-patterns in an erroneous block of the length n

after the error-length l and error-weight g

Example: Error-pattern in a block of the length n = 9

PSfrag replacements n = 9l = 6, g = 3

bit error

Searched: Probability xl ,g of an error-pattern of the error-length l

and error-weight g in an erroneous block of the length n

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 65

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Analysis of error structures (2)

Analysis of error-patterns in an erroneous block of the length n

after the error-length l and error-weight g

12

34

56

7

12

34

56

7

0

0.5

1

PSfrag replacements

error-length l

error-weight g

x l,g

Probability xl ,g with n = 7,(1 − α) = 0.0 and pe = 10−2

(memoryless channel,binomial model)

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 66

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Analysis of error structures (3)

Analysis of error-patterns in an erroneous block of the length n

after the error-length l and error-weight g

12

34

56

7

12

34

56

7

0

0.2

0.4

0.6

0.8

PSfrag replacements

error-length l

error-weight g

x l,g

Probability xl ,g with n = 7,(1 − α) = 0.3 and pe = 10−2

(channel with memory)

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 67

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Analysis of error structures (4)

Analysis of error-patterns in an erroneous block of the length n

after the error-length l and error-weight g

12

34

56

7

12

34

56

7

0

0.1

0.2

0.3

0.4

PSfrag replacements

error-length l

error-weight g

x l,g

Probability xl ,g with n = 7,(1 − α) = 0.5 and pe = 10−2

(channel with memory)

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 68

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channel models (1)

Relationship between pb(n) and u(k)

pb(n) = pe

n−1∑

k=0

u(k) = pe nα

The searched error-gap distribution u(k) can be calculated step bystep and results in:

n = 1 : u(0) = 1n = 2 : u(0) + u(1) = 2α

n = 3 : u(0) + u(1) + u(2) = 3α

n = 4 : u(0) + u(1) + u(2) + u(3) = 4α

· · · : · · · = · · ·

n : u(0) + u(1) + · · · + u(n − 1) = nα

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 69

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channel models (2)

This can be simplified to:

n = 1 : u(0) = 1n = 2 : u(0) + u(1) = 2α

n = 3 : u(0) + u(1)︸ ︷︷ ︸

+u(2) = 3α

n = 4 : u(0) + u(1) + u(2)︸ ︷︷ ︸

+u(3) = 4α

The following approximation for the searched error-gap functionu(k) can be derived:

u(k) = (k + 1)α− kα (3)

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 70

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channel models (3)

Error-gap function u(k) = Pr{X ≥ k}

u(k) = (k + 1)α− kα (4)

doesn’t fulfill the boundary condition

limn→∞

pb(n) = 1 = limk→∞

pe

k∑

κ=0

u(κ) .

A solution was presented by Wilhelm (1976):

u(k) = ((k + 1)α− kα) e

−β k (5)

withpe ≈ β

α.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 71

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channels with memory – Examples (1)

With v(k) = u(k) − u(k + 1) the error-gap density function resultsin:

v(k) = (1 + e−β) (k + 1)α

e−β k

− kαe−β k + (k + 2)α

e−β (k+1)

.

0 2 4 6 8 100

0.1

0.2

0.3

0.4

PSfrag replacements

v(k

)→

k →

(1 − α) = 0.0

(1 − α) = 0.1

(1 − α) = 0.3

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 72

Digital channels with memory Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Digital channels with memory – Examples (2)

For the generation of error structures with memory a uniformlydistributed random number Y has to be equated with u(k):

Y ≡ u(k) (6)

and the corresponding value of the error-gap k has to bedetermined.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 73

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Coding gain

2 4 6 8 10

10−4

10−2

PSfrag replacements

uncoded transmissioncoded transmission without decodingcoded transmission with decoding

bit-e

rror

rate

10 · lg(Es/N0) (in dB) →

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 74

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Error probability (1)

For a BSC (binary symmetric channel) the probability that exactlyg errors occur during the transmission of a binary codewordconsisting of n bits is

P(g) = pg

e(1 − pe)

n−g.

There exist(

n

g

)

different vectors of weight g . Probability for any g

errors in a block of the length n is given by (binomial distribution)

(

n

g

)

P(g) =

(

n

g

)

pg

e(1 − pe)

n−g.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 75

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Error probability (2)

Error correction of fk errors

Codeword error probability Perror is given by

Perror =n

g=fk+1

(

n

g

)

pg

e (1−pe)n−g = 1−

fk∑

g=0

(

n

g

)

pg

e (1−pe)n−g

.

The codeword error probability Perror gives the probability

that a transmitted codeword does not correspond to the

decoded codeword (false decoding or decoding failure).

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 76

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08. 2006

Interleaving

PSfrag replacements

transmitter side receiver side

readin

readout

read out read in

......

· · · · · ·

error-burst

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 77

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08. 2006

Code concatenation (1)

PSfrag replacements

outerencoder

innerencoder

innerdecoder

outerdecoder

channel

input output

superchannel

Advantages of concatenated codes (1)

very long codes can be constructed by concatenation based on

short codes

concatenated codes can correct burst errors and independent

single errors

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 78

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08. 2006

Code concatenation (2)

PSfrag replacements

outerencoder

innerencoder

innerdecoder

outerdecoder

channel

input output

superchannel

Advantages of concatenated codes (2)

decoding complexity can be decreased compared with the

decoding of a single code of the same length, because

decoding of the shorter component codes can be done in

separate stages

utilization of different code characteristics, e. g.

error-detection and error-correction

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 79

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Examples (1)

All Hamming codes have a minimum Hamming distance of 3.

1. What are the error correction and error detection capabilities

of a Hamming code?

Consider a (3, 1) linear block code.

1. Find all codewords of this code!

2. Find the minimum Hamming distance of the code!

A linear (5, 2) code has the codewords c0 = (0 0 0 0 0),

c1 = (0 1 0 1 1), c2 = (1 0 1 0 1) and c3 = (1 1 1 1 0).

1. Find the set of error patterns corresponding to non-detectable

errors!

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 80

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Examples (2)

Consider a linear code with a given generator matrix G

G =

0 1 0 1 1 0 0

1 0 1 0 1 0 0

0 1 1 0 0 1 0

1 1 0 0 0 0 1

.

1. Find the following code parameters: n, m, k and dmin!

2. Find all codewords of the code!

3. Assuming an information bit sequence of all 0s, find all

minimum weight error pattern f that result in a valid

codeword that is not the all-zero codeword!

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 81

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Examples (3)

Consider a (5, 2) code with a given generator matrix G

G =

(

1 0 1 1 0

0 1 1 0 1

)

and parity check matrix H

H =

1 1 1 0 0

1 0 0 1 0

0 1 0 0 1

.

1. Is it a systematic code?

2. Is it a linear code?

3. Is the codeword c = (0 1 1 0 1) a valid codeword?

4. Determine the minimum Hamming distance!

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 82

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Examples (4)

Consider a (7, 4) Hamming code with generator polynomial

g(x) = x3 + x + 1.

1. Determine if the codewords described by the polynomials

d1(x) = x4 + x3 + x2 + 1 and d2(x) = x4 + x3 + x2 + x + 1

are valid codewords for this generator polynomial.

Consider a (15, 11) Hamming code with generator polynomial

g(x) = x4 + x + 1.

1. Determine if the codewords described by the polynomials

d1(x) = x7 + x3 + x + 1 and d2(x) = x6 + x5 + x3 + 1 are

valid codewords for this generator polynomial.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 83

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Examples (5)

Consider a (7, 4) Hamming code with the following generatormatrix G

G =

1 1 0 0 1 0 1

1 0 1 0 0 0 1

1 1 1 0 0 1 0

1 1 0 1 0 0 0

1. Transform the generator matrix G in a systematic form!

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 84

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Examples (6)

1. What is the basic idea of an error-detection or error-correction

strategy? What is the Hamming distance? Which distances

are necessary for an error-detection or error-correction? Please

illustrate the differences between both strategies!

2. Prove that if the sum of two error patterns is a valid

codeword, then each pattern has the same syndrome.

3. Compute the codeword error probability obtained with a (7, 4)

Hamming code on a binary symmetric channel. Assume

bit-error rates of 10−2 and 10−3!

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 85

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Examples (7)

An (5, 4) linear block code is constructed by shortening a (7, 4)Hamming code. The (7, 4) Hamming code can be described by thefollowing generator matrix

G =

1 1 0 0 1 0 1

1 0 1 0 0 0 1

1 1 1 0 0 1 0

1 1 0 1 0 0 0

.

1. Construct the codewords of the (5, 4) code and list them!

2. What is the minimum distance of the (5, 4) code!

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 86

Channel Coding Baltic Summer School 2006, Vilnius, Lithuania, 31.07.–14.08.2006

Examples (8)

1. Please explain the principle of a block interleaver! Indicate the

advantages and the disadvantages of a block interleaver!

2. Illustrate the functionality of a convolutional code using an

example of your choice! Please explain the terms: code tree,

state diagram and trellis diagram!

3. For the trellis and tree diagram of the considered (2, 1, 2)

convolutional code, determine the encoder output sequence

assuming the all-zero initial state (0 0) and an information bit

sequence 0 1 0 1 0.

A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 87