Hibajavítás, -jelzés. Informatikai rendszerek alapjai. Horváth Árpád november 24.

Hasonló dokumentumok
Kódelméleti és kriptográai alkalmazások

Hibadetektáló és javító kódolások

Az adatkapcsolati réteg

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Miller-Rabin prímteszt

Számítógépes Hálózatok 2012

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.

Hibajavító kódolás (előadásvázlat, november 14.) Maróti Miklós

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

Számítógépes Hálózatok

Nagy Gábor compalg.inf.elte.hu/ nagy

AST_v3\

Számítógépes Hálózatok. 4. gyakorlat

ADATKAPCSOLATI PROTOKOLLOK

FELADATOK A BEVEZETŽ FEJEZETEK A MATEMATIKÁBA TÁRGY III. FÉLÉVÉHEZ. ÖSSZEÁLLÍTOTTA: LÁNG CSABÁNÉ ELTE IK Budapest

Kódoláselmélet. (Humann kód, hibajavító kódok, véges testek konstrukciója. Reed-Solomon kód és dekódolása.)

Diszkrét matematika 2.C szakirány

Informatikai Rendszerek Alapjai

Hibajavító kódok május 31. Hibajavító kódok 1. 1

13. Egy x és egy y hosszúságú sorozat konvolúciójának hossza a. x-y-1 b. x-y c. x+y d. x+y+1 e. egyik sem

Jel, adat, információ

Diszkrét matematika 2.C szakirány

Hibajavítás és hibajelzés

KÓDOLÁSTECHNIKA PZH december 18.

I+K technológiák. Számrendszerek, kódolás

Az Informatika Elméleti Alapjai

: s s t 2 s t. m m m. e f e f. a a ab a b c. a c b ac. 5. Végezzük el a kijelölt m veleteket a változók lehetséges értékei mellett!

Ennek két lépéssel balra történõ ciklikus eltolása az alábbi.

Skalárszorzat, norma, szög, távolság. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ 2005.

Számítógépes Hálózatok. 5. gyakorlat

Diszkrét matematika 2.C szakirány

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

Adatkapcsolati réteg (Data Link Layer) Számítógépes Hálózatok Az adatkapcsolati réteg lehetséges szolgáltatásai

Diszkrét matematika alapfogalmak

Hamming-kód. Definíció. Az 1-hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F 2 fölötti vektorokkal foglalkozunk.

Információelmélet. Informatikai rendszerek alapjai. Horváth Árpád október 29.

Számítógépes Hálózatok 2008

7. Adatkapcsolati réteg

Lineáris egyenletrendszerek

A kódok típusai Kódolás: adatok megváltoztatása. Dekódolás: a megváltoztatott adatból az eredeti visszanyerése.

Számítógépes Hálózatok 2013

Számítógépes Hálózatok ősz Adatkapcsolati réteg Hibafelismerés és javítás, Hamming távolság, blokk kódok

Számítógépes Hálózatok. 7. gyakorlat

Informatikai rendszerek alapjai

Számítógépes Hálózatok

Taylor-polinomok. 1. Alapfeladatok április Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

Alapfogalmak a Diszkrét matematika II. tárgyból

Visontay Péter január. 1. Alapfogalmak

Kódolás. 1. Kódoláselméleti alapfogalmak. Informatika alapjai-3 Kódolás 1/8

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Dr. Oniga István DIGITÁLIS TECHNIKA 2

Bevezetés az algebrába 2 Lineáris algebra alkalmazásai

Diszkrét matematika II. feladatok

Bevezetés az algebrába 2

26.B 26.B. Analóg és digitális mennyiségek jellemzıi

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

Aleksziev Rita Antónia Matematika BSc Alkalmazott matematikus szakirány. Golay-kódok

LDPC kódolás. Kutatási beszámoló

Programozható vezérlő rendszerek KOMMUNIKÁCIÓS HÁLÓZATOK 2.

Számítógépes Hálózatok. 5. gyakorlat

Shor kvantum-algoritmusa diszkrét logaritmusra

Számítógépes hálózatok

rank(a) == rank([a b])

megtalálásának hihetetlen nehéz voltán alapszik. Az eljárás matematikai alapja a kis FERMAT-tétel egy következménye:

Bázistranszformáció és alkalmazásai 2.

H=0 H=1. Legyen m pozitív egészre {a 1, a 2,, a m } különböző üzenetek halmaza. Ha az a i üzenetet k i -szer fordul elő az adásban,

Hálózati biztonság ( ) Kriptográfia ( )

2.5 Soros adatkommunikációs rendszerek CAN (Ötödik rész)

12. fejezet Hibajelző kódok és Adatkapcsolati protokollok

Függvények július 13. Határozza meg a következ határértékeket! 1. Feladat: x 0 7x 15 x ) = lim. x 7 x 15 x ) = (2 + 0) = lim.

