kod haminga id 238025 Nieznany

background image

Kod Hamminga

Kod Hamminga jest binarnym kodem, który umożliwia odtworzenie danych po wystąpieniu błędu
transmisji. Zakodowana informacja składa się z n-bitowego kodu i k bitów parzystości. Bity
parzystości umieszczone są na pozycjach o numerach 2

i

, i=0,1,2,… i każdy z nich kontrolują określone

bity. Na kontrolowanych pozycjach występuje parzysta ilośd „1”. Oto pozycje kontrolowane przez
kolejne bity parzystości:

– bit 1 - 1, 3, 5, 7, 9, 11

– bit 2 – 2, 3, 6, 7, 10, 11

– bit 4 – 4, 5, 6, 7

– bit 8 – 8, 9, 10, 11

W ogólności bit n jest kontrolowany przez bity b

1

,b

2

,….b

k

, gdzie b

1

+b

2

+…+b

k

=n.

Np. bit 10 kontrolowany jest przez bity 2 i 8, bo 2+8=10, bit 6 przez bity 2 i 4 , bo 2+4=6, bit 7 przez
bity 1, 2, 4, bo 1+2+4=7.

Rozważmy kodowanie znaku ASCII zapisanego na 7 bitach. Na pozycjach 1, 2, 4, 8 znajdują się bity
kontrolne. Na pozostałych bitach zapisywany jest kod litery.

Przykład:

Litera:

b

Kod ASCII:

98

Kod ASCII binarnie:

1100010

1

2

3

4

5

6

7

8

9

10

11

0

0

1

1

1

0

0

1

0

1

0

Bit 1 - Na pozycjach 3,5,7,9,11 są dwie wartości „1”, jest to liczba parzysta, więc bit 1
przyjmuje wartośd „0”.

Bit 2 - Na pozycjach 3,6,7,10,11 są dwie wartości „1”, więc bit 2 przyjmuje wartośd „0”.

Bit 4 - Na pozycjach 5,6,7 jest jedna wartośd „1”, jest to liczba nieparzysta, więc bit 4
przyjmuje wartośd „1”.

Bit 8 - Na pozycjach 9,10,11 jest jedna wartośd „1”, jest to liczba nieparzysta, więc bit 8
przyjmuje wartośd „1”.

Kod Hamminga litery b to: 00111001010.
Jeśli w transmisji wystąpiłby błąd na jednej pozycji, to niektóre bity parzystości byłyby niepoprawne.
Suma pozycji niepoprawnych bitów parzystości wskazuje przekłamaną pozycję. Należy ją wówczas

1,3,5,7,9,11
1

4,5,6,7

8,9,10,11

2,3,6,7,10,11

background image

poprawid i kodowanie jest poprawne. Jeśli np. w transmisji litery b wystąpiłby błąd i otrzymalibyśmy

taki kod

: 0011100

0

010

, to niepoprawny byłby jedynie 8 bit parzystości. Należałoby zatem

zamienid „0” występujące na pozycji 8 na „1”, w wyniku czego uzyskujemy poprawny kod litery b –

0011100

1

010.

Jeśli po transmisji uzyskalibyśmy kod:

00111001000

to niepoprawne byłyby bity parzystości o

numerach 2 (bo na pozycjach 2,3,6,7,10,11 jest tylko jedna „1” – na pozycji 3) oraz 8 (bo na pozycjach
8,9,10,11 jest tylko jedna „1” – na pozycji 8), więc przekłamana pozycja to 2+8=10. Po zamianie bitu
o numerze 10 z „0” na „1” otrzymujemy poprawny kod.


Wyszukiwarka

Podobne podstrony:
kod greya id 238024 Nieznany
Kod ASCII id 238002 Nieznany
kod zawodow id 238073 Nieznany
kod greya id 238024 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany
Probiotyki antybiotyki id 66316 Nieznany
miedziowanie cz 2 id 113259 Nieznany
LTC1729 id 273494 Nieznany
D11B7AOver0400 id 130434 Nieznany
analiza ryzyka bio id 61320 Nieznany
pedagogika ogolna id 353595 Nieznany

więcej podobnych podstron