Skip to main content

Cos'è un codice di martellare?

Un codice di martello è un metodo per rilevare e correggere errori in una trasmissione binaria.Lo fa attraverso l'inclusione di cifre binarie aggiuntive nella sequenza utilizzata per il controllo, nonché un algoritmo che fornisce la logica di rilevamento.Tale codice è in grado di trovare due errori in qualsiasi sequenza di bit e riparare un bit che potrebbe essere errata.Il codice Hamming più comunemente referenziato è noto come Hamming (7,4), in cui i quattro indicano il numero originale di bit iniziali e i sette rappresentano il numero totale di bit nella sequenza dopo che sono stati inclusi i bit di controllo aggiuntivi.

La tecnica ha preso il nome dal suo creatore, Richard Hamming, che ha pubblicato il metodo nel 1950. Il modo in cui il codice di Hamming funziona è prendendo una stringa di bit e inserendo ulteriori bit di controllo, indicati come bit di parità, nella sequenza.I bit di controllo vengono sempre iniettati in una posizione che è una potenza di due, quindi qualsiasi numero di bit può essere verificato includendo bit di parità aggiuntivi.Ciò può continuare fino a quando l'ultima parità bit aggiunta nella sequenza si trova in una posizione che è una potenza di due che è inferiore o uguale alla posizione finale nella sequenza.

con tutti i bit di parità in posizionesono i bit di dati effettivi.Dato l'esempio a quattro bit, quindi, le posizioni bit uno, due e quattro sarebbero i bit di parità, mentre le posizioni tre, cinque, sei e sette sono i dati.Una volta che questa sequenza è stata stabilita, la logica del codice di Hamming va al lavoro.

In un codice di Hamming, ciascuno dei bit di parità che sono stati aggiunti alla sequenza vengono utilizzati per controllare alcune delle posizioni bit a cui sono vicini,compresi se stessi.La parità bit in posizione si controlla ogni altra posizione di bit, che è essenzialmente ogni posizione di strano nella sequenza.La seconda parte di parità, in posizione due, controlla le posizioni due e tre, quindi salta due posizioni, controlla altre due posizioni, salta altre due e così via.Se c'è un bit di parità nella posizione quattro, agisce in modo simile in quanto controlla le posizioni da quattro a sette, quindi salta quattro posizioni, controlla altre quattro e in poi.Ogni bit di parità nella sequenza continua in questo modo per tutta la sequenza.

Il processo mediante il quale un codice di martello rileva e corregge un errore è sommare i bit nella sequenza di controllo per ciascun controllo di parità, ognuno dei quali deve essere uscitoun numero pari.Dato l'esempio a sette bit, per il primo controllo di parità, vengono aggiunti bit uno, tre, cinque e sette.Se il totale è un numero pari, la parità controlla, ma se il totale è dispari, allora c'è un errore.Poiché i controlli di parità si sovrappongono, verranno visualizzati due di questi errori.Quando le posizioni bit a due parity che non riescono a elaborare anche i totali vengono sommate, rivelerà il bit che deve essere corretto.

Nell'esempio del codice di martello a sette bit, considera che il bit nella posizione numero cinque non è corretto.La somma dei bit in posizioni uno, tre, cinque e sette uscirà come un numero dispari, così come la somma dei bit in posizioni da quattro a sette.Ciò indica che i controlli di parità per i bit di controllo nelle posizioni uno e quattro non sono riusciti.Quando uno e quattro vengono sommati insieme, il totale è cinque, che è la posizione per il bit errato nella trasmissione che deve essere corretta.