Professional Documents
Culture Documents
Tik Predavanje 7 Rev1
Tik Predavanje 7 Rev1
Hemingov kod (7, 4) je prikazan jo 1948g. u enonovom pionirskom radu. U tom radu
se opisuje ne samo pomenuti kod, ve itava klasa kodova ovog tipa i uvodi niz pojmova
koji se i danas koriste (Hemingovo rastojanje, ekvivalentnost kodova, sistematski
kodovi).
Heming je prikazao familiju kodova za otkrivanje (detekciju) i ispravljanje (korekciju)
jedne greke kod kojih sindrom, dobijen kao rezultat provjera na parnost izvrenih na
prijemu, u binarnoj notaciji pokazuje poziciju pogrenog bita, ako je dolo do jedne
greke.
U medicini sindrom predstavlja skup simptoma karakteristinih za neko oboljenje, dok je
ovdje to rezultat provjera na parnost izvrenih na prijemu koje pokazuju da li je dolo do
jedne greke i gdje je greka.
Heming najprije odreuje broj razliitih vrijednosti sindroma i zakljuuje da broj provjera
(n k) treba da zadovoljava nejednakost:
2 n k n + 1
jer postoji n pozicija u kodnoj rijei gdje bi se mogla desiti greka, kao i sluaj kada do
greke nije dolo.
Kontrolni biti mogli bi se na predaji dodati iza informacionih, na kraju kodne rijei. Poto
je Heming poao od ideje da binarno proitana vrijednost sindroma treba da pokazuje
poziciju pogrenog bita, kontrolni biti se ne stavljaju na poslednje mjesto, ve na mjesta
prema sledeem rasporedu:
c1 - prvi kontrolni bit treba postaviti na poziciju koja je definisana sa 20 = 1
c2 - drugi kontrolni bit treba postaviti na poziciju 21 = 2
c3 - trei kontrolni bit treba postaviti na poziciju 22 = 4, itd.
Ovi kontrolni biti vre provjere na parnost informacionih bita. Tako da c1 vri provjeru
parnosti onih informacionih bita ije pozicije kada se podijele sa 2 imaju ostatak 1. To e
biti sve neparne pozicije (3, 5, 7, ...).
Drugi kontrolni bit c2 vri provjere na parnost onih informacionih bita koji se nalaze na
pozicijama koje pri dijeljenju sa 22 = 4 imaju ostatak 2 i 3. Te pozicije su (3, 6, 7, 10, 11,
14, 15...).
Trei kontrolni bit c3 vri provjeru na parnost onih informacionih bita koji se nalaze na
pozicijama koje pri dijeljenju sa 23 = 8 imaju ostatak 4, 5, 6, 7. Te pozicije su (5, 6, 7, 12,
13, 14, 15...).
Primjer:
Hemingovim kodom (7, 4) kodovati sekvencu 1101.
Poto je n = 7, k = 4, (n k) = 3 imamo tri kontrolna bita i broj potrebnih provjera na
parnost mora zadovoljiti nejednakost:
2 n k n + 1
23 7 + 1 (tano)
1 2 3 4 5 6 7
c1 c2 i1 c3 i2 i3 i4
tj.
pozicija
1 2 3 4 5 6 7
c1 c2 1 c3 1 0 1
1 2 3 4 5 6 7
1 0 1 0 1 0 1
X1 X2 X3 X4 X5 X6 X7
Neka se pri prenosu dogodila greka na estoj poziciji, tj. neka je vektor greke:
e = [0 0 0 0 0 1 0]17 (1n)
Tj. ako se desi pri prenosu jedna greka, vektor greke, dimenzija 1 n , na svim
pozicijama ima 0 sem na poziciji na kojoj se dogodila greka.
Ako se kontrolni biti (a njih ima (n - k)) stavljaju na poslednje mjesto generiua matrica
ima oblik:
G = [I k
P ]k n
Primjer:
Kod sa jedonstrukim paritetom (tj. gdje smo imali samo jedan kontrolni bit postavljen na
kraju sekvence) c1 = i1 i2 ... ik
1 0 0 ... 0 1
0 1 0 ... 0 1
.
.
.
.
.
.
0 0 0 ... 1 1 kn
P = .
.
1
k 1
Primjer:
Repetitivni kod sa ponavljanjem tri bita, k = 1, n = 3
C = [i1
i1
Primjer:
Pravougaoni kod (9, 4)
n = 9, k = 4, (n - k) = 5 pet kontrolnih bita, pet provjera na parnost
C 1 9 = i1 4 G 4 9
[i1
i2
i3
i1 i2 c1
i3 i4 c2
c3 c4 c5
i4
c1
c2
c3
c4
c5 ] = [i1
i2
i3
i4 ] [I 44
c1 - provjerava parnost i1 i i2
c2 - provjerava parnost i3 i i4
c3 - provjerava parnost i1 i i3
c4 - provjerava parnost i2 i i4
c5 - provjerava parnost i1, i2, i3 i i4
P45 ]
pa je paritetna matrica:
1
1
P=
0
0
0
1
1
0
1
0 1
1 1
0 1
1 1 45
a generiua:
1
0
G=
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0 1
1 1
0 1
1 1 49
Primjer:
Hemingov kod (7, 4)
C 1 7 = i1 4 G 4 7
[c1
c2
i1
c3
i2
i3
i4 ]17 = [i1 i2
i3
i4 ]14 G47
Ako kontrolne bite c1, c2, c3 stavljamo na kraju onda se generiua matrica konstruie kao
i u prethodnim sluajevima.
Meutim, ako kontrolne bite postavljamo prema binarnom rasporedu onda kolone
paritetne matrice moramo postaviti na pozicije kontrolnih bita, tj:
1
1
G=
0
1
c1
1 1 0 0 0 0
0 0 1 1 0 0
1 0 1 0 1 0
1 0 1 0 0 1 47
c2 i1 c3 i2 i3 i4
c1 = i1 i2 i4
c2 = i1 i3 i4
c3 = i2 i3 i4
S = C HT
gdje je H kontrolna matrica datog koda koja se dobija kao (u sluaju da su kontrolni biti
postavljeni na posljednjem mjestu u kodnoj rijei):
H = PT
Im
( n k ) n
S = Y H T = ( X + e) H T = 1
X2
H3T + e H T
=0
S = eHT
Slijedi da sindrom ne zavisi od predate kodne rijei ve samo od greke.
Da bi se odredio vektor greke potrebno je rijeiti ovu jednainu. Ovo se rjeava tako to
se provjerava koji se bit promjenio.
Primjer:
Sekvencu 1101 kodovati Hemingovim kodom (7, 4) i provjeriti kodnu rije na prijemu.
1
1
G=
0
1
c1
n=7
1 1 0 0 0 0
0 0 1 1 0 0
k=4
1 0 1 0 1 0
1 0 1 0 0 1 47 (n - k) = 3 kontrolna bita
c2 i1 c3 i2 i3 i4
1
1
P=
0
1
1
C = i G = [1 1 0 1]
0
1
0
1
1
0
1
1
1 43(tj .k ( nk ))
1 1 0 0 0 0
0 0 1 1 0 0
= [1 0 1 0 1 0 1]17
1 0 1 0 1 0
1 0 1 0 0 1 47
Provjera na prijemu:
S = C HT
Transponovana paritetna matrica je:
1 1 0 1
P = 1 0 1 1
0 1 1 1 34
i1 i2 i3 i4
T
Poto se kod Hemingovog koda kontrolni biti postavljaju prema binarnom rasporedu,
kontrolna matrica je:
1
H = 0
0
c1
S = C H T = [1
0 1
0
1
0
c2
1
1
0
i1
0
0
1
c3
1
0
1
i2
0
1
1
i3
0 1]17
1
1
1 37 (( nk )n )
i4
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1 = [0
1
1
1 73
0 ]13
Y = C + e = [1 0 1 0 1 0 1] + [0 0 0 0 1 0 0] = [1 0 1 0 0 0 1]
imaemo da je Y H T = S
[1
1]1 7
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
= [1
1
1
1
1 7 3
1]1 3