Kvantum-hibajavítás I.

Assembly programozás: 2. gyakorlat

Az informatikai biztonság matematikai alapjai HIBAKORLÁTOZÁS

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós

Jel, adat, információ

Analóg és digitális mennyiségek

Minden egész szám osztója önmagának, azaz a a minden egész a-ra.

INFOKOMMUNIKÁCIÓS RENDSZEREK MENEDZSMENTJE

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

Számítógépes Hálózatok

Kódolás. Informatika alapjai-3 Kódolás 1/9

Számítógépek, perifériák és a gépeken futó programok (hálózati szoftver) együttese, amelyek egymással összeköttetésben állnak.

Kiegészítések a segédlethez

Határozatlan integrál

3. el adás: Determinánsok

Informatikai alapismeretek

Nagy Viktor VÉGES TESTEK

* Rendelje a PPP protokollt az TCP/IP rétegmodell megfelelő rétegéhez. Kapcsolati réteg

A KroneckerCapelli-tételb l következik, hogy egy Bx = 0 homogén lineáris egyenletrendszernek

Nagy Gábor compalg.inf.elte.hu/ nagy

Kódolás, hibajavítás. Tervezte és készítette Géczy LászlL. szló 2002

Kombinációs hálózatok Számok és kódok

Diszkrét matematika II. feladatok

7. Számelmélet. 1. Lehet-e négyzetszám az a pozitív egész szám, amelynek tízes számrendszerbeli alakjában 510 darab 1-es és valahány 0 szerepel?

Az Informatika Elméleti Alapjai

13. KOMMUNIKÁCIÓS HÁLÓZATOK

Komplex számok. Wettl Ferenc szeptember 14. Wettl Ferenc Komplex számok szeptember / 23

Permutációk véges halmazon (el adásvázlat, február 12.)

DIGITAL TECHNICS I. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute 12. LECTURE: FUNCTIONAL BUILDING BLOCKS III

Átírás:

Hibajavítás és hibajelzés Informatikai rendszerek alapjai Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár 2016. november 24.

Vázlat 1 Hibákról 2

Információátvitel diagrammja forrás csatorna nyel zaj Példák: Beszélgetés forrás: száj, csatorna: leveg, nyel : fül Földfelszíni rádióadás forrás: a rádióadó vagy az átjátszó antennája, csatorna: az éter, nyel : a rádió antennája Internet forrás: router1, csatorna: üvegszál, nyel : router2

Hibák el fordulása Üvegszálakon ritkán Sodrott érpáron (pl. UTP kábel) gyakrabban Vezeték nélküli hálózatokban gyakran

Hibák el fordulása Üvegszálakon ritkán Sodrott érpáron (pl. UTP kábel) gyakrabban Vezeték nélküli hálózatokban gyakran Egyes közegekben (pl. rádió) általában csoportosan El ny: kevesebb adatcsomagot érint Hátrány: nehezebb jelezni ill. javítani a hibát

Vázlat 1 Hibákról 2

Hibajavítás és -jelzés Két lehet ség: Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy visszaállítható legyen az eredeti.

Hibajavítás és -jelzés Két lehet ség: Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy visszaállítható legyen az eredeti. hibajavító kód error-correcting code

Hibajavítás és -jelzés Két lehet ség: Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy visszaállítható legyen az eredeti. hibajavító kód error-correcting code Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy kiderüljön, hogy hibás adatot kaptunk-e.

Hibajavítás és -jelzés Két lehet ség: Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy visszaállítható legyen az eredeti. hibajavító kód error-correcting code Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy kiderüljön, hogy hibás adatot kaptunk-e. Ha hibás, újraküldjük.

Hibajavítás és -jelzés Két lehet ség: Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy visszaállítható legyen az eredeti. hibajavító kód error-correcting code Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy kiderüljön, hogy hibás adatot kaptunk-e. Ha hibás, újraküldjük. hibajelz kód error-detecting code

Hibajavítás és -jelzés Két lehet ség: Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy visszaállítható legyen az eredeti. hibajavító kód error-correcting code Annyi redundanciát adunk minden elküldött adatblokkhoz, hogy kiderüljön, hogy hibás adatot kaptunk-e. Ha hibás, újraküldjük. hibajelz kód error-detecting code Az els akkor ha nem küldhet újra az adat (CD, DVD), illetve adatszórásnál (digitális rádió, TV).

Alapfogalmak Kódszavak (codeword): m üzenetbitb l (message bit) és r redundáns ellen rz bitb l állnak. A teljes hossz n = m + r. Deníció Az olyan helyek számát, ahol két kódszóban különböz bitek állnak, a két kódszó Hamming-távolságának nevezzük. (Hamming, 1950)

