Che cos'è il codice Hamming: storia, funzionamento e applicazioni

Prova Il Nostro Strumento Per Eliminare I Problemi





Nei sistemi digitali, i dati trasmessi per comunicazione può essere danneggiato a causa del rumore esterno e di qualsiasi altro guasto fisico. Se i dati trasmessi non corrispondono ai dati di input forniti, viene chiamato 'errore'. Gli errori di dati possono cancellare dati vitali nei sistemi digitali. Il trasferimento dei dati avverrà sotto forma di bit (0 e 1) nei sistemi digitali. Se qualcuno del bit viene modificato, le prestazioni dell'intero sistema possono essere influenzate. Se il bit '1' viene modificato nel bit '0' o viceversa, viene chiamato errore di bit. Ce ne sono di diversi tipi di errori come errori di bit singolo, errori multipli ed errori burst. In questo articolo, discutiamo della correzione e del rilevamento degli errori e del codice hamming.

Che cos'è il rilevamento e la correzione degli errori?

Nella comunicazione digitale, i dati andranno persi se si verifica un errore nel trasferimento delle informazioni da un sistema / rete a un altro sistema / rete. Quindi, è importante trovare e correggere gli errori. Qualche errore rilevamento e metodi di correzione vengono utilizzati per rilevare e correggere gli errori per una comunicazione efficace. Se vengono utilizzati questi metodi, i dati possono essere trasferiti con maggiore precisione.




Il rilevamento degli errori è definito come il metodo utilizzato per rilevare gli errori trasmessi dal trasmettitore / mittente al ricevitore nei sistemi digitali. I codici di ridondanza vengono aggiunti ai dati durante la trasmissione per trovare gli errori. Questi sono chiamati codici di rilevamento degli errori.

La correzione degli errori è la correzione dei dati trasmessi dal trasmettitore al ricevitore. La correzione degli errori può essere eseguita in due tipi.



Correzione dell'errore all'indietro

In questo tipo di correzione degli errori, il destinatario richiede al mittente di ritrasmettere i dati se il destinatario rileva l'errore.

Forward Error Correction

se i dati ricevuti dal ricevitore trovano l'errore, allora esegue i codici di correzione dell'errore, per correggere e recuperare i dati automaticamente.


Se è presente il numero 'm' di bit di dati e il numero 'r' di bit ridondanti, le combinazioni di informazioni saranno 2r.

2r> = m + r + 1

Tipi di codici di rilevamento degli errori

Gli errori nei dati ricevuti possono essere rilevati utilizzando 3 tipi di codici di rilevamento degli errori. Sono, controllo di parità, controllo di ridondanza ciclico (CRC) e controllo di ridondanza longitudinale.

Controllo di parità

Il bit ridondante chiamato bit di parità viene aggiunto per rendere il numero di bit pari o dispari in caso di parità pari o dispari. Il ricevitore conta il numero di bit (1) in un frame per aggiungere il bit di parità. Questo è chiamato controllo di parità. Se il numero di 1 in un frame è pari, viene utilizzata la parità pari aggiungendo il bit '1' con valore zero. Allo stesso modo, il numero di 1 è dispari, quindi la parità dispari viene utilizzata aggiungendo il bit con valore '1'.

Rilevamento degli errori

rilevamento degli errori

Quindi, viene utilizzato per garantire che il frame / data ricevuto dal ricevitore dalla sorgente non sia danneggiato. In questo tipo di rilevamento degli errori, il numero di 1 dovrebbe essere pari nel frame ricevuto. È molto meno costoso tra tutti i tipi di rilevamento degli errori.

Controllo di ridondanza longitudinale (LRC)

Una volta organizzato l'insieme / blocco di bit, è possibile utilizzare il metodo LRC per controllare il bit di parità in ogni frame. Aiuta a inviare il set di bit di parità insieme ai dati originali e controlla la ridondanza.

Controllo di ridondanza ciclico

il suo tipo viene utilizzato per rilevare se i dati / frame ricevuti dalla sorgente sono validi o meno. Coinvolge nella divisione binaria dei dati che dovrebbero essere inviati e utilizza i polinomi (per generare divisore). Prima la trasmissione , un'operazione di divisione viene eseguita dal mittente sui dati / bit / frame per calcolare il resto.

Controllo di ridondanza ciclico

controllo di ridondanza ciclico

Durante la trasmissione dei dati effettivi dal mittente, aggiunge il resto alla fine dei dati effettivi. La combinazione di dati effettivi e il resto è chiamata parola in codice. I dati vengono trasmessi sotto forma di parole in codice. In questo processo, se i dati sono danneggiati, i dati verranno rifiutati dal destinatario altrimenti verranno accettati.

Cos'è il codice Hamming?

Il codice di Hamming è definito come un codice lineare che viene utilizzato nel processo di rilevamento degli errori fino a 2 errori intermedi. È anche in grado di rilevare errori a bit singolo. In questo metodo, i bit ridondanti vengono aggiunti ai dati / messaggio dal mittente per codificare i dati. Per eseguire il rilevamento e la correzione degli errori, questi bit ridondanti vengono aggiunti in determinate posizioni per il processo di correzione degli errori.

Codice di Hamming

codice hamming

Storia dei codici di Hamming

Nel 1950, Richard W. hamming ha inventato i codici di Hamming per rilevare e correggere gli errori nei dati. Dopo l'evoluzione dei computer con maggiore affidabilità, ha introdotto codici di hamming per codici di correzione di 1 errore e in seguito ha esteso fino a codici di rilevamento di 2 errori. I codici di Hamming vengono creati perché il controllo di parità non è in grado di rilevare e correggere gli errori nei dati. I codici di Hamming vengono inseriti in qualsiasi blocco di dati tra i dati effettivi e i bit di ridondanza. Ha sviluppato una serie di algoritmi per lavorare sui problemi dei metodi di correzione degli errori e questi codici sono ampiamente utilizzati nella memoria ECC.

