Hamming koder brukes til å sette feilretting informasjon i datastrømmer . Kodene er utformet slik at en feil ikke bare kan oppdages , men korrigert. Legge feilretting informasjon øker mengden av data , men øker påliteligheten til kommunikasjon over medier med høy feilprosent rates.Hamming koding kan være vanskelig å implementere, men kan gjøres svært raskt ved hjelp av bit -nivå aritmetiske triks. Dette gjør det en nyttig feilretting system for høy hastighet og innebygde programmer . Instruksjoner
en
Opprett dataord . Eventuelle bit med en posisjon som er en potens av to ( første , andre , fjerde , osv. ) bør reserveres for paritet informasjon. Bruk så lenge av et ord som du må passe kildedataene og paritet biter
Eksempel : .
1 1 0 1 0 0 1 0 blir __ 1 _ 1 0 1 _ 0 0 1 0
biter forbli i samme rekkefølge , men har blitt spredt ut til å passe paritetsbiter .
2
Beregn den første paritet bit . Fra og med den første biten , lese en bit, deretter hoppe over en bit og gjenta , mens telle antall enere oppstått . Paritetsbiter telle som nuller .
P Hvis antallet som er enda , satt den første biten til null . Ellers sette den til en
Eksempel : .
Bits 1 , 3, 5 , 7, 9 og 11 av __ 1 _ 1 0 1 _ 0 0 1 0 , _11101 , inneholder fire seg. Dette er enda , så den første bit er satt til null : 0 _ 1 _ 1 0 1 _ 0 0 1 0
3
Beregn de resterende paritetsbiter . Bit to leser to biter som starter på litt to, så hopper to og gjentar . Bit fire leser fire biter deretter hopper fire og begynner med litt fire. Fortsett med dette mønsteret til det ikke er paritetsbiter igjen å beregne
Eksempel : .
Bit 2 : 0 _ 1 _ 1 0 1 _ 0 0 1 0 sjekker _1 , 01 , 01, som inneholder tre enere, så bit 2 er satt til one.Bit 4 : 0 1 1 _ 1 0 1 _ 0 0 1 0 sjekker _101 , 0 , som inneholder to enere, så bit 4 er satt til zero.Bit 8 : 0 1 1 0 1 0 1 _ 0 0 1 0 sjekker _0010 , med bare ett ett , sette bit 8 til én .
den kodede ord er derfor 011010110010 .
4
Bekreft ord . Hvis et ord er ødelagt, vil de paritetsbiter ikke samsvarer med hva som er forventet. For å bekrefte at et ord som ikke er skadet , er det bare beregne paritetsbiter med trinn to og tre . Hvis noen biter ikke stemmer overens, spille inn sine posisjoner.
5
Korriger dårlig bit . Hvis du finner feil paritetsbiter , bare oppsummere posisjonene til de biter . Summen er posisjonen til den feilaktige bit . Vend verdien av litt i den posisjonen.
For eksempel , hvis paritetsbiter en og fire er feil , vil bla verdien av den femte bit rette opp feilen.