Alapfogalmak Példa a kódszó 1 1 0 1 1 0 1 0 1 b kódszó 0 1 1 1 0 1 1 0 1 d(ab) = a Hamming-távolsága a két kódszónak. Ha két kódszó Hamming-távolsága 4, akkor hogy az egyik a másikba menjen. hiba kell ahhoz,

Alapfogalmak Példa a kódszó 1 1 0 1 1 0 1 0 1 b kódszó 0 1 1 1 0 1 1 0 1 d(ab) = 4 a Hamming-távolsága a két kódszónak. Ha két kódszó Hamming-távolsága 4, akkor hogy az egyik a másikba menjen. hiba kell ahhoz,

Alapfogalmak Példa a kódszó 1 1 0 1 1 0 1 0 1 b kódszó 0 1 1 1 0 1 1 0 1 d(ab) = 4 a Hamming-távolsága a két kódszónak. Ha két kódszó Hamming-távolsága 4, akkor 4 hiba kell ahhoz, hogy az egyik a másikba menjen.

Üzenetek száma n = m + r (kódhossz = üzenet + redundáns) lehetséges üzenetünk van. Az n bitb l bitsorozatot alkothatunk, de ezek közül csak lesz érvényes.

Üzenetek száma n = m + r (kódhossz = üzenet + redundáns) 2 m lehetséges üzenetünk van. Az n bitb l bitsorozatot alkothatunk, de ezek közül csak lesz érvényes.

Üzenetek száma n = m + r (kódhossz = üzenet + redundáns) 2 m lehetséges üzenetünk van. Az n bitb l 2 n bitsorozatot alkothatunk, de ezek közül csak lesz érvényes.

Üzenetek száma n = m + r (kódhossz = üzenet + redundáns) 2 m lehetséges üzenetünk van. Az n bitb l 2 n bitsorozatot alkothatunk, de ezek közül csak 2 m lesz érvényes.

Kód és kódszó Deníció Az érvényes n bites bitsorozatokat kódszavaknak nevezzük. A kódszavak összességét kódnak nevezzük.

Alapfogalmak Deníció Egy kód Hamming-távolságán a minimális távolságot értjük, amelyet két kódszava között találunk. Példa Az alábbi kód Hamming-távolsága. a 01010101 b 00001111 c 00110010 d(ab) = d(bc) = d(ac) =

Alapfogalmak Deníció Egy kód Hamming-távolságán a minimális távolságot értjük, amelyet két kódszava között találunk. Példa Az alábbi kód Hamming-távolsága. a 01010101 b 00001111 c 00110010 d(ab) = 4 d(bc) = d(ac) =

Alapfogalmak Deníció Egy kód Hamming-távolságán a minimális távolságot értjük, amelyet két kódszava között találunk. Példa Az alábbi kód Hamming-távolsága. a 01010101 b 00001111 c 00110010 d(ab) = 4 d(bc) = 5 d(ac) =

Alapfogalmak Deníció Egy kód Hamming-távolságán a minimális távolságot értjük, amelyet két kódszava között találunk. Példa Az alábbi kód Hamming-távolsága. a 01010101 b 00001111 c 00110010 d(ab) = 4 d(bc) = 5 d(ac) = 5

Alapfogalmak Deníció Egy kód Hamming-távolságán a minimális távolságot értjük, amelyet két kódszava között találunk. Példa Az alábbi kód Hamming-távolsága 4. a 01010101 b 00001111 c 00110010 d(ab) = 4 d(bc) = 5 d(ac) = 5

Hamming-kódolás (1950), Richard Hamming (1915-1998)

Egy kód Hamming-távolsága 4. Legfeljebb hiba lehet, hogy biztosan ne kapjunk másik kódszót az eredeti helyett. Legfeljebb hiba lehet, hogy biztosan ki tudjuk találni, melyik volt az eredeti kódszó.

Egy kód Hamming-távolsága 4. Legfeljebb hiba lehet, hogy biztosan ne kapjunk másik kódszót az eredeti helyett. Legfeljebb hiba lehet, hogy biztosan ki tudjuk találni, melyik volt az eredeti kódszó. kódszó 1 kódszó 2

Egy kód Hamming-távolsága 4. Legfeljebb 3 hiba lehet, hogy biztosan ne kapjunk másik kódszót az eredeti helyett. Legfeljebb hiba lehet, hogy biztosan ki tudjuk találni, melyik volt az eredeti kódszó. kódszó 1 kódszó 2

Egy kód Hamming-távolsága 4. Legfeljebb 3 hiba lehet, hogy biztosan ne kapjunk másik kódszót az eredeti helyett. Legfeljebb 1 hiba lehet, hogy biztosan ki tudjuk találni, melyik volt az eredeti kódszó. kódszó 1 kódszó 2

