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
87
Embed
Channel Coding - uni-rostock.de · A. Ahrens, Institute of Communications Engineering, University of Rostock, Germany 10. ... Channel coding (2) c) Coding in satellite communications:
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
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
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
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
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
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