32
Samoopravné kódy Tomáš Kaiser Katedra matematiky a Institut teoretické informatiky Západočeská univerzita Seminář pro učitele středních a vysokých škol, Plzeň, 30. března 2012 Tomáš Kaiser Samoopravné kódy

SamoopravnØ kódy - zcu.czmmm.zcu.cz/seminar2012/kaiser.pdf · 2012. 4. 3. · SamoopravnØ kódy TomÆ„ Kaiser Katedra matematiky a Institut teoretickØ informatiky ZÆpadoŁeskÆ

  • Upload
    others

  • View
    4

  • Download
    1

Embed Size (px)

Citation preview

  • Samoopravné kódy

    Tomáš Kaiser

    Katedra matematikya Institut teoretické informatikyZápadočeská univerzita

    Seminář pro učitele středních a vysokých škol, Plzeň, 30. března 2012

    Tomáš Kaiser Samoopravné kódy

  • Samoopravné kódy jsou všude

    Některé oblasti využití:

    CD přehrávače

    mobilní sítě

    paměti a pevné disky

    čárové kódy

    čipové karty

    kosmický výzkum

    Tomáš Kaiser Samoopravné kódy

  • Samoopravné kódy jsou všude

    Některé oblasti využití:CD přehrávačemobilní sítěpaměti a pevné diskyčárové kódyčipové kartykosmický výzkum

    Tomáš Kaiser Samoopravné kódy

  • “Otcové zakladatelé”

    Richard Hamming (1915–1998)

    1950: Error detectingand error correcting codes

    Claude Shannon (1916–2001)

    1948: A mathematical theoryof communication

    Tomáš Kaiser Samoopravné kódy

  • Detekce chyb

    rodné číslo

    čísla bankovních účtů a kreditních karet

    IČO

    síťové protokoly

    některé paměti RAM

    Tomáš Kaiser Samoopravné kódy

  • Ilustrační příklad

    obrázek v 16 stupních šedi, každý bod reprezentován 4 bity

    například 0000 = černá, 1101 = světle šedá

    přenos faxem po nekvalitní lince, každý jednotlivý bit se porušís pravděpodobností p

    obrazový bod bude přijat správně s pravděpodobností (1− p)4

    takže pro p = 0, 001 bude v průměru 19% bodů chybných

    Jak zvýšit spolehlivost přenosu?

    např.: každý bit zopakovat třikrát, přijatou trojici dekódovatpodle většiny

    jen necelé 1% bodů bude chybných, ale cenou je trojnásobnýobjem dat

    Tomáš Kaiser Samoopravné kódy

  • Ilustrační příklad

    obrázek v 16 stupních šedi, každý bod reprezentován 4 bity

    například 0000 = černá, 1101 = světle šedá

    přenos faxem po nekvalitní lince, každý jednotlivý bit se porušís pravděpodobností p

    obrazový bod bude přijat správně s pravděpodobností (1− p)4

    takže pro p = 0, 001 bude v průměru 19% bodů chybných

    Jak zvýšit spolehlivost přenosu?

    např.: každý bit zopakovat třikrát, přijatou trojici dekódovatpodle většiny

    jen necelé 1% bodů bude chybných, ale cenou je trojnásobnýobjem dat

    Tomáš Kaiser Samoopravné kódy

  • Hammingův kód

    obrazový bod (a1, a2, a3, a4) zakódujeme do 7-bitového slova(x1, . . . , x7)bity x1, x2, x4 jsou kontrolní, ostatní jsou informačnído informačních souřadnic zapíšeme a1, . . . , a4kontrolní souřadnice dopočítáme (modulo 2) podle rovnic:

    x4 + x5 + x6 + x7 = 0,

    x2 + x3 + x6 + x7 = 0,

    x1 + x3 + x5 + x7 = 0.

    (v i-té rovnici se objevuje xk , pokud i-tý bit v binárním zápisučísla k je 1)pro každou čtveřici (a1, . . . , a4) obdržíme kódové slovo:

    (0 1 1 1)→ (0 0 0 1 1 1 1)

    Tomáš Kaiser Samoopravné kódy

  • Hammingův kód

    obrazový bod (a1, a2, a3, a4) zakódujeme do 7-bitového slova(x1, . . . , x7)bity x1, x2, x4 jsou kontrolní, ostatní jsou informačnído informačních souřadnic zapíšeme a1, . . . , a4kontrolní souřadnice dopočítáme (modulo 2) podle rovnic:

    x4 + x5 + x6 + x7 = 0,

    x2 + x3 + x6 + x7 = 0,

    x1 + x3 + x5 + x7 = 0.

    (v i-té rovnici se objevuje xk , pokud i-tý bit v binárním zápisučísla k je 1)pro každou čtveřici (a1, . . . , a4) obdržíme kódové slovo:

    (0 1 1 1)→ (0 0 0 1 1 1 1)

    Tomáš Kaiser Samoopravné kódy

  • Vlastnosti Hammingova kódu

    máme tedy 16 kódových slov délky 7

    každá dvě se liší alespoň ve 3 souřadnicích

    neboli: Hammingova vzdálenost každých dvou slov je ≥ 3)poruší-li se tedy při přenosu nejvýše jeden bit, dokážemeodeslané kódové slovo správně rekonstruovat — kód ‘opravujejednu chybu’

    Tomáš Kaiser Samoopravné kódy

  • Maticová formulace

    Soustavu rovnic, podle které se dopočítávají kontrolní bity, lzezapsat ve tvaru:

    A ·

    x1x2x3x4x5x6x7

    =

    000

    ,

    kde

    A =

    0 0 0 1 1 1 10 1 1 0 0 1 11 0 1 0 1 0 1

    .

    Tomáš Kaiser Samoopravné kódy

  • Dekódování Hammingova kódu

    Dejme tomu, že přijaté slovo je y = (y1, . . . , y7). Postupdekódování:

    pokud AyT je nulový vektor, ponecháme y beze změny,

    jinak přečteme AyT jako binární zápis čísla od 1 do 7 azměníme bit na příslušné souřadnici.

    Příklad:

    zdrojová data jsou (0 1 1 1)

    zakódovali jsme je slovem (0 0 0 1 1 1 1)

    při přenosu se porušil předposlední bit, výsledkem je slovo(0 0 0 1 1 0 1)

    součin s maticí A je (1 1 0)T , takže opravíme šestousouřadnici

    Tomáš Kaiser Samoopravné kódy

  • Dekódování Hammingova kódu

    Dejme tomu, že přijaté slovo je y = (y1, . . . , y7). Postupdekódování:

    pokud AyT je nulový vektor, ponecháme y beze změny,

    jinak přečteme AyT jako binární zápis čísla od 1 do 7 azměníme bit na příslušné souřadnici.

    Příklad:

    zdrojová data jsou (0 1 1 1)

    zakódovali jsme je slovem (0 0 0 1 1 1 1)

    při přenosu se porušil předposlední bit, výsledkem je slovo(0 0 0 1 1 0 1)

    součin s maticí A je (1 1 0)T , takže opravíme šestousouřadnici

    Tomáš Kaiser Samoopravné kódy

  • Ještě k příkladu

    Při použití Hammingova kódu pro kódování faxové zprávy budechybných jen 5% bodů (bez kódování to bylo 18%).

    Jiná situace:

    je třeba, aby výsledný obrázek byl bezchybný,

    rozměry jsou 16 × 16 bodů,pravděpodobnost chyby v jednotlivém bitu je 0,1%.

    Potom:

    při použití Hammingova kódu (i při ztrojování bitů) jepravděpodobnost úspěchu přes 99%,

    bez kódování pouze 36%.

    Tomáš Kaiser Samoopravné kódy

  • Ještě k příkladu

    Při použití Hammingova kódu pro kódování faxové zprávy budechybných jen 5% bodů (bez kódování to bylo 18%).

    Jiná situace:

    je třeba, aby výsledný obrázek byl bezchybný,

    rozměry jsou 16 × 16 bodů,pravděpodobnost chyby v jednotlivém bitu je 0,1%.

    Potom:

    při použití Hammingova kódu (i při ztrojování bitů) jepravděpodobnost úspěchu přes 99%,

    bez kódování pouze 36%.

    Tomáš Kaiser Samoopravné kódy

  • Obecné Hammingovy kódy

    analogickou konstrukci lze provést pro každou délkun = 2k − 1 (k ≥ 2)dostáváme kódy délky 2k − 1 s k kontrolními bity a minimálnívzdáleností dvou slov ≥ 3jde o lineární kódy (kódová slova tvoří lineární prostor naddvouprvkovým tělesem)

    Tomáš Kaiser Samoopravné kódy

  • Hustota Hammingových kódů

    Hustota kódu délky n s K slovy:

    h =log2 Kn

    udává zhruba poměr počtu informačních bitů k délce slova

    hustoty Hammingových kódů:H(3, 1) 0, 333H(7, 4) 0, 571H(15, 11) 0, 733H(31, 26) 0, 839

    hustota se blíží jedné jako 1− log nn

    Tomáš Kaiser Samoopravné kódy

  • Hammingovy kódy jsou perfektní

    Pro kód s délkou 7 a minimální vzdáleností dvou slov ≥ 3 máHammingův (7, 4)-kód maximální možný počet kódových slov:

    pro kódové slovo c nechť B(c) je množina všech slov ovzdálenosti ≤ 1 od cpro různá kódová slova c jsou množiny B(c) disjunktní(protože vzdálenost dvou kódových slov je ≥ 3)v každé množině B(c) je 8 slov

    velikost sjednocení množin B(c) je tedy 8 · 16 = 128, což jepřesně počet všech slov délky 7

    Podobné kódy se nazývají perfektní, patří mezi ně mj. všechnyHammingovy kódy.

    Tomáš Kaiser Samoopravné kódy

  • Aplikace Hammingových kódů: disková pole

    diskové pole RAID: zařízení obsahující několiksynchronizovaných pevných disků

    řada typů, v původní specifikaci označení Level 0–6

    RAID Level 2: ochrana proti výpadku 1 disku pomocíHammingova kódu

    příklad konfigurace: 7 disků, z toho 4 informační a 3 kontrolní

    slovo o 4 bitech se převede na slovo kódu H(7, 4) (délky 7),na každý disk se uloží 1 bit

    Tomáš Kaiser Samoopravné kódy

  • Hadamardovy kódy a Mariner 9

    Mariner 9, první sonda na oběžné dráze kolem jiné planety (Mars,1971):

    Tomáš Kaiser Samoopravné kódy

  • Přenos obrázků z Mariner 9

    černobílé snímky Marsu s 64 úrovněmi šedi v rozlišení832× 700vlivem kosmického záření a šumu zesilovače mnoho chyb —nutnost kódování

    za daných podmínek by bylo možné navýšit objempřenášených dat zhruba na pětinásobek (hustota kódu byměla být zhruba 0, 2 nebo více)

    při odeslání každého bitu 5×: možnost opravy 2 chybHadamardův (32, 6)-kód umožnil opravu 7 chyb

    Tomáš Kaiser Samoopravné kódy

  • Hadamardovy matice

    Hadamard (1893): Pokud pro prvky komplexní čtvercové maticeřádu n platí |aij | ≤ 1, pak

    |detA| ≤ nn/2.

    Hadamardova matice: čtvercová matice H s prvky ±1, kde každédva řádky se shodují přesně v polovině prvků

    pro H platí v Hadamardově větě rovnost

    není těžké dokázat: je-li H řádu n, pak n = 1, 2 nebo násobek4

    Hadamardova hypotéza: pro každý z těchto řádůHadamardova matice existuje

    hypotéza dokázána pro n < 668

    Tomáš Kaiser Samoopravné kódy

  • Hadamardovy matice

    Hadamard (1893): Pokud pro prvky komplexní čtvercové maticeřádu n platí |aij | ≤ 1, pak

    |detA| ≤ nn/2.

    Hadamardova matice: čtvercová matice H s prvky ±1, kde každédva řádky se shodují přesně v polovině prvků

    pro H platí v Hadamardově větě rovnost

    není těžké dokázat: je-li H řádu n, pak n = 1, 2 nebo násobek4

    Hadamardova hypotéza: pro každý z těchto řádůHadamardova matice existuje

    hypotéza dokázána pro n < 668

    Tomáš Kaiser Samoopravné kódy

  • Sylvesterova konstrukce

    Konstrukce Hadamardových matic řádu 2k :

    H1 =(+)

    H2 =(+ ++ −

    )

    H4 =

    + + + ++ − + −+ + − −+ − − +

    Hi+1 =(Hi HiHi −Hi

    )

    Tomáš Kaiser Samoopravné kódy

  • Hadamardův (32, 6)-kód

    Kód použitý pro Mariner 9:

    H32 = Hadamardova matice řádu 32 (získaná pomocíSylvesterovy konstrukce)

    pro každý řádek r provedeme záměnu

    + −→ 0− −→ 1

    ve vektorech r a −rdostaneme 64 slov délky 32, každé dvě se liší v ≥ 16souřadnicích

    výsledný kód opravuje 7 chyb, hustota 6/32 = 0, 188dostatečná

    Tomáš Kaiser Samoopravné kódy

  • Reed-Solomonovy kódy

    Nechť p je prvočíslo:

    počítáme modulo p s čísly z množiny Fp = {0, . . . , p − 1}výsledná algebraická struktura je těleso velikosti p

    pro polynom f (x) s koeficienty z Fp uvažme vektor

    [f ] = (f (1), f (2), . . . , f (p − 1))

    (evaluace polynomu f )

    Reed-Solomonův kód RS(p, k) je tvořen všemi slovy [f ], kde fprobíhá polynomy stupně < k

    Tomáš Kaiser Samoopravné kódy

  • Vlastnosti Reed-Solomonových kódů

    Kód RS(p, k):

    délka p − 1pk kódových slov

    minimální vzdálenost p − k

    Použití:

    přehrávače CD a DVD disků (jako součást komplikovanějšíhoschématu)

    čtečky čárových kódů

    dekodéry satelitního vysílání

    kosmické sondy (Voyager 2 — snímky Saturnu, Uranu aNeptuna)

    Tomáš Kaiser Samoopravné kódy

  • Vlastnosti Reed-Solomonových kódů

    Kód RS(p, k):

    délka p − 1pk kódových slov

    minimální vzdálenost p − k

    Použití:

    přehrávače CD a DVD disků (jako součást komplikovanějšíhoschématu)

    čtečky čárových kódů

    dekodéry satelitního vysílání

    kosmické sondy (Voyager 2 — snímky Saturnu, Uranu aNeptuna)

    Tomáš Kaiser Samoopravné kódy

  • Shannonova věta

    viděli jsme, že Hammingovy kódy mají sice hustotu rostoucí k1, ale pravděpodobnost správného dekódování (spolehlivost)klesá k 0

    je možné prodlužováním kódu zachovat hustotu a zvyšovatspolehlivost?

    Shannon (1948): Pro každé p < 1/2a κ < 1−H(p) existují kódy s husto-tou κ a spolehlivostí libovolně blízkoujedné.

    pro κ > 1− H(p) se naopakspolehlivost dlouhých kódů blížík 0

    důkazy nekonstruktivní,explicitní konstrukce obtížnýproblém

    Entropická funkce H(p).

    Tomáš Kaiser Samoopravné kódy

  • Shannonova věta

    viděli jsme, že Hammingovy kódy mají sice hustotu rostoucí k1, ale pravděpodobnost správného dekódování (spolehlivost)klesá k 0

    je možné prodlužováním kódu zachovat hustotu a zvyšovatspolehlivost?

    Shannon (1948): Pro každé p < 1/2a κ < 1−H(p) existují kódy s husto-tou κ a spolehlivostí libovolně blízkoujedné.

    pro κ > 1− H(p) se naopakspolehlivost dlouhých kódů blížík 0

    důkazy nekonstruktivní,explicitní konstrukce obtížnýproblém

    Entropická funkce H(p).

    Tomáš Kaiser Samoopravné kódy

  • Literatura

    W. Cary Huffman, V. Pless: Fundamentals of Error-CorrectingCodes, Cambridge University Press, 2003.

    J. H. van Lint: Introduction to Coding Theory, Springer, 1998.

    M. Malek: Coding Theory, poznámky k přednášce na adresehttp://www.mcs.csueastbay.edu/~malek/

    Class/Hadamard.pdf

    Wikipedia, heslaError detection and correctionForward error correctionHamming code

    Tomáš Kaiser Samoopravné kódy

  • Děkuji za pozornost.

    Tomáš Kaiser Samoopravné kódy