Hammingův kód

Uživatelský avatar
stnicolaus
Matfyz(ák|ačka) level II
Příspěvky: 73
Registrován: 22. 1. 2006 17:39
Typ studia: Informatika Bc.
Bydliště: Plzeň
Kontaktovat uživatele:

Hammingův kód

Příspěvek od stnicolaus »

Můžete mi někdo vysvětlit, jak u Hammingova kódu poznám, zda jsem obdržel zprávu s 1 nebo se 2 chybami? :?:

Obdržím například slovo 1010001. Jak nyní poznám zda původní slovo bylo 1010101 (1 chyba) nebo 1100001 (2 chyby)?
Návštěvník

Hammingův kód

Příspěvek od Návštěvník »

Napřed si zapiš 1..7 v binárním kódu:

1: 001 *
2: 010 *
3: 011
4: 100 *
5: 101
6: 110
7: 111

1,2 a 4 pozice budou paritní bity, který doplníš, aby počet jedniček byl sudý.

Sestavíš si matici (nad tělesem Z2) podle rovnic:
a1+a3+a5+a7=0
a2+a3+a6+a7=0
a4+a5+a6+a7=0

Do této matice doplníš jednotlivé bity na pozicích 1..7
a1 a3 a5 a7 e1
a2 a3 a6 a7 e2
a4 a5 a6 a7 e3

Ve kterym řádku ti vyjdou jedničky (za e1,...,e3), tak poznáš, na který pozici máš chybu a dokážeš ji opravit, například, pokud je chyba na 3. pozici, v 1 a 2 řádku ti vyjde 1 apod. Pokud ti vyjde 1 na všech třech řádcích, potom chybu detekuješ, ale nedokážeš ji opravit. :wink:
Uživatelský avatar
stnicolaus
Matfyz(ák|ačka) level II
Příspěvky: 73
Registrován: 22. 1. 2006 17:39
Typ studia: Informatika Bc.
Bydliště: Plzeň
Kontaktovat uživatele:

Re: Hammingův kód

Příspěvek od stnicolaus »

Anonymous píše:Ve kterym řádku ti vyjdou jedničky (za e1,...,e3), tak poznáš, na který pozici máš chybu a dokážeš ji opravit, například, pokud je chyba na 3. pozici, v 1 a 2 řádku ti vyjde 1 apod. Pokud ti vyjde 1 na všech třech řádcích, potom chybu detekuješ, ale nedokážeš ji opravit. :wink:
Pokud mi vyjdou jedničky na všech řádcích, tak je chyba na pozici 7 (a7) ne?



Uvaž například příklad, který jsem psal. Obdržím 1010001
Tedy: a1=1, a2=0, a3=0, a4=0, a5=1, a6=0, a7=1.
Z toho vychází: e1=1, e2=1, e3=0 => chyba je na pozici 3 - správný výsledek je 1010101.

Mě teď zajímá proč původní slovo nemohlo být 1100001 se vzniklými chybami na pozicích a5, a6? :?:
Návštěvník

Re: Hammingův kód

Příspěvek od Návštěvník »

No jistě, to jsem přehlídnul :) Tak chyby budou 2+, pokud ti to vyjde tak, že chyba nemůže bejt jen jedna, třeba za e 2 apod ;)
Návštěvník

Re: Hammingův kód

Příspěvek od Návštěvník »

stnicolaus píše: Mě teď zajímá proč původní slovo nemohlo být 1100001 se vzniklými chybami na pozicích a5, a6? :?:
Protože předpokládáš, že je pravděpodobnější, že vznikne jen jedna chyba, pokud jich vznikce víc, pak to vůbec nemusíš poznat ;)
Návštěvník

Re: Hammingův kód

Příspěvek od Návštěvník »

Anonymous píše:No jistě, to jsem přehlídnul :) Tak chyby budou 2+, pokud ti to vyjde tak, že chyba nemůže bejt jen jedna, třeba za e 2 apod ;)
Tohle beru zpět :)
krystof
Matfyz(ák|ačka) level III
Příspěvky: 186
Registrován: 18. 1. 2005 15:15
Typ studia: Informatika Mgr.
Bydliště: Brno / 17. Listopad
Kontaktovat uživatele:

Re: Hammingův kód

Příspěvek od krystof »

Anonymous píše:Napřed si zapiš 1..7 v binárním kódu:

1: 001 *
2: 010 *
3: 011
4: 100 *
5: 101
6: 110
7: 111

1,2 a 4 pozice budou paritní bity, který doplníš, aby počet jedniček byl sudý.

Sestavíš si matici (nad tělesem Z2) podle rovnic:
a1+a3+a5+a7=0
a2+a3+a6+a7=0
a4+a5+a6+a7=0

Do této matice doplníš jednotlivé bity na pozicích 1..7
a1 a3 a5 a7 e1
a2 a3 a6 a7 e2
a4 a5 a6 a7 e3

Ve kterym řádku ti vyjdou jedničky (za e1,...,e3), tak poznáš, na který pozici máš chybu a dokážeš ji opravit, například, pokud je chyba na 3. pozici, v 1 a 2 řádku ti vyjde 1 apod. Pokud ti vyjde 1 na všech třech řádcích, potom chybu detekuješ, ale nedokážeš ji opravit. :wink:
tyyyyyvoe tak to je coool, jak jsem vubec bez neceho takovyho moh zit....
Uživatelský avatar
stnicolaus
Matfyz(ák|ačka) level II
Příspěvky: 73
Registrován: 22. 1. 2006 17:39
Typ studia: Informatika Bc.
Bydliště: Plzeň
Kontaktovat uživatele:

Re: Hammingův kód

Příspěvek od stnicolaus »

Anonymous píše:
stnicolaus píše: Mě teď zajímá proč původní slovo nemohlo být 1100001 se vzniklými chybami na pozicích a5, a6? :?:
Protože předpokládáš, že je pravděpodobnější, že vznikne jen jedna chyba, pokud jich vznikce víc, pak to vůbec nemusíš poznat ;)
Aha, takže já si už před přijímáním řeknu, jestli při přenosu dojde max. k 1 chybě (pak ji hned opravím) nebo max. ke 2 chybám (pak neopravuji, ale poznám chybu). Dík :wink:
dlk

Re: Hammingův kód

Příspěvek od dlk »

Aha, takže já si už před přijímáním řeknu, jestli při přenosu dojde max. k 1 chybě (pak ji hned opravím) nebo max. ke 2 chybám (pak neopravuji, ale poznám chybu). Dík :wink:[/quote]

Hamminguv kod muze byt SEC(Single Error Correcting) nebo
SECDED(Single Error Correcting, Double Error Detecting). Ten druhy
ma jeden kontrolni bit navic, ktery se pouziva trochu odlisne nez paritni.
Odpovědět

Zpět na „2005“