Feladat Maximum e hibára számítunk. Mennyi legyen a kód d Hamming-távolsága, hogy ki tudjuk mutatni a hibát?

Feladat Maximum e hibára számítunk. Mennyi legyen a kód d Hamming-távolsága, hogy ki tudjuk mutatni a hibát? d e + 1

Feladat Maximum e hibára számítunk. Mennyi legyen a kód d Hamming-távolsága, hogy ki tudjuk mutatni a hibát? d e + 1 Mennyi legyen a kód d Hamming-távolsága, hogy javítani tudjuk a hibát?

Feladat Maximum e hibára számítunk. Mennyi legyen a kód d Hamming-távolsága, hogy ki tudjuk mutatni a hibát? d e + 1 Mennyi legyen a kód d Hamming-távolsága, hogy javítani tudjuk a hibát? d 2e + 1

Gondolkozzunk! Biztosan sikerül megoldani. Hogyan lehetne olyan kódot el állítani, hogy egy hibát ki tudjunk mutatni? Azaz jönnek adott hosszúságú üzenetek (bitsorozatok), és mindegyik helyett egy másik bitsorozatot küldünk, úgy, hogy meg tudjuk mondani, hogy hibásan ment-e át az üzenet, és ha nem, meg tudjuk határozni az üzenetet. Több bit kell? Elég ugyanannyi? Vagy kevesebb is?

Na és ezt sikerül? Hogyan lehetne olyan kódot el állítani, hogy egy hibát ki tudjunk javítani? Egyel re nem érdekel, hogy milyen hosszúak a kódszavak.

Paritásbit Deníció Ha a kódszóhoz egy olyan bitet f zünk, hogy a kódszóban lev 1-esek száma páros (illetve páratlan) legyen. Ezt a bitet nevezzük páros (páratlan) paritásbitnek. Továbbiakban páros paritásbitet használunk. Pl. 11011 Pl. 10000

Paritásbit Deníció Ha a kódszóhoz egy olyan bitet f zünk, hogy a kódszóban lev 1-esek száma páros (illetve páratlan) legyen. Ezt a bitet nevezzük páros (páratlan) paritásbitnek. Továbbiakban páros paritásbitet használunk. Pl. 11011 110110 Pl. 10000

Paritásbit Deníció Ha a kódszóhoz egy olyan bitet f zünk, hogy a kódszóban lev 1-esek száma páros (illetve páratlan) legyen. Ezt a bitet nevezzük páros (páratlan) paritásbitnek. Továbbiakban páros paritásbitet használunk. Pl. 11011 110110 Pl. 10000 100001 A paritásbit hozzáf zésével kapott kód Hamming-távolsága:

Paritásbit Deníció Ha a kódszóhoz egy olyan bitet f zünk, hogy a kódszóban lev 1-esek száma páros (illetve páratlan) legyen. Ezt a bitet nevezzük páros (páratlan) paritásbitnek. Továbbiakban páros paritásbitet használunk. Pl. 11011 110110 Pl. 10000 100001 A paritásbit hozzáf zésével kapott kód Hamming-távolsága: 2 Alkalmas-e hibajavításra, jelzésre?

Paritásbit Deníció Ha a kódszóhoz egy olyan bitet f zünk, hogy a kódszóban lev 1-esek száma páros (illetve páratlan) legyen. Ezt a bitet nevezzük páros (páratlan) paritásbitnek. Továbbiakban páros paritásbitet használunk. Pl. 11011 110110 Pl. 10000 100001 A paritásbit hozzáf zésével kapott kód Hamming-távolsága: 2 Alkalmas-e hibajavításra, jelzésre? 1 bithiba jelzésére alkalmas (SEDsingle error detection)

Egy bithiba javítása (SECsingle error correction) Hány bites üzenetünk lehet, ha r többlet bitet adunk az üzenethez? kódhossz (n) = üzenethossz (m) + redundáns bitek száma (r)

Egy bithiba javítása (SECsingle error correction) Hány bites üzenetünk lehet, ha r többlet bitet adunk az üzenethez? kódhossz (n) = üzenethossz (m) + redundáns bitek száma (r) Egy kódszó és 1 bithibás szomszédai együtt n + 1 bitsorozatot adnak.

Egy bithiba javítása (SECsingle error correction) Hány bites üzenetünk lehet, ha r többlet bitet adunk az üzenethez? kódhossz (n) = üzenethossz (m) + redundáns bitek száma (r) Egy kódszó és 1 bithibás szomszédai együtt n + 1 bitsorozatot adnak. A 2 m üzenethez legalább 2 m (n + 1) különböz bitsorozat kell.

