Oefeningen Datacommunicatie Les 2: Lineaire blokcodes
description
Transcript of Oefeningen Datacommunicatie Les 2: Lineaire blokcodes
2
Lineaire blokcodes(n,k) lineaire blokcode
– Splits informatiesequentie op in blokken van k bits
informatiewoord b lengte k : b=(b1 … bk), bi {0,1}
2k woorden
– Zet b om in een vector c met lengte n
codewoord c lengte n: c=(c1 … cn), cj {0,1}
2n woorden slechts 2k kiezen
– Verband b en c: lineaire transformatie
alle bewerkingen modulo-2
– Codedebiet Rc=k/n
Analoge bronnen: PCM 3
Eigenschap van lineaire blokcodes• Som van 2 codewoorden = codewoord• Nulwoord (= vector met n nullen) = codewoord
(correspondeert met informatiewoord bestaande uit k nullen)
Lineaire blokcodes: generatormatrix 4
• Generatormatrix G van een (n,k) lineaire blokcode– Elke rij = basisvector
– G = k x n matrix
– Verband b=(b1 … bk) en c=(c1 … cn):
• Opmerking: set basisvectoren niet uniek
elke set van lineair onafhankelijke codewoorden goed
• Systematische vorm generatormatrix
Ik = k x k eenheidsmatrix P = k x (n-k) pariteitsmatrix
in codewoord: eerste (laatste) k codebits = informatiebits
laatste (eerste) n-k codebits = pariteitsbits
(n,k) systematische code
bGc
kk |of| IPGPIG
Lineaire blokcodes 5
Decodeertabel= tabel met alle 2n vectoren r van lengte n en het codewoord dat dichtst bij r ligt
Constructie
1. Plaats alle 2k codewoorden in de eerste rij, te beginnen met het nulwoord.
2. Neem één van de overgebleven woorden w met het kleinste gewicht en plaats dit woord onder de kolom met het nulwoord.
3. Vul de rij op door het woord w op te tellen bij het codewoord bovenaan de kolom.
4. Herhaal stappen 2 en 3 totdat alle 2n woorden in de tabel voorkomen.
Lineaire blokcodes: checkmatrix 6
De checkmatrixDecodeertabel = niet handig als k of n groot
• Checkmatrix H : GHT=0
• Eigenschappen:
– Code met H als generatormatrix en G als checkmatrix = duale code
– Systematische vorm:
Voorbeeld: (6,3) code
Checkmatrix: zelfde informatie als codewoord: c= (c1, c2, c3, c1+c2+c3, c1+c2, c1)
kolom H = codebit op die positie
eerste 3 bits = informatiebits
rij 1: c4=c1+c2+c3 rij 2: c5=c1+c2 rij 3: c6=c1
knT
k || IPHPIG
100001
010011
001111
001100
011010
111001
HG
Lineaire blokcodes: checkmatrix 7
• Codewoord = lineaire combinatie van rijen van G (=basiscodewoorden)
modulo-2 som van kolommen H overeenkomend met posities ‘1’-en in c moet nul zijn
gevolg: minimale Hammingafstand dH,min (=d) van een code:
set van d kolommen in H waarvan som = 0
set van d-1 kolommen in H waarvan som = 0
= elke set van d-1 kolommen in H zijn lineair onafhankelijk
Voorbeeld: (6,3) code c=(0 0 1 1 0 0) is codewoord
0T cH
0
0
0
0
0
1
0
0
1
: 0 4 3 kolom
100001
010011
001111
H
d=2
Lineaire blokcodes: syndroom 8
Het syndroomDefinitie syndroom s=(s1 … sn-k):
Eigenschappen:
• s=0 r is een codewoord
s≠0 r is geen codewoord
•
syndroom hangt enkel af van foutvector, niet van verstuurde codewoord
•
= NIET-GEDETECTEERDE FOUT
TrHs
foutdetectie
TTTTT eHeHcHHecrHs 0
0"' T rHscccecr
Lineaire blokcodes: syndroom 9
decodeertabel: bereken syndroom van een coset (=rij)
elk element uit coset heeft zelfde syndroom
andere coset = ander syndroom
Syndroomtabel = tabel met cosetleiders en bijbehorende syndromen
TjTjTiTji HeHeHcHecs
rij jelement i
cosetleider = foutpatroon met kleinste gewicht dat aanleiding geeft tot syndroom
Merk op: syndroomtabel (2n-k) factor 2k kleiner dan decodeertabel (2n)
Lineaire blokcodes: syndroom 10
Syndroomtabel foutcorrectie
1. Bereken s=eHT
2. Zoek in syndroomtabel e behorend bij s
3. e = meest waarschijnlijke foutpatroon
4. Codewoord erc ˆ
Lineaire blokcodes: foutdetectie 11
Binair symmetrisch kanaal (BSC)= kanaal met binaire ingang en binaire uitgang• Bij gegeven ingangssequentie, uitgangbits statistisch onafhankelijk
• Kanaal geheugenloos: ne uitgangsbit enkel afhankelijk van ne ingangsbit
• Kanaal stationair: statistiek kanaal onafhankelijk van tijdsindex
Pr[kanaalfout] = Pr[Y=0|X=1]Pr[X=1]+Pr[Y=1|X=0]Pr[X=0] = p
p = foutprobabiliteit kanaal
X0
1
Y0
1
Pr[Y=0|X=0]=1-p
Pr[Y=1|X=1]= 1-p
Pr[Y=0|X=1]= p
Pr[Y=1|X=0]= p
Lineaire blokcodes: foutdetectie 12
Stel foutvector e(i) treedt op (lengte e(i) =n)
Kans niet gedetecteerde fout = kans dat e een codewoord ≠ 0 is
kleinste macht p = dH,min (=d)
Pr[n.g.f]~pd p<<1 (foutdetecterend vermogen d-1)
ii wnwi p1pPr eeee
k
j
jj2
01j
wnw p1pf.g.nPr
c
cc
Lineaire blokcodes: foutcorrectie 13
Performantie van foutcorrectie• Foutcorrectie: gebruik syndroomtabel om meest waarschijnlijke foutvector te
bepalen
foutvector in syndroomtabel decodering foutloos
Esyndr= set van foutvectoren in syndroomtabel
• Kans decodeerfout = kans foutvector niet in syndroomtabel
met: = GEGARANDEERD FOUTCORRIGEREND VERMOGEN
1pp~
p1p1f.dPr
1t
E
wnw
syndr
x
xx
21d
t
alle foutpatronen met gewicht t in syndroomtabel, sommige foutpatronen met gewicht > t mogelijk in syndroomtabel (zeker niet alle!)