Oefeningen Datacommunicatie Les 2: Lineaire blokcodes Julie Neckebroek julie.neckebroek@telin.ugent.be
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
Eigenschap van lineaire blokcodes Som van 2 codewoorden = codewoord Nulwoord (= vector met n nullen) = codewoord (correspondeert met informatiewoord bestaande uit k nullen) Analoge bronnen: PCM
Lineaire blokcodes: generatormatrix 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 Lineaire blokcodes: generatormatrix
Decodeertabel = tabel met alle 2n vectoren r van lengte n en het codewoord dat dichtst bij r ligt Constructie Plaats alle 2k codewoorden in de eerste rij, te beginnen met het nulwoord. Neem één van de overgebleven woorden w met het kleinste gewicht en plaats dit woord onder de kolom met het nulwoord. Vul de rij op door het woord w op te tellen bij het codewoord bovenaan de kolom. Herhaal stappen 2 en 3 totdat alle 2n woorden in de tabel voorkomen. Lineaire blokcodes
Lineaire blokcodes: checkmatrix De checkmatrix Decodeertabel = 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 Lineaire blokcodes: checkmatrix
Lineaire blokcodes: checkmatrix 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 d=2 Lineaire blokcodes: checkmatrix
Lineaire blokcodes: syndroom Het syndroom Definitie 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 foutdetectie Lineaire blokcodes: syndroom
Lineaire blokcodes: syndroom 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 rij j element 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
Lineaire blokcodes: syndroom Syndroomtabel foutcorrectie Bereken s=eHT Zoek in syndroomtabel e behorend bij s e = meest waarschijnlijke foutpatroon Codewoord Lineaire blokcodes: syndroom
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 X 1 Y 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
Lineaire blokcodes: foutdetectie 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) Lineaire blokcodes: foutdetectie
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 alle foutpatronen met gewicht t in syndroomtabel, sommige foutpatronen met gewicht > t mogelijk in syndroomtabel (zeker niet alle!) Lineaire blokcodes: foutcorrectie