Hamingov kod (7,4)

S Vikipedije, slobodne enciklopedije
Hamingov(7,4)-kod
Imenovan poRičardu Hamingu
Parameteri
Dužina bloka7
Dužina poruke4
Stopa4/7 ~ 0.571
Rastojanje3
Veličina alfabeta2
Notacija[7,4,3]2-code
Svojstva
savršeni kod
Grafički prikaz 4-bita podataka d1 do d4, i 3 bita parnosti p1 do p3, i koji bit parnosti koristi koju magistralu podataka

U teoriji kodiranja Hamingov kod (7,4) je linearni kod za korekciju greške koji kodira 4 bita podataka u 7 bitova tako što dodaje 3 bita parnosti. Hamingov kod (7,4) je deo veće porodice Hamingovih kodova, ali termin Hamingov kod se obično odnosi na ovaj specifični kod koji je 1950. godine uveo Ričard Haming. Svojevremeno, Haming je radio u Bell Labs-u i bio je frustriran greškama čitača za bušene kartice, zbog toga je počeo da radi na kodovima za ispravljanje grešaka.[1]

Hamingov kod dodaje 3 dodatna bita provere svakom četvrtom bitu podatka u poruci. Hamingov (7,4) algoritam može da ispravi svaku jedno-bitnu grešku, ili da detektuje sve jednobitne i dvobitne greške. Drugim rečima, minimalno Hamingovo rastojanje između bilo dve kodirane reči je 3, i primljene reči mogu biti ispravno dekodirane ako su na rastojanju od najviše jedane kodne reči koja je prosleđena od pošiljaoca. To znači da za prenos srednjeg slučaja gde se engl. burst greške ne izvršavaju, Hamingov kod (7,4) je efikasan.

Cilj[uredi | uredi izvor]

Cilj Hamingovog koda je da kreira skup parnosti bita koji se preklapaju tako da jedno-bitna greška (vrednost bita je logički je flipovana) u bitu podatka ili parnosti bita može biti detektovana i ispravljena. Dok može da se kreira više preklapanja, opšti metod je predstavljen u Hamingovim kodovima.

Bit# 1 2 3 4 5 6 7
Prenosivi bit
Da Ne Da Ne Da Ne Da
Ne Da Da Ne Ne Da Da
Ne Ne Ne Da Da Da Da

Ova tabela opisuje koji bit parnosti pokriva koje prenosne bitove u kodiranoj reči. Na primer, p2 obezbeđuje parnu parnost za bitove 2, 3, 6, & 7. Ona takođe, čitajući kolone, detaljno opisuje koji bit prenosi koji bit parnosti Na primer, d1 je pokriveno sa p1 i p2 ali ne sa p3. Ova tabela će upadljivo ličiti na matricu provere parnosti (H) u sedećoj sekciji.

Štaviše, ako su kolone parnosti u gornjoj tabeli uklonjene

Da Da Ne Da
Da Ne Da Da
Ne Da Da Da

zatim sličnost sa redovima 1, 2, & 4 generatora koda matrice (G) ispod, takođe će biti očigledna.

Dakle, pravilno birajući pokrivenost bita parnosti, sve greške sa Hamingovim rastojanjem od 1, mogu da se otkriju i isprave, što je i poenta korišćenja Hamingovog koda.

Hamingove matrice[uredi | uredi izvor]

Hamingovi kodovi se mogu računati u terminima linearne algebre matrice, zato što su Hamingovi kodovi linearni kodovi. Za svrhe Hamingovih kodova, dve Hamingove matrice se mogu definisati: kod generatora matrice G i matrica provere parnosti H:

Bit pozicija podatka i bit parnosti

Kao što smo u delu iznad As mentioned above, rows 1, 2, & 4 of G should look familiar as they map the data bits to their parity bits:

Sve kodne reči[uredi | uredi izvor]

Pošto je izvor samo 4 bita onda postoji samo 16 mogućih prenosivih reči. Uključena je 8-bitna vrednost ukoliko se koristi dodatni bit parnosti (Bitovi podataka su prikazani u plavoj boji, parnost bita je prikazana u crvenoj boji, i ekstra parnost bita je prikazana u zelenoj boji.)

Podaci
Haming(7,4) Haming(7,4) sa ekstra bitom parnosti (Haming(8,4))
Preneseno
Dijagram Preneseno
Dijagram
0000 0000000 Hamingov kod za 0000 postaje 0000000 00000000 Hamingov kod za 0000 postaje 0000000 sa ekstra bitom parnosti 0
1000 1110000 Hamingov kod za 1000 postaje1000011 11100001 Hamingov kod za 1000 postaje 1000011 sa ekstra bitom parnosti 1
0100 1001100 Hamingov kod za 0100 postaje 0100101 10011001 Hamingov kod za 0100 postaje 0100101 sa ekstra bitom parnosti 1
1100 0111100 Hamingov kod za 1100 postaje 1100110 01111000 Hamingov kod za 1100 postaje 1100110 sa ekstra bitom parnosti 0
0010 0101010 Hamingov kod za 0010 postaje 0010110 01010101 Hamingov kod za 0010 postaje 0010110 sa ekstra bitom parnosti 1
1010 1011010 Hamingov kod za 1010 postaje 1010101 10110100 Hamingov kod za 1010 postaje 1010101 sa ekstra bitom parnosti 0
0110 1100110 Hamingov kod za 0110 postaje 0110011 11001100 Hamingov kod za 0110 postaje 0110011 sa ekstra bitom parnosti 0
1110 0010110 Hamingov kod za 1110 postaje 1110000 00101101 Hamingov kod za 1110 postaje 1110000 sa eksta bitom parnosti 1
0001 1101001 Hamingov kod za 0001 postaje 0001111 11010010 Hamingov kod za 0001 postaje 0001111 sa ekstra bitom parnosti 0
1001 0011001 Hamingov kod za 1001 postaje 1001100 00110011 Hamingov kod za 1001 postaje 1001100 sa ekstra bitom parnosti 1
0101 0100101 Hamingov kod za 0101 postaje 0101010 01001011 Hamingov kod za 0101 postaje 0101010 sa ekstra bitom parnosti 1
1101 1010101 Hamingov kod za 1101 postaje 1101001 10101010 Hamingov kod za 1101 postaje 1101001 sa ekstra bitom parnosti 0
0011 1000011 Hamingov kod za 0011 postaje 0011001 10000111 Hamingov kod za 0011 postaje 0011001 sa ekstra bitom parnosti 1
1011 0110011 Hamingov kod za 1011 postaje 1011010 01100110 Hamingov kod za 1011 postaje 1011010 sa ekstra bitom parnosti 0
0111 0001111 Hamingov kod za 0111 postaje 0111100 00011110 Hamingov kod za 0111 postaje 0111100 sa ekstra bitom parnosti 0
1111 1111111 Hamingov kod za 1111 postaje 1111111 11111111 Hamingov kod za 1111 postaje 1111111 sa jednim ekstra bitom parnosti

Reference[uredi | uredi izvor]

  1. ^ „History of Hamming Codes”. Arhivirano iz originala 25. 10. 2007. g. Pristupljeno 3. 4. 2008. 

Spoljašnje veze[uredi | uredi izvor]