You are on page 1of 3

1. 𝑎) Neka je data poruka 1011001101011110.

Zaštite ovu poruku 𝐿𝑅𝐶/𝑉𝑅𝐶 kodom,


pri čemu se koristi blokovi dužine 𝑘 = 4. Zatim u poruci izmjenite jedan bit po volji,
i pokazite kako se moze detektovti pogrešan bit i eventualno korigirati.
b) Objasnite kodiranje Hammingovim kodom i detekciju i korekciju jednostavne
greške na primjeru poruke 1101.
c) Neka je data poruka 11011100. Zaštite ovu poruku dodavanjem redudantnih bita
po 𝐶𝑅𝐶 postupku sa generatorkim polinomom 𝑥 4 ⊕ 𝑥 3 ⊕ 1 . Zatim pokazati kako se
na mjestu prijema može eventualno prisustvo greške.

Riješenje:
𝑛
a) Imamo 𝑛 = 16 (broj bitova). Podijelimo ove bite u podgrupa. Na svakoj od ovih
𝑘
𝑛
grupa sa desna dodajemo bit parnosti (𝐿𝑅𝐶 postupak). Dalje, gledajući ove grupe
𝑘
kao 𝑘 kolona, na kraju dodajemo k-bitni broj koji je 𝑋𝑂𝑅 datih kolona. Nočno na
𝑛
tom broju dodajemo bit parnosti (𝑋𝑂𝑅). Ukupno imamo + 𝑘 + 1 redudantnih bita.
𝑘
1011|1
0011|0
0101|0
1110|1
0011|0
Dakle kodirana riječ je 1011100110010101110100110.
Izmjenimo npr drugi bit naše poruke, tj. 1111001101011110. Sada imamo da je:
1𝟏11|𝟎
0011|0
0101|0
1110|1
0𝟏11|0

Dakle greška je na drugom biti pa je korigovana poruka:


1011100110010101110100110
Ovo radi u slučaju kada je nastupila samo jedna promjena bita.
Ali je npr. nemoguće detektovati grešku na četri bita, kao u sljedećem primjeru:
1𝟏𝟎1|1
0011|0
0𝟎𝟏1|0
1110|1
0111|0
b) Imamo da je 𝑛 = 4 = 2𝑘 − 𝑘 − 1, tj. 𝑘 = 3 pa na poruku dodajemo 3 redudatna bita.
Dakle kodirana riječ će biti oblika 𝑏1 𝑏2 𝑏3 𝑏4 𝑏5 𝑏6 𝑏7 . Da bi našli 𝑏5 𝑏6 𝑏7 potrebno je
riješiti sistem od 𝑘 jednačina na sljedeći način.
Prva jednačina generišemo na sljedeći način. Posmatramo sve 3-bitne brojevi koji na 1
poziciji imaju broj 1. To su brojevi 100,101,110,111 a to su brojevi 4,5,6,7.
Dakle jednačina glasi: (𝑋𝑂𝑅 𝑏-ova sa ovim indexima je 0).
𝒃𝟒 ⊕ 𝒃𝟓 ⊕ 𝒃𝟔 ⊕ 𝒃𝟕 = 𝟎
Drugu jednačinu pravimo tako da posmatramo sve k-bitne brojeve koji na 2 bitu imaju
broj 1. To su brojevi 010,011,110,111 tj brojevi 2,3,6,7. Dakle jednačina je:
𝒃𝟐 ⊕ 𝒃𝟑 ⊕ 𝒃𝟔 ⊕ 𝒃𝟕 = 𝟎
Treća jednačina je:
𝒃𝟏 ⊕ 𝒃𝟑 ⊕ 𝒃𝟓 ⊕ 𝒃𝟕 = 𝟎
Još nam je ostalo da nađemo 𝑏5 𝑏6 𝑏7 . 𝑋𝑂𝑅-ujući prve dvije jednačine i koristeći činjenicu
da je 𝑥 ⊕ 𝑥 = 0 i ako je 𝑥 ⊕ 𝑦 = 0 tada je 𝑥 = 𝑦 dobijamo:
𝑏4 ⊕ 𝑏5 ⊕ 𝑏6 ⊕ 𝑏7 ⊕ 𝑏2 ⊕ 𝑏3 ⊕ 𝑏6 ⊕ 𝑏7 = 0
tj.
𝑏2 ⊕ 𝑏3 ⊕ 𝑏4 ⊕ 𝑏5 = 0
Pa je: 𝑏5 = 𝑏2 ⊕ 𝑏3 ⊕ 𝑏4 = 1 ⊕ 0 ⊕ 1 = 0
Uvrštavajući 𝑏5 = 𝑏2 ⊕ 𝑏3 ⊕ 𝑏4 u treću jednačinu dobijamo:
𝑏1 ⊕ 𝑏3 ⊕ 𝑏2 ⊕ 𝑏3 ⊕ 𝑏4 ⊕ 𝑏7 = 0
𝑏1 ⊕ 𝑏2 ⊕ 𝑏4 ⊕ 𝑏7 = 0
tj. 𝑏7 = 𝑏1 ⊕ 𝑏2 ⊕ 𝑏4 = 1 ⊕ 1 ⊕ 1 = 1
Analogno se dobije: 𝑏6 = 𝑏1 ⊕ 𝑏3 ⊕ 𝑏4 = 1 ⊕ 0 ⊕ 1 = 0, odavde je 𝑏5 𝑏6 𝑏7 = 001
Dakle kodna riječ je 1101001.
Neka smo napravili grešku samo na jednom bitu, npr na drugom: 1001001.
Posmatramo sada:
𝑠1 = 𝑏4 ⊕ 𝑏5 ⊕ 𝑏6 ⊕ 𝑏7 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0
𝑠2 = 𝑏2 ⊕ 𝑏3 ⊕ 𝑏6 ⊕ 𝑏7 = 0 ⊕ 0 ⊕ 0 ⊕ 1 = 1
𝑠3 = 𝑏1 ⊕ 𝑏3 ⊕ 𝑏5 ⊕ 𝑏7 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0

