Kódy pro detekci a opravu chyb

Transkript

Kódy pro detekci a opravu chyb
Kódy pro detekci a opravu chyb
INP 2008
FIT VUT v Brně
1
Princip kódování
Tady potřebujeme informaci
zabezpečit, utajit apod.
Zakódovaná data:
000 111 000
kodér
010
vstupní
data
Může dojít k poruše, např.:
001 110 000
dekodér
010
chceme
získat
původní
data
• Předpokládejme kódovací předpis např.:
0→000, 1→111
• Uvedené kódování může být použito buď pro přenos dat
mezi jednotkami nebo pro celý systém (například počítač).
• Zabezpečení informace je založeno na vhodném využití
2
redundance.
Základní kódy pro detekci a opravu chyb
•
•
•
•
Parita
Ztrojení
Hammingův kód (7,4)
Rozšířený Hammingův kód
3
Parita a Hammingova vzdálenost
Nejjednodušší kód detekují
detekující jednu chybu (SED) dostaneme doplněním paritního bitu, např. na
sudou paritu (nebo lichou – důvody, proč zvolit sudou, nebo lichou paritu jsou podmíněny
použitou obvodovou technologií).
0110 1010 0
1000 0000 1
1111 1111 0
...
Popsané uspořádání se nazývá paritní
paritní kód. Kombinace se zvolenou sudou, tedy správnou
paritou se označují jako kódové
dové, kombinace s chybnou (lichou) paritou jako nekó
nekódové
dové.
Kontrola správnosti dat se zjišťuje kontrolou parity. Hammingova vzdá
vzdálenost kó
kódových slož
složek
je definovaná jako nejmenší počet bitů, v nichž se dvojice kódových kombinací liší, zjištěný pro
všechny dvojice. U tohoto kódu je Hammingova vzdálenost rovna 2.
Příklad sudého paritního kódu:
x2 x1 x0 p
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
Minimální vzdálenost, zjištěná u
každé dvojice kódových slov je
Hammingova vzdálenost kódu dH.
U paritního kódu je to dH = 2.
4
Ztrojení (kód typu SEC - Single-Error Correction )
Ztrojením jednoho bitu dostaneme dvě kódové kombinace, a
to 000, 111, a 6 nekódových kombinací.
kódové
dové kombinace
000
111
nekó
nekódové
dové kombinace
001
010
011
100
101
110
Za předpokladu jediné
jediné chyby (jednobitové) je možno určit, ze které kódové
kombinace daná nekódová kombinace vznikla. Dostali jsme tak kód
opravují
opravující jednoduché chyby (Single-Error Correction - SEC). Jeho
Hammingova vzdálenost je 3.
5
Hammingova vzdálenost: demonstrace
Richard Wesley Hamming, +Jan. 6, 1998
Pro opravu l – násobné
sobné chyby musí
musí být Hammingova vzdá
vzdálenost
d ≥ 2l +1.
Obrázek: Kroužky nakreslené plnou čarou představují kódové kombinace, tečkované
kroužky znamenají nekódové kombinace. Mezi sousedními kroužky v jednom řádku je
Hammingova vzdálenost rovna jedné. Je zřejmé, že pro kód s Hammingovou
vzdáleností d = 2 nemůžeme rozhodnout, ze které kódové kombinace vzniklo vlivem
jednobitové chyby nekódové slovo, a nedokážeme tedy chybu opravit. Opravu
jednobitové chyby můžeme provést až u kódu se vzdáleností d = 3.
d=
1
SED
2
SEC
3
SEC - DED
4
DEC
5
6
Hammingův kód (n, k)
•
•
•
•
•
•
n – délka kódového slova (v bitech)
k – počet informačních bitů
m – počet kontrolních bitů
n = 2m – 1
n=m+k
Př. HK(7, 4), HK(15, 11), …
• Nejznámější SEC je HK(7, 4)
7
Hammingův kód (7,4)
Podle hodnoty zavedeného indexu i se rozhodne o funkci příslušného bitu:
je-li i mocnina dvojky, je bit kontrolní (C), v ostatních případech je bit
informační (I). Rozmístění symbolů x v generující matici je popsáno
generujícími rovnicemi. Je tak definován způsob doplňování hodnot
kontrolních bitů, tedy jistým způsobem vypočítávaných paritních bitů.
8
Hammingův kód (7,4)
Přičteme-li operací XOR k oběma stranám generujících rovnic pořadě C1,
C2, C4, dostaneme tzv. kontrolní
kontrolní rovnice
C1 ⊕ I3 ⊕ I5 ⊕ I7 = 0 = S1
C2 ⊕ I3 ⊕ I6 ⊕ I7 = 0 = S2
C4 ⊕ I5 ⊕ I6 ⊕ I7 = 0 = S4
Výpočtem kontrolních rovnic pro kódová (správná) slova dostaneme nuly.
Pro nekódová slova, která vzniknou jednobitovou chybou z kódových slov
vyjdou výpočtem kontrolních rovnic nenulové hodnoty S4, S2, S1, zvané
syndrom chyby.
chyby Syndrom jednoduché chyby udává binárně hodnotu
indexu i bitu s chybou. Chybu pak můžeme opravit změnou hodnoty takto
zjištěného bitu na hodnotu opačnou.
Pro dvojnásobnou chybu však mechanizmus selhává a syndrom chyby
udává nesprávnou polohu chyby. Je to způsobeno tím, že takto definovaný
kód je SEC, nikoli však DED. Proto je nutno doplnit definici kódu tak, aby
kód získal vlastnost DED, získáme rozšířený Hammingův kód.
9
Rozšířený Hammingův kód
Do kódu se doplní kontrolní bit C0 (normální paritní bit), popsaný
generující rovnicí
C0 = C1 ⊕ C2 ⊕ I3 ⊕ C4 ⊕ I5 ⊕ I6 ⊕ I7
a kontrolní rovnicí
S0 = C0 ⊕ C1 ⊕ C2 ⊕ I3 ⊕ C4 ⊕ I5 ⊕ I6 ⊕ I7
10
I7 I6 I5 C4 I3 C2 C1 C0
Příklad: Rozšířený
Hammingův kód
d= 4
na čtyřech
informačních bitech,
jsou přidány čtyři
kontrolní bity.
Linearita kódu:
součet modulo 2 dvou
kódových slov vytvoří
opět platné kódové
slovo.
X
X
X X
X X X X
X X X X
X
X X
X
X
X
X X
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
11
Rozšířený Hammingův kód - syndrom
Dále definujeme syndrom chyby
S = S1 + S2 + S4
Pomocí hodnot S, S0 dostaneme klasifikaci chyb:
Základní typ jednoduché chyby se projeví nenulovým syndromem a chybou
parity. V takovém případě se provede oprava.
Stejně se však projeví i trojnásobná chyba a další chyby s lichou násobností.
Dvojitá chyba (a další chyby se sudou násobností) se projeví nenulovým
syndromem a správnou paritou. Oprava není možná.
Zvláštním případem je hlášení s nulovým syndromem a chybnou paritou. Jde
buďto o případ vícenásobné chyby, nebo o poruchu hlídače parity. V obou
případech se oprava chyby nedá provést.
12
Generování a kontrola parity
x0
x1
x2
x3
x4
x5
x6
x7
x0
=1
=1
=1
=1
=1
=1
=1
x1
x2
x3
p
x4
x5
x6
x7
p
=1
=1
=1
=1
=1
=1
1 = error
0 = OK
=1
=1
p = x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7
zde je + operátor XOR
errror = x0 + x1 + x2 + x3 + x4 + x5 + x6 + x7 + p
13
Oprava chyb pomocí syndromu
Hammingova kódu
S1
S2
DC bin
na 1 z 8
S4
S0
S
&
Enable
Dekodér syndromu
0
1
2
3
4
5
6
7
C1‘
1
C2‘
2
I3‘
3
C4‘
4
I5‘
5
I6‘
6
I7‘
7
=1
C1
=1
C2
=1
I3
=1
C4
=1
I5
=1
I6
=1
I7
Korektor
14
Zobecněný Hammingův kód
Uvážíme-li obvodovou realizaci generujících a kontrolních rovnic,
zjistíme, že obvod podle nejdelší rovnice pro C0 resp. S0 má největší
zpoždění, tedy že zdržuje. Je tedy žádoucí optimalizovat rovnice tak,
aby všechny obvody měly shodné zpoždění. Soustavu rovnic lze
upravovat přičítáním rovnic jedné k druhé resp. náhradou jedné
rovnice lineární kombinací dalších rovnic. Dospějeme tak k definici
zobecně
zobecněného Hammingova kódu,
du který je definován generující
maticí stejných rozměrů jako rozšířený Hammingův kód, pro jehož
sloupce platí:
- všechny sloupce jsou nenulové
- žádné dva sloupce nejsou shodné
Je zřejmé, že jedinou nevýhodou, která z použití zobecněného
Hammingova kódu vyplývá je to, že syndrom chyby nedává index
chybného bitu přímo, ale až po překódování, které se realizuje
pomocí překódovací tabulky.
15
Redundance kódu a CNC
• Redundance kódu R je procentuální vyjádření počtu přidaných
(kontrolních) bitů C k původnímu počtu informačních (datových)
bitů I
R=C/I
• Redundance 8-bitového kódu s přidaným paritním bitem je
Rparity8 = 1/8 = 0,125 = 12,5%
• Redundance ztrojeného kódu je 200%.
• Dále se můžeme setkat s parametrem, označeným zkratkou
CNC – Code to Noncode ratio. Je to poměr počtu kódových a
nekódových slov, tedy kódových a nekódových binárních
kombinací z celkového množství binárních kombinací dané
délky.
• Pro paritní kód je poměr CNC 1:1, tedy 1, pro ztrojený kód je
poměr CNC 2:6, tedy 0,33.
• Otá
Otázka:
zka Jaká je hodnota redundance a CNC pro jednoduchý a
rozšířený Hammingův kód s délkou n informačních bitů?
16

Podobné dokumenty

report Králíky 2006

report Králíky 2006 Dělostřelecká pozorovatelna K-S 12b "Utržený" Třípatrová pozorovatelna se nachází na kótě Veselka, 718 m nad mořem, 2,5 km severovýchodně od města Králíky, nad vesnicí Červený Potok. Dělostřelecká...

Více

Statika-Otázky

Statika-Otázky průvodič, souřadnice a složky vektoru, směrové úhly a směrové kosiny, určení jednotkového vektoru pro směr zadaný dvěma body. Sčítání vektorů v rovině graficky, výpočet velikosti výslednice, plán s...

Více

Modulární optický telemetrický systém

Modulární optický telemetrický systém linearizaci pomocí programu REGRES znázorněte graficky. Stanovte maximální statickou chybu linearity přenosové trasy. Zesílení přijímače nastavte tak, aby vstupnímu napětí vysílače 4 Vss odpovídalo...

Více

Česká pravidla ke hře Scrabble Original

Česká pravidla ke hře Scrabble Original vyznačené bodové hodnoty, které můžete použít místo jakéhokoliv písmene. Jakmile tento kámen použijete, není možné jeho význam během hry měnit. PŘÍPRAVA Nasypte všechny hrací kameny do plátěného sá...

Více