Hammingův kód
- stnicolaus
- Matfyz(ák|ačka) level II
- Příspěvky: 73
- Registrován: 22. 1. 2006 17:39
- Typ studia: Informatika Bc.
- Login do SIS: matal4am
- Bydliště: Plzeň
- Kontaktovat uživatele:
Hammingův kód
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)?
Obdržím například slovo 1010001. Jak nyní poznám zda původní slovo bylo 1010101 (1 chyba) nebo 1100001 (2 chyby)?
Hammingův kód
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.
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.
- stnicolaus
- Matfyz(ák|ačka) level II
- Příspěvky: 73
- Registrován: 22. 1. 2006 17:39
- Typ studia: Informatika Bc.
- Login do SIS: matal4am
- Bydliště: Plzeň
- Kontaktovat uživatele:
Re: Hammingův kód
Pokud mi vyjdou jedničky na všech řádcích, tak je chyba na pozici 7 (a7) ne?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.
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?
Re: Hammingův kód
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
Re: Hammingův kód
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íš poznatstnicolaus píše: Mě teď zajímá proč původní slovo nemohlo být 1100001 se vzniklými chybami na pozicích a5, a6?
Re: Hammingův kód
Tohle beru zpětAnonymous 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
-
- 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
tyyyyyvoe tak to je coool, jak jsem vubec bez neceho takovyho moh zit....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.
- stnicolaus
- Matfyz(ák|ačka) level II
- Příspěvky: 73
- Registrován: 22. 1. 2006 17:39
- Typ studia: Informatika Bc.
- Login do SIS: matal4am
- Bydliště: Plzeň
- Kontaktovat uživatele:
Re: Hammingův kód
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íkAnonymous píše: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íš poznatstnicolaus píše: Mě teď zajímá proč původní slovo nemohlo být 1100001 se vzniklými chybami na pozicích a5, a6?
Re: Hammingův kód
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 [/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.
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.