53
KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK ˇ Stefko Miklaviˇ c Univerza na Primorskem MARS, Avgust 2008 1 / 24

KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK - MaRS | …mars.dmfa.si/mars2008/pdf/MARS 2008 - Miklavic - Kode.pdf · 2016-02-11 · KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK ˇStefko

Embed Size (px)

Citation preview

KODE ZA ODKRIVANJE IN ODPRAVLJANJENAPAK

Stefko Miklavic

Univerza na Primorskem

MARS, Avgust 2008

1 / 24

Phoenix

2 / 24

Phoenix

3 / 24

Phoenix

4 / 24

Crtna koda

5 / 24

Crtna koda - kontrolni bit

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

6 / 24

Crtna koda - kontrolni bit

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

6 / 24

Crtna koda - kontrolni bit

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

6 / 24

Crtna koda - kontrolni bit

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

6 / 24

Crtna koda - kontrolni bit

Vedno odkrije eno samo napako!

Dveh ali vec napak NE odkrije vedno!

Ene same napake NE ZNA popraviti!

Odvecnost (redundancy): 1 bit na 12 bitov!

7 / 24

Crtna koda - kontrolni bit

Vedno odkrije eno samo napako!

Dveh ali vec napak NE odkrije vedno!

Ene same napake NE ZNA popraviti!

Odvecnost (redundancy): 1 bit na 12 bitov!

7 / 24

Crtna koda - kontrolni bit

Vedno odkrije eno samo napako!

Dveh ali vec napak NE odkrije vedno!

Ene same napake NE ZNA popraviti!

Odvecnost (redundancy): 1 bit na 12 bitov!

7 / 24

Crtna koda - kontrolni bit

Vedno odkrije eno samo napako!

Dveh ali vec napak NE odkrije vedno!

Ene same napake NE ZNA popraviti!

Odvecnost (redundancy): 1 bit na 12 bitov!

7 / 24

Ponavljajoca koda (repetition code)

Recimo, da zelimo poslati sporocilo 1011.

Vsak bit ponovimo trikrat: 111 000 111 111.

Prejemnik vsako trojico bitov “dekodira” v bit, ki se v tejtrojici ponovi najveckrat.

8 / 24

Ponavljajoca koda (repetition code)

Recimo, da zelimo poslati sporocilo 1011.

Vsak bit ponovimo trikrat: 111 000 111 111.

Prejemnik vsako trojico bitov “dekodira” v bit, ki se v tejtrojici ponovi najveckrat.

8 / 24

Ponavljajoca koda (repetition code)

Recimo, da zelimo poslati sporocilo 1011.

Vsak bit ponovimo trikrat: 111 000 111 111.

Prejemnik vsako trojico bitov “dekodira” v bit, ki se v tejtrojici ponovi najveckrat.

8 / 24

Ponavljajoca koda (repetition code)

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 2 bita na 1 bit!

9 / 24

Ponavljajoca koda (repetition code)

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 2 bita na 1 bit!

9 / 24

Ponavljajoca koda (repetition code)

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 2 bita na 1 bit!

9 / 24

Ponavljajoca koda (repetition code)

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 2 bita na 1 bit!

9 / 24

Ponavljajoca koda (repetition code)

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 2 bita na 1 bit!

9 / 24

Se en primer - Hammingova (7,4)-koda

10 / 24

Se en primer - Hammingova (7,4)-koda

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 3 bite na 4 bite !

11 / 24

Se en primer - Hammingova (7,4)-koda

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 3 bite na 4 bite !

11 / 24

Se en primer - Hammingova (7,4)-koda

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 3 bite na 4 bite !

11 / 24

Se en primer - Hammingova (7,4)-koda

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 3 bite na 4 bite !

11 / 24

Se en primer - Hammingova (7,4)-koda

Vedno odkrije eno ali dve napaki!

Treh ali vec napak NE odkrije vedno!

Zna popraviti eno napako!

Ne zna popraviti dveh ali vec napak!

Odvecnost (redundancy): 3 bite na 4 bite !

11 / 24

Hammingova (7,4) koda - malce drugace

Naj bo abcd sporocilo, ki ga hocemo poslati. Definirajmosedmerico (x1, x2, x3, x4, x5, x6, x7) nicel in enic takole:

x3 = a, x5 = b, x6 = c , x7 = d

x1 izberemo tako, da je x1 + x3 + x5 + x7 sodo stevilo.

x2 izberemo tako, da je x2 + x3 + x6 + x7 sodo stevilo.

x4 izberemo tako, da je x4 + x5 + x6 + x7 sodo stevilo.

Prejemniku posljemo sedmerico (x1, x2, x3, x4, x5, x6, x7).

12 / 24

Hammingova (7,4)-koda - malce drugace

Prejemnik prejme sedmerico (y1, y2, y3, y4, y5, y6, y7) nicel in enic.Predpostavimo, da je pri prenosu prislo do najvec ene napake.

α = y4 + y5 + y6 + y7 mod 2.

β = y2 + y3 + y6 + y7 mod 2.

γ = y1 + y3 + y5 + y7 mod 2.

a = αβγ(2)

a = 0 −→ ni napake!!!

a 6= 0 −→ bit ya je napacen!!!

13 / 24

Hammingova (7,4)-koda - malce drugace

Prejemnik prejme sedmerico (y1, y2, y3, y4, y5, y6, y7) nicel in enic.Predpostavimo, da je pri prenosu prislo do najvec ene napake.

α = y4 + y5 + y6 + y7 mod 2.

β = y2 + y3 + y6 + y7 mod 2.

γ = y1 + y3 + y5 + y7 mod 2.

a = αβγ(2)

a = 0 −→ ni napake!!!

a 6= 0 −→ bit ya je napacen!!!

13 / 24

Hammingova (7,4)-koda - malce drugace

Prejemnik prejme sedmerico (y1, y2, y3, y4, y5, y6, y7) nicel in enic.Predpostavimo, da je pri prenosu prislo do najvec ene napake.

α = y4 + y5 + y6 + y7 mod 2.

β = y2 + y3 + y6 + y7 mod 2.

γ = y1 + y3 + y5 + y7 mod 2.

a = αβγ(2)

a = 0 −→ ni napake!!!

a 6= 0 −→ bit ya je napacen!!!

13 / 24

Hammingova (7,4)-koda - malce drugace

Prejemnik prejme sedmerico (y1, y2, y3, y4, y5, y6, y7) nicel in enic.Predpostavimo, da je pri prenosu prislo do najvec ene napake.

α = y4 + y5 + y6 + y7 mod 2.

β = y2 + y3 + y6 + y7 mod 2.

γ = y1 + y3 + y5 + y7 mod 2.

a = αβγ(2)

a = 0 −→ ni napake!!!

a 6= 0 −→ bit ya je napacen!!!

13 / 24

Binarne kode - osnovne definicije

Naj bo n ∈ N in naj bo An mnozica vseh zaporedij sestavljenih iz 0in 1, ki imajo dolzino n.

Definicija

Koda C dolzine n je podmnozica v An.

Stevilo elementov kode C se imenuje velikost kode C .

Elementi mnozice An se imenujejo besede.

Elementi kode C se imenujejo kodne besede.

14 / 24

Binarne kode - osnovne definicije

Naj bo n ∈ N in naj bo An mnozica vseh zaporedij sestavljenih iz 0in 1, ki imajo dolzino n.

Definicija

Koda C dolzine n je podmnozica v An.

Stevilo elementov kode C se imenuje velikost kode C .

Elementi mnozice An se imenujejo besede.

Elementi kode C se imenujejo kodne besede.

14 / 24

Binarne kode - osnovne definicije

Naj bo n ∈ N in naj bo An mnozica vseh zaporedij sestavljenih iz 0in 1, ki imajo dolzino n.

Definicija

Koda C dolzine n je podmnozica v An.

Stevilo elementov kode C se imenuje velikost kode C .

Elementi mnozice An se imenujejo besede.

Elementi kode C se imenujejo kodne besede.

14 / 24

Binarne kode - osnovne definicije

Naj bo n ∈ N in naj bo An mnozica vseh zaporedij sestavljenih iz 0in 1, ki imajo dolzino n.

Definicija

Koda C dolzine n je podmnozica v An.

Stevilo elementov kode C se imenuje velikost kode C .

Elementi mnozice An se imenujejo besede.