Dakle greška je na 010 tj. na 2. bitu.


c) Posmatrajuć poruku kao polinom imamo:
11011100 = 1 · 𝑥 7 ⊕ 1 · 𝑥 6 ⊕ 0 · 𝑥 5 ⊕ 1 · 𝑥 4 ⊕ 1 · 𝑥 3 ⊕ 1 · 𝑥 2 ⊕ 0 · 𝑥 ⊕ 0 · 1
tj.
11011100 = 𝑥 7 ⊕ 𝑥 6 ⊕ 𝑥 4 ⊕ 𝑥 3 ⊕ 𝑥 2 ⊕ 1
Množeći ovaj polinom sa vodećim generatorkim polinomom (tj. 𝑥 4 ) dobijamo:
𝑥 11 ⊕ 𝑥 10 ⊕ 𝑥 8 ⊕ 𝑥 7 ⊕ 𝑥 6 ⊕ 𝑥 4
Dijeljenjem ovog polinoma sa 𝑥 4 ⊕ 𝑥 3 ⊕ 1 dobijamo 𝑥 7 ⊕ 𝑥 4 ⊕ 𝑥 3 sa ostatkom 𝑥 3 .
Budući da je 𝑥 3 = 1𝑥 3 ⊕ 0 · 𝑥 2 ⊕ 0 · 𝑥 ⊕ 0 · 1 = 1000
Dakle, naša kodna riječ je:
110111001000

Odredimo sada, kako ćemo znati da li je došlo do greške prenosa bitova.


Posmatrajmo polinom 𝑥 11 ⊕ 𝑥 10 ⊕ 𝑥 8 ⊕ 𝑥 7 ⊕ 𝑥 6 ⊕ 𝑥 4 od maloprije.
Na njega dodajemo polinom ostatka, tj. 𝑥 3 pa dobijamo polinom:
𝑥 11 ⊕ 𝑥 10 ⊕ 𝑥 8 ⊕ 𝑥 7 ⊕ 𝑥 6 ⊕ 𝑥 4 ⊕ 𝑥 3
Ako je ovaj polinom dijeljiv sa generisanim polinomom nije došlo do greške.
Mi u ovom slučaju naše n nismo mijenjali, pa bi trebalo da nema greške.
Provjerimo to:
𝑥 11 ⊕ 𝑥 10 ⊕ 𝑥 8 ⊕ 𝑥 7 ⊕ 𝑥 6 ⊕ 𝑥 4 ⊕ 𝑥 3 : 𝑥 4 ⊕ 𝑥 3 ⊕ 1 = 𝑥 7 ⊕ 𝑥 4 ⊕ 𝑥 3
𝑥 11 ⊕ 𝑥 10 ⊕ ⊕ 𝑥7
𝑥8 ⊕ 𝑥6 ⊕ 𝑥4
𝑥8 ⊕ 𝑥7 ⊕ ⊕ 𝑥4
𝑥7 ⊕ 𝑥6 ⊕ 𝑥4
𝑥7 ⊕ 𝑥6 ⊕ 𝑥4
0
Dakle nema greške.

You might also like