140 likes | 395 Views
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 =(b 1 … b k ), b i {0,1} 2 k woorden
E N D
Oefeningen DatacommunicatieLes 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
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
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
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
foutdetectie 0 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 Lineaire blokcodes: syndroom
element i rij j 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 cosetleider = foutpatroon met kleinste gewicht dat aanleiding geeft tot syndroom Merk op: syndroomtabel (2n-k) factor 2k kleiner dan decodeertabel (2n) Lineaire blokcodes: syndroom
Syndroomtabel foutcorrectie • Bereken s=eHT • Zoek in syndroomtabel e behorend bij s • e = meest waarschijnlijke foutpatroon • Codewoord Lineaire blokcodes: syndroom
X 0 1 Y 0 1 Pr[Y=0|X=0]=1-p Pr[Y=0|X=1]= p Pr[Y=1|X=0]= p Pr[Y=1|X=1]= 1-p 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 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