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