Egy bithiba javítása (SECsingle error correction) Hány bites üzenetünk lehet, ha r többlet bitet adunk az üzenethez? kódhossz (n) = üzenethossz (m) + redundáns bitek száma (r) Egy kódszó és 1 bithibás szomszédai együtt n + 1 bitsorozatot adnak. A 2 m üzenethez legalább 2 m (n + 1) különböz bitsorozat kell. Ha n bites kódszavakat küldünk, akkor a 2 n 2 m (n + 1) egyenl tlenségnek kell teljesülnie, hogy egy bithiba javítása lehetséges legyen.

Egy bithiba javítása (SECsingle error correction) Hány bites üzenetünk lehet, ha r többlet bitet adunk az üzenethez? kódhossz (n) = üzenethossz (m) + redundáns bitek száma (r) Egy kódszó és 1 bithibás szomszédai együtt n + 1 bitsorozatot adnak. A 2 m üzenethez legalább 2 m (n + 1) különböz bitsorozat kell. Ha n bites kódszavakat küldünk, akkor a 2 n 2 m (n + 1) egyenl tlenségnek kell teljesülnie, hogy egy bithiba javítása lehetséges legyen. Mivel n = r + m, 2 r m + r + 1 egyenl tlenségnek kell teljesülnie.

Egy bithiba javítása (SECsingle error correction) Hány bites üzenetünk lehet, ha r többlet bitet adunk az üzenethez? kódhossz (n) = üzenethossz (m) + redundáns bitek száma (r) Egy kódszó és 1 bithibás szomszédai együtt n + 1 bitsorozatot adnak. A 2 m üzenethez legalább 2 m (n + 1) különböz bitsorozat kell. Ha n bites kódszavakat küldünk, akkor a 2 n 2 m (n + 1) egyenl tlenségnek kell teljesülnie, hogy egy bithiba javítása lehetséges legyen. Mivel n = r + m, 2 r m + r + 1 egyenl tlenségnek kell teljesülnie. Az egyenl tlenséget teljesít minimális egész r bittel tényleg létrehozható egy bithibát javító kódolás: a Hamming-kód.

A Hamming(7, 4)-kód

A Hamming-kód A biteket 1-t l sorszámozzuk balról jobbra.

A Hamming-kód A biteket 1-t l sorszámozzuk balról jobbra. Minden kett -hatvány (2 i ) helyen paritásbit van.

A Hamming-kód A biteket 1-t l sorszámozzuk balról jobbra. Minden kett -hatvány (2 i ) helyen paritásbit van. Az egyes paritásbitek nem az összes bitet ellen rzik.

A Hamming-kód A biteket 1-t l sorszámozzuk balról jobbra. Minden kett -hatvány (2 i ) helyen paritásbit van. Az egyes paritásbitek nem az összes bitet ellen rzik. A paritásbit ellen rzi a teljes kulcsszó i. bitjét, ha az i kettes számrendszerbeli alakjában szerepel a 2 i helyiérték.

A Hamming-kód A biteket 1-t l sorszámozzuk balról jobbra. Minden kett -hatvány (2 i ) helyen paritásbit van. Az egyes paritásbitek nem az összes bitet ellen rzik. A paritásbit ellen rzi a teljes kulcsszó i. bitjét, ha az i kettes számrendszerbeli alakjában szerepel a 2 i helyiérték. Például a 6. bitet ellen rzi a nem. paritásbit, a többi

A Hamming-kód A biteket 1-t l sorszámozzuk balról jobbra. Minden kett -hatvány (2 i ) helyen paritásbit van. Az egyes paritásbitek nem az összes bitet ellen rzik. A paritásbit ellen rzi a teljes kulcsszó i. bitjét, ha az i kettes számrendszerbeli alakjában szerepel a 2 i helyiérték. Például a 6. bitet ellen rzi a 4-es és 2-es paritásbit, a többi nem.

A Hamming-kód A biteket 1-t l sorszámozzuk balról jobbra. Minden kett -hatvány (2 i ) helyen paritásbit van. Az egyes paritásbitek nem az összes bitet ellen rzik. A paritásbit ellen rzi a teljes kulcsszó i. bitjét, ha az i kettes számrendszerbeli alakjában szerepel a 2 i helyiérték. Például a 6. bitet ellen rzi a 4-es és 2-es paritásbit, a többi nem. 6=4+2=110 2

A Hamming-kód A biteket 1-t l sorszámozzuk balról jobbra. Minden kett -hatvány (2 i ) helyen paritásbit van. Az egyes paritásbitek nem az összes bitet ellen rzik. A paritásbit ellen rzi a teljes kulcsszó i. bitjét, ha az i kettes számrendszerbeli alakjában szerepel a 2 i helyiérték. Például a 6. bitet ellen rzi a 4-es és 2-es paritásbit, a többi nem. 6=4+2=110 2 bit 1. 2. 3. 4. 5. 6. 7. P 1 P 2 2 + 1 P 4 4 + 1 4 + 2 4 + 2 + 1 1 10 11 100 101 110 111 P 1 + + + + P 2 + + + + P 4 + + + +