Elementi kode C se imenujejo kodne besede.

14 / 24

Hammingova razdalja

Definicija

Za poljubni dve zaporedji x in y iz An definirajmo

dH(x, y) = stevilo mest, na katerih se x in y razlikujeta.

Stevilu dH(x, y) pravimo Hammingova razdalja zaporedij x in y.

Definicija

Minimalna razdalja kode C je najmanjse izmed stevil dH(x, y),kjer sta x in y razlicni kodni besedi kode C .

15 / 24

Dekodiranje

Recimo, da smo prejemniku poslali neko kodno besedo,prejemnik pa je prejel besedo y. V katero kodno besedo boprejemnik “dekodiral” besedo y?

Ce obstaja natanko ena kodna beseda x, za katero je

dH(x, y) < dH(z, y)

za vsako drugo kodno besedo z, potem bo prejemnik besedo ydekodiral v besedo x.

Ce take besede ni, potem bo prejemnik javil, da je prislo donapake.

16 / 24

Dekodiranje

Recimo, da smo prejemniku poslali neko kodno besedo,prejemnik pa je prejel besedo y. V katero kodno besedo boprejemnik “dekodiral” besedo y?

Ce obstaja natanko ena kodna beseda x, za katero je

dH(x, y) < dH(z, y)

za vsako drugo kodno besedo z, potem bo prejemnik besedo ydekodiral v besedo x.

Ce take besede ni, potem bo prejemnik javil, da je prislo donapake.

16 / 24

Dekodiranje

Recimo, da smo prejemniku poslali neko kodno besedo,prejemnik pa je prejel besedo y. V katero kodno besedo boprejemnik “dekodiral” besedo y?

Ce obstaja natanko ena kodna beseda x, za katero je

dH(x, y) < dH(z, y)

za vsako drugo kodno besedo z, potem bo prejemnik besedo ydekodiral v besedo x.

Ce take besede ni, potem bo prejemnik javil, da je prislo donapake.

16 / 24

Krogle

Definicija

Naj bo x ∈ An in naj bo r ∈ R+. Krogla s srediscem v x inradijem r je mnozica

Sr (x) = {y ∈ An | dH(x, y) ≤ r}.

17 / 24

Kode, ki popravijo e napak (e-error-correcting-codes)

Naj bo C koda dolzine n in naj bo e poljubno naravno stevilo.Potem koda C vedno poravi e napak natanko tedaj, ko je

Se(x) ∩ Se(y) = ∅

za poljubni razlicni kodni besedi x in y.

18 / 24

Popolne kode (perfect codes)

Definicija

Naj bo C koda, ki popravi e napak. Potem je C popolna, ce velja⋃x∈C

Se(x) = An.

Primer: Hammingova (7, 4)-koda

19 / 24

Linearne kode

Definition

Koda C je linearna, ce velja

x, y ∈ C =⇒ x + y ∈ C .

20 / 24

Linearne kode - primeri

Ponavljajoca se koda je linearna koda.

Hammingova (7, 4)-koda je linearna koda.

21 / 24

Linearne kode - primeri

Ponavljajoca se koda je linearna koda.

Hammingova (7, 4)-koda je linearna koda.

21 / 24

Hammingova teza

Definicija

Naj bo C linearna koda. Hammingova teza besede x jestevilo enic v zaporedju x. Oznaka: wH(X).

Minimalna teza kode C je najmanjsa teza nenicelne kodnebedsede kode C .

22 / 24

Hammingova teza

Definicija

Naj bo C linearna koda. Hammingova teza besede x jestevilo enic v zaporedju x. Oznaka: wH(X).

Minimalna teza kode C je najmanjsa teza nenicelne kodnebedsede kode C .

22 / 24

Hammingova teza

Izrek

Naj bo C linearna koda. Potem je minimalna teza kode C enakaminimalni razdalji kode C .

23 / 24

Generatorska matrika

Baza linearne kode C .

Generatorska matrika kode C

Dualna koda

24 / 24

Generatorska matrika

Baza linearne kode C .

Generatorska matrika kode C

Dualna koda

24 / 24

Generatorska matrika

Baza linearne kode C .

Generatorska matrika kode C

Dualna koda

24 / 24

HVALA !

25 / 24