Processo di codifica di un messaggio utilizzando il codice Hamming

Il processo di codifica di un messaggio utilizzando un codice hamming da parte del mittente comprende 3 passaggi.

Passo 1: Il primo passo è calcolare il numero di bit ridondanti in un messaggio

  • Ad esempio, se un messaggio contiene 'n' n. Di bit e 'p' n. Di bit ridondanti vengono aggiunti al messaggio, 'np' indica (n + p + 1) stati diversi.
  • Dove (n + p) rappresenta la posizione di un errore in ogni posizione di bit
  • 1 (stato extra) non rappresenta alcun errore.
  • Poiché 'p' indica 2 ^ p (2p) stati, che sono uguali a (n + p + 1) stati.

Passo 2: Posizionare i bit ridondanti nella posizione esatta / corretta

i bit 'p' sono inseriti nelle posizioni dei bit che sono la potenza di 2 come 1, 2, 4, 8, 16, ecc. Queste posizioni dei bit sono indicate come p1 (posizione 1), p2 (posizione 2), p3 (posizione 4), ecc.

Passaggio 3: Calcola i valori dei bit ridondanti

  • Qui i bit di parità vengono utilizzati per calcolare i valori dei bit ridondanti.
  • I bit di parità possono rendere il numero di 1 in un messaggio pari o dispari.
  • Se il numero totale di 1 in un messaggio è pari, viene utilizzata la parità pari
  • Se il numero totale di 1 in un messaggio è dispari, viene utilizzata la parità dispari.

Processo di decrittografia di un messaggio nel codice Hamming

Il processo di decrittografia di un messaggio ricevuto dal mittente dal destinatario utilizzando il codice hamming include i seguenti passaggi. Questo processo non è altro che un ricalcolo per rilevare e correggere gli errori in un messaggio.

Passo 1: Contare il numero di bit ridondanti

La formula per codificare il messaggio utilizzando bit ridondanti è,

2p≥ n + p + 1

Passo 2: correggere le posizioni di tutti i bit ridondanti

Il numero 'p' di bit ridondanti è posto in posizioni di potenza di 2 come 1,2,4,8,16,32 ecc.

Step3: controllo di parità (parità dispari e parità pari)

I bit di parità vengono calcolati in base al numero di 1 in bit di dati e bit ridondanti.

Per esempio

La parità di p1 sarebbe 1, 3, 5, 7, 9, 11, ...

La parità di p2 sarebbe 2, 3, 6, 7, 10, 11, ...

La parità di p3 sarebbe 4-7, 12-15, 20-23, ...

Vantaggi del codice Hamming

Il vantaggio principale dell'utilizzo di un codice hamming è conveniente se un flusso di dati contiene errori a bit singolo.

  • Può fornire il rilevamento degli errori e indica anche il bit che contiene un errore per la correzione.
  • I codici di Hamming sono molto facili e migliori da usare nella memoria del computer e nella correzione e rilevamento degli errori a bit singolo.

Svantaggi del codice di Hamming

  • È preferibile solo per la correzione e il rilevamento degli errori a bit singolo. In caso di errori di più bit, l'intero può essere danneggiato.
  • L'algoritmo del codice Hamming può risolvere solo errori a bit singolo.

Applicazioni dei codici di Hamming

I codici di Hamming sono utilizzati in,

  • Computing
  • Telecomunicazioni
  • Compressione dati
  • Risolvere enigmi e codici turbo
  • Satelliti
  • CAM al plasma
  • Fili schermati
  • Modem
  • Memoria del computer
  • Connettori aperti
  • Sistemi integrati e processore

Domande frequenti

1). Il codice Hamming può rilevare errori a 2 bit?

I codici di Hamming possono rilevare e correggere errori fino a 2 bit in un flusso di dati

2). Come aggiusti il ​​codice di Hamming?

I codici di Hamming vengono inseriti in qualsiasi lunghezza di dati tra i dati effettivi e i bit ridondanti. Questi codici sono posti con una distanza minima di 3 bit

3). Qual è il codice di parità?

Il codice di parità o bit di parità aggiunge un bit al frame ricevuto (i dati contengono 1 e 0) per rendere il numero totale di bit (1) pari o dispari.

4). Qual è la distanza di Hamming tra i dati?

La distanza di martellamento tra i due diversi flussi di dati di uguale lunghezza è il numero di 1.

La distanza di percussione tra due stringhe di dati di uguale lunghezza può essere calcolata utilizzando l'operazione XOR.

Ad esempio, a = 11011001

b = 10011101

La distanza di Hamming può essere calcolata come,

11011001 ⊕ 10011101 = 01000100 (il numero di 1 bit è 2)

La distanza di percussione indica il numero di 1 nel flusso di dati risultante

Quindi, d (11011001, 10011101) = 2

Allo stesso modo, 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Il codice di Hamming è ciclico?

Sì, i codici hamming sono equivalenti ai codici ciclici che possono essere utilizzati come codici di rilevamento degli errori.

Quindi si tratta di correzione e rilevamento degli errori, tipi di rilevamento degli errori, codici di martellamento , il processo di crittografia e decrittografia del messaggio utilizzando codici hamming, applicazioni di codici hamming, vantaggi e svantaggi dei codici Hamming. Ecco una domanda per te: 'Quali sono le applicazioni del rilevamento e della correzione degli errori?'