Példa Az 100111 üzenet kódolása, és visszaállítása a kód 7. bitjének meghibásodása esetén. bit 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. P 1 P 2 11 P 4 101 110 111 P 8 1001 1010 P 1? 1 0 1 1 P 2? 1 0 1 1 P 4? 0 0 1? 1 1 P 8 1 0 0 1 1 1 A keresett Hamming-kódszó 1111001011, a P i jel oszlopok a paritásbiteket, a többi az üzenet (message) bitjek helye.

Példa Az 100111 üzenet kódolása, és visszaállítása a kód 7. bitjének meghibásodása esetén. bit 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. P 1 P 2 11 P 4 101 110 111 P 8 1001 1010 P 1? 1 0 1 1 P 2? 1 0 1 1 P 4? 0 0 1? 1 1 P 8 1 1 0 0 1 1 1 A keresett Hamming-kódszó 1111001011, a P i jel oszlopok a paritásbiteket, a többi az üzenet (message) bitjek helye.

Példa Az 100111 üzenet kódolása, és visszaállítása a kód 7. bitjének meghibásodása esetén. bit 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. P 1 P 2 11 P 4 101 110 111 P 8 1001 1010 P 1? 1 0 1 1 P 2? 1 0 1 1 P 4? 0 0 1? 1 1 P 8 1 1 1 0 0 1 1 1 A keresett Hamming-kódszó 1111001011, a P i jel oszlopok a paritásbiteket, a többi az üzenet (message) bitjek helye.

Példa Az 100111 üzenet kódolása, és visszaállítása a kód 7. bitjének meghibásodása esetén. bit 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. P 1 P 2 11 P 4 101 110 111 P 8 1001 1010 P 1? 1 0 1 1 P 2? 1 0 1 1 P 4? 0 0 1? 1 1 P 8 1 1 1 1 0 0 1 1 1 A keresett Hamming-kódszó 1111001011, a P i jel oszlopok a paritásbiteket, a többi az üzenet (message) bitjek helye.

Példa Az 100111 üzenet kódolása, és visszaállítása a kód 7. bitjének meghibásodása esetén. bit 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. P 1 P 2 11 P 4 101 110 111 P 8 1001 1010 P 1? 1 0 1 1 P 2? 1 0 1 1 P 4? 0 0 1? 1 1 P 8 1 1 1 1 0 0 1 0 1 1 A keresett Hamming-kódszó 1111001011, a P i jel oszlopok a paritásbiteket, a többi az üzenet (message) bitjek helye.

Példa folytatása A keresett Hamming-kódszó 1111001011, a kódot a csatornán átküldve a 7. bitjének meghibásodása esetén a nyel nél kapott kód 1111000011. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Helyes? P 1 P 2 11 P 4 101 110 111 P 8 1001 1010 (egyesek száma) P 1 1 1 0 0 1 hibás (3) P 2 1 1 0 0 1 hibás (3) P 4 1 0 0 0 hibás (1) P 8 0 1 1 helyes (2) 1 1 1 1 0 0 0 0 1 1 Hibás 1+2+4= 7.

Több bithiba javítása Bonyolultabb algoritmussal olyan kód is el állítható, amely több bithibát is képes javítani. A DVD-n található lmeket, és a digitális televíziós el adásokat (pl. DVB) MPEG kódolással kódolják, amelynek részét képezi a hibajavító kódolás. Az úgynevezett ReedSolomon kódolást használják. Az videó-m sorszórás európai szabványában (DVB) egy 188 bájtos adatcsomaghoz 16 bájtnyi redundáns információt f znek, amely csomagonként 8 bithiba javítására alkalmas.

Csoportos hibák elleni védekezés Soronként felírjuk az átküldend Hamming-kódolt kódszavakat (k darabot).

Csoportos hibák elleni védekezés Soronként felírjuk az átküldend Hamming-kódolt kódszavakat (k darabot). Oszloponként küldjük át a jeleket.

Csoportos hibák elleni védekezés Soronként felírjuk az átküldend Hamming-kódolt kódszavakat (k darabot). Oszloponként küldjük át a jeleket. A nyel nél visszaállítjuk a sorokat, és úgy ellen rzünk.

Csoportos hibák elleni védekezés Soronként felírjuk az átküldend Hamming-kódolt kódszavakat (k darabot). Oszloponként küldjük át a jeleket. A nyel nél visszaállítjuk a sorokat, és úgy ellen rzünk. Ha egy k hosszúságú csoportos hiba lép fel, akkor az minden sorban egy bitet ront el, amit a Hamming-kód javítani képes.

