1 / 24 KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK Štefko Miklavič Univerza na Primorskem MARS, Avgust 2008
Phoenix 2 / 24
Phoenix 3 / 24
Phoenix 4 / 24
Črtna koda 5 / 24
Črtna koda - kontrolni bit 6 / 24 8 014966 336563 1 8+3 0+1 1+3 4+1 9+3 6+1 6+3 3+1 3+3 6+1 5+3 6 = 107 107 mod 10 = 7 10 7 = 3
Črtna koda - kontrolni bit 6 / 24 8 014966 336563 1 8+3 0+1 1+3 4+1 9+3 6+1 6+3 3+1 3+3 6+1 5+3 6 = 107 107 mod 10 = 7 10 7 = 3
Črtna koda - kontrolni bit 6 / 24 8 014966 336563 1 8+3 0+1 1+3 4+1 9+3 6+1 6+3 3+1 3+3 6+1 5+3 6 = 107 107 mod 10 = 7 10 7 = 3
Črtna koda - kontrolni bit 6 / 24 8 014966 336563 1 8+3 0+1 1+3 4+1 9+3 6+1 6+3 3+1 3+3 6+1 5+3 6 = 107 107 mod 10 = 7 10 7 = 3
Črtna koda - kontrolni bit 7 / 24 Vedno odkrije eno samo napako! Dveh ali več napak NE odkrije vedno! Ene same napake NE ZNA popraviti! Odvečnost (redundancy): 1 bit na 12 bitov!
Črtna koda - kontrolni bit 7 / 24 Vedno odkrije eno samo napako! Dveh ali več napak NE odkrije vedno! Ene same napake NE ZNA popraviti! Odvečnost (redundancy): 1 bit na 12 bitov!
Črtna koda - kontrolni bit 7 / 24 Vedno odkrije eno samo napako! Dveh ali več napak NE odkrije vedno! Ene same napake NE ZNA popraviti! Odvečnost (redundancy): 1 bit na 12 bitov!
Črtna koda - kontrolni bit 7 / 24 Vedno odkrije eno samo napako! Dveh ali več napak NE odkrije vedno! Ene same napake NE ZNA popraviti! Odvečnost (redundancy): 1 bit na 12 bitov!
Ponavljajoča koda (repetition code) 8 / 24 Recimo, da želimo poslati sporočilo 1011. Vsak bit ponovimo trikrat: 111 000 111 111. Prejemnik vsako trojico bitov dekodira v bit, ki se v tej trojici ponovi največkrat.
Ponavljajoča koda (repetition code) 8 / 24 Recimo, da želimo poslati sporočilo 1011. Vsak bit ponovimo trikrat: 111 000 111 111. Prejemnik vsako trojico bitov dekodira v bit, ki se v tej trojici ponovi največkrat.
Ponavljajoča koda (repetition code) 8 / 24 Recimo, da želimo poslati sporočilo 1011. Vsak bit ponovimo trikrat: 111 000 111 111. Prejemnik vsako trojico bitov dekodira v bit, ki se v tej trojici ponovi največkrat.
Ponavljajoča koda (repetition code) 9 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 2 bita na 1 bit!
Ponavljajoča koda (repetition code) 9 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 2 bita na 1 bit!
Ponavljajoča koda (repetition code) 9 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 2 bita na 1 bit!
Ponavljajoča koda (repetition code) 9 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 2 bita na 1 bit!
Ponavljajoča koda (repetition code) 9 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 2 bita na 1 bit!
Še en primer - Hammingova (7,4)-koda 10 / 24
Še en primer - Hammingova (7,4)-koda 11 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 3 bite na 4 bite!
Še en primer - Hammingova (7,4)-koda 11 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 3 bite na 4 bite!
Še en primer - Hammingova (7,4)-koda 11 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 3 bite na 4 bite!
Še en primer - Hammingova (7,4)-koda 11 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 3 bite na 4 bite!
Še en primer - Hammingova (7,4)-koda 11 / 24 Vedno odkrije eno ali dve napaki! Treh ali več napak NE odkrije vedno! Zna popraviti eno napako! Ne zna popraviti dveh ali več napak! Odvečnost (redundancy): 3 bite na 4 bite!
Hammingova (7,4) koda - malce drugače 12 / 24 Naj bo abcd sporočilo, ki ga hočemo poslati. Definirajmo sedmerico (x 1, x 2, x 3, x 4, x 5, x 6, x 7 ) ničel in enic takole: x 3 = a, x 5 = b, x 6 = c, x 7 = d x 1 izberemo tako, da je x 1 + x 3 + x 5 + x 7 sodo število. x 2 izberemo tako, da je x 2 + x 3 + x 6 + x 7 sodo število. x 4 izberemo tako, da je x 4 + x 5 + x 6 + x 7 sodo število. Prejemniku pošljemo sedmerico (x 1, x 2, x 3, x 4, x 5, x 6, x 7 ).
Hammingova (7,4)-koda - malce drugače 13 / 24 Prejemnik prejme sedmerico (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) ničel in enic. Predpostavimo, da je pri prenosu prišlo do največ ene napake. α = y 4 + y 5 + y 6 + y 7 mod 2. β = y 2 + y 3 + y 6 + y 7 mod 2. γ = y 1 + y 3 + y 5 + y 7 mod 2. a = αβγ (2) a = 0 ni napake!!! a 0 bit y a je napačen!!!
Hammingova (7,4)-koda - malce drugače 13 / 24 Prejemnik prejme sedmerico (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) ničel in enic. Predpostavimo, da je pri prenosu prišlo do največ ene napake. α = y 4 + y 5 + y 6 + y 7 mod 2. β = y 2 + y 3 + y 6 + y 7 mod 2. γ = y 1 + y 3 + y 5 + y 7 mod 2. a = αβγ (2) a = 0 ni napake!!! a 0 bit y a je napačen!!!
Hammingova (7,4)-koda - malce drugače 13 / 24 Prejemnik prejme sedmerico (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) ničel in enic. Predpostavimo, da je pri prenosu prišlo do največ ene napake. α = y 4 + y 5 + y 6 + y 7 mod 2. β = y 2 + y 3 + y 6 + y 7 mod 2. γ = y 1 + y 3 + y 5 + y 7 mod 2. a = αβγ (2) a = 0 ni napake!!! a 0 bit y a je napačen!!!
Hammingova (7,4)-koda - malce drugače 13 / 24 Prejemnik prejme sedmerico (y 1, y 2, y 3, y 4, y 5, y 6, y 7 ) ničel in enic. Predpostavimo, da je pri prenosu prišlo do največ ene napake. α = y 4 + y 5 + y 6 + y 7 mod 2. β = y 2 + y 3 + y 6 + y 7 mod 2. γ = y 1 + y 3 + y 5 + y 7 mod 2. a = αβγ (2) a = 0 ni napake!!! a 0 bit y a je napačen!!!
Binarne kode - osnovne definicije 14 / 24 Naj bo n N in naj bo A n množica vseh zaporedij sestavljenih iz 0 in 1, ki imajo dolžino n. Definicija Koda C dolžine n je podmnožica v A n. Število elementov kode C se imenuje velikost kode C. Elementi množice A n se imenujejo besede. Elementi kode C se imenujejo kodne besede.
Binarne kode - osnovne definicije 14 / 24 Naj bo n N in naj bo A n množica vseh zaporedij sestavljenih iz 0 in 1, ki imajo dolžino n. Definicija Koda C dolžine n je podmnožica v A n. Število elementov kode C se imenuje velikost kode C. Elementi množice A n se imenujejo besede. Elementi kode C se imenujejo kodne besede.
Binarne kode - osnovne definicije 14 / 24 Naj bo n N in naj bo A n množica vseh zaporedij sestavljenih iz 0 in 1, ki imajo dolžino n. Definicija Koda C dolžine n je podmnožica v A n. Število elementov kode C se imenuje velikost kode C. Elementi množice A n se imenujejo besede. Elementi kode C se imenujejo kodne besede.
Binarne kode - osnovne definicije 14 / 24 Naj bo n N in naj bo A n množica vseh zaporedij sestavljenih iz 0 in 1, ki imajo dolžino n. Definicija Koda C dolžine n je podmnožica v A n. Število elementov kode C se imenuje velikost kode C. Elementi množice A n se imenujejo besede. Elementi kode C se imenujejo kodne besede.
Hammingova razdalja 15 / 24 Definicija Za poljubni dve zaporedji x in y iz A n definirajmo d H (x, y) = število mest, na katerih se x in y razlikujeta. Številu d H (x, y) pravimo Hammingova razdalja zaporedij x in y. Definicija Minimalna razdalja kode C je najmanjše izmed števil d H (x, y), kjer sta x in y različni kodni besedi kode C.
Dekodiranje 16 / 24 Recimo, da smo prejemniku poslali neko kodno besedo, prejemnik pa je prejel besedo y. V katero kodno besedo bo prejemnik dekodiral besedo y? Če obstaja natanko ena kodna beseda x, za katero je d H (x, y) < d H (z, y) za vsako drugo kodno besedo z, potem bo prejemnik besedo y dekodiral v besedo x. Če take besede ni, potem bo prejemnik javil, da je prišlo do napake.
Dekodiranje 16 / 24 Recimo, da smo prejemniku poslali neko kodno besedo, prejemnik pa je prejel besedo y. V katero kodno besedo bo prejemnik dekodiral besedo y? Če obstaja natanko ena kodna beseda x, za katero je d H (x, y) < d H (z, y) za vsako drugo kodno besedo z, potem bo prejemnik besedo y dekodiral v besedo x. Če take besede ni, potem bo prejemnik javil, da je prišlo do napake.
Dekodiranje 16 / 24 Recimo, da smo prejemniku poslali neko kodno besedo, prejemnik pa je prejel besedo y. V katero kodno besedo bo prejemnik dekodiral besedo y? Če obstaja natanko ena kodna beseda x, za katero je d H (x, y) < d H (z, y) za vsako drugo kodno besedo z, potem bo prejemnik besedo y dekodiral v besedo x. Če take besede ni, potem bo prejemnik javil, da je prišlo do napake.
Krogle 17 / 24 Definicija Naj bo x A n in naj bo r R +. Krogla s središčem v x in radijem r je množica S r (x) = {y A n d H (x, y) r}.
Kode, ki popravijo e napak (e-error-correcting-codes) 18 / 24 Naj bo C koda dolžine n in naj bo e poljubno naravno število. Potem koda C vedno poravi e napak natanko tedaj, ko je S e (x) S e (y) = za poljubni različni kodni besedi x in y.
Popolne kode (perfect codes) 19 / 24 Definicija Naj bo C koda, ki popravi e napak. Potem je C popolna, če velja S e (x) = A n. x C Primer: Hammingova (7, 4)-koda
Linearne kode 20 / 24 Definition Koda C je linearna, če velja x, y C = x + y C.
Linearne kode - primeri 21 / 24 Ponavljajoča se koda je linearna koda. Hammingova (7, 4)-koda je linearna koda.
Linearne kode - primeri 21 / 24 Ponavljajoča se koda je linearna koda. Hammingova (7, 4)-koda je linearna koda.
Hammingova teža 22 / 24 Definicija Naj bo C linearna koda. Hammingova teža besede x je število enic v zaporedju x. Oznaka: w H (X). Minimalna teža kode C je najmanjša teža neničelne kodne bedsede kode C.
Hammingova teža 22 / 24 Definicija Naj bo C linearna koda. Hammingova teža besede x je število enic v zaporedju x. Oznaka: w H (X). Minimalna teža kode C je najmanjša teža neničelne kodne bedsede kode C.
Hammingova teža 23 / 24 Izrek Naj bo C linearna koda. Potem je minimalna teža kode C enaka minimalni razdalji kode C.
Generatorska matrika 24 / 24 Baza linearne kode C. Generatorska matrika kode C Dualna koda
Generatorska matrika 24 / 24 Baza linearne kode C. Generatorska matrika kode C Dualna koda
Generatorska matrika 24 / 24 Baza linearne kode C. Generatorska matrika kode C Dualna koda
HVALA! 25 / 24