Codice Hamming: rilevamento e correzione degli errori con esempi
Cos'รจ un errore?
I dati trasmessi possono essere danneggiati durante la comunicazione. ร probabile che venga influenzato dal rumore esterno o da altri guasti fisici. In una situazione del genere, i dati di input non possono essere uguali ai dati di output. Questa mancata corrispondenza รจ nota come "Errore".
Gli errori nei dati possono comportare la perdita di dati importanti o protetti. La maggior parte del trasferimento di dati nei sistemi digitali avverrร sotto forma di "trasferimento bit". Anche un piccolo cambiamento puรฒ influenzare le prestazioni dellโintero sistema. In una sequenza di dati, se 1 viene modificato in 0 o 0 viene modificato in 1, si parla di "errore bit".
Tipi di errori
Esistono principalmente tre tipi di errori di bit che si verificano nella trasmissione dei dati dal mittente al destinatario.
- Errori a bit singolo
- Errori multipli su bit
- Errori scoppiati
Errori a bit singolo
La modifica apportata a un bit nell'intera sequenza di dati รจ nota come "errore di singolo bit". Tuttavia, il verificarsi di un errore di singolo bit non รจ cosรฌ comune. Inoltre, questo errore si verifica solo in un sistema di comunicazione parallelo perchรฉ i dati vengono trasferiti bit a bit in una singola riga. Pertanto, ci sono piรน possibilitร che una singola riga possa essere rumorosa.
Errori multipli su bit
Nella sequenza di dati, se si verifica una modifica in due o piรน bit di una sequenza di dati da un trasmettitore a un ricevitore, si parla di "errori multipli di bit".
Questo tipo di errore si verifica principalmente nelle reti di comunicazione dati sia di tipo seriale che parallelo.
Errori di scoppio
La modifica del set di bit nella sequenza dei dati รจ nota come โerrore burstโ. Questo tipo di errore di dati viene calcolato dalla modifica del primo bit all'ultima modifica del bit.
Cos'รจ il rilevamento e la correzione degli errori?
Nel sistema di comunicazione digitale l'errore verrร trasferito da un sistema di comunicazione all'altro. Se questi errori non vengono rilevati e corretti, i dati andranno persi. Per una comunicazione efficace, i dati di sistema dovrebbero essere trasferiti con elevata precisione. Ciรฒ verrร fatto identificando innanzitutto gli errori e correggendoli.
Il rilevamento degli errori รจ un metodo per rilevare gli errori presenti nei dati trasmessi da un trasmettitore a un ricevitore in un sistema di comunicazione dati.
Qui รจ possibile utilizzare i codici di ridondanza per trovare questi errori, aggiungendoli ai dati quando vengono trasmessi dalla sorgente. Questi codici sono chiamati โCodici di rilevamento erroriโ.
Tre tipi di codici di rilevamento errori sono:
- Controllo di paritร
- Cyclic Redundancy Check (CRC)
- Controllo di ridondanza longitudinale (LRC)
Controllo di paritร
- ร noto anche come controllo di paritร .
- Dispone di un meccanismo economicamente vantaggioso per il rilevamento degli errori.
- In questa tecnica, il bit ridondante รจ noto come bit di paritร . Viene aggiunto per ogni unitร di dati. Il numero totale di 1 nell'unitร dovrebbe diventare pari, fenomeno noto come bit di paritร .
Controllo di ridondanza longitudinale
In questa tecnica di rilevamento degli errori, un blocco di bit รจ organizzato in formato tabellare. Il metodo LRC ti aiuta a calcolare il bit di paritร per ogni colonna. Insieme ai dati originali viene inviato anche l'insieme di questa paritร . Il blocco di paritร aiuta a verificare la ridondanza.
Controllo di ridondanza ciclico
Il controllo di ridondanza ciclico รจ una sequenza ridondante che deve essere aggiunta alla fine dell'unitร . Ecco perchรฉ l'unitร di dati risultante dovrebbe diventare divisibile per un secondo numero binario predeterminato.
A destinazione, i dati in arrivo devono essere divisi per lo stesso numero. Nel caso in cui non ci sia resto, allora l'unitร dati si presume corretta e viene accettata. Altrimenti, indica che l'unitร dati รจ danneggiata durante la trasmissione e quindi deve essere rifiutata.
Cos'รจ un codice di Hamming?
Il codice Hamming รจ un codice di linea utile per il rilevamento di errori fino a due errori di bit immediati. ร capace di errori a bit singolo.
Nel codice Hamming, la sorgente codifica il messaggio aggiungendo bit ridondanti nel messaggio. Questi bit ridondanti vengono per lo piรน inseriti e generati in determinate posizioni nel messaggio per eseguire il processo di rilevamento e correzione degli errori.
Storia del codice di Hamming
- Il codice Hamming รจ una tecnica creata da RWHamming per rilevare errori.
- Il codice Hamming dovrebbe essere applicato a unitร di dati di qualsiasi lunghezza e utilizza la relazione tra dati e bit di ridondanza.
- Lavorรฒ sul problema del metodo di correzione degli errori e sviluppรฒ una serie sempre piรน potente di algoritmi chiamati codice Hamming.
- Nel 1950 pubblicรฒ il codice Hamming, oggi ampiamente utilizzato in applicazioni come la memoria ECC.
Applicazione del codice di Hamming
Ecco alcune applicazioni comuni dell'utilizzo del codice Hamming:
- satelliti
- Memoria del computer
- Modem
- PlasmaCAM
- Connettori aperti
- Filo schermante
- Processore incorporato
Vantaggi del codice di Hamming
- Il metodo del codice Hamming รจ efficace sulle reti in cui i flussi di dati vengono forniti per errori a bit singolo.
- Il codice Hamming non solo fornisce il rilevamento di un errore di bit, ma aiuta anche a rientrare il bit contenente l'errore in modo che possa essere corretto.
- La facilitร d'uso dei codici di hamming li rende particolarmente adatti all'uso nella memoria del computer e alla correzione di singoli errori.
Svantaggi del codice di Hamming
- Codice di rilevamento e correzione degli errori a bit singolo. Tuttavia, se viene rilevato un errore su piรน bit, il risultato potrebbe risultare in un altro bit che dovrebbe essere corretto per essere modificato. Ciรฒ puรฒ causare ulteriori errori nei dati.
- L'algoritmo del codice Hamming puรฒ risolvere solo problemi relativi a bit singoli.
Come codificare un messaggio nel codice Hamming
Il processo utilizzato dal mittente per codificare il messaggio comprende i tre passaggi seguenti:
- Calcolo del numero totale di bit ridondanti.
- Controllo della posizione dei bit ridondanti.
- Infine, calcolando i valori di questi bit ridondanti.
Quando i bit ridondanti di cui sopra sono incorporati nel messaggio, questo viene inviato all'utente.
Passo 1) Calcolo del numero totale di bit ridondanti.
Supponiamo che il messaggio contenga:
- nโ numero di bit di dati
- p โ numero di bit ridondanti che vengono aggiunti ad esso affinchรฉ np possa indicare almeno (n + p + 1) stati diversi.
Qui, (n + p) rappresenta la posizione di un errore in ciascuna delle (n + p) posizioni di bit e uno stato aggiuntivo non indica alcun errore. Poichรฉ i bit p possono indicare 2p stati, 2p deve essere almeno uguale a (n + p + 1).
Passo 2) Posizionamento dei bit ridondanti nella posizione corretta.
I bit ridondanti dovrebbero essere posizionati nelle posizioni di bit di potenze di 2. Ad esempio, 1, 2, 4, 8, 16, ecc. Sono indicati come p1 (nella posizione 1), pag2 (nella posizione 2), pag3 (nella posizione 4), ecc.
Passo 3) Calcolo dei valori del bit ridondante.
I bit ridondanti dovrebbero essere bit di paritร che rendono il numero di 1 pari o dispari.
I due tipi di paritร sono ?
- Il numero totale di bit nel messaggio viene reso pari e viene chiamato paritร pari.
- Il numero totale di bit nel messaggio reso dispari viene chiamato paritร dispari.
Qui, tutto il bit ridondante, p1, deve essere calcolato come paritร . Dovrebbe coprire tutte le posizioni di bit la cui rappresentazione binaria dovrebbe includere un 1 nella prima posizione esclusa la posizione di p1.
P1 รจ il bit di paritร per ogni bit di dati nelle posizioni la cui rappresentazione binaria include un 1 nella posizione meno importante escluso 1 Like (3, 5, 7, 9, โฆ.)
P2 รจ il bit di paritร per ogni bit di dati nelle posizioni la cui rappresentazione binaria include 1 nella posizione 2 da destra, esclusi 2 Like (3, 6, 7, 10, 11,โฆ)
P3 รจ il bit di paritร per ogni bit nelle posizioni la cui rappresentazione binaria include un 1 nella posizione 3 da destra, esclusi 4 Like (5-7, 12-15,โฆ)
Decifrare un messaggio in codice Hamming
Il destinatario riceve messaggi in arrivo che richiedono di eseguire ricalcoli per trovare e correggere gli errori.
Il processo di ricalcolo avviene nei seguenti passaggi:
- Conteggio del numero di bit ridondanti.
- Posizionamento corretto di tutti i bit ridondanti.
- Controllo di paritร
Passo 1) Conteggio del numero di bit ridondanti
ร possibile utilizzare la stessa formula per la codifica, il numero di bit ridondanti
2p ? n+p+1
Qui, il numero di bit di dati e p รจ il numero di bit ridondanti.
Passo 2) Posizionamento corretto di tutti i bit ridondanti
Qui, p รจ un bit ridondante che si trova nelle posizioni bit di potenze di 2, ad esempio 1, 2, 4, 8, ecc.
Passo 3) Controllo di paritร
I bit di paritร devono essere calcolati in base ai bit di dati e ai bit ridondanti.
p1 = paritร (1, 3, 5, 7, 9, 11โฆ)
p2 = paritร (2, 3, 6, 7, 10, 11โฆ )
p3 = paritร (4-7, 12-15, 20-23โฆ )
Sintesi
- I dati trasmessi possono essere danneggiati durante la comunicazione
- Tre tipi di errori bit sono 1) Errori bit singoli 2) Errori bit multipli 3) Errori bit burst
- La modifica apportata in un bit nell'intera sequenza di dati รจ nota come "errore a bit singolo".
- Nella sequenza di dati, se si verifica una modifica in due o piรน bit di una sequenza di dati da un trasmettitore a un ricevitore, si parla di "errori multipli di bit".
- La modifica del set di bit nella sequenza dei dati รจ nota come โerrore burstโ.
- Il rilevamento degli errori รจ un metodo per rilevare gli errori presenti nei dati trasmessi da un trasmettitore a un ricevitore in un sistema di comunicazione dati
- Tre tipi di codici di rilevamento degli errori sono 1) Controllo di paritร 2) Controllo di ridondanza ciclico (CRC) 3) Controllo di ridondanza longitudinale (LRC)
- Il codice Hamming รจ un codice di linea utile per il rilevamento di errori fino a due errori di bit immediati. ร capace di errori a bit singolo.
- Il codice Hamming รจ una tecnica creata da RWHamming per rilevare errori.
- Le applicazioni comuni dell'utilizzo del codice Hamming sono la memoria del computer satellitare, i modem, il processore incorporato, ecc.
- Il vantaggio piรน grande del metodo del codice di hamming รจ efficace sulle reti in cui i flussi di dati vengono forniti per errori a bit singolo.
- Il piรน grande svantaggio del metodo del codice hamming รจ che puรฒ risolvere solo problemi relativi a bit singoli.
- Possiamo eseguire il processo di crittografia e decodifica del messaggio con l'aiuto del codice hamming.