Csoportos hibák elleni védekezés Soronként felírjuk az átküldend Hamming-kódolt kódszavakat (k darabot). Oszloponként küldjük át a jeleket. A nyel nél visszaállítjuk a sorokat, és úgy ellen rzünk. Ha egy k hosszúságú csoportos hiba lép fel, akkor az minden sorban egy bitet ront el, amit a Hamming-kód javítani képes. km méret adatblokkokhoz kr ellen rz bit.

Csoportos hibák elleni védekezés jel 7 bites ASCII-kód Hamming-kódszó O 1001111 0011001001011 E 1000101 1110000101101-0101101 0100101101101 A 1000001 1110000010101 R 1010010 1011010100110 E 1000101 1110000101101 K 1001011 0011001110011 Függ legesen küldjük el 01011100111010... 1111011.

Egy bithiba javítása (SECsingle error correction) m hosszúságú üzenetnél hány darab (r ) többletbit, hány % redundancia kell? n m r redundancia (%) 7 4 3 75 15 11 4 36 31 26 5 19 63 57 6 10 127 120 7 6 255 247 8 3 511 502 9 2

Egy bithiba javítása (SECsingle error correction) m hosszúságú üzenetnél hány darab (r ) többletbit, hány % redundancia kell? n m r redundancia (%) 7 4 3 75 15 11 4 36 31 26 5 19 63 57 6 10 127 120 7 6 255 247 8 3 511 502 9 2 Miért nem lehet a gyakorlatban akármennyire növelni m-et?

Információátvitel diagrammja forrás csat. kódoló csatorna csat. dekódoló forráskódoló forrásdekódoló nyel zaj

A generátormátrix és a paritásellen rz mátrix Minden m velet úgy értelmezend, hogy utána kettes maradékot veszünk, tehát 0 és 1 lesz mindenhol az eredményben. A generátormátrix következ képp állítható el az üzenethez tartozó kódszó: Ha x az üzenet bitjeit tartalmazó sorvektor, akkor y = xg a kapott Hammig-kódszó. A H paritásellen rz mátrixsszal tudom ellen rizni, hogy helyes kódszót kaptam-e. Ha y helyes kódszó, akkor Hy T elemei nullák. Ha nem nullák, akkor annyiadik bit romlott el, ahányadik oszlopa megjelenik a H-nak a szorzatban.

