Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Codici per la Rilevazione e Correzione di Errori: Hamming e Parità, Slide di Sistemi di reti

I codici per la rilevazione e la correzione degli errori nella trasmissione digitale, concentrandosi sulla distanza di hamming, i codici di parità e i codici di hamming. Vengono presentati esempi pratici per il calcolo della distanza di hamming e la costruzione di codici correttori ottimi, illustrando come rilevare e correggere gli errori nei dati trasmessi. Il documento include anche una discussione sul controllo di parità incrociata e il checksum per migliorare l'affidabilità della trasmissione dei dati. L'obiettivo è fornire una comprensione approfondita delle tecniche utilizzate per garantire l'integrità dei dati nelle comunicazioni digitali.

Tipologia: Slide

2024/2025

In vendita dal 01/07/2025

Uncharted
Uncharted 🇮🇹

4.7

(3)

46 documenti

1 / 33

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Tecnologie e progettazione di sistemi informatici e telecomunicazioni classe III
Codici per la rilevazione e
la correzione di errori
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21

Anteprima parziale del testo

Scarica Codici per la Rilevazione e Correzione di Errori: Hamming e Parità e più Slide in PDF di Sistemi di reti solo su Docsity!

Codici per la rilevazione e

la correzione di errori

In questa lezione impareremo

● il concetto di distanza e distanza minima di un codice

● la differenza tra rilevazione e correzione degli errori

● la codifica con bit di parità

● il codice di Hamming

Trasmissione dell’Informazione

Lo scambio digitale di informazioni tra sottosistemi è quindi costituito da un flusso di elettroni in movimento che generano un campo magnetico e sono soggetti a rumori proprio di natura elettromagnetica: questi rumori possono arrivare a sovrapporsi al segnale fino al punto di distorcere il valore iniziale, variando uno o più valori di tensione, e “consegnando” al destinatario un’informazione diversa da quella che era stata trasmessa

Nell’esempio della figura un bit ha cambiato valore, cioè il valore iniziale 10011, trasmesso dal sistema mittente, viene interpretato 10111 dal sistema ricevente per effetto dei disturbi: in questo caso si dice che un bit si è sporcato

Un bit a causa di un disturbo del canale si è sporcato

IL BIT, ARRIVANDO DALLA SORGENTE ALLA DESTINAZIONE PUO' SPORCARSI.

Trasmissione dell’Informazione

In presenza di errore ci sono sostanzialmente quattro possibilità:

● scartare il messaggio;

● richiedere la ritrasmissione del messaggio;

● migliorare la qualità del canale per rendere uguale a 0 la possibilità

di errore;

● effettuare la correzione.

Codifica dell’Informazione

Distanza di Hamming

Con distanza di Hamming tra due configurazioni binarie si intende il numero di bit per cui le due configurazioni differiscono

Vediamo alcuni esempi, dove indichiamo con D(A,B) la distanza tra due configurazioni binarie di 4 bit:

D(1000,1010) = 1

D(0110,0000) = 2

D(0100,1010) = 3

D(0100,0011) = 3

Reticolo di Hamming a 3 bit

Codifica dell’Informazione

Operativamente per calcolare la distanza tra due codifiche si esegue l’operazione di XOR tra i due codici e si contano quanti numeri 1 ha il risultato

s1 10001001 s2 10110001 s1 XOR s2 00111000

la distanza di Hamming tra s1 e s2 è pari a 3.

Distanza minima

Si definisce distanza minima di un codice la minima distanza che intercorre tra due configurazioni qualunque del codice

Per esempio, il codice ASCII ha : DMIN (Codice ASCII) = 1

in quanto esistono configurazioni che differiscono per un solo bit I codice non ridondanti hanno DMIN = 1 mentre i codici ridondanti devono avere DMIN >= 1

P Q P xor Q 0 0 0 0 1 1 1 0 1 1 1 0

Codifica dell’Informazione

In generale, un codice per la rilevazione di modifiche su k bit deve avere almeno DMIN = k + 1

Codifica dell’Informazione

Codici di Hamming

Per consentire la rilevazione e la correzione di errori è necessario utilizzare codici ridondanti, ovvero codici che utilizzano un numero maggiore di bit rispetto al numero strettamente necessario per codificare l’insieme sorgente

Indichiamo per esempio: m bit di dati contenenti l’informazione da trasmettere; r bit di controllo o bit ridondanti.