A generátormátrix és a paritásellen rz mátrix kapcsolata Az általánosan használt esetben a paritásbiteket a kód végére szokták rakni. Ebben az esetben a generátormátrix mindig: G = [A E m ] alakú, a paritásellen rz mátrix, pedig ] H = [E r A T alakú, egymásból el állíthatóak. E k a k k-s egységmátrix. Hamming-kód esetén: r: paritásbitek (redundáns bitek) száma; m: üzenetbitek száma

A generátormátrix és a paritásellen rz mátrix a MATLAB-ban A két mátrixot a következ képpen lehet megkapni: [H, G] = hammgen(3); ahol r = 3 az ellen rz bitek száma. Egy példa kódolásra: >> x = [1 0 0 1]; >> y = mod(x*g, 2) y = 0 1 1 1 0 0 1 A mod(a, 2) függvény a kettes maradékát adja az eredménynek (mátrixnál minden elemnek).

Kódszó elen rzése >> y1 = [0 1 0 1 0 0 1]; >> mod(h*y1', 2) ans = >> H H = 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 Mivel az eredménnyel a 3. oszlop egyezik, ezért a 3. bit sérült. Összehasonlítható az el z oldallal.

Feladat Az el z oldal paritásellen rz mátrixa alapján határozzuk meg az A mátrixot és a generátormátrixot!

Kódszó elen rzése G = 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1

CRC-kód Hasonlat: Ha egy számot elosztunk r + 1-gyel, akkor a maradék legfeljebb r lesz.

CRC-kód Hasonlat: Ha egy számot elosztunk r + 1-gyel, akkor a maradék legfeljebb r lesz. Ha egy polinomot elosztunk egy (r + 1)-ed fokszámú polinommal, akkor a maradék legfeljebb r -ed fokszámú lesz.

CRC-kód Hasonlat: Ha egy számot elosztunk r + 1-gyel, akkor a maradék legfeljebb r lesz. Ha egy polinomot elosztunk egy (r + 1)-ed fokszámú polinommal, akkor a maradék legfeljebb r -ed fokszámú lesz. 10011 1x 4 + 0x 3 + 0x 2 + 1x 1 + 1x 0 = x 4 + x + 1

CRC-kód Hasonlat: Ha egy számot elosztunk r + 1-gyel, akkor a maradék legfeljebb r lesz. Ha egy polinomot elosztunk egy (r + 1)-ed fokszámú polinommal, akkor a maradék legfeljebb r -ed fokszámú lesz. 10011 1x 4 + 0x 3 + 0x 2 + 1x 1 + 1x 0 = x 4 + x + 1 A CRC kód (cyclic redundancy code) esetén az üzenet bitjeit egy polinom együtthatóinak tekintjük,

CRC-kód Hasonlat: Ha egy számot elosztunk r + 1-gyel, akkor a maradék legfeljebb r lesz. Ha egy polinomot elosztunk egy (r + 1)-ed fokszámú polinommal, akkor a maradék legfeljebb r -ed fokszámú lesz. 10011 1x 4 + 0x 3 + 0x 2 + 1x 1 + 1x 0 = x 4 + x + 1 A CRC kód (cyclic redundancy code) esetén az üzenet bitjeit egy polinom együtthatóinak tekintjük, el re meghatározott polinommal, az úgynevezett generátor-polinommal, végezzük el az osztást,

CRC-kód Hasonlat: Ha egy számot elosztunk r + 1-gyel, akkor a maradék legfeljebb r lesz. Ha egy polinomot elosztunk egy (r + 1)-ed fokszámú polinommal, akkor a maradék legfeljebb r -ed fokszámú lesz. 10011 1x 4 + 0x 3 + 0x 2 + 1x 1 + 1x 0 = x 4 + x + 1 A CRC kód (cyclic redundancy code) esetén az üzenet bitjeit egy polinom együtthatóinak tekintjük, el re meghatározott polinommal, az úgynevezett generátor-polinommal, végezzük el az osztást, a maradék együtthatóit az üzenethez f zzük.

CRC-kód Hasonlat: Ha egy számot elosztunk r + 1-gyel, akkor a maradék legfeljebb r lesz. Ha egy polinomot elosztunk egy (r + 1)-ed fokszámú polinommal, akkor a maradék legfeljebb r -ed fokszámú lesz. 10011 1x 4 + 0x 3 + 0x 2 + 1x 1 + 1x 0 = x 4 + x + 1 A CRC kód (cyclic redundancy code) esetén az üzenet bitjeit egy polinom együtthatóinak tekintjük, el re meghatározott polinommal, az úgynevezett generátor-polinommal, végezzük el az osztást, a maradék együtthatóit az üzenethez f zzük. A nyel nél (ismerve a generátor-polinomot) ugyanígy ellen rizni tudjuk a redundáns részt,

CRC-kód Hasonlat: Ha egy számot elosztunk r + 1-gyel, akkor a maradék legfeljebb r lesz. Ha egy polinomot elosztunk egy (r + 1)-ed fokszámú polinommal, akkor a maradék legfeljebb r -ed fokszámú lesz. 10011 1x 4 + 0x 3 + 0x 2 + 1x 1 + 1x 0 = x 4 + x + 1 A CRC kód (cyclic redundancy code) esetén az üzenet bitjeit egy polinom együtthatóinak tekintjük, el re meghatározott polinommal, az úgynevezett generátor-polinommal, végezzük el az osztást, a maradék együtthatóit az üzenethez f zzük. A nyel nél (ismerve a generátor-polinomot) ugyanígy ellen rizni tudjuk a redundáns részt, és ha az hibás, akkor újraküldjük az üzenetet.

Polinomosztás elvégzése Legyen a generátorpolinom G(x) = x 3 + x + 1 = 1x 3 + 0x 2 + 1x 1 + 1x 0 azaz r = 3, az együtthatók 1011. 11010011100 <--- eredeti üzenet 11010011100000 <--- r darab 0-val kiegészítem 1011 <--- generátor polinommal osztok 01100011100000 <--- eredmény 1011 <--- osztás... 00111011100000 (...) 00000000000010 Az utolsó r bitet f zöm az eredeti üzenethez: 11010011100010 bitsorozatot küldöm el.

Ellen rzés a nyel nél 11010011100010 <--- kódolt üzenet 1011 <--- generátor polinommal osztok 01100011100010 <--- eredmény 1011 <--- osztás... 00111011100010 1011 00010111100010 1011 00000001100010 (...) 00000000010110 1011 00000000000000 Minden bit 0 lett, nem sérült az üzenet.

CRC-kód tulajdonságai Hardveresen hatékonyan elvégezhet.

CRC-kód tulajdonságai Hardveresen hatékonyan elvégezhet. Rézvezetéken, optikai szálakon és merevlemezeken, a bithiba-arány kicsi (< 10 6 ), ott alkalmazzuk.

CRC-kód tulajdonságai Hardveresen hatékonyan elvégezhet. Rézvezetéken, optikai szálakon és merevlemezeken, a bithiba-arány kicsi (< 10 6 ), ott alkalmazzuk. A csoportos hibákat, amikor r egymás utáni bit sérül, hatékonyan kimutatja.