Ciascuna parola in codice utilizza n = m + r bit, quindi ha lunghezza pari a n bit.

I codici di identificazione e correzione di errore con controllo di parità si chiamano codici di Hamming

Codifica dell’Informazione

Per esempio, aggiungiamo il bit di parità come LSB al seguente alfabeto in codice di 7 bit. Ora le parole hanno lunghezza 8 bit e se si verificasse il danneggiamento di un bit durante la trasmissione, il ricevitore sarebbe in grado di accorgersene riconoscendo la presenza dell’errore semplicemente effettuando il conteggio degli 1 presenti

Una volta intercettato l’errore viene richiesta la ritrasmissione del messaggio

Si definisce codice legittimo una parola in codice che soddisfa l’algoritmo di parità

Possiamo facilmente notare che il controllo di parità con ridondanza singola non si accorge di doppi errori

Questo sistema di rilevazione e correzione di un errore è quello normalmente utilizzato sui bus all’interno dei PC dato che la frequenza con cui si sporcano i bit sono dell’ordine di “ 1 ogni qualche migliaia di ore di funzionamento ”. Sarebbe anche sufficiente la richiesta di ritrasmissione e quindi potrebbe bastare questo semplice controllo di parità come precauzione in caso di errori

SE SODDISFA LA PARITA' SI DICE CODICE LEGITTIMO

Codifica dell’Informazione

Questo sistema di rilevazione e correzione di un errore è quello normalmente utilizzato sui bus all’interno dei PC dato che la frequenza con cui si sporcano i bit sono dell’ordine di “ 1 ogni qualche migliaia di ore di funzionamento ”. Sarebbe anche sufficiente la richiesta di ritrasmissione e quindi potrebbe bastare questo semplice controllo di parità come precauzione in caso di errori

Diversa è l’ipotesi di trasferimento di dati verso HD o dispositivi elettromeccanici dove è necessario cautelarsi con sistemi più complessi in grado di effettuare direttamente l’autocorrezione

Codice Legittimo

Nel nostro esempio, oltre alle codifiche riportate nella tabella che segue, abbiamo

per esempio:

che sono altre configurazioni non contemplate nella codifica ma che rispettano le

condizioni di parità.

Supponiamo però che l’ultimo byte (10001000) arrivi a destinazione con tutti zeri

(00000000), cioè che si siano sporcati 2 bit: il destinatario non si accorgerebbe

dell’errore e lo interpreterebbe come dato valido.

CODICE LEGITTIMO Si definisce codice legittimo una parola in codice che soddisfa l’algoritmo di parità.

Quindi il controllo di parità con ridondanza singola non si accorge di doppi errori, e comunque in caso di singolo errore non sa correggerlo, ma solamente identificarlo

Codifica dell’Informazione

Individuazione e correzione degli errori

Se la distanza di Hamming tra codici legittimi è pari almeno a d = 2n + 1, allora è correggibile l’errore sino all’ordine n di errori

Codice correttore di ordine n

il codice di Hamming è un codice che consente di correggere un singolo errore e funziona con qualunque dimensione del messaggio da trasmettere

L’idea di base del codice di Hamming è quella di codificare la posizione dell’eventuale errore : si aggiungono alcuni bit di controllo, tanti quanti sono necessari per codificare la posizione del bit errato ma, poiché anche i bit di controllo sono soggetti a errore, occorre includere anche le posizioni di questi bit nel conteggio totale

Bit dati + Bit di controllo Codework Codice di Hamming

Codifica dell’Informazione

Costruiamo un codework

Vogliamo trasmettere la stringa 00101101

Per ottenere un codice correttore ottimo abbiamo bisogno di 4 bit di parità, infatti:

1 2 3 4 5 6 7 8 9 10 11 12

Bit di controllo

Bit di dati

P1 00010 1

P2 01010 0

P4 0101 0

P8 1101 1

Codifica dell’Informazione

Rileviamo e correggiamo l’errore

Riceviamo la stringa 100000011101

Analizziamo la stringa per vedere se c’è un bit errato ed eventualmente lo correggiamo

1 2 3 4 5 6 7 8 9 10 11 12

Bit di controllo

Bit di dati

P1 00010 1

P2 00010 1

P4 0001 1

P8 1101 1

Si sommano le posizioni dei bit di parità con errore e si trova la posizione del bit errato

2+4=

Il bit errato si trova alla posizione 6, quindi può essere cambiato, ottenendo così la stringa trasmessa correttamente